本文转载自公众号“读芯术”(ID:AI_Discovery)
你花了无数的时间在YouTube上看教程,参加付费在线课程,阅读编程入门文章。然而,一直存在一个无法从根本上突破的屏障。
总是有人在那里写你不懂的复杂代码,解决复杂的编程问题。“我永远不会像他们一样,”你这样想着,并对他们肃然起敬,“他们是怎么学会的?”事实上,他们肯定不是天生就知道如何编码,也不是他们比你更聪明。本文中将详细介绍克服编程恐惧的步骤。
如果你想进入一个需要编程知识的领域(比如数据科学或软件开发),那么克服这种恐惧对你来说是非常重要的。编码焦虑会让你在未来几年里无法取得进步,但它却很少被重视。
背景—我的经历
我是个优等生。我为自己解决问题的能力而自豪,我喜欢数学和科学等学科。我学得很快,几乎不犯错误。然而,当我高中毕业后,情况发生了变化。
编程和高中课堂上教的科目不一样,唯一的学习途径就是犯错误。作为一个不习惯这样做的人,我很惊讶自己花了这么长时间才学会如何编写代码。
我犯了太多的错误。突然,我不再事事都能做到最好了。我在看似简单的任务上苦苦挣扎——甚至只是设置编程环境。我开始觉得我不适合编程。
每个人似乎都比我更擅长。我甚至不能在互联网上编译没有错误的代码,更不用说理解它或编写自己的程序了。这使我很有挫败感,我放弃了。而且不止一次。我试着学习如何编码,并且用不同的编程语言在线学习了10多次。每次我都觉得自己不够好,就放弃了。
我面临的问题不是缺乏信心。恰恰相反,我太自信了。我非常自信,所以当事情没有按我所希望的方式发生时,我就会感到沮丧并放弃了。
我最大的错误是什么?认为编程是可以在短时间内学会的东西,而不承认有学习曲线。如果我理解并接受从零开始学习代码是一件需要努力和耐心的事情,我就可以少受很多挫折和节省很多时间。
当我放弃学习代码的时候,我认为世界上有两种人——一种是天生适合编程的人,另一种不是。事实证明,我是对的。然而,那些天生擅长编程的人并不一定比你聪明。他们只是有一种特定的心态,一种帮助他们在这个领域出类拔萃的心态。拥有同样的心态,你将实现目标。
如何成为一名好的程序员
首先,你需要承认自己并不擅长编程。
你已经参加了一两个在线课程,并学习一些编程教程。但是你还不擅长。有些人把他们的一生都奉献给了这个领域,而你才刚刚开始。
记住,下一次当你看到一堆无法理解的复杂代码时,不要被别人解决问题的能力所击败,也不要被你可能永远无法达到的目标的所击败,想想他们为了达到自己的水平所花费的时间和精力。
如果你想赶上至少他们一半的优秀,只需要付出更多的努力。这不是比赛。仅仅因为他们成功地解决了一个你无法解决的复杂问题而已,并不意味着他们比你聪明。他们比你投入了更多的时间和精力。为了实现目标,你也需要这样做。
学会有耐心
耐心可以说是程序员最重要的性格特征之一。你需要有盯着电脑屏幕看上几个小时的耐心。一个看似简单的问题可能需要数小时,甚至数天才能解决,你只能坐下来花几个小时调试代码来学习。
培养这种耐心真的很难。如果你和我一样,很容易感到无聊或者注意力持续时间很短,你需要花很多时间训练自己变得有耐心。
当你开始了解盯着电脑屏幕花几个小时解决问题的这门艺术,你就离成为一名优秀程序员的目标更近了。
顽强
还记得你小时候,父母不给你买想要的玩具吗?你吵了好几个小时,哭了好几个小时。你拒绝和他们一起离开商店直到他们给你买为止,还引起了一场闹剧。最后,你父母让步了。他们放弃了,给你买了玩具。
这正是你学习编码时需要的那种固执。每当你为不知道如何继续操作或者一堆代码无法运行而感到沮丧时,不要放弃。
坚持下去,表现出你小时候的决心。如果你至少有你童年那时候一半的决心,那么你会成功完成你的目标。
恰到好处的自信
过分自信是不好的。过分自信会阻碍你取得进步,因为你对自己期望过高。有些人在这方面比你强得多。当你看着这些人读他们的代码时,自然会感到无能。
取得任何进展的第一步是承认别人比你更好。他们当然是。他们花了比你更多的时间,并且花了数年时间学习如何编写代码。如果你想变得更好,你也需要投入时间和精力。
事实上,即使是经验丰富的程序员也知道他们并不擅长编码。承认还有很多东西要学的能力是每个程序员最重要的特质之一。你不可能了解这个领域所包含的一切。
学习编码需要很多努力。你需要有正确的态度,养成良好的习惯。你养成的这些习惯将使你在职业生涯中走得更远——不仅仅是智力、能力或记忆力。为了克服对编程的恐惧,你需要明白有一条学习曲线。
把编程想象成一辆自行车。你学骑自行车的时候会跌倒很多次,但那是唯一的学习方法。随着时间的推移,你会掌握窍门,变得越来越好。你只要有足够的耐心和毅力,每次跌倒后都能站起来继续。
希望本文能帮你克服对学习代码产生的焦虑。