写在开头
以下是结合自己一年的学习经历,给正在准备求职的朋友的一些分享,实用与否,仁者见仁智者见智,只希望能给正在迷茫和徘徊的朋友一些正能量。
关于自己
从开始转方向学软件,我一直坚持两点:1)基础很重要 2)心态很重要。
关于基础,我主要从两方面入手:语言、数据结构和算法。语言要会用还要知道它的一些底层原理;数据结构可以让程序数据的组织多样化,算法可以让程序的实现方式多样化,写程序将会有更多的思路。
关于心态,也从两方面说吧:成就感、不强求。成就感是我作为程序员的原动力,这让我在漫长的求职道路上感觉不枯燥,这也将激励我之后完成一个个新的目标;不强求不是说没有目标,而是指要做好进入不了目标公司的准备。举个例子:假如自己心目中把意向公司分成x、y、z三个档次,难度依次递减。不强求的心态就是,要想,努力了之后,即使进不了x档,去y档也可以混个中等的水平,即使去不了y档,去z档也可以混个偏上的水平。
准备靠努力和坚持,面试靠发挥和机遇,自己靠着这些最终有幸找到自己心仪的互联网公司,过程是幸苦的,结果还算是满意的。下面用时间为结点简要说一下自己一年的学习路程,在这里面我们不说很多书写的好坏,只求看过,收获过:
2013.7 机缘巧合到图书馆借了一本《零基础学习C语言》,也是从现在开始了我的程序员之路;这个月主要看了几本C语言的基础书籍,看着一本本书被飞快的看完然后逐个把课后习题完成,成就感油然而生,这也是我最初的原动力,而此时我并不知道我以后想干什么,只是单纯的喜欢这种感觉;
2013.8~9 从网上下了些简单游戏源码,修修改改来实现自己想要的功能,图形界面是基于一个叫EasyX的外部库。这期间写了很多小游戏,提高了自己的调试能力;
2013.10 数据结构,主要是《数据结构(C语言版)》---严蔚敏著。做了详细笔记,不懂的到网上搜技术博客,从那个时候决定以后也要把自己的东西分享出来;
2013.11~2014.3 算法,主要是《编程珠玑》《编程之美》《微软面试100题》。看书+笔记,笔记主要写到evernote上面,这个软件用来做笔记很不错,这段时间我面试算法方面的能力有了很大提高。后面面试了发现,算法方面的不用那么多,掌握常用的就好,不过多学点总没有坏处;
2014.4 C++,主要是《c++ primer》《深度探索c++对象模型》。对面向对象方面有所了解,但是还是很菜。后面我实现很多算法都直接调用C++的STL,这样简单方便。但是很多具体你实现我也做过工作(如:栈、队列、堆、排序、红黑树等),面试的时候被问到也能自己简单实现;
2014.5 计算机网络,主要是《TCP/IP详解 卷一》《计算机网络》--谢希仁著。分享一个自己的手写笔记http://pan.baidu.com/s/1c08KalE,字写得有点挫;
2014.6 操作系统,主要是《操作系统之哲学原理》《现代操作系统》;
2014.7 《剑指offer》,手写核心算法,面试的时候面试官经常让手写,提前训练;
2014.8~9 复习笔记,总结笔记,网上看面经记录面试方面需要注意的。事实证明之前看书的时候都做了详细笔记是非常明智的,因为很多的东西都忘了,笔记能够让我快速复习之前所学。
关于建议
1.多做笔记,有些程序比较复杂的可以配图解释。推荐两个软件evernote(笔记)、学习复习安排助手(复习);
2.集中掌握一门语言,好像这几年面试Java很吃香,当然如果有时间可以学习一门底层一些的语言(如C语言),了解实现才能更好的使用;
3.在数据结果和算法方面多花一些时间。数据结构重点:排序、栈、队列、堆、树,图可做了解;算法方面也不需要看那么多,《剑指offer》和《微软面试100题》足够,关键是里面的题得游刃有余。当然有时间可以多看看其他的,好处也是多多;
4.计算机网络和操作系统了解了解,做到核心知识点心中有数;
5.海量数据可以了解了解,推荐博客:http://blog.csdn.net/v_JULY_v/article/details/6685962;
6.项目。根据你以后的求职方向,花一段时间研究一个项目,深入进去。项目的来源可以是网上开源,也可以是朋友、同学。有项目可以为简历添彩,也可以为面试过程添彩,这会吸引很多面试官的火力,弥补其他方面的不足。反正我是在项目方面吃了很大亏;
7.实习。如果有机会,可以去公司实习(自己求职方向以内的公司),这样第6点也解决了。
写在最后
只是自己的一些经验分享,不一定对每个人都有帮助,希望对正在迷茫和徘徊以及没有动力的朋友一些正能量。也向通过博客和其他方面分享自己知识的的人,点2^32次赞!!!!
之后我也会逐步把自己做的笔记整理一下,分享出来。