我希望在第一次学习编程时就知道的 5 件事
开始你的编程之旅是令人兴奋的,但很容易陷入阻碍你进步的陷阱。通过了解新程序员常犯的错误,您将从一开始就为成功做好准备。以下是我犯过的五个错误,你可以从中吸取教训。
1. 不要关注语法,要看背后的逻辑
当学习编程时,很自然地担心语法是否正确。任何语言的符号、关键字和结构一开始都会让人感到害怕,因此您可能会错误地主要专注于记住语法。然而,这可能会适得其反,特别是因为语法本身并不能帮助您理解代码的工作方式或原因。
编程中真正重要的是逻辑,即将问题分解为计算机可以执行的步骤的过程。语法只是以机器可以解释的方式表达逻辑的一种方式。考虑一下经典的初学者问题 FizzBuzz。当尝试解决这个问题时,专注于语法的初学者可能会陷入如何构建 if 语句的困境。
当我刚接触编程时,我过于专注于学习语法,尤其是括号、分号和代码结构。结果,当我试图解决问题时,却遇到了困难。当然,我知道如何使用条件和循环,但实际使用它们来实现解决方案超出了我的范围。
相反,对我来说专注于解决方案背后的逻辑会更有帮助。理解这个逻辑意味着我可以将此解决方案适用于 Python、JavaScript 或任何其他语言。在现实编程中,即使作为经验丰富的开发人员,您也经常会查找语法细微差别或库方法。
2. 与其学习多种语言,不如先精通一门语言
许多初学者认为了解多种编程语言可以使他们成为更好的程序员。但实际上,对一种语言的深入了解比对几种语言的浅层理解更有价值。在不掌握任何一种语言的情况下从一种语言切换到另一种语言可能会导致混乱和效率低下。
当您专注于单一语言时,您就可以在基本编程概念(例如变量、循环、条件、函数和面向对象编程)方面打下坚实的基础。这些概念是编程的核心,一旦深入掌握它们,就可以相对轻松地将它们应用到任何语言。
想象一下,您从 Python 开始,因为它适合初学者,并且广泛适用于 Web 开发、数据科学和自动化等领域。通过专注于 Python,您可以熟悉核心编程原则,并开始构建强化这些概念的项目。
我从 C 语言开始了我的编程之旅。我很快就感到无聊并转向网络编程。然后我看到Python的流行并开始学习它。最终,我无法正确地学习它们中的任何一个。当时,我认为了解几种语言意味着我可以在需要时使用所有这些语言。然而,当谈到应用它们时,我要么完全失败,要么写出非常糟糕的代码。那是因为我不知道任何语言的中级或高级概念。
3. 不要让教程束缚你
当开始学习编程时,很容易陷入一个又一个观看教程的循环中,认为自己正在取得进步。但仅仅观看或跟随并不能培养您编写自己的代码或解决实际问题所需的技能。这就是通常所说的“教程地狱”,你不断地消耗信息而不实际应用它。
事实上,编程是一项基于实践的技能。就像你无法通过观看别人踢球来学习踢足球一样,如果不实际编码,你就无法成为一名程序员。假设您正在学习 Python 并找到一个教程系列来指导您构建费用跟踪器。您与讲师一起编码,在视频结束时,您就拥有了一个可以使用的计算器。感觉像是进步了。
我犯的一个大错误是收集不同的视频教程、课程、博客和其他资源并开始沉迷其中。我观看了一个又一个视频,完成了一个又一个播放列表,一路上只复制了代码。由于我只是跟着做,所以当被要求从头开始构建一个应用程序甚至一个小项目时,我很挣扎。
当您不必自己做出决定或面对挑战时,您无法内化项目背后的逻辑。相反,在观看教程的第一部分后,尝试暂停并构建项目的更简单版本。即使在没有直接指导的情况下完成简化版本也将帮助您了解如何构建和解决自己的问题。
4.边做边学
说到编程,没有什么比“边做边学”更好的了。理论知识和被动学习可以给你一个基础的理解,但只有实践经验才能巩固这些知识并帮助你成为一名自信的程序员。基于项目的学习,您可以积极地创建和构建,这将帮助您培养实际的编程技能。
项目可以小到待办事项列表应用程序、测验应用程序或简单的游戏。您尝试的每个项目都会给您带来新的挑战,迫使您当场查找特定的语法或解决问题的方法。通过专注于项目,您将获得解决现实问题的信心,并开始将自己视为一名独立的程序员,而不仅仅是教程的追随者。
我曾经做过一个实验。我想学习 PHP Laravel。我决定从一开始就致力于一个项目,而不是咨询教程。我下载了一个开源项目并开始阅读它的代码,到处调整它以查看更改。这是人们通常学习语言的不同方法。有趣的是,我在短时间内学到了很多东西。很快我就可以编写 PHP 代码并在实际项目中添加新功能。
5. 不知道一切都好
当你第一次开始编程时,很容易觉得你需要知道一切。每个语言功能、每个框架、每个工具。但试图预先学习这一切是压倒性的且不现实的。即使是最有经验的开发人员也不知道一切,但这完全没问题。编程是一个不断发展的领域,总是有更多东西需要学习。接受这个事实可以减轻你肩上的巨大负担,帮助你专注于稳步进步,而不是试图一次性掌握所有事情。
编程涉及广泛的技能:语法、算法、数据结构、框架、调试技术、库等等。试图一次性涵盖所有内容会分散你的注意力,并使你无法在任何一个领域获得深度。这种深度的缺乏使得构建项目或解决实际问题变得困难,因为你不断地从一个新主题跳到另一个主题,而没有完全理解其中任何一个主题。
就我而言,我常常因为试图梳理编程语言中的每个主题而不知所措,直到精疲力竭。我越想学,就越觉得自己什么都不懂。更好的方法是专注于一些核心技能,并随着经验的积累逐渐扩展您的知识。从基本概念开始。一旦你感到舒服了,就可以继续学习稍微高级的概念。当你构建项目时,你自然会遇到需要学习的新东西,但这些东西会在它们有用的环境中出现。
学习编程是一个充满挑战的旅程,犯错误只是这个过程的一部分。将这些挫折视为成长的机会,并记住每个专家也曾经是初学者。请记住,您编写的每一行代码都会让您更接近成为您想成为的程序员。