学习编程的风潮最近来得猛烈,不只是在技术界,连文科出身的新闻工作者也在犯愁:写代码难道已经成为职业的门槛技能?
如果你经常关注硅谷,你一定听说过“Learn to Code”运动,政治家、非营利组织,甚至前纽约市长迈克尔·布隆伯格都认为,编程将是未来必需的工作技能。
他们也许是对的,起码近几年市场对程序员的需求只增不减,但如果扩大到更多的专业岗位,事情会变得有些复杂。
写代码没什么特别
它只是千千万万种技能中的一种
我们生活在一个充满竞争的世界,一千个人有一千种活法,而“编程必需论”对于绝大多数人来说是不现实的。
许许多多硅谷软件工程师的成功案例让很多人有了一个“工程师梦”,美剧《硅谷》中描绘的景象更是令人神往:几个二十多岁的年轻人,整晚吸着烟编写代码,轻而易举获得了上百万美金。而现实中埃隆·马斯克、马克·扎克伯格“一夜暴富”的传奇人生更是让编程热一度传到了白宫:奥巴马推动立法,使公立学校开设相关计算机科学课程……
除此之外,编程热的风潮更是波及社会的方方面面,从好莱坞演员到当今科技界名人,从理工科到人文社科,似乎无论什么职业都要掌握这门技术。但是我对这些光鲜的表面背后的付出深信不疑,我们总是习惯于美化,甚至神化一些职业,在互联网科技突飞猛进的今天更是这样。于是一些培训机构打着高薪、“钱途”光明的旗号,开设价格不菲的编程培训课程。最后不说效果如何,真正能坚持学下来并学以致用的却不在多数。
而比起系统全面地学习编程,我更推荐探索式的学习。
编程,毫无疑问是一个十分有用的技能,但是只有当“对的时间遇到对的人”才能发挥其作用。愿意为此付出心血和汗水,肯潜心钻研的人当然会成为编程的高手,并因此获益。其实任何一项技能都是如此,不论它在当下是否“热门”。
过分强调代码
会让你偏离问题的中心
当你过于重视编程时,往往会从“问题本质是什么?怎样解决更好?”转变为“该怎样用编程解决这个问题?”,费半天劲尝试各种办法都无济于事,却从一开始就忽略了这个问题根本不适合用代码解决。这时,懂一点代码的你很可能会与最好的解法擦肩而过。
我有一个关系不错的朋友,他曾经获得过斯坦福大学举办的国际大学生编程大赛冠军,他和我分享的参赛心得令我十分难忘,“在比赛过程中我们投入最多的部分,就是弄清楚了要解决的问题是什么。”
认识问题比解决问题更重要,其实绝大多数人都不能认识到这一点。他说,即使在精英学校里,学生们在编写代码前也只是阅读一两遍要求就开始工作。因为在他们眼中,代码是解决问题唯一的武器。而他会在充分的思考过后才开始动手,于是他获得了冠军。
过分集中于代码会让你忽略当前的困境。
技术变化太快
你根本不可能跟上!
尤其是当今的技术,日新月异,三天不更新就可能落伍。几年前我使用面向对象的C语言,而现在写代码几乎全用Swift,现在申请iOS工程师的面试者甚至从未敲过一行Object-C。Swift更容易上手,而且更加安全、稳定,这些优良的性质都是Object-C所不具备的。虽说今天的程序员不会再面对曾经“不好用”的语言,但你可能会忽视这个职业的本质,那就是不断学习。
千万别被硅谷诱人的神话所迷惑,现实总是残酷的。试想一下,那些曾经通宵达旦学习Objective-C的程序员,当他们知道Swift推出时是什么感受?我行我素还是重新开始?当新的技术推出,老板不会耐心鼓励,更不会亲手指导,你要么快速掌握,要么收拾东西走人。你的生活会长期处于这种压力之下,而渐渐感到力不从心。
如果你是个二十出头的年轻人,这也许只是个挑战,而如果人到中年,上有老下有小,这可能就是一个生存的问题了。
学习编程 / 以编程为生
是两个完全不同的概念
我花费了一年多时间后,才能够独立编程,而且刚开始的收入很不乐观。很多次求职甚至连面试都没能参加,因为我并不是计算机专业毕业的。我甚至一度难以在打拼的城市生存下去,依靠朋友才勉强留了下来。无数个夜晚我都想要放弃,但最终还是选择咬牙坚持。
作为职业,编程不是一份轻松的活。花费大量精力学习后,你还需要很长的一段时间得到业界的认可,即使熟悉了业务之后这也是消耗巨大脑力的重任。况且这一切还是在技术和工具不断迭代更新的过程中反复进行的。
另外在职业的发展中你还会遇到许多不可理喻的事,无能的HR对工作经历采取一刀切的形式,“5年以上的Swift语言编程经验”(Swift是在2014年推出的)。这些人阻挡在你和工作之间,而更多的时候除了顺从,你也无能为力。
对于记者来说呢?
伴随着数据新闻的兴起,一向与代码没什么关系的记者们也按捺不住了,那么对于新闻工作者来说,是否有必要学习编程呢?我们就从上面几个方面来说。
看清问题本质最重要。记者之所以为记者,就在于善于发现新闻,能抽离出故事的价值所在。因此在完成一个需要运用编程来实现的新闻作品时,记者的工作是至关重要的:选题、收集材料、布局结构……所有这些都不是一个程序员可以告诉你的。不论你是否会编程,你都要清楚,最重要的工作并不在编程。为了编程而编程的作品一定不是最完美的作品。
技术更新太快。作为记者你不可能全身心投入编程的学习,因为实在太过耗时耗力。很有可能在你刚刚弄懂一个语言的时候,它已经过时、甚至被淘汰了。
所以说最好的方式是有所了解但并不依赖。为了更好地与程序员小伙伴沟通,你应该了解基本的常识和原理,知道什么可以实现,哪些能够呈现。
不过,说了这么多,如果你拥有满腔热血,想一心挥洒在编程的大业上,并且做好了流泪流汗的准备。那你便没有什么好顾虑的了,放手去做总要好过踌躇不前。
本文由百度新闻实验室独家编译,原文载于techcrunch.com,转载请注明作者及出处。
编译:刘建坤
联系客服