立即在,继续……
2、准备阶段
对于搞软件的来说,每年的暑期都能够找实习的,大三和大四之间的暑假应该是尤为重要的,由于假设表现好的话,实习之后直接能够留在公司,少了应届生招聘去血拼的环节。不管怎样。找实习也好、找工作也罢,之前都是要好好准备的。把自己的基础知识及项目经验认真整理整理。
软件开发岗位须要准备的基础知识例如以下:(1)方向相关的语言基础(如:C/C++基础、Java基础、Android开发基础、Java Web基础等)。(2)数据结构;(3)操作系统;(4)数据库;(5)算法;(6)计算机网络。(7)尽可能多的了解Linux知识。以上几项是我感觉非常重要的(最起码对于一般的软件开发来说),当然像数据挖掘、运维等方向的知识我不懂。大家依据详细情况选择性看待。有错误的地方还请担待。
以下对上述情况加以解释:(1)方向相关的基础知识肯定是少不了的,并且要学习的尽可能广泛与深入。尤其是原理性的知识是必须充分掌握的,这种知识笔试面试都会用到。(2)数据结构,当初学习课本时没有好好学习,找工作时才知道数据结构是如此的重要。
假设你还没有找工作,强烈建议好好复习复习这方面的知识;找工作的同胞们。大家就努力努力,尽可能多记住一些吧。
还记得一位Web前端的同学前期找工作时没有复习数据结构。以为Web方向没有这种要求,结果面试问的都是这些知识,所以,趁来得及学的时候,尽快学习吧,这些知识和方向是没有关系的,面试官考查的是你的总体素养以及总体知识体系。(3)操作系统。到了不论什么地方操作系统方面的知识都会占有一席之地的。考研、找工作都是如此。
(4)数据库,时代的发展使得数据库变得尤为重要。大数据的到来更是让软件行业着力于数据库的发展。找出你的课本。认真复习吧。
(5)算法。把它和数据结构分开,是由于算法知识比較庞大,可简单可复杂。先说第一部分吧,主要的查找和排序算法,这是必须掌握的知识。第二部分。有分治法、动态规划、贪心算法、图算法等,高深的还有B树、红黑树等。菜鸟不会啊!
(6)计算机网络,软件开发从来都离不开网络编程,所以这方面知识的掌握是不可缺少的。并且面试时对网络编程的要求是比較高的。
(7)Linux知识。开源时代的到来已经势不可挡,加上开源的免费性,越来越多的企业也增加了开源的队伍。不学习Linux注定是要被淘汰的。
各知识点相关考题:(1)基础知识以C/C++为例。虚继承、指针相关、sizeof、const、static、内存分配方式、构造函数与析构函数、指针与数组等;(2)数据结构,栈、队列、二叉树、树的遍历、链表、数组、哈希表、堆等。(3)操作系统,进程、线程、处理机调度算法、死锁、分页与分段存储管理、页面置换算法等;(4)数据库。内连接与外连接、基本select语句、where与group by和order by一起的使用方法、事务、范式等;(5)算法,查找、排序算法尤为重要,链表的各种操作(单链表、循环链表、双链表的插入、删除、查找等)。哈希表的应用(曾经没有接触过,可是笔试面试各种考)。(6)计算机网络。TCP的三次握手、四次挥手。UDP实现可靠通信。OSI七层协议与TCP/IP四层协议的相应等。
(7)Linux知识,gcc编译程序的整个过程,gdb、vim的相关命令考察,makefile的编写,经常使用操作命令等。
最后会整理出一些笔试面试题目,这里先是一些简单的整理。笔试的重点还是在于对基础知识的掌握,要认真复习基础,直接秒杀试卷,笔试成绩高对你的面试以及被录取是非常有利的。
以下推荐几本笔试面试书籍吧:《剑指offer》《程序猿面试宝典》。对于有业余时间的同学,能够重点学习相关方向的知识,像C++方向能够看这些书《STL源代码剖析》《C++ Primer》《Effective C++》(本菜鸟没看过几本)。建议有精力的同学多阅读经典书籍, 这里的书能够作为參考。
项目经验:大学期间要有可以拿得出手的项目。没有的同学要抓紧啊(最好在学校的实验室呆呆。可以增强实践经验),要是到了找工作的时候还是没有。那就把以往的课程设计拿出来秀秀吧。要知道。写到简历上的项目面试官是不会知道你怎样实现的。因此一旦写到简历上面,你就要把自己的项目认认真真分析清楚,从框架到详细的细节,每一部分自己都要可以描写叙述出来。最好可以把自己的项目从框架到细节全部的东西画出来,然后自己总结,写到一张纸上。
自己可想想。假设你是面试官,会问到项目中哪些问题。针对特定的问题,自己给出答案。或者能够让同学帮忙。总之是要把自己的项目分析的透透彻彻,那么面试的时候你就会毫无压力。从容应答了。
next one:
版权声明:本文博客原创文章。博客,未经同意,不得转载。