低级程序员和高级程序员的区别在哪?学会像高级程序员一样思考!

julietgoudie8 云计算/大数据 3 次浏览 没有评论

低级程序员认为自己与高级程序员的区别:高级程序员任何功能都能编码实现, 编码速度快, 代码无 bug。

正如一惯的那样, 低级程序员之所以低级, 正是因为他们勉强能看到(或者根本看不到)事物的表象而看不到本质。

我们来听听高级程序认为自己与低级程序员的区别是什么。

高级程序员之所以高级, 在于他们认识到代码 bug 是不可避免的, 有千万种理由可以导致 bug, 但他们可以在设计和逻辑上保证(追求)滴水不漏, 并用逻辑的百分之百准确性来减少代码 bug。 没错, 严谨的逻辑能力是高级程序员区别于低级程序员的最主要原因。

类似于武侠小说中的武术一样,程序员也分内功和招式。

招式就是各种编程技巧编程概念(框架,架构等),通过经验可以不断习得。而内功就是数据结构 + 算法了,招式可以决定你干活的速度,而且绝大多数情况下,不需要深厚的内力(知道加减乘除就行)。而内功可以决定你解决问题的高度,就是说一件事情难到一定程度,内力不够的话是解决不了的。

优秀程序员的行为:

拿到任务,就开始仰望星空或天花板上那盏高悬的电灯棒,状如老僧入定

忽而皱眉,忽而展颜一笑,忽而手舞足蹈,忽而在纸上指指戳戳,忽而口中念念有词,忽而长吁……感觉有点神经病啊

桌子上摆的是代码大全、设计模式、敏捷实践之类的书籍,并且没有灰尘

chrome或firefox的书签栏里分门别类,类别多于10个,8个以上是技术相关的

容不得破窗户,看见别人的烂代码就想改过来

随手就能在白板上画出软件的流程图或者时序图……

低级程序员和高级程序员的区别在哪?学会像高级程序员一样思考!

 

普通程序员的行为:

拿到任务就开始噼里啪啦敲键盘,一天写了好几千行代码

没事儿就被测试MM叫过去沟通……

都早上10点多了还想着昨晚的球赛,10点半就琢磨中午要吃拉面、扯面、刀削面、牛肉面、旗花面、臊子面、窝窝面还是炒细面……

过了一阵子,看到自己的代码,感到很惊奇,认为是别人写的……

低级程序员成为高级程序员在于他做到了:

1、勇于去研究你不懂的代码

一般人都不愿意去研究自己不曾接触过的代码,很多人都没有尝试就放弃了。如果你经常去研究你没有接触过的代码,你就会越来越熟悉不同的代码结构和设计模式。现在人们很容易就接触到优秀的开源代码资源,你可以很方便的就下载下来做一些改动或者调试,去研究为什么代码可以这么写。

除了代码之外,很多人对于陌生的工作内容也会感到恐惧。每次换工作的时候,你可能都会遇到新公司的工作内容和以前工作的内容不一样的情况,以至于刚开始的时候工作效率没有以前那么高。很多人甚至觉得,他们是不是骗了面试官。

2、精通代码调试(debug)

很多人在写代码的过程中,经常会有的一个问题就是:为什么我写出来的代码不能运行?为什么运行的结果不是我想要的?

几乎所有的程序员写代码都不是一遍就能写好的。但是顶尖的程序员非常快的就明白自己代码的问题可能是什么。这是一个很重要的能力,但是偏偏学校里不教,面试的时候考官也不经常提及。

3、程序员是一种职业,而黑客是一种兴趣。

4、程序员的工作有很多限制,而黑客可以尽情发挥。

5、程序员都想把自己说得更好,因为他们要推销自己,而真正的黑客更谦虚,他们知道自己懂得还不够多。

6、程序员是一种“职责”,需要的是对编程语言的使用,更希望尽快完成工作,而不是探寻为什么要做这项工作。

黑客是一种“心态”,对技术有着极大的好奇,希望理解核心的工作原理,喜欢创造。尝试理解如何工作,如何做得更好,如何让事情做得特别。黑客就像艺术家或哲学家,同时有着科学工程的天赋,有很多“为什么”和“为什么不”。

7、程序员和黑客,就如同画匠和艺术家,工匠和DIYer,教科书的方式和创新的方式。

8、程序员的目标是写出程序,完成需求,而黑客是要让程序为自己而用,满足自身需求。

9、程序员和黑客都在写代码,只是黑客把不可能变为了可能。

感谢关注,我们这边提供免费架构资料,每天晚上八点有十余年一线互联网架构师直播分享高并发,分布式,Spring,MyBatis,Netty源码分析和大数据等多个知识点 想要获取免费架构视频资料请加群:614478470  点击:加入

1、具有1-5工作经验的,面对目前流行的技术不知从何下手,需要突破技术瓶颈的可以加

2、在公司待久了,过得很安逸,但跳槽时面试碰壁。需要在短时间内进修、跳槽拿高薪的可以加

3、如果没有工作经验,但基础非常扎实,对java工作机制,常用设计思想,常用java开发框架掌握熟练的,可以加

4、觉得自己很牛B,一般需求都能搞定。但是所学的知识点没有系统化,很难在技术领域继续突破的可以加

5.阿里Java高级大牛直播讲解知识点,分享知识,多年工作经验的梳理和总结,带着大家全面、科学地建立自己的技术体系和技术认知

想要学习Java高架构、分布式架构、高可扩展、高性能、高并发、性能优化、Springboot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分布式项目实战学习架构师视频免费获取   架构群:614478470  点击:加入

内容如有侵犯你的权益,请联系删除

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go