对于不是科班出身而想零基础学习编程的人来说该怎么去学?又该看哪些书籍呢?
学习方法
一、选择一门编程语言。
当前盛行的编程语言是非常之多的,你们自己可以去百度一下编程语言的排行榜,不出意外,c++和Java排在前两位,剩下的可能是python,也可能是PHP等等。排行不重要,选择哪一门语言开始很重要。在我有限的代码生涯里,经验告诉我,做什么事情,入门很重要。对于编程语言来说,如果想真的了解编程的思想的话,要选择一门面向对象(这里先不要纠结什么是面向对象。)的语言,其次是应用广,最后是简单易学。综上三点来说,Java作为入门编程语言很理想。有人说,c++和c是什么关系呢,大学里学的是c语言啊。其实c++和c几乎没有相似地方,某种程度上,它们完全是两种语言。之所以不选择c++作为入门编程语言原因是,c++概念太多了,对于新手而言,常常为了去了解一些概念而忽略了编程里最重要的东西。所以,Java概念少,上手容易,面向对象,选择它,没有错。
二、学好数据结构和算法。
对于多数的讲解编程的书来说,极有可能都能提到一段话:编程=算法+数据结构。可以说,算法和数据结构是代码的灵魂。我们老实说,xx代码写的烂,xx代码效率不好,最根本的原因是,代码没有灵魂,没有经过深入的思考。打个什么比方好呢,把编程比作造房子的话,语言好像你用什么工具去造,是机器造呢,还是手工拿砌刀造。而算法和数据结构就像你是看着图纸精确建造还是胡造自己捏造一样。所以学习数据结构和算法是程序员内功的修炼,有了内功,再去搞一些花把势就简单不过了。
三、选择一个应用方向。
正直你已经学到了Java语言,而且最平常的数据模块以及其算法都能默记起来了,你想搞一些能看得见用得上的东西来满足一下自己。但是你又不知道搞点啥,就是不知道怎么用它们。原因是你不知道它们怎么用。你想知道手机APP是怎么开发出来的,它们的数据是从哪来的,中间是怎么传送的,电脑是怎么运行的,或者电梯里的算法是什么样的,甚至汽车的自动驾驶是怎么一回事。等等等等,好像我们的世界周围全是代码一样。 你想知道它们到底怎么工作的,但是你不可能有那么多的精力全部搞懂它们,所以你就要选择一个非常感兴趣的方向来研究,笔者建议选择自己感兴趣的方向来搞而不是钱多的,因为当你真正开始靠代码为生的话,你在工作上的热情决定了你的最终高度。由于笔者是做Android客户端开发的,之后在介绍完Java语言和算法后,会进行Android APP的开发,感兴趣的同学可以继续关注,不感兴趣的呢,在学习完我讲解的java和算法后可以自己搞起啦。
推荐书籍
1、C语言入门,初学,编程基础
《C语言程序设计:现代方法》(第2版)
《深入理解计算机系统》(修订版或第2版)
《程序员修炼之道》
《一站式学习C编程》
《c primer plus》最最不能错过彼肩的经典
2、内核/驱动
《Linux内核设计与实现》(第3版)
《Linux设备驱动程序》(第3版)
《深入Linux内核架构》
3、应用
《UNIX环境高级编程》
《UNIX网络编程》
4
进阶
《C陷阱与缺陷》
《C专家编程》
《ARM嵌入式系统开发:软件设计与优化》