IT软件开发小白进阶路线

8、大数据

大数据已经很流行了,自己也从事相关工作有段时间了,对java等的要求不是很高,但是要了解计算机常识,会简单的java开发。主要使用的框架是:
离线:Hadoop,Hive, Hbase, Kafka, Kettle,
实时:spark,storm,
主要开发语言:scala,会sql语句做数据etl,python做数据分析的时候用到。

二、编程语言
作为一个什么都不懂的小白,学习编程的第一步当然是掌握一门编程语言。本节就来介绍常见的编程语言的学习路线。首先,先明确一个观点,作为一个程序员,只会一种编程语言是远远不够的。最好精通1~2门语言,基本掌握其它所有常见的语言。
1、C语言
信息类专业的大学生通常都会在一年级上C语言这门课,也很可能是大学期间唯一的一门编程语言课。所谓师傅领进门,修行在个人,通过学习C语言迈入编程世界的大门是再合适不过了。虽然也有人提倡学习Python作为第一门编程语言,可我觉得那未免太浮躁了。刚开始应该打好基础,而不是追求炫酷的效果。C语言是一门高级语言,又与计算机硬件息息相关,通过指针操作可以真切感受到数据的流动,这是Python无法做到的。因此,我的建议是,不管今后打算从事哪个技术路线,C语言都是必学的第一门语言。
然而遗憾的是,我由于是在课堂上学的C语言,所以这方面的优秀教材了解的也不多。无论是学校使用的各个版本的《C语言程序设计》,还是国外大牛写的《The C Programming Language》,都未免太过枯燥。据说有一本科普性质的《啊哈C》写的非常通俗易懂,麻烦读过的同学点评一下是否真的如此。其它好的教程也希望同学们帮我补充。
2、C#
学完C语言很多人会产生疑问,不知道C语言能干什么。如果不及时消除这一顾虑,恐怕会让大部分人丧失学下去的信心。然而C语言的用途对于初学者来说很难体现出来,所以下一步我们转向C语言的增强版本——C#语言(读音:C sharp)。
C#语言是微软推出的面向对象编程语言。“面向对象”将是一个伴随程序员一生的词汇,因此从此刻开始,我们要随时尝试理解:什么是面向对象。
简单来说,面向对象是相对于面向过程而言的。C语言是一个典型的面向过程语言,因为C程序的执行流程可以很容易地画一张流程框图来表示,它强调程序员编写程序时是面向程序执行过程考虑的。而C#则是一个典型的面向对象语言,C#程序的执行流程通常很难用流程图表示,这是因为程序员编写C#程序时考虑的不是一个完整的从头到尾的执行流程,而是各个对象之间的调用关系。
虽然我已经尽力了,但上面这段话肯定无法让初学者真正理解面向过程和面向对象的关系。不过不要紧,编程思想从来不是纸上谈兵得来的,必须经过充分的实践才能领悟。
幸运的是我收集到了一套完整的C#视频教程,以及后续的WinForm视频教程。学完这两个,就会对面向对象编程有一定的理解。虽然今后并不一定从事Windows客户端的开发,但学习这两个内容可以帮助更好地理解后续更深层次的Java Web和Android。看视频的同时一定要照着在自己电脑上写一遍,这样才能印象深刻。
推荐的视频教程:
C#基础 密码:87w5
WinForm 密码:y6o1。这套视频也许是我看过的最有趣的视频了,希望大家不要错过。

3、Java(建议精通)
如果学过C#再学Java,你会发现两者惊人的相似。Java从难度上来说和C#一样简单(甚至更简单),而用途却比C#广泛得多。这在很大程度上得益于Java的跨平台特性,也使Java成为了Web项目的主力军。
推荐的视频教程:
【传智播客黑马训练营Java基础】
地址1 官
地址2 百度 盘 密码:fvvw

4、C++(建议精通)
并非每个同学都需要学习C++,Java和C++精通其中一门即可。但C++与Java并不是效能重复的编程语言,相反,它们分别统治着各自的领域,就像Java统治Web领域一样,C++统治着性能敏感的基础设施、视频图像处理等领域。精通Java或C++都不容易(特别是C++,堪称最难编程语言),因此两者择一即可。
C++方面仍然没能找到优秀的视频教程,需要大家帮忙提些建议。倒是有比较优秀的书籍,比如《C++ Primer》,值得一看。
推荐的视频教程:

5、JavaScript(建议精通)
JavaScript是前端开发的利器,对于前端工程师来说,精通JavaScript是必须的。近年来JavaScript甚至蔓延到了后端编程,以Node.js为代表的后端JavaScript框架使它成为全能的编程语言,大有一统江湖之势。
这是与Java和C++一样建议精通的语言,当然只是对前端工程师有这个要求,后端工程师倒不必花太多精力在这上面。
推荐的视频教程:
【慕课 】 HTML+CSS基础课程
【慕课 】 JavaScript入门篇
【慕课 】 JavaScript进阶篇
【廖雪峰】 JavaScript教程

5、Python(可选,用到还是精通好了)
Python是近年来日益火爆的一门编程语言。随着Python库的层出不穷,Python在科学计算、Web、大数据与机器学习等领域都展现了惊人的实力。与Java类似,Python也是一门优秀的面向对象编程语言,而且更简洁。但这不是重点,与前面所有语言不同的是,Python是一门动态类型语言。
前面提到的四种语言C、C#、Java、C++都是静态类型语言,它们需要一个称作“编译器”的东西,把源代码编译成机器码,才能在计算机上运行。而这一特点导致了所有变量都必须事先规定类型,比如我们习以为常的写法

6、PHP(可选)
程序员中流传着这样一个说法——“PHP是世界上最好的编程语言”。从提出这句话的那一刻起,就免不了一场编程语言界的腥风血雨。以至于PHP似乎成了其它编程语言的敌人,备受人们攻击。然而在这样艰苦的环境中存活下来,而且能占据很大一部分Web市场,只能说PHP有其强大的优势。PHP开发Web项目非常快,而且轻量,是一种脚本语言,嵌入到HTML里面就可以运行。因此小公司使用PHP很容易搭建起自己的Web业务。然而Web项目规模大到一定程度时,PHP就有些难以胜任了,需要Java这样重量级的Web框架才可以支撑。因此,根据应用场景选择合适的技术才是最重要的。
PHP教程尚待发掘…

三、计算机基础
现在才学计算机基础,是不是有点晚br> 当然不是,现在刚刚好。有了上面的编程基础,我们才能深入学习计算机体系结构、操作系统、计算机 络、算法等知识,这些知识不像编程那样能看到实际的效果,但却是提升水平的关键。
1、计算机体系结构
计算机体系结构告诉我们计算机由哪些硬件组成,它们各自完成什么工作,如何结合成一个有机的整体。它们是物理上真实存在的东西,相当于计算机的骨架,支撑着位于其上的软件系统。
对于程序员来说,这部分知识倒不必过于深入,推荐一本必读书:
推荐的教材: 《深入理解计算机系统》 Randal E.Bryant,David R. O’Hallaron
此书是英文版,阅读有压力的话推荐其他类似书籍。

2、操作系统
操作系统是运行在计算机上的最重要的系统软件,从一开机它就开始运行,直到关机才最后一个结束。操作系统对运行于其上的应用软件是至关重要的,从而也导致了Windows和Linux两大派系的世纪之争。学习操作系统,才能更高效地开发应用程序,这一点应该不难理解。
推荐的教材: 操作系统方面的课程尚待补充。

3、计算机 络
互联 是这个时代最伟大的发明,学好计算机 络才能胜任今后的各项工作,因为这些工作无一不与互联 相关。这套教程内容很多,讲解非常详细。耐心看完整套教程,你就能看透计算机 络的本质。

推荐一套计算机 络视频教程:
《六个月成为 络专家》 美河制作

4、算法
算法无疑是程序员的基本功,这本书介绍的算法很全面,把它认真读完并最好亲手实践每一个算法,一定会大有收获。

推荐的教材: 《算法导论》

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年1月16日
下一篇 2019年1月16日

相关推荐