记得是13年6月15日,那是我第一次来北京,当时刚毕业为了省钱从西安坐硬座来北京,去公司报道,从此开始了北京的北漂。三年时间转瞬即逝,从最初的啥也不大懂的二逼程序,到一个普通的程序员,职业路线也走的不好,三年时间,或多或少也经历了一些事情,总有些想法和感悟,我想这些想法对于刚走出校门的程序员朋友会比较有用。
1.基础很重要
也许在大学里,就有别人告诉过你,基础很重要,你当时只是听了而已,很多时候,自己没有经历,是没法理解其中的道理的。这里什么是基础,就是大学里你学的操作系统,数据结构和算法,计算机网络等这些偏基础理论的,理解了这些东西,你才知道整个程序的运行原理,知道怎么才能写出好的代码。程序员这个职业实际上入门很低的,只写逻辑谁都能写,但代码的世界里不只是if else,这只是表层的东西。这只能满足我们的基本的业务逻辑需求,无论那方面技术,做深了,你总会遇到一些需要去深入研究的东西,这时候就不是简单的逻辑问题了,这时候就需要你的你结合这些基础知识做一些突破了。很多公司招三年内经验的人,要求是要么基础特别好,要么经验特别丰富。基础好,会觉得上手会很快。我曾和一个创业公司技术负责人聊,他告诉我,这些基础知识,决定了你成长的天花板,表层的东西,一般人俩仨年就学的差不多了,往往这个时候,就需要在技术深度上做出突破。
2.去大公司还是小公司?
其实无论大公司也好,小公司也罢,最终和你相处,也就是你的项目组,大公司也有不好的团队,小公司也有好的团队,但总体来说,大公司遇到优秀的人的概率大于小公司。我的观点是,刚毕业适合去大公司历练,见见世面,认识优秀的同事,学习优秀的人的做事态度和方法,在大公司里,你负责的模块单一,但更有深度,对技术的理解更透彻,同事知名公司的履历更能为你后面的换工作做铺垫,所以能去大公司,尽量去大公司。小公司的工作范围比较广,但都涉及的不深入,你会成为多面手,各种懂一点但不深,能锻炼技术视野。大部分人的职业路线都是进大公司积累经验背景,然后加入小公司谋求高薪高级别岗位。对于打工来说,还是精通一个技术方向比较好,这样才能拿高薪。
3. 怎么选择offer
刚毕业的前三年,不要把薪资作为你选择offer的唯一参照,你现在得工作都是为以后的职业生涯做铺垫和积累,现在得薪资差距根本没什么,如果一个offer的待遇没那么那么高,但相比较其他offer能够给你带来更多成长和经验,这就足以值得你选择。你的职业生涯还有很长的路要走,你现在得选择必须要为未来几年的更好的职业发展做贡献。等你积累了足够的经验和技术能力,那时你的薪资绝对对得起你的能力。选offer也要看当前的技术趋势,越热门的技术代表更多的需求,比如现在的unity3d和web前端。
4.编程语言重要吗?
这么多编程语言的出现都是为了域解决在某些领域一其他语言所不能解决或不好解决的问题。所以对于特定的岗位,比如后端有java,C++,php,java、 php偏向于应用层,C++用的场景更偏向于底层,不同的岗为需要不同的语言。选择一门语言,就选择了特定的岗位。虽然编程语言,都是相通的,但换语言的代价是你需要重新学习新的库,新的规范,会失去你原来语言的优势。作为招聘方,当然希望来了就能直接上手干活。程序谁都能写,但写的好的与写的不好的,差别还是很大的。语言也和公司的技术选择有关,拿BAT来说,阿里后端大部分都是java,百度后端php略多,腾讯后端大量C++。初期熟悉一门语言还是很重要的,但语言只是工具,程序员的追求应该不仅仅是语言层面的,更需要语言背后的设计。语言不应是我们唯一的优势。
5.技术积累和成长
程序员实际的工作中的开发并不总是有挑战的,最终的结果是面向业务的,并不是每一天的工作都会让你进步。也许遇到好的团队,能力能得了好的锻炼,但遇到好的团队,这个不是个人能决定的,更多还是需要自己去学习,去探索。我个人觉得技术积累有一下方法:
- 学习自己项目组里的代码,梳理并理解其架构,对各个技术点深入探索,不仅仅限于自己的模块。
- 对于工作中用到的东西,不仅要学会用,还要去理解他的实现原理。
- 多看书,看大牛的博客,微博,不懂的就去查去学习,开括技术视野。
- 学习优秀的开源项目代码,理解其架构设计。
- 分享即学习,写技术博客,多总结经验,记录自己遇到的问题,和解决方案,写的过程就是思考,加深理解。
做好手头上的每一件事,只有让别人对你的工作放心了,才会交给你更多的任务,才会有更多机会。如果一份工作对你来说技术上并没有什么提升,那么果断换工作。保持对技术的学习,每天进步一小步,坚持下去,三年人与人的差距会很大的。持续的学习能够解决你当前发展遇到的大部分问题。
最后一点,关注行业发展,技术的发展很快的,也许你闷头工作了大半年,某天出去投简历发现,那些你所熟悉的技术,现在市场需求没那么多了,时刻保持学习。目前一些偏前端的岗位技术更新比较快,比如web前端,手游客户端。短短几年时间,从页游到手游,从AS到cocos2dx到如今炙手可热的Unity3D,技术更迭,那些没能追赶上的程序员,都将被淘汰。
6.多读书
技术人员往往都会陷入技术的泥潭,看的书也都是技术类书籍,似乎觉得我技术牛逼了,其他都所谓。我们是处在一个社会中,我们总会和人打交道,一个人的气质,谈吐,思想很容易在日常的沟通值体现出来,事物的发展都有遵循一定的规律,适当的读一些其他的书籍,有时候更能开阔我们的视野,增长见识,激发灵感。技术能力并不是决定一个人成长的唯一要素。读书的过程,能够改变一个人的思想,气质。沟通,管理这些任何一个的都很重要。当然最为开发人员,我们首先需要别人看到的是技术能力,其次看到我们其他的能力,不要完全陷入技术的泥潭里。
关于生活
北漂的生活很苦逼,刚来的我们可能各种舍不得花费,北京高昂的房租是个很蛋疼的问题,我要强调的是,善待自己,在自己能力许可的范围,尽量创造比较舒适的环境,能够更好的学习,工作。这些花费都是值得的,在工作学习上的任何投入都是值得的。
- 租房尽量离公司近点,这样上下班会舒服点,实在没必要为省房租,上下班经历几个小时的车程,有那时间还不如好好看点书,写写代码呢
- 远离黑中介,租房就找链家和我爱我家这种,住稍好点的房子,虽然贵点,但事少,不容易遇到一些破室友
- 注意个人形象不要太邋遢,保持对美的追求。
- 早点谈女朋友!!!!