眼看着即将就要迈入 9 月份了,许多同学也陆陆续续前往学校报到。在过去的这几年里,小蒜帮助过很多同学迈进软件工程师之路的大门。俗话说万事开头难,初学计算机难免会遇到形形色色的问题。虽说回头再看,那些只是非常粗浅的问题。但是对于初学者,这些经验之谈将会在他们的学习道路上有很大的帮助。
经常有同学向小蒜抱怨编程难学,但是他们的状态总是今天看 C 语言课程,明天又看 Java,后天又看 Python,东搞西搞!看到别人做网页,自己兴趣了来了,学学学……这是几乎所有初学者的通病。多学一些知识并不是坏事,但是如果你今天想学这个,明天又想学那个。这样你就只能永远徘徊在技术的门外。
学习计算机科学,最重要的是要打下扎实的基础,先专注于一门语言,然后再拓展到其他语言,养成快速学习新语言的能力。然后是算法和数据结构,这些都是超出语言的,就是说不管是学 C 学 Java 学 Python 还是别的什么,这一部分都是一致的。因此学习这部分的知识可以说是事半功倍的事情。
学会正确使用搜索将会帮助你在学习道路上更快地解决问题,有很多同学一遇到问题自己也不思考就急于找人问。在 github、google 和在线网站上面有大多数现成的解决方案。买本老教授的书学编程的日子已经过去了。现在的代码来得快去得也快,而至关重要的事情是培养自己快速学习新知识的能力。掌握一些使用搜索引擎的技巧,如学会使用搜索语法、布尔检索等方法,能让你在学习的道路上事半功倍。
就像运动员每天锻炼一样,经常练习写代码其实也是学习计算机科学必须要做的。这不仅适用于写代码,事实上,这句话可应用于任何行业。骑自行车,打篮球,读书,烹饪等等等等。你做的越多,你就会越擅长,熟能生巧就是这个道理。
这也是计算机领域的真理。如果你想擅长编程,那么你就必须每天写代码。代码写得越多,你才会觉得它越容易,并且越擅长于编程。每天写代码,每天学一点新的东西。随着时间的积累,你不但能学到很多,你也会变得更为优秀。
错落有致,使用空格,代码质量与其整洁度成正比。干净的代码,既在质量上较为可靠,也为后期维护、升级奠定了良好的基础。在课程中小蒜再三提到了养成良好的代码便携风格的重要性,但是仍有同学写的一塌糊涂,既不利于自己检查找错,也不利于别人帮助查看。在这里小蒜推荐大家阅读 Robert C. Martin 写的《Clean Code》,作者给出了一系列行之有效的整洁代码操作实践。
难以有效地自我检查一直是初学者最大的弊端。小蒜经常会遇到有同学因为一个非常小的失误导致在一个问题上卡壳好久,而发生这一切只是因为他不愿意回头去检查。所以,在你责怪别人之前,先检查自己的代码,想一想福尔摩斯的这条建议,“一旦你排除了种种不可能,剩下的不管有多么难以置信,一定就是真相”。
在遇到问题上同理,有很多问题并不是问题本身很难,小蒜遇到的多数提问者的根本原因是:“没有明白这个问题究竟是怎样的问题。”可想而知,当提问者都不清楚自己所面对的问题,回答问题的人也就只能爱莫能助了。
随着学得越深,很多同学也染上程序员的恶习——熬夜。虽说有时晚上夜深人静的时候工作效率奇高,但是放弃睡眠就像是高利贷借款,第二天所要付出的代价非常高昂。当真的累了的时候,往往更容易走上偏执的道路,而不是反思路线是否正确。当我们累了的时候,创造力极容易急剧下降以致于想不出创造性的解决方案。而且当你疲倦的时候,你的耐心和忍受力就会受到严重的影响,就像炮仗一样一点就着。
软件开发很少是短途冲刺,大多是马拉松。而且是多场马拉松。所以,试图今天压榨出 110% 的性能而明天只有 70% 的性能可用,绝对是一个坏主意。
无论是从学习还是到生活习惯,有很多坏习惯会影响到你的学习,希望前人的经验能够为你所用。