初学者编程的 17 个错误(帮助指南)
忘记问为什么
从小我就一直想成为一名工程师。灵感来自我叔叔家的那台电脑。我第一眼看到电脑就立刻爱上了它。我最初用电脑玩游戏,我的第一款游戏是《VR警察2》。当时我的鼠标用得非常差,所以小时候没能打通第一个Boss。所以一切就从这里开始了。
十几岁的时候,我痴迷于科技。所以我本科选择了计算机科学与工程专业,并努力提高自己的编程水平。刚开始的时候,我经常编程,但有一天,我发现自己并没有取得应有的进步。那么,我到底做错了什么呢?
当然,我做了很多错事!所以我决定写下我的故事,讲述编程新手常犯的错误。我列出了我在编程过程中犯过的17个错误。所以这篇文章会很长。请继续往下读,或者直接看总结部分(滚动到底部)。

陷入教程地狱
我想你从标题就能想象到发生了什么。是的,我被教程迷住了。我每天都看好多教程。

有时候,我感觉自己唯一能做的就是,当一个问题浮现在脑海中时,我会用谷歌搜索,然后看教程就能搞定。我在大学里表现不错,因为在大学里你不需要做出什么了不起的东西。但当我开始工作时,我意识到那些入门级的教程根本不够用,所以这彻底打破了我的信念。我在大学里表现很好,成绩也很棒,我以为自己会编程,但说实话,最近我才意识到,我当时真的很糟糕。但我不知不觉中,我被自己拯救了,怎么做到的呢?因为我的大脑很有创造力,所以当我看教程的时候,我也会尝试做一些通常初学者不会做的新事情。举个例子——
当我在练习寻找1-100之间的素数时,大家都在做同样的练习,并没有进一步深入,老师也从不告诉我们要多做。我做的更多,因为我的大脑想做。当大家都忙着寻找1-100之间的素数时,我尝试了很多方法,比如
- 获取用户限制
- 计算素数
- 寻找大素数
- 玩转寻找素数的时间
如果你被教程卡住了,那就别看了,直接开始动手做点东西吧。这是我给刚入门的人的建议。不过,我也很想知道,大家能做些什么才能摆脱这种教程的“地狱”?你对编程初学者有什么建议吗?
不重视干净的代码
哦不!我不想多说,因为一想到我以前的代码,我就觉得自己写这些代码太烂了。我刚开始写代码的时候,从来没注意过写得干净。

当时我甚至都不知道整洁代码是什么意思。原因有很多,因为我的大学老师从来没有告诉过我我的代码很乱,我不应该这样写代码。他们从来没有教过 IDE 可以帮助我编写更好的代码。也许我在想他们可以用更好的方式教我们。但我不会介意,因为我会用谷歌,所以我没有搜索整洁代码,因为我从来没想过它那么重要。我在最后一个学期终于开始做一个项目时才明白这一点。我编写了很多网页,一周后我重新打开它们时,心想——天哪!谁写的这些代码?!还有一件事我忘了说,我看的编码教程中也写了一些糟糕的代码。我学会了编写整洁代码的重要性,并在我最终从 Udemy 上了一些课程后正确地学习了编码,因为那里的老师很棒,他们对此进行了很多解释。我对初学者的建议是,在你开始的时候就学习它,因为它和学习编码一样重要。因为如果你只是练习糟糕的代码,那么在你意识到之前,它就会变成你的习惯。对于那些已经知道如何编写干净代码的人,你对初学者有什么建议吗?
试图记住一切
说实话,我上大学的时候,觉得只要记住一些东西就能做得很好,因为老师会针对一些具体的东西提问。所以我记住了一些我没完全理解的代码。但这真的很糟糕。因为一旦你开始记住代码,你现在或将来肯定会失败。没有人能救你。学得慢没关系,但理解它才是最好的。你可以通过死记硬背来写代码,就像HTML可以通过死记硬背来完成一样。但你不需要那样做,因为你可以使用cheat-sheet,而且你也能理解标签。比如
<ol>
<li></li>
<li></li>
</ol>
你知道是什么ol
意思li
吗?当我第一次记住这个时,我只知道这将创建一个有序列表,但我一直忘记它,因为我试图记住它。

但过了一段时间,我理解了“ol
和li
”的含义,就再也忘不了了。所以,永远不要死记硬背代码,因为如果你懂编程,就能轻松猜到要写什么。听起来很难?试试看,你会惊讶于自己的能力。
顺便说一下,ol
方法ordered list
和li
方法listed item
。很简单吧?
努力学习所有知识,减少对高级主题的关注
我刚开始学习的时候是从 C 语言编程。但是我太渴望学习更多的东西了,所以我不断地从 C 语言跳到 C++,然后尝试了一点 C#。后来我们大学的面向对象编程课程要求我们使用 JAVA。所以我也学习了 JAVA。然后对于一些课程,我学习了汇编编程、Matlab、Python、HTML、CSS、JavaScript、PHP 等。但是如果当时你让我选择一个,我做不到,因为我对其中任何一个都不擅长,我只是了解它们并用它们写了一些代码。我喜欢 python,但我不知道如何在 python 上进行字符串反转,也不知道如何用 python 做算法。因为我以前用 C 语言编写了所有的算法,所以我不擅长使用 python 来编写算法或数据结构。我一生中最好的情况是,我从零开始学习 python,在 4 年内,我的 python 水平非常高,几乎掌握了职业生涯良好开端所需的一切知识。我没有遇到这种情况,因为大学里没人告诉我坚持只用一种语言,而且需求各不相同,所以我需要学习很多编程语言。最近我了解了 JavaScript 的底层工作原理。我学习了 V8 引擎以及 JavaScript 内部的一些其他知识。大多数教程并非旨在帮助理解这门语言,它们只是让你在不理解其本质的情况下也能构建一些东西。没错,你可以通过观看教程创造出令人惊叹的东西,但这并不能让你成为一名优秀的程序员。你只会依赖于你那些糟糕的代码,因为当你了解了底层原理之后,你才能写出更优化的代码。我当时并没有专注于高级编程主题,而只是专注于掌握编程语言,这是一个糟糕的决定。我们应该深入学习一个主题,而不是一味地了解一切!所以我的建议是选择一门语言并坚持下去。另外
- 了解其工作原理
- 学习如何用这种语言编写更好的代码
- 如何提高用该语言编写代码的效率
- 了解更多 加深对主题的了解
如果您做了这些事情,那么您可以说您是专家,如果您的知识不够深入,那么您就不是专家,而且我知道当前阅读此文的人都想成为专家(他们中的大多数,有些人已经是专家,而且我知道他们正在查看这篇文章)。
急于采用框架
大学最后一个学期,我意识到自己需要找工作,于是我开始调查当地的招聘信息,发现 LARAVEL 在我所在地区的薪资待遇不错,而且由于我当时懂 PHP,所以找工作对我来说很容易。虽然我的 PHP 水平并不高,但我凭借一些 PHP 知识创建了大约 3 个项目,所以我很快就开始学习 LARAVEL 了。刚开始学习 LARAVEL 的时候,我感觉自己对 LARAVEL 了解不多,但所有代码都是用 PHP 写的,我不禁想问:“我到底在看什么语言?”

LARAVEL 很简单,但要真正掌握它对我来说却很难,因为我对 PHP 的很多功能都不了解。我很早就开始使用 LARAVEL,如果我先学好 PHP,然后再学习 LARAVEL,那么我相信我会做得更好。我花了更多时间去理解 LARAVEL。但是当我学习 LARAVEL 时,他们发布了另一个版本,我需要了解新功能并花时间使用它,因为我甚至不了解它的一些基础知识。我以为 LARAVEL 很难,但现在我知道我的方法错了,我所做的一切都是为了进入一个框架。但我应该花更多时间来磨练我的技能。现在我认为在学习一个框架之前,任何人都应该学习
- 编程语言很好
- 了解该编程语言的优势
- 使用该编程语言的 OOP
- 了解连接数据库的方法
- 做一些好的项目,你可以获得很多经验
- 使用该语言清理、重构和扩展代码
如果您急于采用某个框架,请在评论中分享您的经验。
没有建设好的项目
当我了解到“一名 Web 开发人员应该拥有一份出色的作品集”时,我便开始考虑做一些项目。我的第一个坏习惯就是跟随 YouTuber 来做项目。我做过一些不错的项目,但说实话,它们都很基础。当我向别人展示这些项目时,他们的反应是——哦!好项目!但经过几次面试后,我明白了,它们并不好。如果你不打算在编码领域构建你的产品,那么你应该花时间做一些有趣且好的项目来展示你的技能。创建一个简单的博客并不能给你带来工作,至少不是你想要的工作。构建好的项目是获得好工作的过程。如果你想要一份好工作,那么你需要一些编码问题和解决问题的丰富经验。如果你只是在构建一个简单的项目,那么你永远不会遇到一些棘手的问题,通常我们通过观看 YouTube 教程制作的项目,它们非常简单。当你要创建一个大型项目/实际项目时,你会发现这些知识是远远不够的。

因为有很多东西你从未接触过。比如你用过套接字写过代码吗?你有没有做过集成多种支付方式的网站?或者你有没有做过允许用户拖放并进行创意创作的网站?另外,我可以说大多数 Web 开发人员从未开发过完整的 Web 应用程序。我在职业生涯开始一年后就创建了我的第一个 API。与此同时,我在一家公司工作,他们只开发 PHP 网站。我做全栈 Web 开发人员时也做过同样的事情。当我换工作并搜索其他全栈开发人员的职位详情时,我了解了 API、移动应用程序以及一些不同的东西。所以我的建议是构建一些真正优秀的项目并将它们添加到作品集中,这将大大增加你获得工作的机会,超出你的想象。此外,这还能帮助你在面试官面前谈论你的项目,大多数人无法在面试官面前谈论他们构建的任何东西。
不做任何算法编码
在参加了一些好公司的面试后,我明白了这是个错误。实际上,在我的国家,任何人都可以找到工作,即使对算法不太了解。我参加了很多面试,以获得面试和公司经验,大多数人雇佣的人要求的薪水很低,这就是为什么大多数公司无法在我所在的地区生存的原因。在我的第一份工作中,我是那里唯一的开发人员(那是一家数字代理公司)。他们要求我用 HTML 为他们当前的网站制作一个三步表单,我做到了,然后他们选中了我。在我的第二份本地工作中,他们要求我用纸笔用 PHP 编写电子商务代码。在做了 4 个月的第二份工作后,我认为 PHP 开发人员对我来说不是一个好选择,所以我转而从事 JavaScript 工作,开始在线工作,并尝试了一些远程工作。在这里我了解到我应该一直练习算法!因为面试需要算法。在好的公司,肯定会有算法测试。

所以要通过考试,解决编程问题是必要的。有很多编程网站可以让你学习算法知识,在积极申请面试的时候,至少花3-4个月来练习!这是每个程序员都会犯的一个新手错误!如果你只专注于学习算法知识,那么你最终无法通过考试,也很难找到一份称心的编程工作。
阅读 Stack Overflow 而不是阅读官方文档
每个程序员都知道 Stack Overflow,而且大多数人都会在这个网站上花时间。但说实话,有多少人在访问 Stack Overflow 之前会先阅读官方文档呢?想要了解具体的编程知识,最好的办法就是阅读官方文档。如果你不花时间阅读官方文档,而是花时间在 Stack Overflow 上,那么你会获得更多信息,但 Stack Overflow 上也有很多误导性的信息。这是我最近学到的。就我而言,我是在一个 Es-lint 问题中学到的。我在 Stack Overflow 上搜索了这个问题,大多数人建议关闭 Es-lint 规则,但我需要知道为什么我的代码会出现这种情况。我该如何解决代码中 Es-lint 的错误信息,但人们只是说注释掉它,禁用规则就行了。最后,我明白了 Stack Overflow 并不总是好的。所以最好先运行官方文档,然后再去 Stack Overflow 或其他地方查找相关信息。我看到每个初学者都会犯这个错误,也许一些资深开发人员也会犯这个错误。我的建议是先把整个文档读完,如果读不完,至少先看看完整的文档,然后再去看看其他网站。这是了解更正确信息的最佳方法!
忘记问为什么
当我开始学习新的编程语言时,我忘了问自己为什么!我为什么要这样做?为什么我用 Python 而不是 MatLab,为什么我用 Java 而不是其他编程语言。我认为这是初学者常犯的一个大错误。比如,问问一些初学者为什么用 Python、JavaScript、Java、C# 或其他语言编程。他们中的大多数人会保持沉默,但也有一些人很优秀,他们知道自己在做什么以及为什么这么做。我一度不明白这一点,为此吃了很多苦头。刚开始学习 PHP 时,我感觉是个糟糕的选择,我本可以选择 JavaScript 而不是它。但在 2018 年我了解到,在后端 API 请求方面,Node.js 比 LARAVEL 快得多。更多信息 - https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3

有时人们选择框架时甚至不知道为什么。比如现在 JS 中有三个流行的框架——React、Vue 和 Angular。我需要用其中任何一个吗?我可以选择 Svelte,而不是全部三个。现在这取决于很多因素,但有一件事是普遍存在的。那就是为什么!初学者一定要问为什么!为什么我要用这个框架,或者为什么我应该用这个框架。知道为什么很重要,而不是盲目地选择和使用!
不要阅读其他代码
我不确定每个程序员是否都这样做。但从我的经验来看,我发现大多数程序员并不怎么阅读其他代码。至少在大学里,我看到了这种情况。我看到很多程序员只是编写代码和构建东西,但他们不阅读其他程序员的代码。我认为我们应该阅读任何开源项目或任何优秀/成功程序员的 git 帐户中的优秀代码。阅读这些可以帮助我们思考如何以更好的方式完成相同的工作。因为有时我们走进死胡同,我们只看到一条路可走,但如果你拥有适当的知识,你就能看到其他门的提示。我认为阅读其他代码将有助于编写更好的代码。此外,这将有助于建立一个心理模型,你可以在脑海中获得代码的输出,或者你可以在不运行代码的情况下思考代码。这是任何人都可以提高编码技能的方法。这是一个大多数初学者从未做过的简单编码技巧!
不分享旅程
“如果你不能向一个六岁的孩子解释清楚,那你自己就不明白。”
——阿尔伯特·爱因斯坦
我觉得这是初学者的问题。一开始我也遇到过这种情况。我刚学会编程,但要教别人的时候,我就想:“天哪!我怎么才能让他们理解编程呢?”

但随着时间的推移,我学会了如何向别人解释。对我来说,我开始觉得编程就像一场游戏。它有很多关卡,要想从一个关卡过渡到另一个关卡,你需要掌握一些技能。比如,如果我用 JavaScript 语言开发一款游戏,那么关卡就会……
- 什么是 JavaScript?
- JavaScript 类型?
- JavaScript 比较
- JavaScript 变量
- 条件语句
- 循环
- 功能
- 大批
- 对象等。
你需要学习所有知识才能更上一层楼。这样才能让你的思路更清晰,也更容易为他人设计。我永远不会忘记这篇文章,因为我正在写它,正在计划它。所以分享能帮助你更好地记住事情,更好地理解事情。这是大多数初学者都会犯的错误,我以前也犯过。
缺少代码规划
规划对编码影响很大,尤其是在开发中型或大型项目时。你可以从任何功能入手,但为了提高效率,可以进行规划。有时,初学者根本不关注代码的扩展。他们只写一些示例代码,却无法扩展代码。我觉得我刚开始的时候也缺少这方面的内容,就像打开一个新文件,然后复制其他文件的代码来开发新功能一样。此外,我也缺少文件夹结构。

刚开始接触 React 的时候,我没怎么考虑文件夹结构,只是建了一个组件文件夹,把所有东西都放进去而已。说实话,这真的好吗?完全不是。我一开始没怎么考虑,因为刚开始的时候大概只有 10 个文件,所以也没怎么在意,但想想如果组件文件夹里有 300 个文件会怎么样?这可不是个好习惯。所以我觉得初学者应该懂得如何构建项目结构,在写代码之前做好规划,并且从一开始就考虑代码的扩展性。如果不规划代码,就有可能造成代码重写。谁都不希望出现这种情况,所以最好从一开始就规划好代码。
不知道如何使用调试器
我发现很多开发人员都犯了这个错误。我见过一些高级开发人员不使用调试器。但调试器确实很有帮助。现在你可以用 vscode 轻松设置调试器。尤其是在我调试别人代码的时候,调试器帮了大忙。不用 console.log 就能更轻松地找到代码细节(我给出 JavaScript 示例是因为我现在大部分时间都在写 JavaScript)。作为一名自由职业者,我需要处理多个项目和不同类型的代码库。调试器可以帮助我快速找到值的细节,让我的工作速度比以前更快。目前,我觉得我应该在编程入门阶段就学习调试器。
使用日记和时间跟踪
最近我开始写日记,但是我太懒了,不想每天都写,但我尽量每天坚持写。有时我只是在 2/3 天后才开始记录事情。但我会写日记,写下我的进度、目标和积压工作。我发现初学者在开始时大多数时候都不写日记。我也这样做了,我没有写日记,也没有追踪我的进度,但老实说,这很有帮助。当你开始追踪你的时间并衡量你在做什么时,你可以在短时间内取得更大的进步。因为你很清楚自己在做什么。此外,我建议每个人都使用时间追踪软件来追踪时间,因为这样我们可以轻松地追踪我们在做什么的时间。

我们可以了解构建一个功能需要多少时间,或者我们浪费了多少时间。如果我们开始记录和追踪时间,设定切合实际的目标并实现目标就会容易得多。
在编程社区中不活跃
我是一个内向的人,所以很难与人交流。我尝试通过博客、Instagram 帖子以及在 Twitter 上关注优秀的程序员与人交流。我知道对某些人来说,在社区中交流和保持活跃很难。但说实话,大多数初学者都会犯这个错误!因为他们不知道活跃或关注社区的重要性。每天都有新事物出现,有些是好事,有些则很糟糕。但程序员应该了解自己的技术栈上发生了什么。因为事情可能会发生两方面的变化,首先,在 Node.js 出现之前,没有人想过 10 年后我们会获得这么多的 npm 包(npm 首次发布:2010 年 1 月 12 日)。自己追踪所有事情真的很难。就像我们不能尝试编程世界中的一切一样,我们可以尝试编程世界中最好的东西。那么我们如何挑选最好的东西呢?从社区中,我们可以看到哪些软件包运行良好,人们正在使用什么。从他们那里获取数据并加以利用是一种很好的方法。而且,这也是一种与大家分享新事物的方式。我认为程序员需要交流和活跃的社区氛围,而初学者很少这样做!
害怕提问
如果你不去追求你想要的东西,你永远不会拥有它。如果你不去问,答案永远是否定的。如果你不向前迈进,你永远停留在原地。——诺拉·罗伯茨
我看到很多人有这种恐惧。他们害怕提问,我可以说,这不仅是编程新手的问题,也是所有初学者都会遇到的问题。但有时初学者会问一些不费脑子的问题。现在我们有谷歌,所以我建议大家在问别人之前先问问谷歌。因为现在网上有大量数据,你遇到的问题很可能已经有人遇到过,而且你可以在向任何人求助之前找到正确的答案。你可以用谷歌搜索任何东西,真的,任何你想搜索的东西!
生产力和效率的缺失
有些初学者匆匆忙忙地学习教程和构建东西。他们忘记了足够的休息。休息对大脑很重要。程序员应该专注于提高效率并充分利用时间。

我认为,作为一名程序员,我们应该专注于时间的合理利用,并充分利用时间。如果一个人没有足够的休息,那么他/她的效率就不会像那些会休息的人那样高。所以我建议在工作时要保证充足的休息。此外,你可以遵循番茄工作法来提高效率。最后一点是关于睡眠,我认为每个人都应该为了身体健康而睡足够多的觉。保持健康的饮食习惯也能提高任何人的效率。我认为这是大多数初学者忽略的一点,因为他们没有努力提高效率。如果你能完美地提高效率,那么你将很容易在短时间内完成更多工作。现在,选择做还是不做,由你自己决定。
哦,你终于读完了整篇文章,但有些人不想读整篇文章,所以我会为他们做一个小小的回顾。
回顾
我列出了初学者常犯的 17 个错误!它们是:
- 陷入教程地狱
- 不重视干净的代码
- 试图记住一切
- 努力学习所有知识,减少对高级主题的关注
- 急于采用框架
- 没有建设好的项目
- 不做任何算法编码
- 阅读 Stack Overflow 而不是阅读官方文档
- 忘记问为什么
- 不要阅读其他代码
- 不分享旅程
- 缺少代码规划
- 不知道如何使用调试器
- 使用日记和时间跟踪
- 在编程社区中不活跃
- 害怕提问
- 生产力和效率的缺失
每个人都会犯错,所以没什么可羞耻的。但从错误中学习很重要。每个高级程序员都曾经是初学者。一切都从零开始,所以如果你不为一项技能投入足够的时间,你就无法掌握它。不要操之过急,循序渐进,因为“稳扎稳打才能取胜”。但要尽量提高效率,不要把时间浪费在学习那些对你的发展毫无价值的东西上。时间有限,所以要充分利用它。

我希望通过本教程,所有犯过类似错误的初学者都能找到避免重蹈覆辙的方法。每个人在这个世界上的经历都不同,所以遇到的问题和解决方案也各不相同。但我们面临的问题和犯的错误都是一样的。我尝试列出一些我刚开始编程时犯过的错误。我现在尽力避免犯错,但仍然会犯很多错误。但我每天都会努力学习,并与社区分享更多,这样如果我找不到自己的错误,别人就能帮助我找到答案。
感谢您花时间阅读这篇漫长的错误之旅!请告诉我您接下来想从我这里学习什么主题?
我有两个免费的 PDF 给你
最初发表于nerdjfpbblog。您可以通过Twitter、LinkedIn或Instagram
与我联系!