找工作必读:剑指offer,程序员面试宝典,王道系列,算法导论
- 关于程序员
经过这次找工作,对于程序员的开发强度有了一个深刻的认知,一般的公司都需要加班到8、9点,更别说像华为阿里那种,估计是要常常加班到11点的,与私人企业相比。外企相对好一些,这次春招有一家印度的外企过来招聘,虽然工资不高,但是不用加班,朝九晚六,而且是全英文环境,对于提升自己也不错。
考虑到加班强度和程序员的工作性质,今天跟一起找工作的小伙伴讨论,不由得对自己的未来有种深深的怀疑,程序员需要不断的学习,而且你永远不会知道什么技术在未来最吃香,比较最近安卓开发、大数据很火,前两天阿尔法狗战胜了围棋国手,AI又开始火,安全也很火。可是如果你选择了一个方向,等到几年后你刚刚精通又快被面临淘汰,永远需要不断的学习,问题是年龄越大脑力愈来愈跟不上,用人单位也不想招你,到最后会不会被迫转向产品经理等不太需要技术的岗位,可是这种职业如果你没有实习经验,没有一两年的积累,又怎么能获得工作机会,况且如果放弃开发又是要从零做起了。又是作为女生,年龄本来就是门槛。讨论结果是,先做技术,如果瓶颈实在是无法突破,就趁结婚怀孕的时候读博或者考公务员,选择一个相对稳定压力比较小的工作。
- 职业规划
为了更好地面试,搜索了一下程序员的职业规划,感觉最好就是成为架构师或者项目经理,可是架构师对技术的要求很高,项目经理稍微好一些。考虑到现在的趋势,觉得以后做安卓安全可能会好一些,一方面我不想放弃安全,希望能安心把安全做好;另一方面,万一以后安全的工作找不到,就可以做做安卓开发养活自己。这就可以把安卓和安全结合起来,算是一个折中方案吧,当然安全更重要。要是以后继续找安卓的工作,一定要先找有关安卓的书过来看,然后刷面试题,同时最好能自己做一些安卓的小项目。安全方面要看Linux和python,数据库和javascript,还有业内技术大牛写的书,同时已经学过的跟安全相关的课程,要着重复习,可以从同学那里拷贝一下实验报告和项目,自己再做一遍,然后就是多关注乌云和看雪论坛,多看论文,多实践等等,等到能自己逆向编译,寻找漏洞的时候就差不多能找工作了。
- 关于学习
虽然计算机的方向很多,但是基础的东西还是不会变的,比如C、java、C++语言,这三种语言最好能够简单复习下语法,同时选择一门来深入学习,对考研来说C比较合适,对算法的学习来说,C++比较合适,这两种语言有相通之处,学懂了的话一种转成另一种也可以,不用太担心。数据结构,操作系统,计算机网络,计算机组成是所有的肌醇,尤其是数据结构和计算机网络,对于安全来说很重要,一定要好好学,复习408的时候可以顺便看。同时要深入学习,需要看《算法导论》和王道上机的书,编程思维一定要过关,最好能考一下CCF;然后是linux,不管是安卓还是安全都需要用到Linux;然后是脚本语言和Python,汇编暂时不用学,等以后再说。
以上基础看完了,可以看些进一步编程的书,书单如下:
http://blog.youkuaiyun.com/jackfrued/article/details/44456495
数学一定要学好,亚马逊上有一些比较有趣的数学书,可以从那些书里面培养数学的乐趣,如《数学之美》《程序员的数学》等。线性代数可以一边看公开课,一边看李永乐的视频,做复习书,有必要可以去看下宇哥的视频。概率论可以看看有没有公开课,看视频和复习全书就可以了。这两门很好拿分,一定要反反复复的刷复习全书,直到掌握为止。数学首先是要理解,然后要记住,最后不断的做题熟练,要提高做题速度和反应灵敏度。高数可以看看宇哥的课本,重在扎实。
英语需要提高听力和口语,可以学了一句就常常在生活中使用。还有写作,写作可以先看历年作文题,看伟哥去年的视频,争取背的滚瓜烂熟,然后活学活用,把去年的小黄书吃透,翻译就按去年的学习方法。完形可以先看看视频要怎么练,再制定方案。阅读可以多看FT中文网或者经济学人,交叉着学习单词和语法,偶尔做一篇阅读。等前期准备工作做得差不多了,再开始研究真题阅读。