程序员这个行业的自我反思

今天在搜新款Macbook Air的帖子时,无意间在知乎浏览到了一个令我感兴趣的话题,编程究竟难在哪?

我引用一下,对我感触很深的一段话

编程不难。但它要你创造。

过去你已经习惯了的、出题人准备好一切、只留下一两个缺口让你补充拼图的“思考”方式,在这个领域渣都不是。

听着,你不需要学习什么“语言”。C/C++、Java、Go、PHP、Python……统统用不着。

你只需要知道,程序语言有顺序分支循环三种控制结构、与或非三种逻辑——剩下的,统统靠你自己。

不。你就是再读一千本书,也甭想靠这个把“编程的技能”直接灌进你脑子里。没那好事。

相反,你必须自力更生,你必须靠着“鄙陋”的顺序分支循环和与或非以及中小学水平的数学运算支持,解决手头的一切问题。

你学的是编程,不是编程语言。

脱掉C的底裤,并不能帮你写出哪怕一个简单的鼠标驱动程序。

其实,我现在已经很少去关注语言之争,更多的是用以致学。根据场景来决定自己用什么工具。比如我想了解代理的原理,而关注的项目正好是用Go写的,因为Go天生就适合网络编程。除非用得到,否则我不会主动去跟着潮流。很大原因也是我懒。

为什么我有时候会感觉编程很难?为什么有的人却觉得很容易,真的是智商的问题吗?其实,我只是习惯了有人给我出题的思考方式罢了。当没有人给我出题,让我自己考自己的时候,我就自己给自己憋死了。而这没有人给我出题的过程,就叫做创造。

现实生活中,我们有产品经理,或者客户给我们提出具体的需求。但我们程序员没有了他们就真的不能写程序了吗?别忘了,我们才是创造者,我们不应该被我们以前的思考方式给束缚住了。

所谓的程序语言,无非就是实现了顺序、分支以及循环三种控制结构,以及与或非三种逻辑处理。至于为什么会有程序语言的百花齐放,是因为它们在各自领域有自己的独特之处。没有必要为了程序语言而学习程序语言,我们是因为某个目的才会去编程,这才是我们的初心。

至于某种语言吊打其它语言这种说法,我只能选择一笑而过。每种事物都有它存在的意义,同样是轮子,有一个人选择重造,而有一百个人选择直接用。我们应该致敬那一个重造轮子的人,因为哪怕只有1%的人不满足于现状,想着优化这个轮子,都是值得我们脱帽致敬的。

现在的情况是,轮子越来越多了,而且远没有尽头。我们是不断地去尝试新的轮子,还是选择适合自己的轮子,又或者开发新的轮子,这取决于你自己。我们不应该因为轮子多造成我们选择困难而否定造轮子这个行为。就是因为各色各样的轮子,才使得我们有更多的选择,不是吗?

缤纷色彩闪出的美丽,是因它没有分开每种色彩。编程的世界里,编程语言没有高低贵贱。编程不难,但需要你去创造。

avatar

chilihotpot

You Are The JavaScript In My HTML