您应该如何开始学习编程?

有几种学习编程的主要方法。 您可以在学院或大学注册正式的计算机科学程序。 您可以从网络和其他地方的可用资源中整理学习路径。 您还可以参加一个集中训练程序设计技能的训练营。 每个都有其权衡。

让我们看看第一种选择,大学。 此选项很受欢迎,但是在时间和金钱上都很昂贵。 这些障碍通常使得获得学位绝大部分是无法达到的。 大学要求的课程不在编程范围之内。 这些主题为您提供了更全面的教育,但是却增加了时间和成本。 在正式课程中,您还将发现您对实际学习的东西几乎没有控制权。 学术界教授的技术并不总是反映当前的情况。 工具的选择通常取决于教学人员的知识和舒适程度。 课本和其他学习材料的可用性也可以发挥作用。 这些正规学校的教学本质上是理论性的。 当学生学习更高层次的概念时,他们通常会缺乏应用这些概念的技能。 不幸的是,有一部分毕业生发现自己没有做好工作的准备。 他们最终可能花费更多的时间和金钱进行自学或参加训练营。

“尽管学生学习了更高层次的概念,但他们常常缺乏应用这些概念的技能。”

随着互联网的兴起,自学方法变得越来越流行。 互联网上充满了针对试图学习编程的个人的内容。 还有许多很棒的书可以帮助完善学习过程。 自己学习编程从未像现在这样容易或困难。 基本上,大多数可用内容都是针对初学者的。 随着学习者朝着更复杂的主题发展,教材的重要性也逐渐降低。 编程是一个非常非常广泛的主题。 从汽车到恒温器,几乎所有东西都配有计算机。 这些项目需要必须进行编程的软件。 必须对大量内容进行分类以确定适用的内容。 此外,计算机编程中的许多概念是相互补充的。 学习概念而不掌握基础技术可能很困难,即使不是不可能。 整个行业一直在变化。 您可以对学习特定技术进行投资,却发现它已经过时了。 许多人成为追逐最新最伟大技术的受害者。 当这项技术失宠时,才发现自己在回头转圈。 需要经验来确定哪些经得起时间的考验。 协商确定学习内容的挑战需要大量的自律。 学习者必须制定并遵循自己的培训计划。 当他们陷入问题时,他们还必须找到答案的来源。 当您无法自我激励和自我调节时,这是非常具有挑战性的考验。

“许多人成为追逐最新最好技术的受害者。 只是发现自己在该技术失宠时回头了。”

这使我们进入了第三个选择,即训练营。 训练营旨在为学生做好准备。 它们比典型的大学学位路线要短得多。 作为一种折衷,他们通常无法覆盖那么深的材料。 训练营还提供培训计划和指导说明。 大多数训练营的学生也是班级或同类的一部分,并且与其他学生有某种互动。 许多训练营的持续时间很短。 他们专注于程序员需要雇用的一小部分技能。 这些课程的毕业生发现自己只有最低限度的资格,这是不胜枚举的。 较小的95%的人发现自己正在竞争入门级职位。

“这些课程的毕业生发现自己只有最低限度的资格,这是不止一次。”

还有第四种选择。 在我担任教师的Launch School中,我们相信答案是基于掌握的学习。 这意味着有意识地选择强调知识而非速度的道路。 顺便说一句,基于掌握的方法也很适合初学者,因为他们具有自定进度并且灵活,可以在学习与其他承诺之间取得平衡。 该计划的时间不像大学的传统“四年制”计划那么长,而且只是成本的一​​小部分。 发射学校的道路设计合理,重点在于教授很少变化的基础知识和技术。 我们发现,这种方法不仅是学习编程的最佳途径,而且是迈向软件工程职业的跳板。


本文最初是作为 对Quora问题 的解答而发布的 对于有相同问题的中级读者,此处重新发布。