写给站在门口的人

时间:2021-06-01 19:50:26

        好久没写点东西了,直到前两天,又有人特意问我,做程序员容易么。其实,大多数跟程序打交道的人,当初也何尝不是这样;只是,在真正做了之后,心里虽然已经早有了说法,但可能碍于时间(你懂的,他们总是有解决不完的问题,总是有学不完的新东西),可能是觉得这个问题太Low以至于不太好回答(这个原理,参考1+1=2的证明),当然,也可能是纯粹的懒,因此,作为过来人的他们,一般不会在这个问题上过多纠缠。
        好吧,说了这么多,对于我来说,人家的提问只是一个触发源,只是我觉得现在,是时候做一个回顾了。

        从这几个方面说吧,第一,兴趣;第二,认识;第三,坚持。
        第一,“兴趣是最好的老师”,这句话绝对是真理。我见过很多技术很好的人,无一例外的是,他们都对自己从事的工作饶有兴趣。也见过有的人,刚开始有学历高、技术好的优势,但后来却不比上兴趣盎然的那些。所以,如果你是真的有兴趣,那么你做程序员会比较容易,起码你不会动不动觉得这活儿太坑,以至于不愿继续。

        第二,对这行要有基本的认识。很多人对编程语言、技术方向和领域都全分不清楚,就编程语言来说,从最低级的汇编,到C语言,到C++,再到Java,C#,Object C,然后什么Python、Perl、Js等。汇编语言,可以理解成机器码助记符;C则是真正的高级语言了;C++则加入了面向对象的概念(话说这个面向对象的概念,当初硬是纠缠纠结纠纷了好久,个人以为还不如说成是封装语言还更容易理解);现如今正火的Python,应该理解成脚本语言(好吧,对未入门的来说,脚本不太好理解,可以将它当成是使用其它语言做成的工具集)。编程语言就说到这儿了,再说就要露馅了。本人主要从事嵌入式开发的,仅就自己熟悉的这一块来说,如果就从事的工作内容来看,其实还真不太好区分。如果试着从与硬件关系远近来看的话,可以分成偏硬件的嵌入式开发和一般应用开发;如果从算法来看的话,还可以是算法工程师;如果从系统角度,还可以是系统工程师;如果从驱动角度,还能是驱动工程师;如果是从精通某一专用库来说,还可以是Qt工程师,或OpenCV工程师等;当然,还可以是前端工程师,后端工程师,或全栈工程师等,太多了。如果按专业领域来说,还可能有Zigbee工程师,BLE工程师,飞控工程师等等,并且这些名称一定会不断加长。那些幻想着能够搞定所有领域的,样样牛逼的人,就省省吧。因此,如果想要干程序员,最好是有一个方向,至少是一个大概的方向。当你入了门之后,你会有自己的想法,和对自己的规划。

        第三,坚持再坚持。做这行,是需要不断地学习的;也需要不断地解决一个又一个问题。永远不要想着一招鲜吃遍天,也不要想着问题能够解决完。不管你是做Android开发,还是单片机编程,那些程序员们,要么是在调试,要么是在准备调试,如果有外网,他们的浏览器很可能会开好多窗口,其中要么是Google,要么是百度。外人看到它们,貌似安祥平静,但很可能他的内心是崩溃的,他们时刻忍受着来自老板的,项目经理的,产品经理的,各种软硬兼施的压力、无理取闹和幼稚的需求。所以,从事这行,你需要能挺住这些。

        对编程有所想法的,如果你觉得这3点都不是问题,那要恭喜你,可以入坑了。世界如此之小,说不定哪天,我们就在坑里见上面了。