15年经验分享:成为程序员之前,你该知道的一些事情(下)

神译局是36氪旗下编译团队,关注科技、商业、职场、生活等领域,重点介绍国外的新技术、新观点、新风向。

编者按:“我在15年前开始走上程序员这条道路,如果可以,我希望当时能够有人坐在我的身旁,告诉我本篇文章接下来要探讨的这些内容,因为这些内容可以为每一位新走上这一职业生涯的程序员省去很多麻烦,帮助他们节省很多精力。”原文选自Medium,作者 Jun Wu
,原文标题“30 Things I Wish I Knew When I Started Programming”,本文进行了适当删减。

编程并不是一件容易的事。每年都有很多学生从自己所在国最顶级的计算机科学专业院校毕业,编程可以说是我们可以从事的最具竞争力的职业之一。但与此同时,编程也是令人充满激情的职业之一,技术在不断进步,每天都有创新的诞生,无数热爱编程的人士都在孜孜不倦地为之努力。
我在15年前开始走上程序员这条道路,如果可以,我希望当时能够有人坐在我的身旁,告诉我本篇文章接下来要探讨的这些内容,因为这些内容可以为每一位新走上这一职业生涯的程序员省去很多麻烦,帮助他们节省很多精力。当你在编程这条职业生涯之中不断前进时,也可以参考本文所探讨的一些内容。即便其中一些可能你现在看来与你无关,但未来有一天也许你会发现它们的价值所在。

15、你会放弃

我曾经放弃过多少次?我自己可能都数不过来。有时你会遇到自己无法解决的问题;有时眼前的问题会让你感觉如此困难,让你只想放弃;有时工作环境不顺心可能也会让你想要放弃。你能否成为一名成功的程序员取决于你能否坚持下去,无数次想要放弃的时刻便是对你的测试和考验。你是要坚持下去还是要离开?对我来说,我总会回来,回到编程这个岗位。有时,我可能有几年的时间都没有编写过一行代码,但我之后还是会以一个新人的态度重新回来,来准备接受新的项目和挑战。也正是因为如此,你才会知道你喜欢程序员这个职业,喜欢这份工作。

16、你也会再次重新开始编程

每一次,当我看到有人重新回到编程岗位时,我都会观察,最终往往都会得出这样的结论:他们再次回到这一职业道路背后的原因不是因为钱,而是他们对于编程这一职业的热爱。当你看到有人像你一样热爱编程,你会对他们充满羡慕。你始终无法彻底放手,然后,突然间,你就发现自己又回到了编程岗位,重新开始解决一个项目。在你的内心深处,你知道写代码已经成为你生活不可或缺的一部分,就如同呼吸一般不可分离。也正是这样的感受让你知道自己是一位真正的程序员。

17、你将会回到某种形式的学校去学习“正确”的做事方式

即便是那些毕业于顶尖计算机科学专业院校硕士学位的程序员在工作岗位中也需要继续学习。事实上,能够拥有参加在职培训的机会是在大型科技公司工作的一项最佳福利之一。这些公司会提供给你通往“昂贵”课程和研讨会的直通票,以此培训你学习使用他们想要采用的最新技术。如果你感觉自己在工作中学到的东西仍然不够多,那你可能会自己进一步寻找在线编码教程以及YouTube视频来提高自己的编码技能。

18、你可能会发现并不喜欢为当前的雇主工作

即便你认为自己只是一名资质平庸的程序员,也会有一些公司需要你的技能。记住,他们在面试你的同时,你也在面试他们。如果对方公司的文化氛围你并不喜欢,那即便是轻松安逸的工作强度你也会想要拒绝。因为作为程序员,很多时候需要你长时间的在公司工作。在这种情况下,找到契合自己的公司文化至关重要,因为快乐的工作状态才能产出更好的工作成果。如果你的技能在市场上很受欢迎,那会有其他公司向你伸出橄榄枝,不必委曲求全。

19、你会遇到无法通过的技术面试

技术面试绝不是儿戏。高阶程序员经常会出于好玩的目的去编写一些技术面试问题,这些问题总是特别的难。如果你遇到无法通过的技术面试,那也不要灰心丧气。这并不能说明你的编程能力不行,它只是对你当下知识储存库的一个测试。尝试往好的地方想,如果你在其他方面给面试官留下了深刻的印象,那他们也会记住你。你这次落败可能只是说明你不适合这个职位,如果他们喜欢你,下次有其他的职位,他们仍然会打电话联系你。

20、你会被夸赞

在你的职业生涯之中,有些时候你可能会感觉自己就像明星一样。那些依靠你来完成项目的经理会夸赞你,会告诉你你有多么多么的优秀,以此来激励你劲头十足地去工作。你会感觉自己好像处于世界之巅,但一定要记住,这样会让你滋生自负的情绪。脚踏实地、谦虚低调,要知道总有新技术需要你去学习,总有程序员做的比你更好。

21、你会被贬低

在你职业生涯的某些时刻,你会感觉自己一无是处。如果某个项目完成的效果不理想,那这项目的负责人有可能会将过错归咎到你的身上,他们可能会说你一无是处。不要被这些指责和贬低的话语所束缚,坦然接受。你所掌握的知识可能比你想象的还要多,并且随着时间的推移,你会学到越来越多的知识,你会赢得越来越多的尊重。坚持下去,一段时间过后,那个曾经贬低你的人可能会开始仰视你。

22、你会想同你欣赏的那些程序员去竞争

编程最令人兴奋的地方之一就在于竞争。我喜欢同那些我敬佩的程序员一起编程,如果你编写的代码获得了对方的称赞,那种感觉就如同中了福利彩票的头彩一样。编程行业的竞争总是很有趣,为的并不是真正争出个胜负,为的是相互学习。

23、看着你去年写的面条式代码你可能会感到羞愧

其实都是这样。我一开始写的Perl代码也被别人批评过,代码结构很好,设计也不错,问题在于我是用一种很难读的语言去写的这一代码。于是我就写了意大利面条式代码。但是,每天不论我怎么努力,我都会找到一些这样的代码存在,就是为了匆匆忙忙快点完成任务。但这其实就是程序员的工作,我们解决问题,修补漏洞。不必对此感到羞愧,如果你发现那些面条式代码是出自你手,那就尽力去修改好它。

24、对于编程马拉松你会感到爱恨交加

编程马拉松现在很常见,程序员以团队形式相互竞争。在这个过程中,你会收获高密度的学习内容。你会因为团队成员合作共赢的友情而爱上这个比赛,但也会因为高速打字导致的腕管综合征而感觉厌倦。或者,对于你们比赛所处的拥挤的房间以及你在活动期间所受到的感官过度刺激和紧张而想要逃离。

25、读编程相关研究论文时,你可能会发现自己一个字也看不懂

你认字吧?绝大多数人对此都是肯定的回答。但是,我敢说,有些研究论文你可能需要一遍又一遍地去读,去研究,但却发现完全超出了你的理解范畴。在我掌握大学数学基础知识之前,大多数关于算法的研究论文对我来说就像是一片云遮雾绕的森林一般。但是,在我掌握基础知识之后,突然之间,云消雾散,一切都清晰明朗了起来。

26、你会入手耳机装备

在你工作的某些时候,当你完全专注于眼前的代码时,你会发现任何类型的外部噪音对于你的感官来说都是折磨。如果你是在一个人多、嘈杂的环境中工作,那一副可以消除外部噪音的耳机绝对是增强专注度、提高工作效率的一大利器。有些时候,你会发现听音乐可以帮助你更好地写代码。在我编码生涯的早期我就发现,音乐的节奏可以帮助我更流畅地去编写代码。即便是现在,当我需要提高工作效率的时候,我还是会去听一些音乐。

27、你将会被派往异地工作

在你职业生涯的某个阶段,你可能会发现自己同公司其他一些重要的开发人员一起被安排在一个会议室里,很有可能这次会议过后你就会被派往异地工作。不必忧虑,异地是技术人员一起建立联系的最佳场所,高层管理人员也可以借此机会更好地了解你。许多时候,你可能会同其他公司的技术人员一起参加专业的会议或研讨会,所以你可以借这个机会拓展人脉。
译者:aiko