这可能是最全的编程入门指南

为何要学编程

乔布斯说,「每个人都应该学习编程,因为它教会你思考的方式」。

我们学习编程,是不一定要成为程序员的。就像每个人都应该学习法律,但不是都要成为律师;就像每个人都应该学习经济学,但不是必须成为经济学家;就像每个人都要学习数学,也不是为了成为数学家。

不同的学科知识给予我们不同的思考方式,这些思考方式将贯穿在我们日常生活的点点滴滴。而编程本身就是一个培育思维的过程,可以帮助我们掌握逻辑思考的能力。

普遍存在于大学中的「学长效应」摧毁了一批又一批的计算机专业学生。你是否有过这样的经历:初入大学校园的你对未来的学习生活充满好奇,对计算机专业不甚了解,但兴趣满满。上过了一些课,觉得有些容易,有些则需要多花些时间钻研。你心中对专业的方向和未来发起疑问,来到网上或是通过各种途径联络学长,想问问自己专业未来的蓝图是什么样子的。

学长拍着胸脯告诉你,学这些没用,期末突击一下就能考过。你如释重负,像是看透了一切,觉得学长所言极是,很多课平时都不用去上,期末照样考过,学分照拿不误。

然后你发现在计算机专业中让你感兴趣的东西越来越少,再后来开始怀疑自己是不是选择错了方向,毕业后突击式地学习一门语言或是一项技术,然后找一份凑合的工作,看到公司有些技术人员拿着比自己多数倍的工资不明白为什么,甚至感慨大学白上了还不如去上个技校,反而觉得自己能干的事情越来越少了,太多新的技术需要学习和了解,对此感到应接不暇……

然而事实不应该是这样的,当你学过计算机科学导论后,就应当明白:计算机不是魔法,也不复杂,只是一切都发生的非常快而已!C 语言只有 9 种控制语句,却能编写出像 Linux 这样复杂高效的操作系统,还有 Nginx 和 Redis 这些高性能网络服务器也是纯 C 语言编写的!

计算机只知道一些最基本的语句和方法,再复杂的程序也都是由这些语句和方法组合而成,计算机真正的魅力和价值就在于我们可以将现实中的复杂问题抽象并转换成一系列简单步骤后,再放心交给计算机去完成。所以我们在学习过程中,真正训练和提高的正是发现问题、分析问题和解决问题的能力。

有人说「编程将成为人们新的读写能力」,其实这里强调的更多是编程背后的计算思维。

仔细想想,会发现我们其实一直都是这样在解决问题的。比如用洗衣机洗衣服的过程,先是根据待洗衣物的数量,为水位调节函数传入水位参数;接着,使用循环控制结构来设定漂洗函数被调用的次数;然后,为洗涤时间控制函数和脱水时间控制函数传入时间的参数值。最后,按一下「运行」的按钮,一切就都按照你的意愿来进行了。

在未来,一切都是可编程的,我们的生活、工作、学习效率也将大大提高。伴随着物联网的到来,我们会发现身边的一切都可以通过自己编程来实现定制化的服务,届时,生活质量的高低将更多体现在是否有能力通过编程技术来实现你的想法上。

如何学编程

多看好书

差书误人子弟,不但浪费时间和精力,而且打击人的信心,差书使人很久都不会,会让人怀疑自已的学习能力。  

现在的书很多,但好书很少,特别是被大家公认很有价值的好书更是少之又少。历经多年时间考验和市场风雨的残酷洗礼而仅存的巨著,更是极其稀少。中国历史上文学小说类书本多如牛毛,但仅存的巨著,也只不过<<红楼梦>>等四本名著而已,编程方面也是如此。

多动手

这一点很重要。而且特别重要。“纸上得来终觉浅,绝知此事要躬行。”陆游的千古名句说的就是这个道理,并且同样适合于编程方面。

用什么语言最好

这主要取决于应用领域,每种语言都有自已的长处和不足。

  1. 汇编语言和C语言在单片机及工控领域用较多。另外C语言也是一种通用语言,是学C++/C#的起点。
  2. C++系统编程等多个方面,最常用的编译器是VC。
  3. C#/Java网络编程方面新兴的。
  4. VB通用。
  5. 还有Delphi等等。

老九君建议:从未编过程的,就从学C语言开始。有基础的可直接学C++或是Java。

学习C和C++,不得不推荐的两本书非C/C++ Primer Plus莫属了。为什么呢?

  1. 这两本分别是C和C++的经典入门书籍,虽不能说经典的就是最好的,但是能够流行这么久,说明它经得起市场的考验。
  2. 内容全面详细,理论扎实。
  3. C和C++Primer Plus在豆瓣读书上评分分别是9.2和8.6,可见大部分人对这两本书的评价是比较高的。
  4. C++Primer Plus书中的涵盖了C++大部分知识点,并且严格符合C++的标准。计算没有详细讲解的知识,也列出了参考书目和概念。这本书应该是那种要让人不停复习,不停翻看的书。

PS:明天老九学堂商城将会上架这两本书籍,到时候有很多套餐和优惠大礼包。

训练的四个阶段

第一阶段:掌握一门编程语言

  • 学习内容:学习任意一种主流的编程语言,例如C++语言。
  • 学习目标:熟练掌握一种语言的语法和基本的编程技巧。
  • 学习时间:3个月左右
  • 注意事项:编程语言和编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代码编辑器、程序编译器在内的集成化、可视化的软件开发工具。

第二阶段:掌握一种编程工具

  • 学习内容:学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语言一致,例如你学习的编程语言是C++,那么编程工具要选Code Blocks、Visual C++ 6.0或者C++ Builder 5.0。
  • 学习目标:熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。
  • 学习时间:3个月左右
  • 注意事项:这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。

第三阶段:掌握“算法与数据结构”这门课程

  • 学习内容:算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。
  • 学习目标:熟练掌握各种常用的算法与数据结构
  • 学习时间:4个月左右
  • 注意事项:这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,这说明了数据结构和算法的重要性。它能帮我们建立良好的程序分析与设计能力。

第四阶段:掌握“算法与数据结构”这门课程

  • 学习内容:软件项目的开发过程
  • 学习目标:掌握软件项目的基本开发过程和方法
  • 学习时间:4个月左右
  • 注意事项:自己完成一个模拟的小型软件项目,推荐做一个MIS(管理信息系统)软件。

最后:将完成的模拟软件拷到U盘,作为自己的作品去面试,以此踏上自己光辉的职业程序员之路!

原文发布于微信公众号 - 老九学堂(xuetang9)

原文发表时间:2017-03-16

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

业界 | 如何像程序员一样思考

即使你的运气一向很好,这种方法也并不值得使用。事实上,它可能是最糟糕的解决方法,因为会浪费大量的时间。

921
来自专栏小白课代表

我们来学一门编程语言吧。

新增“Python语言程序设计”科目(代码:66),考试时长:120分钟,软件要求:Python 3.5.2版本及以上IDLE,2018年9月首次开考。

1553
来自专栏量化投资与机器学习

Python VS Matlab----给我一个理由先

最近好多人问我这个问题:究竟要学哪门语言比较好,是Matlab还是Python呢。所以今天我就两门语言做一个详细介绍,大家也可以根据自己的兴趣做出自己的选择。...

2.4K9
来自专栏架构说

程序员的5种角色(不容易呀)

英文:exceptionnotfound。 译文:伯乐在线 - ashiontang 链接:http://blog.jobbole.com/86900/ 我认为...

2839
来自专栏安恒信息

世界图书日|看看你的书单还缺哪本书

“读史使人明智,读诗使人灵秀,数学使人周密,科学使人深刻,伦理学使人庄重,逻辑修辞使人善辩,凡有所学,皆成性格。 ——培根”

991
来自专栏大数据钻研

更快学习 JS 的 6 个简单思维技巧

当人们尝试学习 JavaScript , 或者其他编程技术的时候,常常会遇到同样的挑战: 有些概念容易混淆,特别是当你学习过其他语言的时候。 很难找到学习的时间...

48212
来自专栏帘卷西风的专栏

游戏开发图书推荐--我读过的技术经典图书

很多同学问我学游戏开发应该看些什么书,我在这里抛砖引玉,给一份推荐表,希望大家共同提高。由于本人英文不太好,推荐的大部书籍都是国人编写的,有些经典的外文图书可...

1291
来自专栏老九学堂

给程序员们的小秘籍

● 前言 ● 编者是一个工作多年的程序员,也有做过一些大中型项目的经验。尝过成功的滋味,也体验过失败的痛苦。虽然觉得自己离真正的高手还有距离,但也希望能分享出自...

3727
来自专栏Crossin的编程教室

我是如何在自学编程9个月后找到工作的

昨天在我在国外网站 reddit 上看到一篇文章,作者分享了他自学编程 9 个月后找到工作的经历。文章不到一天就得到3千多赞,2百条回复。我看了下内容,非常中肯...

2733
来自专栏互联网高可用架构

面试秘籍 - 通过准备快速进入BAT等互联网企业

1742

扫码关注云+社区

领取腾讯云代金券