刚毕业入职的新手程序员们必看工作经验建议

12818 人浏览 | 时间: 2015-11-19 09:36:22 | 作者: codexia

    今天,我作为“前辈”给公司新入职的应届毕业生们做了一次经验分享,简单整理了一下内容,希望对其他人也能有所帮助。

   

1.进入公司与校园有什么不同 ?

    作为一个技术型的公司,其实公司内部的办公环境与在学校实验室没有太大的区别,每个人都有自己的位置,大家各司其职,为公司的项目贡献自己的代码,偶尔跟学长/学姐们一起调试问题,一起解决Bug,项目空档期还可以看看书,学习提高……

    如果非要说有什么不同,我想更多的是在生活方面吧。

    大家背井离乡,独自来到城市,第一个要面对的社会问题就是租房,可能会遇到一个黑心的中介,也可能会遇到一个恶心的房东,无论你是吃亏了也好,还是被骗了也好,请坦然面对,因为离开校园以后的人生路上,你还会遇到更多更多的麻烦事,遇到更多更多的“坏人”,学着在每一次吃亏上当中总结经验教训,总有一天,你会强大起来,不再让父母在遥远的家乡继续为你操心。

    第二个会面对的问题,就是下班后的孤独感。如果跟你一起来工作的朋友比较少的话,这种感触或许会更深。住了4~7年的学生宿舍,习惯了每天晚上回到寝室侃大山,习惯了有一群哥们陪你打游戏,甚至习惯了偶尔能跟室友绊个嘴闹点小矛盾。如今,每天回到住处,面对的是空空如也的房间,你必须得适应这样的生活。当然,你也可以选择每天加班到很晚再回去,不过我建议最好的办法就是赶紧找到另一半吧。

    第三个就是你会发现如今的生活变得非常有规律了。刚刚习惯了大学生活的丰富多彩,一下子又回到的高中时代的两点一线,周一到周五,不会再有任何新鲜感,甚至连锻炼身体的时间都没有了,我就是从工作到现在已经涨了12斤了。希望大家不要学我,一定要有自己的锻炼计划,比如每周打几次篮球、晚上去跑跑步,或者健身、游泳,什么都好,身体是革命的本钱,虽然年轻,但一定要好好爱惜。

    第四个就是有工资了。这可是一个质的飞跃,自此以后,你再也不用伸手向父母索要生活费了,还可以反过来买点东西孝敬孝敬他们;你终于可以买喜欢的礼物送给心爱的他/她了;你也可以经常去餐馆吃顿大餐,或者买几件贵点的衣裳,而不用担心后半个月天天只有啃馒头度日了……

    当然,你肯定会体验到更多的不同,这里我也不一一赘述了,希望大家能早日适应离开校园步入职场以后的生活。

2. 我的经验和建议

下面进入正题,我将从技术的角度,给大家讲讲我在公司这一年多以来收获的经验和教训。

   

2.1 让自己的工作更加“专业”

    现在你已经成为公司的一名正式的员工了,你所开发的产品可能会直接投入到市场,会面对客户,因此,再也不要像在实验室做研究那样随随便便了,你要时刻为自己的工作负责,要想得到老板和客户的赏识,你就必须表现得足够的专业。

    (1) 提交代码之前请充分测试

    公司的产品可能需要很多部门的通力合作,你的代码指不定哪一天会被应用到一个重量级的产品上面,请不要留有Bug,一旦经过复杂的集成之后,再去定位和修改你的代码通常会是一件非常耗时耗力的事情。

    (2) 保持“封装”意识

    “封装”有无数的好处,可以让程序的结构更加清晰,可以在其他项目中重复利用,方便调试和定位问题,带来更好地可替换性和可移植性,不要因为偷懒或者赶进度就放弃模块化,良好的代码结构会给项目带来无尽的好处。

    (3) 关心性能和效率

    关注性能和效率并不仅仅是算法开发人员的专利,每一个程序员都要有这种意识,你要时刻做好准备被提问以下这几个问题:你的算法执行时间是多久? 你的程序占用内存多大? CPU占用率呢?

    能够第一时间回答老板或者客户关于性能的提问,会让你显得非常地专业,同时,性能的测试往往能够帮助你找到很多隐藏的Bug。很多次,我都是在关注系统内存占用曲线图的时候发现一些内存泄露并且解决掉的。

    (4) 版本控制

    客户的需求总是不断改变的,你刚刚开发好的功能今天客户说不要了,说不定明天他又会需要,所以保持一个良好的版本控制记录,会让你的工作游刃有余,谁都不喜欢把做过的事情删除掉然后重新再做一遍的感觉。

    当然,版本控制还有另外一个好处就是协助你定位Bug,一旦遇到问题,你总是能够通过版本回滚找到没有该问题的版本,并通过对比找到问题所在。

    有很多工具可以帮助我们进行版本控制,如Git,Svn,当然哪怕是使用最原始的建立N多个文件夹的方式也总比没有版本控制的好。最简单的版本控制就是在本机存档,不同的版本写好不同的新增功能或者修改的描述。

    (5) 写出“专业级”的代码

    什么是专业的代码?我们评价一份代码专业不专业并不仅仅是看它是否实现了所需的各项功能,而更多的是体现在代码的命名、结构、注释、内存管理等等一系列的地方。

    举个例子吧,你们扪心自问一下,在你们做过的项目中,是不是确保了每一个申请的资源都正常释放了?Socket的阻塞是否真正地唤醒了?有没有代码修改了注释却忘记修改的时候?

    真正优秀的程序员,并不是指他们写出的程序没有Bug,而是他们在写程序的时候,会考虑得更加全面和仔细,去避免一些不必要的Bug出现。

2.2 原创和版权意识

    我记得有人说过,你要实现的大部分技术或者功能,你都不会是第一个做的,也不会是最后一个做的。所以,在接手一项不熟悉的任务的时候,我们通常都会去Google/Baidu上搜索一下,看看有没有类似的案例,看看有没有别人写好的代码。

   

    的确,网上别人的代码的确可以帮助我们快速地实现一些功能,但是你要时刻注意,网上的代码,尤其是一些国内博客中给出的代码,经常写得非常地不严谨,你在使用它们之前,一定要充分地理解和消化,解决掉其中隐含的Bug,最好能够用自己的方式实现一遍。不假思索地拿来就用,很可能就在项目中埋下了一个炸弹,随时都有可能会爆炸。

    另外,为公司开发产品,一定要注意版权意识,在使用第三方开源代码或者库之前,请仔细阅读License,不要让公司莫名其妙地背上侵权的恶名。

    最后我还想说明一下的就是,对自己做的东西,一定不要浮于表面,要深入地理解其原理,不要过于依赖别人的代码或者第三方库,要相信自己,搞清楚了原理,其实你是有这个能力自己去实现这些功能的。

    我希望大家也能一样保持一种积极乐观的心态,洒脱点,一切想开一点,所有的困难权且当做人生的历练吧。相信自己,相信公司,相信自己在公司一定会有一个美好的明天!
    原文:写给新入职的毕业生们
请微信扫码阅读
为防止恶意爬虫,
已开启反爬机制

相关阅读