天下网吧 >> 网吧系统 >> 系统动态 >> 正文

毕业季忠告:写给即将离开校园的新程序员

2016-6-10不详佚名

转眼间又到了一年一度的毕业季,如今回首自己真正意义上的大学生活已过去整整两个春秋。谨以此文献给那些即将毕业的和还未毕业的学弟学妹们。

这篇博客的标题定的很大,说实话我不知道自己有没有资格在这里对如此之多的“互联网行业未来从业者”的职场起点说三道四。

毕业季忠告:写给即将离开校园的新程序员

虽然我无法像众多前辈一样在博客中站在一个从业多年的技术经理或技术专家的角度来谈程序员的职业规划,但对于“程序员职场的起点”这个话题,你将要面对的一切都是我不久前所经历的,并且我深知此刻初入职场的你需要这些建议。

初入职场,对一个程序员来说最重要的是什么?

2014年时,在58同城的校园宣讲会上,休息时我曾单独找到当时来到现场的唯一一位程序员讲师“沈剑”,询问了他眼中的初级程序员应有的职业规划,他的回答令我醍醐灌顶,至今记忆犹新:

1、技术基础

2、业务积累

3、职场情商

技术基础是指作为一名程序员来讲的一些基本的、通用的技术,诸如数据结构、算法、数学能力、软件工程理论、操作系统基本知识、编译原理以及你所从事的技术岗位所使用的技术.这些是学校里教给你的东西,无论学得怎么样,在你的程序员生涯中它们都将跟随你一辈子,因为无论你从事什么技术岗位,在这个行业中,这些东西都是共通和必要的,是身为一名软件工程师的立足之本。

业务积累指的是你在部门里边具体承担的业务,相对前一条来说,这一条是不存在行业中的普遍性和通用性的,然而如果说前面一条是使你顺利拿到校招offer的前提,那么这一条则是你所在的公司每个月付给你“比任何一个行业的任何职位在初期都要高得多”的薪资的理由。换言之,如果你是一名实习生而你手上却没有任何业务积累,你该为自己能否得到offer而感到忐忑,而相反的情况如果你手上已有很多业务,每天忙得要命,你也该清楚现在的这个部门给你发offer应该是板上钉钉的事了。

第三点也许是最容易被我们程序员这样一个群体所忽略的——情商。这也是本文真正想要表达的重点,是我想在这篇文章中给你的建议。

程序员的情商有那么重要吗?

引用大家所熟知的OOP的思想,无论你是一名服务端、Android还是机器学习算法、数据挖掘工程师,你的职位title都是从软件工程师这个父类继承下来的,而软件工程师这个职位继承于工程师,更继承于“公司职员”。

但凡是一名公司职员,就免不了职场中的人情冷暖、酸甜苦辣。因为身处公司最基层,每一个工作日你无法避免的要与各种人和事打交道。说的直白一点,有人的地方就有利益,职场中人与人之间的利益不可能没有冲突。

当你的个人利益与其他同事的个人利益、团队利益甚至公司的利益发生矛盾时,你至少应该清楚没有哪个职场人能够避免这一点。

在诸多利益交织下,到一定程度以后你会明白始终维持着这一切的不是别的,是人情!

那些充满“正能量”的新员工培训可能告诉你什么“主人翁意识”什么“不想当老板的员工不是好员工”,然而在现阶段对你来说最重要的却是融入团队,和你身边的同事还有领导搞好关系。

如果你跟部门里的任何一位同事关系闹僵,我敢保证在这个公司里你将举步维艰,每天上班的心情犹如上坟。

情商体现在哪里?

对于一名初入行业的软件工程师来说,你不只需要和代码打交道,更需要与产品沟通需求、向领导汇报工作进度以及跟其他技术岗位的同事协商和联调代码。

我从没见过或是听过哪个公司的哪个项目可以从产品策划到UI设计再到前后端编程开发调试测试上线发布后续运营维护等工作全部由一个人来完成的,如果有,这也一定不常见。

我知道校招生们多数愿意进BAT这些大公司,我当年也不例外,并且回头看来这一步也确实没有错,大公司给你的不只是更高的起薪以及毕业时在老师们面前优人一等的光环,更重要的是你将会认识更多和你一样优秀的同龄人,你的视野将会更开阔。

然而细细想想在一个大公司里,我们工作的更多时间是开会而不是写代码。扪心自问在一个公司里干了一个月以后,你究竟写了多少行代码?你又开了多少个会?

这不叫效率低下,在公司体制庞大以后这些沟通我认为全都是必要的,这些花在管理和沟通上面的成本对公司来讲绝对值得,就像一块硬盘能存下多少数据就必须产生相应的区块保存数据的物理地址和逻辑地址,再加上系统级的内存管理、应用级的框架消耗和垃圾回收,仔细想想我们每天使用的手机、平板和电脑设备的更多内存资源和CPU使用其实都是消耗在了设备自身对数据的管理上,机器尚且如此,更何况人呢。

所以不要对开会产生反感,每一次会议都是你学习的机会,更是你表现自己的机会。如果在一次会议上你提出了一处UI设计稿上面的缺失刚好是你的leader没考虑到的,他下次还会带上你一起开会;如果在服务端Rest接口确认的过程中你想到了一个leader们没考虑到的数据项,这很可能为整个开发周期节省一到两天;与产品沟通需求时,并不是一味地否定和砍减需求,也不是毫不过脑子的点头,你应该设身处地的站在把一个产品做到尽善尽美的角度去跟对方沟通,删掉对大家都没有利益的需求,必要的时候甚至增添一个对双方都有收益的需求。

这一切都能够让你的工作状态更为积极,而积极的工作状态对你对公司对所有人都是有利的。

初期应该如何融入团队?

幸运的是程序员毕竟男多女少,因为我想举的例子和足球有关.我很爱看球,我们往往关注的都是那些场上闪耀的球星,然而任何一个年轻的小球员在初入球队时都是从替补席冷板凳坐起的,哪怕你是罗纳尔多这样的超级巨星(球迷们不要怪我,只是我觉得拿大罗来举例相对争议小一些)。

初入职场的你,就如同一个刚进入球队坐在替补席上的小球员一样,最初很可能连90分钟末补时的那几分钟上场机会对你来说都是无比珍贵。

在这种情况下,要学会捡别人不要的活儿干,而不是坐在工位上打开qq和同学抱怨自己在部门里不受重视。

举个例子:如果说部门里缺前端,你作为服务端也该自己学会写后台管理页面,这些东西leader看在眼里,他会明白你的努力。

另外千万不要放过任何和同事们沟通的机会,哪怕是午餐时的闲谈.这恰恰是发现一些“可捡的活儿”的一个途径。

遇到技术上的问题该怎么解决?

对于这个问题的看法有很多版本,我个人偏向于尽量靠自己解决问题。

原因有二:第一个原因是作为一名初入岗位的工程师,不是看不起你,很多时候你对自己遇到的问题究竟该不该问别人,该问的话该问谁你都是不知道的.在这样的情况下,你很可能把一个google五分钟就能解决的程序语法报错拿过去问了你的同事,问问题存在沟通成本和理解成本,你的描述不清以及对方缺乏上下文了解这些都可能增加以上两个成本,这样一来不仅耽误双方的时间,长此以往还会让对方觉得你记得技术基本功不扎实,独立处理问题能力差.第二个原因是,即使这个问题真的是一个较为冷门的编程语言运行环境层面的bug,你在不经过任何思考的前提下把它抛给了你的导师或是你的leader,他很可能是遇到过这个问题的,于是直接把问题的答案告诉了你,这样你就完美地错过了一次在你所使用的语言环境下亲自踩坑然后填坑的机会。

我认为对于程序员来说,总有一天你要独立面对这些编译环境、运行环境的偏门bug,因为你不可能一辈子只写一门语言或是只从事一种开发岗位,你现在可以问你的导师问你的leader,那么你自己当上leader之后又该问谁呢?总不能告诉自己的老板,这问题太难了,我解决不了。

我记不清好像是之前百度的首席工程师说过的一句话:衡量一个程序员价值的标准并不是他掌握了多少知

本文来源:不详 作者:佚名

相关文章
没有相关文章
声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下