前言
最近在公司作为面试官去面试了两个实习生。我有丰富地被面试经验,而面试别人反倒是第一次。两个同学我都谈了许久,因为一些原因(具体会在下面会提及),最后我都微笑着把他们给刷走了。工作已经满一年了,通过对比在校的同学,想到了一些关于工作的心得和大学生走向社会的一些建议,写一写,并分享一下。因为我是一名技术人员,所以下面的讨论可能会偏向于技术的岗位。
学校的知识与工作的技术间的差异
我在面试的都是Java服务端实习生的岗位。他们的简历上都填满了项目经验,用于工作上的框架填了很多,在谈吐中也能够看出他们对这些框架的运用颇为熟练。但当我问及一些关于在学校内的课程,例如数据结构、操作系统或计算机网络时,他们连基本概念都无法说出,更别说要把里面的概念讲清楚。后来我反问:是不是对学校里的课程都忘得差不多了。其中一位同学回答说:现在的框架把算法都封装得很好,没必要再学太多算法了。这个回答让我觉得非常失望。
但这个同学说的是很多技术人员的观点。我借此思考了一下学校所学的内容和工作上技术的差异,结合自己的经验谈谈这个问题。
首先,这个同学的回答毫无疑问是错误的。尤其对计算机行业来说,本科大学学的基础课程是极其重要的。打个通俗的比喻,一个工地的砌砖工与工程师。一个熟练的砌砖工造一面墙是没问题的,以他工多手熟的经验,甚至造一间两层的房子也颇为结实。但让一个砌砖工去建造一栋十层的高楼,怕且没人敢住了。因为眼前的要求越高,越考验基础知识。十层的高楼必需考虑和计算各种受力,要有合理的骨架设计,而这个设计,就得出自工程师之手了,是否拥有基本的知识就把工地里的两种人给区别开来。同理,当眼前的需求是一个100个并发的业务,那么普通的技术人员都可以稳妥地在框架中实现;但当需求是100W并发时,缺乏操作系统的内存原理和计算机网络的等知识的技术人员是无法下手的。且不说高大上的并发话题,我在工作中也时常需要阅读别人写一些小系统,缺乏重构和设计模式的代码是让人奔溃的,完全无法维护,称之为代码毒瘤一点也不过分。
这是为什么我会选择请那位同学离开,缺乏基础知识不可怕,无视其重要性的同学让我不敢恭维。不过仅仅是这位同学这样想,或许是个别问题,但当整个行业有很大一部分人这么认为,归根到底应该是我们国家高等教育的问题,这个话题太大,我一直在写一些关于大学的话题,这个话题到时再讨论。
总而言之,我们在学校学习到的知识确实与社会脱轨了,直接的原因是社会发展很快,而我们的课本永远是跟不上的。但是要跟上社会行业的发展,不应该过分追求行业内最前卫的成果,理解其所以然会更利于每一个同学学习这一切,而学习其所以然的最好地方,就是学校。
职业素养
每个行业都有其行业的职业素养。很多人认为当一名技术最好的地方就是工作相对自由,不用穿工作服,也不必顾忌很多有的没的条例。我认为每一个技术人员都应该严格约束自己。下面我把我认为一名编程人员应该具备的品质或技能列一下,其重要性按顺序排列。
- 工匠精神。工匠精神最讲究的是对自己作品的追求,一个优秀的程序员也必需具备这样的品质。一些态度比较消极的程序员往往只是把编程当成别人让他实现需求的动作,总是推一下,动一下,这样的代码往往是这里一个补丁,那里一个bug。当把那几行代码当做作品去对待时,就会自觉地为之负责,就像一个工匠打造自己得意的作品一般,精心设计,小心打磨。这样代码会让所有人安心,而这样的程序员会不断地为写出完美代码而努力。这是我认为一个程序员最应该具备的品质,而我也在努力地追求这一种境界。
- 服务精神。优秀的产品不编程实现也只是纸上谈兵,因此很多程序员往往持才自傲。我觉得“缺我不可”的想法对一个程序员来说是非常有害的。相反,一个程序员必需具有服务的精神,事实上程序员也是在服务别人,只是不是亲手服务,而是编写的代码间接去服务而已。譬如,编写框架的同学要服务编写业务的同学,编写业务的同学就要服务用户,茶楼的主管服务食客,他们的区别只是服务对象不一样,其本质是一致的。说一个冷笑话,代码是跑在“服务器”上的,所以服务精神尤为重要。
- 好奇心与执行力。我一直认为编程道路本质上就是一个不断犯错的道路。所谓有经验的程序员,不过是见过的bug多,修锅修出了能力,修出了境界罢了。所以,我会很在乎自己是不是很长时间没因为代码头疼了,因为这样意味着我不再遇到问题了,同时我也不再进步了。不少程序员沉浸在舒适区后就不想出来了,我面试的一个同学号称一年工作经验,对话起来却感觉只有一两个月程度。一个优秀的程序员总是会有着好奇心,并且会跟随好奇心付之行动,因为这个过程就意味着问题,意味困难,也意味着进步。最近我在youtube上学习深度学习的课程,其实我现在仍然不知道深度学习对我自己或我的工作有什么作用,仅仅是想了解而已,编写程序遇到不少问题,但我相信这个过程对我来说是有益。希望自己能够坚持一下,或许有一天就能因此发家致富了,哈哈。
以上就是我认为一个技术人员应该具备的一些职业素养。有同学说,兴趣也很重要。以前我也因为兴趣很重要,工作后我发觉其实不是十分重要。当策划(产品经理)一遍又一遍地修改需求时,还高呼喜欢编程的程序员一定是一个假的程序员。当然,兴趣会让工作变得轻松,是一个buf,但并不是职业素养。
结束语
整个面试的过程中,我一直都只是扮演着一个普通师兄的角色,而一个不是冷酷的面试官。在面试最后,我都会针对他们的情况给一些小小的建议,让我非常欣慰的是他们都听得非常认真,希望自己能够帮助他们。毕竟自己在求职道路上也并非一帆风顺,深知每一位应届毕业生都是焦虑的,我相信这一段经历虽然煎熬,只要挺过来了,一切就会更好。
衷心祝愿2017届的师弟师妹毕业快乐,求职顺利。