计算机答题串无名氏No.63704741 返回主串
2024-09-08(日)13:12:19 ID:6S0Btd7 回应
po近期处于待业期,没什么固定的项目做,希望能够在答疑的过程强迫自己学习新的知识。
欢迎各位提问,也欢迎肥哥参与答疑串。
----------告示----------
答疑的效率不高,所以希望肥哥别问需要很强的及时性的问题。
例如:
>xxx题用什么算法解决。
>我这里有个报错,如何解决。
这类的问题,没有测试环境很难解答,这也是为什么本串放在了老中医而不是代码串。
本串主要用于解答相对抽象的概念,或者对计算机的“质疑”与“好奇”。
例如:
>为什么计算机使用的是二进制而不是三进制,分明三进制的单位信息存储量更大。
>如何看待AI发展对计算机行业的冲击,未来就业会更困难吗?
po会尽量去吸取相关的知识,汇总后进行分析解答。
提出问题过一段时间来收获结果就好。
----------叠甲----------
人无完人,观点与知识也不尽然,po会尽量保证结论的可信度与逻辑性,若出现疏漏欢迎肥哥指正,望海涵。
无标题无名氏No.63772736
2024-09-14(六)18:27:17 ID: 6S0Btd7 (PO主)
>>No.63771802
只是说最本质的东西倒也没错,但是太模糊了。
python作为解释性语言,它的设计目的是使编程易于学习与使用,所以它会尽量去减少“非必要的”编程能力的输入,希望你能够学最少的东西干最多的事情。
(关于什么是解释性语言,肥哥想深入学python可以去了解一下。)
C++如其名,它想保持C语言的高可用和高效性,希望能够更加接近硬件结构,可读性之类的就不在第一位,会发现编写的难度较高,通常追求效率的地方会用C++编写。
JAVA是追求跨平台与安全性的产物,丰富的特性决定了它有更好的复用性与安全性,企业开发用的比较多,但是江湖人称“裹脚布”,用起来是又臭又长,个人觉得写着很折磨。
总来说“高级编程语言”只是一个大类,它们生存至今还是有自己独特的受众与设计目的,了解这些有助于区分语言与实际项目中进行语言选型。
(PS:实际还区分纯面向对象设计语言与部分面向对象设计语言,这个就肥哥接触到再去了解吧。)
肥哥也不要心急一开始就搞完全懂,可以尝试写两个小型的完整项目或者下载别人的项目,参考一下代码结构,思考架构设计原因与分类原因,这样就能逐渐提高理解深度了,循序渐进(=゚ω゚)=
无标题无名氏No.63812648
2024-09-18(三)14:16:16 ID: 6S0Btd7 (PO主)
>>No.63790963
这种可能是检索时出现重名之类的问题,可能出现问题的地方很多,po这里也解决不了,可以直接发在相关板块问问肥哥( ;゚д゚)
无标题无名氏No.63895975
2024-09-26(四)17:22:38 ID: 6S0Btd7 (PO主)
>>No.63890194
没想到这个串还会有肥哥光顾( ;´д`)
笼统的来说,你需要“能够帮公司赚钱的技能”。
这个赚钱可以是直接赚钱--销售类技能。
可以是间接赚钱--提升产品竞争力与市场占比。
可以是间接间接赚钱--提高产品质量与产品美观度。
甚至可以是省钱--降低产品风险。
通过这些肥哥可以分析一下自己擅长什么,每个方面都会有众多的技能与思路供你挑选。
>能够给公司带来大于工资的收益,那么公司就会考虑与你搭建合作关系。
同时不仅仅要从自身考虑,也得考虑自己目标是什么样的生活,哪种类型的企业更可能给你提供这样的生活。
举例:
小型企业需要能力的全面性更优秀,他们解决的问题复杂度更低,但是需要亲历亲为,同时小型企业的抗风险能力较低。
有点像是发展规划的问题,不要被专业限制了自己,你甚至可以去学不属于计算机的内容,但“所学所知皆有所用”。
上面有点鸡汤,想说些干瘪一些的。
但是写完发现没什么参考价值,便删掉了,单纯的计算机领域在现在生活中已经渗透进了方方面面,进入这个领域总可以找一份工作,要走多高多远,才最终决定了要学哪些东西,很难泛泛而谈。|∀` )
肥哥找到属于自己的适合自己的方向便是。
无标题无名氏No.63896355
2024-09-26(四)18:04:27 ID: 6S0Btd7 (PO主)
>>No.63893819
肥哥,本串不做内容限制,想聊什么直接说就好,po尽力回答,也是沟通与提高。( ´∀`)
首先,赞美肥哥的开源精神,po写的很多东西最后都没有选择开源,因为不能保证自己长期维护。
>项目架构管理有没有什么好办法呢?
很抱歉,这个答案是“没有”。
不同项目适合的架构不同,项目在不同的发展阶段的适合架构也不同,没有一个架构能够完全通用。
同时也不推荐在一开始想太多,过分复杂的架构也会成为项目成长的阻碍,逐步去调整架构,或者在过于臃肿时果断推翻重写是比较常用的做法。(PS:实际上在规模达到边界时,推翻重写的成本和继续维护也差不多,有许多模块可以复用,只是调整调用逻辑,对于个人开源项目,修修补补反倒不如一个干脆地2.0来的更舒服,也有易于后续更新。)
同时在新的架构设计中,肥哥可以融入更多新的思想与新的实践,适当剔除曾经用不到的代码块,这样的产品是大家都乐意见到的,我相信也是肥哥更想要的东西。
>阅读真的有必要吗?
这里得问问肥哥,“在读什么东西?”。( `д´)σ
肥哥是想学习它的架构,想学习它的实践逻辑,还是想学习它的设计思路。
每个东西在项目中的占比其实都不大,肥哥觉得无从下手,很多时候是拿到代码就直接去看了,不够有目的性,一个项目都去看,代码量是极大的,并且会深陷其中越学越乱。
肥哥不如静下来先明确一下自己的需求,再去看相应的项目,这样肥哥也能知道自己到底在对比些什么。
同时肥哥也可以看明白它们为什么是好项目,到底好在哪,相近的项目的设计差异到底在哪里,学到东西,肥哥的能力自然就提高了。
>开发逐渐束手束脚。
这个我认为肥哥可以先了解一下SDL(软件开发流程),这样可以明晰自己需要做哪些事情。
同时肥哥考虑的实在是太多了,这反倒不好,因为你不是在做一个“完美的项目”,项目有问题是正常的,需要修改更是正常的,没有人能够保证自己做的东西“永远是最佳的”,所以肥哥也不要追求事实完美,先完成眼前的工作,之后有能力与时间再做调整。
拆开这几个小点聊聊。
1.希望被人在代码贡献时按照一定的规范。
肥哥可以直接讲明自己的规范规则,单独写一个共享代码的格式文档,讲明什么样式的代码更容易被认可,并且给出一两个例子。
说明不适合融入项目或融入成本较高的代码不会采纳就好了。
2.模块划分各有各的方法。
模块化最重要的是“有统一标准”,肥哥在本项目中使用同一套划分标准,所有模块的切割逻辑统一即可,不必要追求极致。
过度模块化也是目前项目的一个“误区”,有时候内部通信效率更高,也没必要完全分块,适度才是最难的。
3.软件如何进行测试。
软件测试的方法种类太多了,本身也是一个学科,很难细细讲清。
首先肥哥在代码上线前应当做好足够的测试,同时需要留出模块的测试接口。
测试要尽量保证覆盖全面,需要考虑多种使用情况等等。
上面只是开个玩笑。
肥哥在测试时需要逐步拓展,先保证基础功能可用,而后当功能出现异常时鲁棒性是否足够,安全性是否足够等问题再逐步加入进去,实在麻烦先保证基础功能可用,剩下的之后再议。
项目在人力不足时不要太“贪婪”,先做好能做的事情,再寻求拓展。
我以前在公司开发的项目,甚至一开始完全没有预留测试功能,测试工具还是后期单独写的,这不影响它曾经是一个不错的项目,贪多嚼不烂的道理肥哥肯定都懂,只是身在居中有些迷茫。
最后提醒一下肥哥,培养一个好的“孩子”的最好方式是放手让它自由成长,太限制自己的同时也会限制项目,有错就错了再改,有问题出现问题再解决,束手束脚有违初衷。|∀` )
PS:肥哥想了解的知识实际上都有对应的书籍去讲解,并不一定只能从别人的项目于代码中学习,从前人总结的内容系统性了解也是不错的学习渠道,学习效率也会更高。
肥哥在自己做了开发工作之后再读书也会有深入的理解,是与作者交流的过程。
例如:《代码之美》,《架构之美》,《软件测试之道》等。
无标题无名氏No.63950476
2024-10-02(三)02:24:04 ID: 6S0Btd7 (PO主)
>>No.63904871
这个也是有较大差异化的。
po之前在安全公司工作,有的开发人员只要负责模块设计与功能设计,每天可能只有一两个小时与代码相关。
有的开发人员负责模块落地,整天都在写代码跑测试。
在行业内有个“日代码量”的概念,实际上每个团队能做到人日均100行就不错了。
PS:这个是指有效的实践落地代码。
实际上在工作时候,与开会扯皮相比,写代码真的算是“休息”,我遇到的开发人员都更乐于聊代码与项目相关的内容,而不是其他杂事。
po之前的工作,一整年下来可能都写不了一千行代码。
肥哥不用为此焦虑,代码只是实现工具罢了。( ´∀`)
无标题无名氏No.63950503
2024-10-02(三)02:34:45 ID: 6S0Btd7 (PO主)
>>No.63950476
上面只是聊了工作量,还有肥哥问的内容与目的。
先聊目的吧。
最终目的是“解决需求”,这个需求可以是客户端的整体诉求,也可以是某人的灵光一现。
我们的社会还没发展到生产力极度大丰富的情况,还不能做到每个人都做“自己想做的事”,目前还要解决问题来换取劳动报酬,从而实现资产流动,所以工作的主要目的是“解决需求”,而完全不是自我实现,肥哥觉得有一定的迷茫也是正常的。
至于工作内容,主要与岗位相关,不同岗位的内容差异化也较大,肥哥需要根据自己的目标方向进行了解。
现在还是祖国的建设阶段,努力学习与工作,迟早会到大家都可以过上进行自我实现与探索生活的阶段。
各位国庆快乐。(*´∀`)
无标题无名氏No.63950544
2024-10-02(三)02:47:27 ID: 6S0Btd7 (PO主)
>>No.63904871
肥哥看起来有点丧,po来说一些提振士气的话,算是鸡汤也是自己的想法。
开发是一个有趣的过程,但是有趣不在过程。
孵化与开发项目就像是过自己的人生,会纠结会迷茫会挫折会如此往复,但是这某一阶段回看过去,正因这些东西组成了人,这些东西在一起变成了一个成熟的项目,这时巨大的成就感与自豪感会化成勇气推着你前进。
不止是计算机,什么学科一眼过去都是复杂的,因为它是人类智慧发展的结晶,由庞杂的知识组成。
但实际上阻止你继续的只有胆怯,也就是所谓的万事开头难。无谓的投入,认真的钻研,脚踏实地的学习,人就是这样与学科一同成长的,向着自己的目标前进就好。(ゝ∀・)
无标题无名氏No.63978112
2024-10-05(六)01:23:44 ID: 6S0Btd7 (PO主)
>>No.63968964
这种作业不是po能解决的(;´Д`)
po只是工作需求有过架构设计与审计经验,但是更多是安全性问题不是性能问题。
不过既然是肥哥提出的,也算是新的知识面,我去学学( ´∀`)