编程学习的路上充满了坎坷,每一个学习者都是在不断地进坑、出坑、再进坑的循环中苦苦挣扎。
下面的译文编译自Ken Mazaika的27 things I wish I knew when I started programming一文,作者分享了他在编程学习路上的27点感悟。
Photo credit: Hannah Wei.
我希望刚开始学编程的时候能了解现在懂得的无数道理(为了少走弯路),这里有27点。
最重要的两点分别是第14点和第27点,希望你们能够阅读完全文。
精进编程的唯一方式就是去编程。不要让分析考虑成为你开始的拦路石。
死记硬背并没有想象的那么重要。
使用谷歌解决绝大部分问题,许多程序员都这么干。
我曾经修改无数遍代码,希望程序正常运作。这种方法的问题是:解决了一个问题后又诞生新的问题,并且最后很难辨别到底哪里出错了。
对大多数人来说,与其他优秀的开发者一同交流代码和协作,是一种绝佳的学习方式。
成为程序员的道路上,遇见报错信息是司空常见之事。把事情搞砸是这一路上必不可少的部分,只有对错误保持平常心才能不断成长。
不要被好莱坞给忽悠,成为程序员并不一定需要一大堆外接显示器。或许你现在使用的电脑就足够开启你的编程之旅。不要浪费钱。
很多程序的语法对大小写敏感,一定要习惯相似字符的细微差别。当然,熟悉这一过程令人感到绝望。
刚开始,我想要对所有遇到的问题刨根问底。毫无必要。计算机十分复杂,你要学东西还有很多。你永远也不可能了解一切,这没什么问题。
学习编程没有更快的方式。
我曾经认为我写过的每一份代码都完美无缺。但实际上代码是要经过优化的。你又不是在写一本发表后就再不能改的书。
每个人都会有需要提问的时刻。当你需要时,确保你做对这四件事:
当你完成这一步骤,可能不用提问就已经自己想出解决办法。以整体的方式去思考问题。
如果你不精通数学,这并不意味着你不能成为程序要。
用代码创造东西非常酷炫。如果我不对自己一路过来的作品感到兴奋骄傲,我也不会从菜鸟变成老司机。
刚开始,我非常不情愿到达这些聚会场所。但一旦接触过后,我意识到像我这样的开发者成千上万。
合并冲突(Merge Conflicts)令人讨厌。所以每当我意识到自己可以在队友之前解决一个功能,我就异常高兴。
当你寻找第一份编程工作的时候,你可能倾向“先作假,再弥补”。不要欺骗。没有人期待你立刻知道一切。
现实中,你只需要知道当问题出现的时候,如何自己修改和追踪问题就足够了。这并不需要耗费10000小时。
当这一情景出现时,太酷了。
我曾经犯过一个错误,为公司造成了1万美元的损失。这一过程汇总,我学到了编程生涯中最重要的一课:不要担心将自己置于一个犯错误的处境,只要风险是值得的。你会因此成为更好的开发者。
算法是一步接一步的过程,的确存在着唯一正确的下一步。简单地理解就是,这一策略就像是在电话簿上寻找特殊的名字。
痴呆综合征是真的。认清一点事实,每个人都有不知道的东西。最重要的是,理解你能弄清楚那些不太清楚的东西。
新的技术不断涌现,所以成功的程序员都是持续学习并不断锻炼技艺的那些人。
许多人都有一种认知,认为人们需要像计算机一样思考。实际上恰恰相反。
无数开源库、工具、框架可供你任意摆布。所以你需要增长你的开发工具箱,并且了解不同的问题分别需要应用哪些工具。
学习编程(尤其是到达能够正式换工作的程度)费时费力。编程会耗费你大量的时间和精力,但并非遥不可及。许多人在快要能够到达目的地时前功尽弃。
但这就是为什么它值得去做。
事后看来,我很开心刚开始的时候我什么都不懂。当时的一无所知让我更有动力去批判地看待之后学习的一切。
现在我开始帮助别人通过编程实现目标。还有比这更好的吗?
编程之道路漫漫,你有哪些心得与见解呢?