
当我学习编码时,这是流行的事情。 那时,学习代码意味着处理爬网式拨号连接,在库中浏览借来的编程书籍,或者只是复制文章中的某些代码并希望编译器不会崩溃。
这很有趣-我之所以这样做是因为它很有趣-但它也常常令人沮丧。 成为自学成才的开发人员是健身鼠学习编码的方法。 您必须至少喜欢一点点痛苦才能真正解决问题。 现在学习编码的人并没有变得更容易。
学习编码很难。 很长时间以来,我一直在尝试找出如何准确地描述这种感觉。 从表面上看,这确实没有任何意义:利用现在可用的所有新教程,视频和无数其他资源,它确实应该更容易,但事实并非如此。 为什么? 多年来,我一直在尝试使用Bento和Stack Overflow解决此问题。 对于任何想成为开发人员的人,无论您决定参加训练营,获得学位还是自学,这都是我想知道的:
成为程序员就像每天走进黑暗中的迷宫一样。

很多人有这样的想法,即学习编码就是要积累知识并加以运用,直到真正成为您的根深蒂固。 那也许就是,只要您阅读足够的书,阅读足够的在线教程并观看足够的演练视频,这些知识就会像咖啡一样涌入您的脑袋,变成一个很大但最终可填充的杯子。 令人痛苦的事实是:那样行不通。
每当您编码时,您都在黑暗中走进迷宫。 您的工作不是事先获取迷宫的地图,弄清楚从入口到出口的路径,记住解决方案,然后自信地走进去确切地知道该怎么做。 不,你的工作是走进步入黑暗之中,带着智慧无所不用其极,然后摸索自己的方式。
与所有迷宫一样,您不可避免地会碰壁。 作为一名开发人员,您的工作不是塌陷在地板上,自己放弃眼泪。 您的工作是在遇到障碍之前,擦拭瘀伤的鼻子,并开始寻找线索。 您需要伸出双臂,摸索周围墙壁的深色边缘,然后慢慢感觉自己的出路。 您最终将找到前进的道路,对其进行测试,然后继续深入迷宫。 有时,您会陷入困境。 有时,您会发现自己陷入了复杂的圈子。 但是您的工作是坚持不懈,不断寻找提示,并最终找到通往光明的道路。

人们开始学习编码时通常会问我的第一个问题是:您怎么知道这一切? 似乎有数百种语言,框架,工具和技术可供学习。 对于初学者而言,经验丰富的开发人员必须看起来像是超人类的技术知识库,只是凡人无法与之相比。 尽管我们想以这种方式(在特殊场合下)来思考自己,但秘密并不在于,大多数经验丰富的开发人员确实并不了解一切,但我们相信我们可以学习我们不知道的东西。
您会发现,当我们离开开发人员学校时,经验丰富的开发人员并没有神奇地解决他们预先想到的迷宫。 经验丰富的开发人员更容易走进迷宫。 墙壁的形状令他们感到熟悉。 棘手的路径并没有那么容易欺骗他们。 在迷宫中奔跑了多年之后,他们在黑暗中的步伐更加敏捷。 其中一些人甚至喜欢在迷宫中。
从这个故事中脱颖而出的是:坚持。 知道编码是要学习如何摆脱不可避免的问题。 您不应该一无所知。 作为开发人员,您必须培养的核心技能不只是掌握一些语法,变得精通工具,赶上最新的语言风潮,擅于学习和面对未知的毅力,还需要培养他们的核心技能。 您在寻找编程问题答案方面有多好? 在调试自己的代码和其他人的代码时,您的精度如何? 您对有关您不了解的内容的文档进行了多彻底的筛选? 几个小时坐在屏幕上凝视后,您如何忍受相同的错误?
您有能力和意愿学习一些您不知道的东西,这正是使您成为开发人员的原因。 每次打开编辑器时,您将学习数十次甚至数百次。 遇到和面对未知是使编程如此困难(又有趣)的原因,但是面对未知,您的能力和勇气也使您作为开发人员具有如此难以置信的价值。

因此,下次遇到编译器错误时,要知道这只是走出迷宫的一部分。 下次您离开教程而感到不完整时,这意味着您需要走另外一条路,找到另一个解决方案。 下次您想放弃它,因为学习编码太难了,在黑暗中深呼吸,也许您会从尚未探索的路径中发现一些意想不到的光芒。
当其他所有方法都失败时,只需知道迷宫中还有其他与您在一起。 使开发人员感到高兴的一件事就是学习社区的慷慨程度。 当您感到绝望时,需要帮助时,请伸出援助之手。 在互联网上问朋友,同事,教授,陌生人。 有人可能在黑暗中掠过您,并高兴地将您的手靠近光明。

感谢Alexa,Kasra,Hoon和Tiffany阅读本文的早期草稿。