曾经以为从事编程是一种高深神秘的体验,但真正做了这行才发现编程与其他大多数工作一样,并没有什么特别之处。
很多人觉得编程很复杂,但事实上,所有的复杂都只是简单逻辑的堆叠和演变,每一段复杂的代码背后,都是最简单数学运算。之所以会感到复杂,要么是对语言,接口,函数的陌生,要么是没有静下心来理清思路。
IT行业对一名合格程序员的要求,其实也几乎适用于所有的行业。就像想成为一个好人,阅读小学生行为法则就已经足够。而编程中的许多专业术语和专业要求,其实都只是劳动人民共通的技巧和规律。
如果把编程比喻成人际交往,那解耦就是打印名片,复用就是群发短信,断言就是签定协议。归根到底,都是为了提高沟通和合作的效率,只不过一个对人,一个对机器。
如果说编程是一项技艺,那么这项技艺水平的提升方式与其他所有技艺水平的提升方式也是完全一样的——那就是不断地重复。在绝大多数情况下,工作经验比单纯的工作能力有用得多,以至于根本轮不到使用天赋和智商。就像销售员做一百次陌生拜访,都可能不如让朋友介绍一个客户一样,程序员大多数时候并不需要去理解一个第三方框架的内部运行机制,更不需要亲历亲为地去写一份同样功能的代码。打开Github,成熟稳定的第三方框架俯拾即是,足够满足你的常规需求。牛逼的程序员的牛逼之处在于,他知道这份代码怎样可以通过搜索引擎搜索到,而不是自己可以写出来。
当然,每个行业都有每个行业的佼佼者,他们高深莫测,无所不能。但或许,他们只是把简单的事情做到了极致。
我曾因为数学的枯燥呆板对与一切与数据相关的东西厌恶不已,而现在又因为数学的真实客观对一切与数据相关的东西兴奋不已。当一切浮华喧嚷,过不去的断点,依旧过不去。当一切浮华褪尽,还有日志输出诉说着真相。