高级程序员和普通程序员有哪些区别( 三 )



解决问题是一个很见功底的技术点,而且是有很多方法论的,之前总结过一些,简单列举过来:
1.寻找正确的代码
2.理清楚正确的执行顺序
3.重现错误
4.最小化错误产生的场景
5.修改代码到一个已知的错误类型

等等等。
解决问题就是一个分析推理的过程,而在这里呢,背后的功底就是你知道很多哪些是肯定不会错的小公理,然后再挨个去定位可能产生错误的环节,分解流程是最基础的工作。
13 不会写伪代码

伪代码是什么呢?就是自然语言啊。其实编程只有三种逻辑控制块,顺序,循环,判断。
所以你只要用自然语言来描述出来,先做什么,再做什么,什么时候循环,什么时候判断,
代码写出来的问题就不大。
这是一个先写伪代码再写细节的过程。你不要上来就开始平铺写代码(我之前讲过优雅代码之道,有兴趣的可以加群听一下,重点讲了怎么写出来优雅代码)。
平铺代码是最菜的方式,好的代码是有结构的,有不同的抽像层级。

第一步,干嘛。
第二步,干嘛。
第三步,干嘛。

先把这个列清楚,这是伪代码的第一级。
然后变成注释,这是第二级。
删掉注释变成函数名,这是第三级。


所以说,好的程序员写代码是不需要注释的,不是说让你把注释删掉,而是让你完成这三步升华的过程。
写的好的代码,命名规范,你看到的真的是一首诗, 是一种编程语言,是在用语言来描述一件功能的完成,这种编程艺术的工业感很爽快,你看那些不爽的代码,简直了。。

14 不做数据量的预估
后端工程师在前期经常会忽视数据量的大小,没有影成一个好的习惯。
写代码只注重功能,没有一个关于数据量的概念。
这个地方其实还和性能是一致的,在性能上,前后端并没有太大的差别。

推荐的做法是,程序员要对数据很敏感,后端要知道每一个表的规模可能会有多大,当前的系统能支持的数据库表的大小是多大,而前后端都需要知道每一个操作,都分成了哪几个步骤,每一个步骤花费的时间是多少,大概占用的内存是什么样的。

做到这一点其实并不难,难的是养成这种习惯,初级工程师眼里看的是功能和代码,中级工程师眼里看到的是数据和时间。


更新于20180801-1621,下次继续,好饿。
15 提交代码不规范
16 不喜欢打Tag
17 不遵守发布流程
18 不知道Bug修复的优先级
19 总喜欢手动修改线上代码
20 不做数据备份
21 不做自测
22 不尽力模仿真实数据,测试数据很随意
23 不抽取公共代码
24 不认真听需求讲解
25 不看验收标准
26 不主动推进项目进度
27 遇到难题不主动反馈

==========这是现在的===========

好了。休息一下。眼睛疼。改天继续。




========这是上次的=======
不说了不说了~~

今天是被气晕了。


……我是睡了一觉开心分界线……

也许你们也会喜欢看这个
如何推翻JAVA的统治地位?

今天有时间我会继续写~
果然还是吐槽容易产干货啊




■网友
高级程序员:
知识体系完整有自己的学习方法形成了自己的心智模型,知识可以迁移,可以高效切入不同的领域(IT范围内)拥有真正的经验(不仅仅是做过些什么,更有面向未知的解决问题的能力)有系统性思维。就算没有到架构师的级别,写代码和改Bug,都能从整体上去思考和把握。普通程序员:
知识体系零散毫无自己的学习方法和某种语言绑定比较深,知识无法迁移。换门新语言,或者领域就不知所措没有经验却以为自己有经验。(比如以为自己有三年、五年、十年经验,只对自己做过的比较顺手,但是碰到未知的问题,就束手无策)无系统性思维。写代码、改Bug,毫无工程素养,拆了东墙补西墙


推荐阅读