知乎/回答
2 分钟

你会如何重新学习编程?

作者

创建于

发布于知乎/回答

我觉得这是一个非常好的问题。计算机编程这门学科本身非常年轻,技术日新月异,我们走过的路都不一定是最好的路。不断地反思可以给后面的同学更多的经验,帮助大家成长的更快。下面是我的一些思考。

简单的语言入门

我一直认为,一门新的学科的入门,一定要激发兴趣,最重要的一点,就是要深刻认识学了有什么用,能够解决什么问题。因此,上手的编程语言既要简单,又要实用,比如 Python,JavaScript 这样的语言。

过早的接触繁复的语言很容易迷失在一些细节之中,让人沮丧。

应用驱动

一但熟悉基本的语法,就可以开始多多关注应用,探索自己的兴趣所在。

我建议在学习的早期,一定要接触不同领域的编程应用,比如网页前端、后端、数据库、移动开发、数据挖掘等等,往底层也要去看看计算机网络、数据库、编译器、操作系统的实现等等。

同时,抓住机会多参与企业的实习,我在湾区招聘不少本科生的简历上都是大一大二大三每年都出去实习,而且都在不同的公司,不同的方向。

计算机科学的领域已经十分广阔,不可能每一个方向都精通。探索地越早,就越容易了解自己真正感兴趣的方向,有助于深入地学习某一个方向的课程。

使用工具与制造工具

作为工程师,我们的职责就是不断地使用工具和制造工具。而真正能让我们无可替代的,是制造工具的能力。

我看到不少人的困惑,为什么我们要学习计算机原理,数据库的实现,编译原理,操作系统的实现这样的课程。很简答,因为这是计算机这个领域人类造出来最完美工具。它们凝结了无数人的智慧,解决了大量复杂的问题。站在前人的肩膀上,我们可以学习解决问题的思路,不断地记忆和模仿,造出更好的工具。

使用工具和制造工具的能力相辅相成,但是在职业发展的方向上会慢慢出现分叉。在探索的过程中,可以多多思考,你喜欢解决的问题,到底是技术需求,还是业务需求。你觉得最快乐的事情,是实现了非常精密的系统在复杂的业务环境中抗住了一百万的 QPS,还是使用一些工具的组合(哪怕很低级),为公司多赚了一百万美圆。

观摩顶级学校的公开课程

越来越多的顶级计算机学校都把计算机相关的课程公开给所有人,比如斯坦福、CMU 等学校。这些学校的课程的老师和助教都是最顶级的,课程的设计也都非常循序渐进。学有余力的同学不必拘泥于自己学校的课程进度,直接接触这些课程能让你进步速度更快。