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

为何要学编程

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

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

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

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

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

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

然而事实不应该是这样的,当你学过计算机科学导论后,就应当明白:计算机不是魔法,也不复杂,只是一切都发生的非常快而已!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 条评论
登录 后参与评论

相关文章

来自专栏PPV课数据科学社区

数据新闻精选| R语言和网络图:数据叙事好帮手

R语言能挖掘、整理数据,网络图可以呈现故事脉络,两者各显神通。深度君精选数据网站FiveThirtyEight的R语言应用心得,数据新闻网络图叙事的类型,还可参...

3329
来自专栏鸿的学习笔记

今年的第一份书单

602
来自专栏轮子工厂

简历修改了100遍,却仍然没有找到满意的工作,你可能需要看一下这篇文章

最近恰逢秋招,身边很多朋友都跟我抱怨说,简历投出去了不少,可是很多都是石沉大海,没有了回音。于是就急的不行,纷纷跑过来请教简历制作大法。

742
来自专栏腾讯高校合作

《北京大学、腾讯联合在Coursera开设课程》分享有礼中奖信息

之前推送的《教授们说了,我们的目标是培养中国最优秀的程序员》分享有礼活动,中奖名单如下,恭喜幸运参与者!我们将按照问卷中填写的信息尽快邮寄奖品! 洪瑞琦 梓鑫 ...

3658
来自专栏机器人网

不要以为会点设计就是合格的机械工程师了

普通机械设计和机械工程师远远不是一个级别的,在我看来能配得上机械工程师的称号的绝不仅仅是画画图而已,从方案到出机都能独立完成,具有丰富设计经验,这其实相当不容易...

2745
来自专栏Java帮帮-微信公众号-技术文章全总结

【大牛经验】入行Java的一些真实感受

声明:本文只是我的个人经验之谈,或者连经验之谈都算不上,因为我觉得自己还是个新手,没有什么经验可谈,就算是我分享一下自己从开始学习Java到现在的一些心路历程吧...

581
来自专栏WebHub

同样是程序员,为什么别人比你更优秀?

随着互联网时代的飞速发展,越来越多的人投身于软件开发行业,大家都称他们为程序员,或者码农。

593
来自专栏Java架构

在北京做Java开发如何月薪达到两万,需要技术水平达到什么程度?

2174
来自专栏Golang语言社区

程序员三种境界背后的含义,大多数人不知道……

春节假期,与几位友人小聚,大家互道工作顺利、平安健康云云,期间一位驰骋商界多年的老友问:”你现在在华为做什么工作呀?”我很骄傲地说:”系统架构师“,可是他却愣了...

863
来自专栏Albert陈凯

2018-08-24 大公司为什么还在采用过时的技术!

https://mp.weixin.qq.com/s/-1VPme1Eb_ItA4ej6_Ghsw

631

扫码关注云+社区