可持续发展的程序员之路

    技术2022-05-11  5

            我觉得每个人的经历都是独特的,由于际遇,兴趣,志向的不同,对于技术方向的选择就会千差万别,谈个人的经历和选择对大部分人没有什么参考意义,甚至会有误导的嫌疑。不过我倒愿意与大家分享自己受挫的经历,或许更有启发。

            入行1年不到的时候,我对公司的发展前景产生了悲观的情绪,老的项目一次次被delay,新的项目却遥遥无期,整天有些混日子的感觉。正好有次得到消息华为在金贸招人,我抱着试试看的态度也来凑个热闹。第一轮做了套题,是基本的C语言+数据结构+数据库的题。我来这儿没做任何准备,而之前的一年里我基本是在熟悉VC里各种控件和各种类的使用,然后用前人留下的API编程这么度过的,对于C语言的库函数都忘得差不多了,数据结构很少涉及,而数据库根本就用不到。那测试的结果可想而知了。不过华为还是给足我面子了,让我又参加了3轮面试,最后一轮的面试官看着我的考卷,问了几个问题后,悠悠地说了一句:你的基础不怎么好啊。最后当然是被pass了。这件事情对我有着极大的触动。我回来反省了一遍工作1年来做的事,我虽然能应付日常的工作,但是很多问题都是只知道怎么用而不知道背后的原因,微软的开发工具做得太完善,以至于把本质的东西都隐藏在了它的面具下,把一个程序员训练成了只会遵守微软的规则的机器。而不了解本质,我作为一个程序员的核心价值在哪儿呢?我开始给自己补课,那段时间用K&C的“C   programming   language”重新学习了C语言,“C陷阱与缺陷”,“高质量程序设计指南—C/C++语言”等书给那时的我很多启发。又翻出了大学时代的数据结构教科书温习。然后又自学了“IBM   PC汇编语言”尝试用汇编写一个文字编辑器,那段时间里我觉得我又体会到了一种编程的快乐,我称之为:编程最本初的快感。

            基础知识的补充不仅提升着我的内功,同时提升着我的自信。他让我又一次找到了自身价值的所在,在之后换工作,面试等过程中,很少再尝败绩,我有了底气去选择我有志于去发展的方向。

            程序员的可持续发展之路是什么?我认为就是把握本质。上面提到的基础知识构成了本质的一部分。很多人说他们今天学JAVA,明天搞.net,所学的东西全看公司有什么项目。项目换了,知识就要更新了,老的似乎就没用了,这样周而复始,虽然学习得很辛苦,但经验总也得不到累积,一次次归零。这种状况确实令人惋惜。我们应该要学会抓住那些浮华的表面下隐藏的不变的东西,它们是可以被积累的,而且是愈陈愈香。

            在上一篇的回复中也看到了有朋友提到了“行业知识也是可以累积的”。如果说对下层技术本质的探索还是需要一定天赋和素养,或者不是每个人都有志于成为计算机专家,也不是每个人都有兴趣去研究linux   kernel,那么更容易选择的道路就是对行业知识的累积。做财务软件的是否考虑过成为一个财务专家?做通信软件的是否理解本行业的运营和盈利模式?做消费类电子的是否有研究过市面上所有的同类产品?现在讲复合型人才吃香,如果你既有丰富的行业知识,又有对程序设计的深刻理解,那你就是个香饽饽了。所以我通常不支持非计算机类专业的学生,彻底放弃自己的专业来学习编程的,除非你真的是对本专业毫无兴趣。现在任何行业都可能用到软件来提升工作效率,在具体的行业中,有该专业背景的程序员是比一般程序员更具有优势的,只是要摸索如何在实际的工作中去发挥出这种优势。

            本质还有其他的含义。找一份工作,实际的工作内容才是本质,title只是给别人看的。大家也知道在中国什么高级软件工程师,项目经理可能都是名不副实的虚衔,不要以为职位“高级”了就真的是资深了,以为是“经理”了就可以管人了。应该认真看明白职位的职责和工作内容是否有利于自己的提升,是否是自己喜欢的那一种再决定是否应聘。我看到在SAP的一则招人广告上对软件工程师职位的经验要求是8年,而资深软件工程师的经验要求是15年。

            要想可持续的发展你的职业生涯,当然还有很多可以说的,比如终身的学习,分清事业和家庭生活的界限,培养乐观的人生态度,提高人际交往能力,注重劳逸结合,保持身体健康等等。这么一看,其实程序员的可持续发展之路与别的行业没什么差别。没错,这些基本道理都是相通,并且也是人生中需要认清的本质。   


    最新回复(0)