成为明星程序员的独特秘密
在谈论所有的软件设计原则、开发软件的目标和软件设计本身的科学之前,有一个不得不提的决定软件开发者是成功还是失败的独特秘密:
“明星”程序员比一般或者平庸的程序员更透彻地理解了他们正在做的事情。仅此而已。
那些能够在一天之内掌握一门全新编程语言的高级工程师,和那些在这个行业挣扎了十年只为保住饭碗,一直按别人的设计方案编程,还因为自我提升不够而始终无法得到晋升的初级开发者之间的区别就在于此。通过它也将糟糕的程序员同优秀的程序员、优秀的程序员同伟大的程序员、伟大的程序员同那些通过精湛技艺建立起几十亿商业帝国的“明星”程序员区分了开来。
正如你所看到的,这一点也不复杂,并不是什么难以掌握的技巧。也不是需要你拥有与生俱来的某种特殊天赋或者“把代码写好的神奇能力”才能办到的事。成为杰出的程序员还是糟糕的程序员与个体的自然属性无关:
或许有些人会告诉你他们已经掌握了所有的知识。你可以通过观察他们能否将他所理解的内容应用到实际工作中,来检测他们的说法正确与否。他们能否构建出一个易于维护并具有优雅架构的系统?他们是否能比大多数程序员更有效率地解决问题?在被寻求帮助时,他们是否能用浅显易懂的概念清晰地解释清楚?如果以上都能做到,那么他们确实是杰出的程序员,并且的确对领域内的知识了如指掌。
但是,与相信自己“对一切了如指掌”相距甚远的是,许多程序员(包括我在内)常常感觉自己身处于浩瀚无垠的信息海洋里,受困在一场史诗级战争中。有太多东西需要知道,以至于哪怕穷极一生致力于学习研究,可能依然只了解了90%的计算机知识。
越是理解所处领域的底层知识,学习高级别的知识就越容易。越是理解当前级别的知识,学习下一个级别的知识就越容易,以此类推总是成立的。如果你自认为对某一门学科内从基础到高深的知识要点都统统掌握了,那不妨选择从头开始温习一遍,相信你会惊奇地发现在底层还有如此多的东西需要学习。
这听上去简单得难以置信,但事实就是如此。成为杰出程序员的必经之路就是保证对知识完全和完整的理解,从对基础知识的深刻掌握,到对大多数先进概念的扎实了解都必不可少。
我不想骗你,有时候这条路走起来非常漫长。但它是值得的。在道路的尽头,你或许会发现自己突然成长为了一位了不起的高级工程师,人人都会来向你征求意见。或者你会成为被所有同行钦羡的无往不利的神奇程序员。又或者你会造就一款价值数百万美元,并且取得难以置信的成功的“明星”级产品,谁知道呢?
我无法告诉你应该做些什么或者应该成为什么样的人。我只能将一些我发现的有效且有价值的信息分享给你。应该怎么做依然取决于你自己。
本文摘自《编程原则:来自代码大师MaxKanat-Alexander的建议》
作者:[美]马克斯·卡纳特-亚历山大(Max Kanat-Alexander)
译者:李光毅
编程大师向你展示如何让简约设计的思想回归到计算机编程中
在本书中,富有传奇色彩的编程大师马克斯·卡纳特-亚历山大(Max Kanat-Alexander)将会向你展示如何让简约设计的思想回归到计算机编程中。马克斯会解释程序员为何会感到力不从心,以及应该如何持续改善。世界上存在太多复杂的事物。复杂并不可取,因为它会给我们的工作带来隐患。
马克斯从他久负盛名的技术博客CodeSimplicity中精选了一部分文章,对如何在软件行业工作以及取得成功给出了自己的想法和建议。相信这43篇文章能够让你学会如何在工作中避免复杂,拥抱简约,从而让你的职业生涯更加顺利和成功。
01
作者:[美] 兰德尔 E.布莱恩特(Randal E. Bryant)
大卫 R. 奥哈拉伦(David R. O'Hallaron)
译者:龚奕利 贺莲
本书将所有计算机系统相关知识融会贯通
助你成为凤毛麟角的高级程序员的必备神书。
如果你研究和领会了这本书里的概念,
你将开始成为极少数的“牛人”!
本书是一本将计算机软件和硬件理论结合讲述的经典教程,内容覆盖计算机导论、体系结构和处理器设计等多门课程。本书的最大优点是为程序员描述计算机系统的实现细节,通过描述程序是如何映射到系统上,以及程序是如何执行的,使读者更好地理解程序的行为,以及造成效率低下的原因。从程序员的角度来学习计算机系统是如何工作的会非常有趣。最理想的学习方法是在真正的系统上解决具体的问题,或是编写和运行程序。这个主题观念贯穿本书始终。
02
作者:[英] 佩蒂塔·史蒂文斯(Perdita Stevens)
译者:王磊 周训杰 万学凡
编程初学者、萌新程序员和编程“老兵”
必读的宝藏级编程“说明书”,赶走你的编程焦虑
学习编程并不仅仅是学习编程语言的细节:要想成为一名优秀的程序员,就必须成为调试代码、测试代码、编写清晰代码的专家,并且能解决遇到的任何疑难问题。本书通过丰富的小提示、故事和关键术语的解释,清晰地传授各种编程技巧。无论是刚开始学习编程的“学员”,还是初入职场的编程“新人”,或者是具有一定编程经验的“老兵”,都可以从这本书中汲取到新的知识。书中包含Python、Java和Haskell的示例,无论你正在学习哪一种编程语言,都能帮助你获得可移植的编程技能。
点击以上图片跳转专题
扫码关注【华章计算机】视频号
每天来听华章哥讲书
书讯 | 9月书讯 | 秋天的第一本书,来了资讯 | 浅谈大数据风控平台的功能需求书单 | 《数据安全法》,对所有互联网公司的大考,该如何应对?干货 | 低代码,怎么秃然就火了?收藏 | 不聊虚的,接地气理解数据中台上新 | 【新书速递】UEFI开发探索赠书 | 【第71期】破案了!库里为何会花18万美元买一个猴子头像?