给大家推荐一个网站,主要是给在校学生提供资料和交流的平台,也希望社会人士能进来给与一些经验和建议,把这个网站维持下去。
“做人如果没有梦想,跟咸鱼有什么分别?”
我们的梦想就是如何从零基础去学习软件开发,最后达到我们心目中的高度,首先我按自己的理解大致将各个阶段进行划分,每个公司都有自己评定的标准,但大致都差不太多。
学习模式
我将学习分为两种模式
一、项目驱动型
以软件项目开发为导向,先暂时绕过基础知识的学习,起初只求会用,过程中慢慢去补足计算机相关的知识。这种方式在早期对于定力不强,容易退缩的同学是非常有效的学习方式,早早地能进行软件开发无形中会增加成就感,产生驱动力继续去深入学习,这种方式缺点也比较的明显,就是瓶颈出现的时候会比较的明显,不过如果能持之以恒,坚持不懈的学习,瓶颈也会跨过去的。我身边有不少同事,大学的专业跟计算机都没什么关系,毕业后自己转行,也一样能把软件开发做得很好。
二、系统学习型
按部就班,这种比较适合本专业,也建议有恒心的同学采用这种方式。这种方式怎么讲,就跟学功夫,天天扎马步,打桩一样。平时没什么感觉,一旦遇到难题,瓶颈时就能体现出稳扎稳打的优势,时常会因为以前的一个知识点让你灵光一闪。这种方式缺点就是比较枯燥,所以我建议采用这种方式的同学,阶段性的结合方式一去获取一些成就感。比如学习C、C++或者研究算法到一定程度,去写一些简单的单机游戏,或者去参加一些算法竞赛。
学习路线
第一种学习模式比较简单,主要是在挑选书籍的时候以项目案例类的书籍为主即可。
第二种学习模式,学业中的数学,物理,高数、现代、图形学、计算机组成原理,微机原理、语言类C、C++、Java等都别落下,这是打基础的阶段,别挑食学得越扎实越好。
下面会列举目前公司比较常见的开发语言,框架等需要掌握的一些东西共大家参考学习。
- Android学习
- 开启Java之门,学习OOP、泛型、IO操作、多线程、网络、序列化、反射、注解等
- 熟悉数据库,QSLite、MySQL,Oracle
- AndroidUI/四大核心组件,网络通讯,动画等
- 在深入则学习JNI,NDK编程
- 如果往游戏开发走还需要学习Cocos2d-x等框架
- 现在HTML5开始火起来了,有精力的话这个方面也可以学习一下
- IOS学习,IOS开发我没有做过,仅在MAC下做过Qt的开发,这里我只粗略提一下
- OC目前还是IOS主流,这个是一定要掌握的
- Swift已经在慢慢热起来,学习完OC这个还是去学习一下
- PC桌面应用开发
- C、C++、C#等
- Qt 首推Qt框架,跨平台
- WPF Windows下的利器,新项目别去学MFC,早该丢弃的框架,目前只有维护旧项目有用
- 大数据
- linux基础,大数据离不开linux,这个是要优先学习的
- Hadoop
- HDFS
- MapReduce
- ......太多了,如果选择这行,要做好心里准备,都是难啃的茬
通用的一些书籍,如设计模式、架构、性能调优、软件工程、项目管理等参杂于其中,反复的看。
希望各位看官留言交流心得。