编程:从入门到放弃
“从入门到放弃”,起初只是互联网上的一个玩笑。
学习编程就是这样往复和迭代的过程:接到一个新的任务,或习得一个新的技术,正待施展拳脚,却发现处处是坑,debug 到高潮跟谈恋爱的感觉是一样的:“我 TM 又哪错了”;而编程的奇妙之处在于,写代码归根到底是一种逻辑的表达,一切皆有迹可循,只要还没放弃,问题终会解决,只是有时候需要几天,有时候蹲个马桶就灵光乍现,而有时候就是重启了一下电脑...于是爬出坑,擦擦屁股,奔向下一个循环。就这样从一个知识点到另一个知识点,从一个项目到另一个项目,从一个公司到另一个公司。那些认为程序员只能吃青春饭的人,是还没意识到这种经验积累的巨大价值。
经常会感到一个 bug 似曾相识,却无论如何不记得怎么解决。科技公司常有个有趣的环节,叫“验尸”(Post Mortem),对曾经发生的问题做一份详细的记录和检讨。不妨我们也把学习编程中遇到的问题总结为一些三段论:
- 入门。:书上读到的一点点基础知识。
- 放弃?:实际操作中出乎意料的结果。
- 进阶!:如果你还没放弃,那就给你个解释。
我们不局限于某一个特定的语言。事实上横向比较不同语言的各种特性是非常有助于我们学习和理解程序设计的。语言和环境页面列举了一些我们用到的语言以及如何简单的安装和配置。我们会将重点放在 C/C++, Java, Python, JavaScript, Go, Rust, Bash...好吧,我们没有重点。
文中的例子来自互联网上的分享,或实际工作中的经历,还有面试中犯的二。很多可能初看起来都是些无关紧要的小细节。但在坐到 Director 或 Architect 的位子讨论大方向之前,技术细节决定成败。