近期。在交流群里经常有苦逼小白问如何学编程。对编程有兴趣但无从下手。这是个庞大到让大神们“无言以对”的命题。web
在知乎、CSDN等论坛上,不少同行也对此类问题进行了探讨,小编就当中承认度较高的回答进行了整理,以望给纠结的菜鸟们一些帮助,也欢迎大神们补充和拍砖。算法
一、决定学,要有兴趣并且是真正的下定决心数据库
兴趣和耐心是老生常谈的话题,小编不在此唠叨,仅仅要记住一点。现在程序猿工资差别很是大,有能力的程序猿享受高薪。但仅仅是略懂的伪程序猿可能找不到工做,假设想靠写程序生存生活,就在兴趣的基础上认真学习。编程
二、学什么,编程语言的选择也是刚開始学习的人的困扰数据结构
语言仅仅是工具而已。假以时日,每个程序猿都能熟练掌握一门甚至多门语言。也会随着技术的发展学习最新、最方便的新语言,相比语言解决这个问题的思路和方法更为重要。编程语言
但做为刚開始学习的人。C和Python是最被承认适合刚開始学习的人的编程语言,但由于它们自身的特色,这两种语言也有必定程度上的对立性,固然其余语言也有被选择的理由。工具
C语言入门门槛较高,学习难度相对较大,但不少语言都受到C的影响。基本概念的东西理念通用,学会了C能打下扎实的编程基础。也减小了之后学习其它语言的难度,总之学习C语言是先苦后甜,刚開始要对本身狠心。post
选择C的缘由:学习
一、大部分的数据结构、算法都是C语言写的; ui
二、借助C能够学习不少其它的计算机知识,了解计算机。了解底层;
三、C语言是永恒的,门槛高但是之后受用无穷;
四、C 的设计是 Unix 哲学的体现,薄封装、透明、紧凑、一致等体现得淋漓尽致。
不选择C的缘由:
1. C贴近底层, 因此可能会让你过早地陷入底层的细节, 但是底层的细节并非普适的. 这与解决这个问题的思路学习相悖;
二、难度相对大。不easy看到成效,不利于刚開始学习的人坚持学习。
Python对刚開始学习的人比較友好,相对easy,功能也比較全面,easy看到效果。下降刚開始学习的人的厌烦情绪。
选择Python的缘由:
一、功能很是强大拓展很是广。上得web、下得脚本、画得了gui、当得了server;
二、语法简单什么平台都支持;
三、省略了很是多细枝末节。更easy理解;
四、Python基于清晰的语法和直观的问题解决方式,还有其强大的跨平台GUI工具,能激起不少刚開始学习的人的兴趣。
不选Python的缘由:
easy形成基础差,到后面会有很是多基础底层的概念混乱。
三、怎么学
编程是操做性很是强的一门知识,看书少不了,但仅仅有学习和实践相结合才干起到很是好的效果,一种学习方法是看书->研究书中样例->本身作些东西->网上找资料->看书。
研究经典教程是学习不少知识的重要方法,但看书必定要看透,学C语言时一直看到所有C的入门书籍都没有新语法。
非科班出生最好先阅读一些计算机原理和基础知识方面的书籍,利于之后各类知识的融会贯通。
编程语言的教程各类平台上都有很是多介绍。也有各类推荐,小编建议多看一些推荐,每个人都推荐的效果应该不错。
计算机导论类:
计算机科学技术导论》、《深刻理解计算机系统》、《现代操做系统》、《数据库系统概念》、《数据结构》、《编译原理》
C语言:《C Primer Plus》 《C程序设计语言》 《C语言程序设计:现代方法》 《C陷阱与缺陷》做者凯尼格 《编程精辟》做者Steve Maguire 《The C programming language》
C++(推荐博客):《Problem Solving with C++》
阶段一
《C++ Primer》
本书对C++基本概念、技术、以及现代C++编程风格进行了全面而且权威的阐述,是C++刚開始学习的人的最佳指南;本书可以帮助你编写有用的程序,而无需首先精通每个语言细节。对于中高级程序猿。本书也是不可或缺的參考书。
《Essential C++》