顶级的程序员是怎么样的

顶级的程序员是怎么样的,第1张

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

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

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

其实,大家都是在学习的过程中。在一个陌生的领域,没有人从一开始就是大神。如果你想变得越来越好,无论是写代码,与人沟通或者其它的技能,都是需要投入时间去学习的。

2. 精通代码调试(debug)

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

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

那么怎么去调试代码呢?其实核心就是以下几个方法:

不妨先猜测一下到底发生了什么。

假设你的猜测是对的,想想你的猜测会导致程序有什么结果。

试着观察这些结果有没有异常的地方。

如果你没有发现异样,那么说明你的猜测就是对的。

如果你发现了异样,那么说明你的猜测是错的,接下来换一个猜测试试。

对于顶尖程序员来说,这个过程在脑海中就是电光火石的一瞬间。只要你解决的问题足够多,你做出来的猜测就会越准确。

至于如何发现异样?你就需要有一套自己的工具或者方法论了。最简单的就是在代码里输出日志来判断。但是这是比较笨的办法,你需要去接触一些高级的工具或者直接带有Debug功能的编辑器。

3. 重视能够节约时间的工具

最近打败人类的AlphaGo每天可以进行上百万局的下棋训练,我们人类一万个小时的训练却需要10年之久。也就是说,电脑运行几分钟,可能就等于人类工作好几年。

曾经在Facebook担任技术总监的Bobby Johnson描述过,高效率的程序员都把时间花在制作工具上。

很多人也认为工具是很重要的,但是他们并没有花时间去制作、整合自己的工具。但是,Jonson团队最出色的员工耗费了他们1/3的时间在工具制作上,这些工具可以用来发布代码,监控系统,以及能让他们花更少的时间去做更多事情。

总之,不要花时间去做机器可以代替你去做的事情。

4. 优化你的迭代速度

假设你要花12秒钟去搜索某个函数是在哪里定义的。再假设你每天做这个动作60次,那么你每天就要花12分钟去搜索函数定义。

如果你用一个好一点的编辑器,每次找到函数定义只要2秒钟,那么你每天就会节约10分钟。每年你就可以节约40个小时。

如果你能找到3个这样的场景去优化一下,那么你每年可以节约一个月的时间。想想这一个月你可以做多少有意义的事情。

再假如你在调试一个App的bug的时候,改完一次代码都需要重启一下App,然后点击4、5次才能看到bug有没有改好。那么你是不是可以先花几分钟设置以下,让App一启动就转到显示Bug的页面呢?

千万不要小看这些琐碎的细节,改善它们的回报是巨大。

5. 系统性的思考方式

当你在写代码的时候,你很容易就认为只要你按照需求实现了指定的功能,你的代码就写完了。但是这其实只是冰山一角。任何没有发布到生产环境的代码都不会产生任何价值。

如果想写出真正有影响力的代码,你需要从整个系统去理解你的工作:

你的代码和其他人写的代码在功能上是什么关系?

你有没有好好测试你的代码?或者其他人是否很容易测试你的代码?

为了部署你的代码,线上生产环境的代码是不是需要改动?

新的代码会不会影响到已经运行的代码?

在新的功能下,你的目标用户的行为是不是你期望的?

你的代码有没有产生商业上的影响?

程序员也是分为等级的,因为每个人的实力水平不同,成为顶级的程序员肯定是要付出很多努力的,有时候写程序就可以看得出来,有的程序员写出来的程序经常会有漏洞,导致系统运行不稳定,但是有的程序员人家写的程序不但占用的内存少,没有漏洞,而且也运行流畅,这就是顶级程序员的最基本工作,因为大部分的程序员根本就没有自己写的程序,都是复制粘贴别人的,所以说现在的程序员就是搬运工而已。

我们看似高大上的程序员,其实他们的工作就是修改漏洞,把别人的框架复制过来自己用,换个牌子就是自己开发的,这样的程序员永远是最低级的程序员,因为根本不会有太大的前途,所谓的二八定律,就是因为只有少部分程序员才是真正的自己开发程序,有着自己的思维,因为人家知道并不是为了挣到多少钱,而是能够做出自己喜欢的东西来,任何的行业只要是你用心去做,都会做的成功,表面上看着非常辛苦的程序员实际上一点也不劳累。

有的程序员在年轻的时候挣到几年高工资就离开这样的行业了,因为大部分的人都是这么想的,只有少部分的人员才会坚持做自己喜欢做的事情,因为人家真的是热爱这样的事业,也就是到最后都能够成功的,要想过得不错就要付出别人没有付出的,你才会真正的搞明白软件行业的。

生活中的程序员看着很辛苦,实际那是他们把他当作挣钱的工具,当你的内心太急功近利的时候就会感到疲惫,也做不出太大成果的事情,因为你的心思没有在开发程序上下功夫,总是漂浮不定的,所以说二八定律永远的存在。

看顶级怎么理解了。

首先,要有比较好的基础。数学(离散数学,概率)+计算机科学(计算机组织结构、编译原理、数据结构。数据库理论)等等

其次就是懂编程语言,C、C++、Java

以上都是基础,然后才能深入某个专业,比如我以前做印刷软件,用Java开发上层的界面。

需要懂java语言,需要懂Swing做界面开发,还需要了解用户需求。

做的多了,懂的就多Java的API,甚至java虚拟机的一些特性(甚至bug)都会知道,时间长了,多积累。

后来我做java虚拟机的移植,开始深入到java虚拟机层面进行软件开发,再后来,我做手机软件平台的设计。一步步的来,当然,我没有达到顶级程序员的标准,十年了慢慢的积累,对我现在工作还是很有帮助的。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11038652.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-13
下一篇 2023-05-13

发表评论

登录后才能评论

评论列表(0条)

保存