编者按:成为一名自学成才的开发者的道路充满艰辛和不确定性。从新手到专业程序员的转变没有捷径可走,也正因为如此,每个自学成才的开发者都有自己的经历和故事。在这篇文章中,我分享了我在自学编程方面的一些经验和从中学到的教训。希望看完这篇分享后,能帮助你反思过去,激励你继续前行。
注重学习过程
刚开始学编程的时候,我并没有想过要当一名职业程序员,只是想做一个特别的 app。这个想法最早是在大学四年级的时候冒出来的,当时我刚读完理查德·布兰森的《我的创业故事》,可能因为在科技媒体平台上接触了很多创业信息,我觉得自己充满了创业精神。我看到很多关于大学生凭借手机 app 创意获得高额投资的文章,我想我也可以成为其中之一。
一天,在课间,我突然想到了一个开发应用程序的想法。应用程序的细节并不重要,重要的是这个想法很独特,而且有很大的发展潜力(至少在我看来)。我坚信我发现了下一个大事件,以至于课后我都听不到讲师在说什么,我对这个想法感到非常兴奋,很快就觉得我必须采取行动。
但有一个大问题。我想开发一款移动应用,但我不知道有谁能帮我开发。所以我想,编程到底有多难?当时我对我的专业并不感兴趣,花了很多时间在 Xbox 上玩游戏。我想我可以利用一些空闲时间自学开发这款移动应用。有时,天真的想法会帮助你采取你原本不会尝试的行动。就像新生的小牛不怕老虎一样。
我当时是一名没有任何编程、商业或设计经验的大学生,正在尝试学习开发以构建一个复杂的应用程序。我买了几本关于开发的书,花了很多时间自学,尝试构建这个应用程序。我不在乎结果如何,我只想有一个成品,如果我能通过从其他来源复制和粘贴代码来完成它,那就最好了。
我认为我可以走捷径,用最少的编程知识完成这项工作。我专注于最终结果,隧道尽头的光明让我继续前进。随着时间的推移,该应用程序变成了一堆复制粘贴的代码,没有太多功能,并且几乎不崩溃就运行。
直到我偶然发现了一门计算机科学课程,我才意识到自己应该更专注于学习过程。由于自己缺乏编程技能,我放弃了最初的应用程序想法,并意识到我不会成功,至少现在不会。
幸运的是,随着时间的推移,我改正了自己的行为,开始更加认真地学习。我开始喜欢编程,并最终成为一名专业软件开发人员。
收获与收获
拥有一个好主意固然很好,但要意识到你的想法可能会变得令人难以抗拒。这是一种强大的力量,我被它吞噬了很长时间。它让我专注于最终结果,而不是实现结果的过程。
需要记住的是,学习编程这样复杂的知识是需要一步步积累的,因此,唯一能让自己学到东西的方法就是专注于当前的学习过程,掌握每一步需要掌握的内容。
如果你过于关注最终结果,你很可能会开始走捷径。走捷径可能会让你在短期内取得长足进步,但从长远来看,你缺乏基础知识迟早会成为绊脚石。学习新知识就像盖房子。你必须先打好地基,然后高楼才能拔地而起。如果地基不牢固,整栋楼迟早会倒塌。
有时你需要放慢速度来打下坚实的基础。不要为你的缓慢进步感到羞耻,那些一下子掌握了基础知识的人最终会领先于那些走捷径、不得不回头重新学习的人。我就是个坏例子,我可能表面上看起来像个编程天才,但实际上我无法构建一个像样的应用程序。
每天专注于学习过程,你会对自己所取得的进步感到惊讶。
很棒(也很危险)
在我学习开发应用程序的过程中, 成为了我最好的朋友。每当我遇到困难时,我都会在社区上提问,平均每周都会问几个问题。我不仅会在 上提问,还会将我从 获得的答案视为救星。我会花很多时间寻找可以解决我当前问题的代码块。一旦我找到答案,我就会将其复制并粘贴到我的代码库中并尝试使其工作。我没有花时间去尝试理解代码,我只是通过蛮力尝试。
这种模式持续了一段时间,直到最后我醒悟过来,意识到这种方法的缺陷。
收获与收获
复制粘贴是学习编程最令人畏惧的方法之一。它是一把双刃剑,它能帮你解决问题,但如果你不小心,它就会成为你一直想要依赖的拐杖。
有时候,或许是因为你太擅长帮你解决问题,以至于你会产生一种不切实际的自信,这只会在未来给你带来更多的麻烦。
如果你只是去一个网站寻求答案,你不会学到很多东西。确保在访问之前尝试解决问题。如果你发现自己在复制和粘贴代码,请确保至少花一些时间来理解代码块。毕竟,学习没有捷径可走。
寻求他人帮助
决定自学编程后,我做的第一件事就是买了两本关于开发的书。起初,我按照书中的练习,完成了所有示例项目。但很快我就感到无聊或沮丧,不想继续跟着书本学习了。我决定走自己的路,自己摸索编程。但正如我之前所说,这样做的结果是一条缓慢而稳定的灾难之路。
我会长时间独自待在房间或咖啡店里。我把自己与外界隔离开来,觉得没人能帮助我,因为我认识的人都没有开发经验。日子一天天过去,我却没有取得多大进展。
有一次,我突然想到下载一个名为的大型 C 库。我想要构建的应用程序需要视频编辑,所以我认为利用这个 C 库的强大功能是个好主意。当时,这并不是最明智的做法,因为我的应用程序几乎无法运行。我浪费了很多时间阅读 C 代码,试图弄清楚如何在我的应用程序中使用它。我再次感到沮丧,最终放弃了这个想法。
幸运的是,大约在同一时间,我报名参加了面向对象编程 (OOP) 课程,不知怎么就被录取了。我是所有报名的学生中唯一一个非计算机专业的学生。我不知道我是怎么被选中的,也许是注册软件出了问题。

课程的第一个作业是编写一个程序。当时,我已经自学编程 5-6 个月了,所以我很有信心。我很快就完成了作业,感觉自己还不错。但很快,这种感觉就消失了。我的整个程序都写得很笼统,而班上的其他人都知道程序应该分为几个类别。那种感觉真糟糕!
收获与收获
幸好课堂上的作业和老师的指导让我放下了开发,开始认真反思自己的开发能力,开始认真学习,也找回了当初的想法:做一个完整的应用。
如果我有机会在早期与经验丰富的开发人员交谈,他们就会理解我在做什么,并就优先事项给我建议,让我能够更理性地行事。当我陷入死胡同(例如试图利用)时,他们也会帮助我调整方向。经验丰富的开发人员就像指南针。虽然他们不能直接带你到达目的地,但他们会确保你选择正确的方向。他们的帮助往往是将失败转化为成功的关键。
回想起来,我本可以通过很多方式寻求他们的帮助。我本可以尝试在大学里找到一位有开发经验的教授/学生,或者我可以尝试找到一个在线社区。但那时我只是把自己孤立起来了,而孤立是一把双刃剑。一方面,它让你专注于手头的任务,但另一方面,它把你与外界隔离开来,阻止你得到批评性的反馈。
确保你从有过类似经历的人那里获得指导。这将为你节省大量时间和精力。
寻找合适的环境
这可能是我自学编程时唯一做对的事情。在我的整个学术生涯中,在家备考和做作业对我来说很糟糕,因为似乎有太多干扰。所以,我通常会去图书馆或咖啡馆找点安静的时间。幸运的是,我在自学编程时也做了同样的事情。
我成了镇上几家当地咖啡店的常客。与其他学习场所相比,我更喜欢咖啡店,因为你可以选择一个不会遇到任何熟人的地方。如果我在家学习,我必须关上门,这样我的室友就知道在一段时间内不要打扰我。事实上,无论我在哪里,我总是确保耳机里的音乐足够响,这样我就听不到周围的任何声音。没有歌词的欢快音乐最适合我。
收获与收获
寻找合适的环境往往是学习过程中被忽视的一个环节。你应该知道,你应该确保在这个过程中没有其他干扰,这样你才能长时间保持专注。专注是确保记忆和技能习得的基本组成部分。当你试图将新信息输入大脑时,输入效果的强度与你的专注过程直接相关。如果你不专注,新信息的粘度就会降低,导致学习速度变慢,学习时间增加。
看看世界级运动员是如何训练的。他们每五分钟就会检查一次手机吗?绝对不会。
提高注意力最简单的方法就是找到一个对你来说干扰最小的环境。你可以参考以下方法:
只有你自己才能决定哪种学习环境适合你,并选择正确的学习环境。一定要付出努力,因为这是值得的。
将所学知识运用到工作中
我的第一份编程工作纯属偶然。我刚搬到内布拉斯加州的奥马哈,自学编程已经一年了。我在奥马哈几乎不认识任何人,所以我四处寻找对和我一样的开发感兴趣的人。幸运的是,我找到了一个与 iOS 和开发相关的聚会活动。所以我鼓起勇气去参加了。
第一次去的时候,我在车里犹豫了大约十分钟,不知道是进去还是直接开走。我害怕上台,对自己的编程技能没有信心,而且我知道那里的每个人都比我更有经验。最后,我下定了决心,走了进去。我很高兴我做了正确的决定。
我开始定期参加聚会。不久之后,我在聚会上遇到了一位招聘人员,他正在寻找一名 开发人员。我们聊了一会儿,然后我得到了该职位的面试机会。面试前我信心满满。但在面试过程中,我有点不知所措。面试官谈到了该职位需要的项目,我发现这一切都超出了我的理解范围。我努力跟上,但他们显然看得出这超出了我的能力范围。
面试结束后,他们让我四处走走,和其他人聊聊天。我知道我搞砸了,所以我在市中心走了一会儿,让自己冷静下来。之后,我又参加了一次面试,不久之后,他们就给我提供了实习机会。因为当时公司的 CTO 自己做所有的工作,所以他需要有人分担他的负担。
我简直不敢相信自己得到了这个机会,在签完所有相关文件后,我跑去问 CEO 这是否是一份带薪实习。最后,我的实习变成了一份全职工作,我作为一名软件开发人员的职业生涯正式开始。
收获与收获
如果你是自学一门技能,那么很可能不会有招聘人员找你。你需要走出去,主动寻找机会。四年制大学和编程训练营毕业的人可以利用学校资源找工作,但对于自学成才的人来说,这种便利并不存在。也就是说,对于我们这样的人来说,找工作最好的方法就是走出去,多认识人,你可以通过这样的网站找到每月或每两个月聚会一次的相关小组。
尽你所能鼓起勇气加入这些团体。保持友好,与他人分享你的经验,确保他们了解你求职的长期目标。让自己置身于可以产生积极影响的环境中。如果你不买彩票,你永远不会中头奖。认真对待你拥有的任何机会,即使它看起来像一条死路,也可能有出路。
关键是要有长远的眼光。实习或兼职可能不会给你目前想要的薪水,但它们可以帮你打开未来的大门。
总结
正如你所见,我在学习新技能时犯了很多错误。掌握一项新技能并非易事。有曲折,有起伏。我希望我的经历和想法可以帮助你前进。
原文链接: