第1章 初入行当
本章主要内容:
● 行业现状。
● 谁是实战程序员?
● 现代软件开发面临的问题。
● 如何用实战手段解决你手头的难题。
其实我真的够幸运,在20世纪80年代就编写了我的第一个程序。我只需要打开计算机,花1秒钟时间,写两行代码,输入RUN。哇!整个屏幕铺满了我的名字。我立即被代码的威力震撼到了。两行代码就这么厉害,如果我写4行、写6行,甚至写20行代码呢!多巴胺在我9岁的大脑里喷涌,横冲直撞。就在那一刻,我想我算是迷上了编程。
如今的软件开发比当初复杂几个数量级。20世纪80年代,用户交互简单到只有“按任意键继续”,而且人们时不时还会纠结“任意键”在哪里。没有窗口设计,没有鼠标,没有网页,也没有用户界面设计,没有什么库、框架、内存管理,更别提移动端设备了,统统都没有,有的只是命令集和不能改动的硬件配置。如今这种“质朴”已不复存在。
我们建立这些层次的抽象是有原因的,没有人是“受虐狂”(Haskell[1]程序员除外)。我们如是安排那些抽象层级,因为只有这样做才能达到当今软件标准的要求。编程不再只是在屏幕上铺满你的名字,还得用正确的字体写出名字,而且放在窗口里,让它能够随着窗口被鼠标拖拽、调整大小。你的程序还得有“颜值”,复制和粘贴功能也不能少,说不定还得把要显示的名字存储在数据库甚至云端。在屏幕上铺满你的名字再也没那么有意思了。
[1] Haskell是一门很深奥的编程语言,它融入了许多仍处于学术论文阶段的特性。
还好,我们有办法去应付这种复杂性:读大学,参加黑客马拉松比赛,参加训练营,学习网课,使用小黄鸭调试法。
提示
小黄鸭调试(rubber duck debugging)法,算得上一种“高深秘术”,你跟一只“小黄鸭”聊你写的程序,从而找到编程难题的解决方法。关于这种方法的详情,我会在之后的调试章节中详谈。
我们得充分利用这些方法,但是想要仅仅依靠这些方法,就能在竞争激烈、标准严苛的软件开发行业站稳脚跟,还是差点意思。