我觉得每个人都应该学习一门编程语言。我把计算机科学看成是教育,每个人都应该花至少1年时间学习编程。
不知道你有没有发现,身边会编程的人,好像很容易变得吃香。先不说那些高薪的程序员们。其实,市面上97%的工作,如果你会一点点编程技巧,都会更高效,你也会轻易地脱颖而出。因为学会编程,不仅能帮我们更高效地处理一些日常工作,还能帮助我们形成更清晰、严谨的思维习惯,学会正确地分析问题、解决问题。前年,我认识一个哈工大的小伙子,一开始他连 printf 都会打错,但他很坚定地表示,一定要学好编程。后来,他狂补代码,每天有规律地刷算法题。大四那年,他校招拿到了腾讯的 offer,现在已经是手撕“红黑树”的老妖怪了,未来可期。我还有一个朋友,本科是学商科的,毕业后在国企做了几年,想转行程序员。眼看着他从 C 语言最基础的知识开始,一路打怪升级到可以做一个个小项目。现在已经是个很优秀的后端开发了,月入也早已过 2 万。可能有人觉得这是幸存者偏差吧,但我看到的是,一个人只要努力,一定会成长得很快;学会编程,也的确可以让你在职业选择上多一条路。而且,程序员薪资的起步和涨幅,是远远超过其他行业。所以,何不为自己多铺设一条路呢?但是,一提到编程,很多人就觉得无从下手,不知道该怎么学?1. 找到一个有多年编程经验的“教练”,从思维、代码、工具、实战等多维度带你入门编程。2. 制定一份正确的学习计划与路径,比如每天一个编程小任务,花点时间攻克,你需要的是好方法,而不是更多的无用功。
这张图出自胡光老师的专栏《人人都能学会的编程入门课》,他教编程的十多年来,见过很多初学者的困惑与迷茫,正基于此,他结合了自己学编程的经历,和极客时间合作推出了这个专栏,希望可以带领每一个初学者,迈过编程路上最困难的坎。
专栏中,他会带你每天 10 分钟,轻松学编程。除了帮你找到学习编程的正确方式,还会帮你建立学习过程中的信心,构建系统学习与思维的能力,从而达到对知识的融会贯通。他是原百度高级算法研发工程师。写了 13 年程序,拿过 ACM 亚洲区金牌,进过两次全球总决赛,就职期间还开发了部门内的第一版推理引擎,并顺利在人物关系推理等应用场景中落地实施。
后来,由于兴趣,开始从事教育行业,希望能帮助更多的人从零开始学习编程。他所教导的学生中,双非院校中的本科生最高毕业薪资为 59.5 万,211 类院校学生毕业平均薪资达到 35 万以上。线下培训了一批又一批的学生后,他总结提炼出一套“编码能力训练”方法论,帮初学者把分析具体问题的思路转换成代码的技巧,也就是实战写代码的能力。这一套方法,能让每一位初学者在短时间里扎实地提升了编码能力,再配合后续的算法数据结构学习,这样进行下来,半数以上的学生最后能在 1 小时内,没有 Bug 地打出来红黑树的全部代码,顺利通过线上标准测试集的测试。
从形式上看,本专栏摒弃知识点的填鸭式教育,而是用一个个小任务,引导你理解语言特性背后的逻辑,让你在完成小任务的同时,锻炼自己的编程思维能力,具体可以看看目录。从内容上来说,专栏设置成了四部分:语言基础篇、编码能力训练篇、算法数据结构篇和综合项目篇。一个较难的项目,需要仿照 Google 测试框架开发一个自己的测试框架。
第二个项目较简单,实现一个带变量的表达式计算程序。
项目过程中,将带你从需求到设计逐步分析、拆解,并会给出一部分核心代码的讲解。另外,你也可以通过自己的思考和文章中的引导,自行补全没有给出的部分代码,从而完成整个项目的开发与实现。🌟掌握C这门迁移性最好的语言,以便日后学习其他语言。理解了 C 语言,你就理解了操作系统,也就理解了所有语言的运行环境。
🌟掌握从简单的问题出发训练编程技巧的方法,为日后将思想转换成代码减少障碍。
🌟掌握算法、数据结构学习的关键方法,为自学其他数据结构和算法打好基础。
帮你逐渐建立学习编程的方式方法以及建立学习过程中的信心,也正是胡光老师推出这个专栏的初衷。