当前位置: 首页 > 科技观察

教你如何成为顶级程序员

时间:2023-03-17 12:48:37 科技观察

编译自EdmondLau的《The Effective Engineer》。在本书的写作过程中,为了了解那些顶尖程序员与普通程序员的区别,作者采访了硅谷顶尖科技公司的多位顶尖软件工程师。他发现,这些对世界产生过巨大影响的工程师,至少有以下五种共同的思维模式:1、勇于研究自己看不懂的代码。尝试并放弃了。如果你经常研究以前没有接触过的代码,你会越来越熟悉不同的代码结构和设计模式。现在人们可以很容易地获得优秀的开源代码资源,你可以很容易地下载它们进行一些修改或调试,研究为什么代码可以这样写。除了代码,很多人还害怕不熟悉的工作内容。每次换工作,都可能会遇到新公司的工作内容和之前的工作内容不一样的情况,以至于一开始工作效率不如以前高。很多人甚至觉得自己对面试官撒了谎。其实我们都在学习的过程中。在一个陌生的领域,没有人一开始就是高手。如果你想变得越来越好,无论是写代码、与人沟通还是其他技能,都需要投入时间去学习。2、精通代码调试(debug)很多人在写代码的过程中经常会有一个疑问:为什么我写的代码跑不起来?为什么结果不是我想要的?几乎所有的程序员都不能一次把代码写好。但是优秀的程序员很快就会发现他们的代码可能存在什么问题。这是一个很重要的能力,但是学校里没有教,面试的时候考官也经常不提。那么如何调试代码呢?其实核心就是以下几种方法:不妨猜测一下发生了什么。假设你的猜测是正确的,想想你的猜测会导致程序做什么。尝试查看这些结果中是否存在任何异常。如果您没有发现任何异常,那么您的猜测是正确的。如果你发现异常,那么你的猜测是错误的,然后再尝试另一个猜测。对于顶级程序员来说,这个过程是脑海中的一闪而过。只要你解决的问题足够多,你的猜测就会更加准确。至于如何发现异常?您需要拥有自己的一套工具或方法。最简单的方法就是在代码中输出日志来判断。但这是比较笨的方法,需要直接接触一些高级工具或者带Debug功能的编辑器。3.注意可以节省时间的工具。最近打败人类的AlphaGo,每天可以训练几百万局棋,但我们人类要训练10000小时需要10年。换句话说,几分钟的计算机操作可能相当于人类几年的工作量。曾经在Facebook担任技术总监的BobbyJohnson描述说,高效的程序员会把时间花在制作工具上。许多人也认为工具很重要,但他们没有花时间创建和集成自己的工具。但Jonson团队中最优秀的人将1/3的时间花在了构建工具上,这些工具使他们能够发布代码、监控系统并事半功倍。总之,不要花时间做机器可以为你做的事情。4.优化你的迭代速度假设你花了12秒搜索函数定义的位置。假设您每天执行此操作60次,那么您每天将花费12分钟来搜索函数定义。如果你使用更好的编辑器并且每次只需要2秒就可以找到一个函数定义,那么你每天将节省10分钟。您每年可以节省40个小时。如果能找到3个这样的场景进行优化,每年可以节省一个月的时间。想想这个月你能做多少有意义的事情。如果你在调试一个应用程序的bug,你需要在修改一次代码后重启应用程序,然后点击4、5次,看看是否修复了这个bug。那么能不能花几分钟设置一下,让app一启动就跳转到显示bug的页面?永远不要低估这些琐碎的细节,改进它们的回报是巨大的。5.系统化的思维方式当你在写代码的时候,很容易认为只要你按照需求实现了指定的功能,你的代码就完成了。但这实际上只是冰山一角。任何未发布到生产环境的代码都没有价值。如果你想写出真正有影响力的代码,你需要从整个系统来理解你的工作:你的代码与其他人写的代码在功能上有什么关系?您是否正确测试了您的代码?或者其他人是否容易测试您的代码?为了部署你的代码,线上生产环境的代码是否需要改动?新代码会影响已经运行的代码吗?在新功能下,您的目标用户的行为是否符合您的预期?您的代码是否产生了商业影响?这些问题不好回答,但是在写代码的时候,你需要明白你的代码***是否会得到***结果。