最近在开始找实习,问了自己几句,我准备好了吗?我准备找什么方向的工作?这个问题1其实一直困扰我好久了,没有好好深入地去了解。最近通过找实习渐渐地给自己明确了一个找实习和工作的方向。希望自己可以一直坚持下,如果实习没有找到,那就继续学下去。只要积累够了,一切都会水到渠成的。
注:自己这两年里面是做了不少项目,也有不少的代码实战经验,但是做的时候基本上没有好好总结,到了最近要找实习,看到一些大牛去BAT的都是提前四五个月就开始准备。
觉得有点儿晚了,我的老板也说我生活过得太惬意了,基本没有吃过什么苦,也确实是啊。最近压力有点儿大,毕竟应届生的机会只有一次。
这几天我仔细看了腾讯,阿里,华为的招聘要求,深感还有很多东西需要在这3,4,5,6,7,8这半年这4个月里补起来,在这里记录下学习的方向与内容,希望如果可以的话,坚持下去!
研发工程师JAVA Software Engineer - Java
华为:
1、计算机、软件相关专业本科及以上学历;
2、熟悉Java语言,有独立进行程序设计开发和验证的能力;
3、熟悉数据结构和算法;
4、熟悉Unix/Linux/Win32环境下编程和调试,熟悉网络编程和多线程编程 ;
5、优选条件 (1)熟悉TCP/IP协议,及互联网常见应用和协议的原理;
(2)有IT应用软件、互联网软件等相关产品开发经验;
(3)精通Perl/Python/PHP/.NET等编程语言中的一种或几种。
阿里:
或许,你来自计算机专业,机械专业,甚至可能是学生物的, 但是,你酷爱着计算机以及互联网技术,热衷于解决挑战性的问题,追求极致的用户体验;
或许,你痴迷于数据结构和算法,热衷于ACM,常常为看到“accept”而兴奋的手足舞蹈;
或许,你熟悉Unix/Linux/Win32环境下编程,并有相关开发经验,熟练使用调试工具,并熟悉Perl,Python,shell等脚本语言;
或许,你熟悉网络编程和多线程编程,对TCP/IP,HTTP等网络协议有很深的理解,并了解XML和HTML语言;
或许,你热衷于数据库技术,能够熟练编写SQL脚本,有MySql或Oracle应用开发经验;
或许,你并不熟悉Java编程语言,更精通C,C++,PHP,.NET等编程语言中的一种或几种,但你有良好和快速的学习能力;
有可能,你参加过大学生数学建模竞赛,“挑战杯”,机器人足球比赛等; 也有可能,你在学校的时候作为骨干参与学生网站的建设和开发;
这些,都是我们想要的。来吧,加入我们!
腾讯:(软件后台开发方向)
编程基本功扎实,掌握C/C++/JAVA等开发语言、常用算法和数据结构;
熟悉TCP/UDP网络协议及相关编程、进程间通讯编程;
了解Python、Shell、Perl等脚本语言;
了解MYSQL及SQL语言、编程,了解NoSQL, key-value存储原理;
全面、扎实的软件知识结构,掌握操作系统、软件工程、设计模式、数据结构、数据库系统、网络安全等专业知识;
了解分布式系统设计与开发、负载均衡技术,系统容灾设计,高可用系统等知识。
—————————————————————————————————————————————————————————————
在上面的要求中,许多都已经明确下来了,接下来结合一些查找的面试和学习经验对几点需要回顾和加强的方面罗列如下:
1—java: java基础知识(结合自己的博客梳理),JDK源码(HashMap/hashTable,ArrayList/LinkedList,Vector等,并发包JUC,concurrentHashMap,Executer框架)JVM原理,垃圾回收机制等。
2.算法与数据结构:《算法导论》(从大一开始陆陆续续看,那时觉得很难,现在回过头来再看,惊叹万分,有醍醐灌顶的感觉)、《STL源码剖析》(绝对值得一看,前半部分必看,后半部分选读)
3.TCP/IP协议和网络编程:《tcp/ip协议详解》(必读)、《unix网络编程卷1》(必读),《unix网络编程卷2》(主要讲进程间通信,可选读)
4..Linux入门:《鸟哥的linux私房菜—基础篇》(必读),《鸟哥的linux私房菜—服务器架设篇》(选读)
Linux环境编程:《UNIX环境高级编程》、《Unix/Linux编程实践教程》
(第一本简称apue,十分经典,但是内容也特别多,适合做工具书,里面的内容可以选择性地阅读;第二本的知识点安排跟apue挺吻合的,并且有大量实践教程,虽然书中有挺多错漏,但是仍然推荐作为配合apue一起学习的书籍。也就是说,我建议这两本书同步看)
5.C++:《C++ primer》(能够静心读下来不容易)、《Effective C++》(很有用的一些条款,针对面试可以选读)
6.脚本:《python基础教程》
7.设计模式:《大话设计模式》,程杰 著(适合入门),《Design Patterns: Elements of Reusable Object-Oriented Software》(设计模式),作者: Erich Gamma、Richard Helm、Ralph Johnson 和 John Vlissides(经典书籍,但是比较难懂)
8.数据库:数据库原理要懂,之后可以了解mysql,memcached,redis等等。
9.刷题:《剑指offer》、leetcode(网站)
以上列出的书,大多是经典的书,口碑一流,但是“厚重”使得学起来有一定困难,所以一定要配合实践,并且根据自己的情况选择性阅读。
项目:跟应聘岗位有关,在精不在多。(调理梳理清楚)
另外,最宝贵的资源:源码 和 博客。
阅读优秀的源码能够学到很多东西,而阅读源码、书籍时可能会遇到困难,这个时候去看看相关博客会有很大帮助,当然,如果能够自己也写一写博客那就更好了。
—————————————————————————————————————————————————————————————————