本人用了接近一个月的经历实习生面试,总结一下自己被鄙视之后的教训吧。
amazon、IBM、百度、日立、websense、CA ...
一串串公司的名字,血淋淋的教训。本人状况:虽然有一年的实习经验,但是都是copy+past.
具体细节不谈,说一下教训吧:
1)关于学习一门技术的深入程度:学一门技术,一定要学其内涵,掌握深入、透彻。要不面试的时候,很容易就被面试官鄙视。
2)关于学习态度:所有的事情从细小入手,不要好高骛远、眼高手低。一些基本的算法,自己不要只是理解其含义,要用自己熟悉的语言自己写出来,比如排序算法,我看了无数遍,思想滚瓜烂熟,可是当amazon的面试官让我自己写的时候,错误百出啊。
3)关于语言:要有自己很熟悉的一门语言。不只是只会COPY+past,要知道其中一些很重要、很基础的问题。由于自己比较熟悉java,就说一下java语言的问题吧。比如JVM的配置、java内存分配、内存回收、内存溢出、java多线程、java异常处理、java网络编程、java中面向对象等知识。
4)关于知识的全面性:linux操作系统开发 + 一门自己熟悉的语言(貌似python等脚本语言很火,很多大公司都有不同程度的要求,不过传统语言如java、c++肯定是必修)+数据库(关系数据库,如果有点nosql的经验就更好了)+操作系统(多线程)+ 网络(TCP/IP、socket编程)+ 自己的方向性知识。
5)关于读书:经典图书需要读,但是具体怎么读呢?个人愚见:从网上找相关的面试题目,然后带着问题,读经典图书;或者参照前人写的博客,来看书,看看别人说的问题自己遇到没有,理解了没有;或者是项目中自己遇到了问题,再看相关的图书。这样比单纯的读效果要好很多。自己以前单纯为了读书而读书,甚至每天都在赶进度,慢慢发现自己很着急,后来想想,自己急什么呢?难道只是为了跟别人炫耀一下自己读了什么书吗?
6)关于英语:自己准备了很多面试问题,只是为了临时抱佛脚之用,但是英语作为技术人员的母语,确实需要好好学学。读文献、查资料等读写能力肯定得有,但是要想进入大一点的外企,口语也是很关键的,需要重点练习。老外哪里找?自己创造机会。
接下来就是一年的技术实习:写下一下要求来监督自己吧。
1)按照公司方向,深入研究这个方向,做细、做精、做深。争取自己做个开源项目吧。
2)基础知识:系统(linux)+语言(java、python)+ 操作系统 +数据库 + 网络 +方向。
3)读书:针对2)中的知识,自己多读经典的图书,自己写博客,写读书笔记。因为自己从CSDN的博客中学到了很多东西,特 别是对经典图书的读书笔记。当然,如果这里面能实现的,自己用计算机语言做些项目出来。
4)态度:很多人都有梦想,特别是年轻人,但是很少自己能坚持,不专一。当然包括我自己。今天这个好学这个,明天流行那个学那个,总之不能沉下心把自己的基础打牢。经过这段时间的面试发现,一个人的基础决定了一个人的高度。没有基础,一切都是空中楼阁。从今天开始,踏踏实实,坚定目标,从一点一滴做起吧。
5)知识拓展:这是自学能力的一种体现。短期内发现不了,时间长了,差距就很大。比如今天遇到了socket通信,你是单纯从网上找个demo,直接copy,还是在这之后自己研究一下socket通信的原理。二者都是解决了问题,日积月累,后者肯定是技术牛人,而前者,还是COPY。在面试中,面试官就喜欢问这种原理的问题。当然这里不是说为了面试而学习,而是强调一种学习的态度。这次面试我就发现了自己以前的这个很大缺点,新的公司会学习很多东西,我要见一个,分析透彻一个。
唯一值得自己钦佩的是自己这次在是屡败屡战,没有放弃,直到拿到offer。
很喜欢Nike的广告语:Just do it ! 就做公司现在的方向走,just do it !!!