说出来你可能不信,我去年本科某211毕业,正准备入职第四家公司了。
( 一 )
本科于某学校新开的专业(IT类)就读。大学期间像很多人一样浑浑噩噩的就到了大三,准备实习。实习进了一家百强IT公司,按照道理应该挺好。但是,实际上呢?除了工资是总部发以外,其他与在一家小公司差别不大。没有专业的应届生培训(当然这个有没有其实差别不大),没有合适的晋升机制,晋升基本靠工作年限,基本没有内部转岗,横向调整。因为是老牌的公司,技术不新,一切以稳定为主,新的技术能不用就不用,当然不是否定这些,只是不大合适我的工作方向。
所以啊,在校期间校招最好能好好准备。面试一定要充分了解行业趋势,清楚工作内容。一定要选择好方向,虽说IT行业每个方向深耕的话发展都会很不错,但是如果能自己略感兴趣,并且能占在风口上势必有更好的发展。如果没基础转行的,推荐学python语言入门,然后选择自己感兴趣的方向。如果已经有某个方向的基础的,建议深耕。
选好方向后,技术层面我分为三个阶段。
一:数据结构,c,java,数据库这些在校一些基础课程。适当的做一些笔试题。
二:针对性的学习相关知识,使用常见的框架等,基本入门水平了。比如Android开发你需要知道四大组件,分别怎么用,啥时候用。Activity启动模式等等基础知识。框架比如okhttp,rxjava,retrofit等。最好学后能做一些可以展示的东西,不要ctrl+c,ctrl+v。代码关键还是要自己动手写的。会用SOF,google搜问题,会关注相关行业新闻,大佬博客,会看看github上现成的轮子,研究研究源码。
三:框架的内部原理实现,了解流程,阅读过源码,理解源码。再深入的话,可以思考下自己会如何实现。算法,设计思想。
(二)
毕业后,跑到某一线城市,然后才孤陋寡闻的发现社招招的要求跟学校校招咋不一样呢?校招都是数据结构,c,java,数据库啥的。一社招,全部gg。java全是StrutsMVC,Mybatis,Spring,分布式,Javascript、Ajax哇一大堆一大堆,简直打开了新世界的大门。没办法,边找工作边自学Android,别误会,我学Android仅仅是因为Android入门简单,而且我在学校摸过AS(嗯,写过bug的那种)。但是真的,水平连入门都不算,最后是身上资金撑不住了,进了一家手机odm。其实找工作不能太急,最好给自己足够的时间去找一个合适的。没有十分把握最好不要裸辞。并且面试也是一个双向选择的过程,不要一味的放低自己的身位。要做到足够的自信,但不自满,对面试官保持尊重。当时想着边工作边提升下技术,做个一两年跳槽。但是计划赶不上变化,手机行业已经进入冷冬(Winter is Coming),国产公司分部成T型,除了华米OV,其他公司都已经再寻求其他出路,有些甚至生存都异常艰难。于是我被裁员了,陪伴我的是公司80%的员工。部门主管可能看我表现也挺好,给我推了两家手机公司。
(三)
选择了其中一个,随空降的部门经理,到公司组建新的部门,做手机的Android开发。做了小半年把,认识了一些挺好的同事,经理也不错,技术也有很大提升,自己也有不多的业余时间玩其他的感兴趣的爬虫啊产品啊啥的。但是,好景不长。这么大点的公司竟然会有这么残酷的内部斗争~老员工下属给空降的经理后面捅了刀子。结果就是整个部门加进去的部门经理,只要是他带来的,都协调辞职。跟我一起工作的同事说:“这么多年还没见过能背后捅刀子的,啥事不能明面上说。”这个确实是不可抗力了,我能咋办,我也很绝望。
(四)
历时两个星期,大概面试了10家左右的公司吧。有三家公司的offer,一家创业公司,一家传统led行业,最后一家也是我选择加入的算比较知名的大点的公司的了。可能这一年太不安定了,所以想找一个稳定点的工作了,其次想做应用层的开发。手机行业的话,很多注重Android那一整套mtk的源码去定制,以及一些基础应用的维护,开发任务真的很少。好处是你每天接触了系统的源码,很多设计思想都可以借鉴。
我这工作经历也算离奇和曲折了。