关键词:代码、编程、业务、技术、数据、面试、成长、开发、逻辑、能力
一、心得
-
说说我自己理解的编程:编程就是要教会只会0和1的电脑去解决现实生活中各种复杂的问题,电脑只有与或非三种逻辑,只有顺序循环分支三种控制结构。我一直觉得编程某种意义上是一门"手艺",因为优雅而高效的代码,就如同完美的工艺品一样让人赏心悦目,最主要、最容易被我们直观感受到的问题就是:烂代码实在是太多了。后来,在亲历了许多个令人不悦的项目之后,我才慢慢看清楚:即便两个人实现同一个功能,最终效果看上去也一模一样,但代码质量却可能有着云泥之别,好代码就像好文章,语言精练、层次分明,让人读了还想读;烂代码则像糊成一团的意大利面条,处处充斥着相似的逻辑,模块间的关系错综复杂,多看一眼都令人觉得眼睛会受伤
-
越简洁的代码,越清晰的逻辑,就越不容易出错。而且在实际工作中不是用代码量来评价一个程序员的工作强度和等级,高端的同学总是用最简短精妙的代码来解决问题。代码变得越来越简洁,代码看起来更加结构化和规范化、扁平结构比嵌套结构更好
-
在团队合作中,你的代码不只有你在维护,降低别人的阅读/理解代码逻辑的成本是一种良好的品德
-
简单的代码,只会用到最基本的语法糖,复杂的高级特性,会有更多的依赖(如语言的版本)
-
一个公司如果数据库从来不出问题,那一定是因为没有业务量或者流量
-
所有技术的选型和设计,都有它的应用场景,除去那些让人开心的案例,剩下的毫无疑问就是坑;如何尽可能地避开这些坑,如何在出现问题的时候可以用最快的速度去修复,这些都是至关重要的因素
-
任何项目在早期,整个数据基本处于裸奔状态,没有做任何的权限校验与审计,用户可以对数据为所欲为,这个阶段主要考虑效率优先,随着业务的发展,数据安全的重要性愈发突显,大数据权限系统则会应运而生
-
现实中大部分程序员都属于是斐波那契程序员
-
关于代码意见:我的看法是,一个处理代码行数超过四五十行,就可以考虑缩减抽离了,为什么要这么做,其实很简单:出于可维护性 ,一个业务再复杂,离不开一个主干逻辑(也可能是多个)和 N 个子逻辑,你不能把臃肿的子逻辑代码放在同一个处理代码内部,这样太影响可读性,影响可读性的后果就是提高了维护成本
-
首先从成长的角度来看,追求代码质量是一个优秀程序员对自己的要求,我想任何一门工艺、手艺,从业者想要把他做的更好,这是一个非常自然的目标,我们既然靠写代码谋生,就应该对代码有追求,对代码有自己的审美和判断,代码质量真的只是一个底线,在这条底线之上,才有可能谈稳定,谈伸缩,谈性能,谈架构,优雅与否则是区分顶级程序员与一般程序员的终极指标所在,能用不是代码的标准,能被维护才是代码的标准
-
程序员大厂面试三板斧:八股文、算法、项目经验
-
切记切记:不要用战术上的勤奋来掩盖战略上的懒惰
-
写代码是要有感觉的:感觉到了思如泉涌、键盘啪啪作响,一个需求很快就做完了,搬砖速度飞起
-
我们是一群与画家有着极大的相似性的猿/媛,是在创造,而不是完成某个任务,会在求解问题过程中产生精神愉悦或享受,我们崇尚分享、开放、民主、计算机的自由使用和进步
-
真正工作中都是写写业务代码,哪有那么多深度的技术问题;其实我觉得写代码最重要是逻辑思维够强,代码的规范工整,思路清晰,化繁为简,否则你说你写了多复杂的海量并发处理,多有深度,但是代码乱得一团糟,别人没法维护,再牛逼有何用
-
软件开发的任务应该是思考,思考手头的问题,设计出一个完美的解决方案,然后再把这个方案转变成可供用户使用的软件
-
阅读他人的代码是一种很棒的学习方式。正如一位作家所说,"阅读其他人的作品是让你成为一个更好的作家的最好方式",这同样适用于代码
-
优秀程序员绝不只有技术:
(1)问题解决能力
(2)业务理解能力
(3)沟通能力
(4)产品思维
(5)管理能力
(6)分享表达能力
...
二、总结
最后再开个玩笑哈哈:所以在感慨,在这个行业可能确实需要像前任这样的码农,挖坑,填坑,坑更多了,再填......生生不息,这样行业才能长久生存,没有 bug 可以修复,没有屎山可以铲,我们真的就失业了,如果每个程序员写的文档详细,逻辑清晰,注释清楚,拿什么让老板离不开你,靠什么威胁老板给你高工资,所以我现在的处境用一句话形容:全凭同行衬托