Advice to Programming Beginners

1111-11-11
OTH

为什么学习编程

  1. 后信息时代职业人的基础技能
  2. 大幅提高工作效率
  3. 锻炼逻辑思维能力
  4. 为生活提供便利
  5. 一些行业强大的信息处理工具

我觉得每个人都应该学习一门编程语言。学习编程教你如何思考。——乔布斯

qiaobusi

学习编程的一些问题

什么是编程语言?

编程语言(Programming Language),是一种被标准化的交流技巧,用来向计算机发出指令。它是用来定义计算机程序的形式语言。

什么是计算机程序?

计算机程序(Computer Program)是一组指示计算机每一步动作的指令的集合。它由人类以编程语言编写,为计算机添加特定的功能,用以实现人类的某些目的

当谈到一个编程语言时,它涉及哪些东西?

  1. 一组简洁的语法(或者说,核心语言)。
  2. 一种编程的方法(或者说,编程范式),以及其背后的数学理论。
  3. 一组开发工具。
  4. 官方为你提供的标准库。
  5. 一些使用该语言的个人、公司、组织为你提供的工具、框架(第三方)。
  6. 或者还有,这种语言的“常用领域”。

初学者应该学习什么语言?

  1. python。它有强大的官方支持,且刚刚推出了官方中文文档(),官方文档是你了解python最好的途径;它有大量的数据科学、机器学习、深度学习的第三方资源。
  2. scheme。它的优势在于简洁的语法,以及大量优秀的教材。《程序设计方法》不仅仅讲了scheme,也讲了组织程序的方法和思想。而《计算机程序的构造与解释》更是解释了计算机程序的核心概念和组织方法。

如何算是学会了一门语言?

其实,只要你了解了这门语言的基本语法,其基本的编程范式,标准库的内容和使用,就可以算是“初步学会”了这门语言,你了解了它的“形状”——
但是,这不意味着你可以用它写出高质量的代码
距离写出高质量的代码,还有一些并不困难事情要做。比如,学习数据结构和算法,编程思维,架构能力。

如何提高编程能力?

  1. 学习算法
  2. 借鉴大牛的编程思想,不严谨的说是,代码的组织和分割、层次结构、顺序,以及测试的设置等。
  3. 学习计算机组成与结构,用计算机的思维去解决问题。
  4. 学习计算机网络
  5. 学习一些开发框架的使用方法,如果可能的话,关注它的实现。
  6. 了解工业级编程项目的框架结构。

学编程的方法

学习路线(pathway)

  1. 读一些计算机程序相关的新闻,文章,确定自己的需求,学习的方向目标
  2. 安装一个编程环境,使你可以马上坐下来编程,心无旁骛。(网站:Try it Online提供了这样一个在线环境)
  3. (在技术人员的指导下)寻找一些可用的初级教程,视频,教材,网站都可以,以记忆其基础语法
  4. 学习并练习算法。编写《算法》一书中涉及的程序。
  5. 了解该语言的标准与标准库
  6. 了解该语言的第三方库,开发工具,开源社区,项目社区
  7. 选择对自己工作有帮助的特定方向进行学习。

一些经验之谈

我是如何学习计算机编程的

十年学会编程

震惊!靠看书永远都学不会编程!千万人深受其害!

编程入门资料

Python

  1. 文字教程:Python 基础教程 - runoob.com
  2. 学会安装一个写python代码的环境。学会
  3. 学习路线:a. 第一个Python脚本: hello world b.Python语言与传统的C++/Java语言显著不同的地方 c.Python语言的控制结构 d.变量声明和定义 e.函数 f.列表、字典、元组 g.字符串处理 h.面向对象编程:封装、继承、虚拟函数、接口、多继承、模板 i.面向对象编程:异常处理

MIT Python Lecture Notes

MIT-6.189-A-Gentle-Introduction-to-Programming-Using-Python-2011

Scheme

  1. 教材:如何设计程序(How to Design Programs)

有了一定的编程基础,下一步是什么?

  1. 如何写编译器,解释器。这是编程者的工具,了解工具的原理是很重要的。
  2. 学更多的语言,比如Python。其他候选语言:Haskell,Erlang,Shell,Lisp的某个方言。不用害怕,学会一门语言之后,其他语言的学习成本大大降低。
  3. 参与进一些项目。可以去混开源社区,使用该社区的软件,阅读源代码和文档,跟踪邮件列表,解答新手问题,提交BUG报告和重现BUG代码,提交Patch和测试代码,反复修改Patch,讨论新功能需求和设计。
  4. 使用并关注Github、Gitlab等社区网站。
  5. 选取一个你喜欢的课题并深入学习。比如近期比较火的深度学习等机器学习各个领域。这些和将来的工作内容可以无关,但绝对很有价值。
  6. 学习如何写出高质量代码。Google代码规范是一些表面性的规范,可以让你的代码更加易读。(代码是用来给人看的,它只是恰好可以在机器上运行)
  7. 闲暇时看一些最新的科技消息,了解当今工业界或者学术界的成就和发展方向,比如Csdn主页或者一些微信公众号。
  8. 学习软件工程的知识,知道软件开发的各个阶段。

Comments

CONTENT