2016年有位年轻的程序员在Quora上提问求助:
下面是 Brain Knapp 的回答分享︰我认为你的看法错了。你觉得你需要上课,让别人来教你,告诉你答案。从根本上讲,自学的程序员能够做不一样的事情。 自学的程序员和自学的吉他手有很多共同点。我不知道你是否玩过吉他,所以我将向你解释如何自学吉他。 首先,这一切的开始是由于某人与某个吉他手产生了共鸣。大多数突然想要自学吉他的人,是想要成为另一个吉他手。之后,他们下定决心——“我也可以成为一个吉他手 ”,于是去了当地的乐器店,买了一把二手吉他(因为二手吉他更便宜,但也很酷)。 接下来可能会有两种情况,要不买一本“吉他入门”或类似的书籍开始自学,要不打开 YouTube,开始学习如何弹奏自己喜爱的歌。那些尝试学习弹奏喜欢的歌的自学者,往往学得更好。 当年轻的吉他手主动地学习某首歌时,他们往往需要观看视频、打印曲谱、练习和弦等等。然后,根据拿到的视频和曲谱,他们会坐下来尝试重新演绎歌曲。 经过数小时的练习,不断重复和弦、独奏、节拍等,他们将能够以自己的形式表演那首歌。它不再是原来那首歌,但也够酷。 然后,他们会拿起另一首歌,重复这个过程。一路走来,他们不断学习节拍、技术以及其他的东西,甚至都没有意识到学习的内容。在知道专业名词和理论前,他们已经懂得如何操作。 最终,弹吉他变成了一种“直觉”,学习一首新歌也变得习以为常且不再痛苦。吉他的“语言”变得像你我说话那样容易。 这一切的发生,背后是数千小时的艰苦练习。即使每天只练习一小时,也需要耗费数年。 那么,这和自学的程序员有什么关系呢? 事实上,真正成就自学的程序员的,就是他们会自己创建东西,很多东西。要成为一个具有卓越技能的出色程序员,你必须创建东西,写代码。 上课学习理论知识固然是好的,但很多教授不能跳出条条框框的束缚,以自己的方式编程。就算他们努力尝试,也做不出别人愿意用的应用程序。 这并不是说他们不了解教授的知识,而是说,作为一名教授,他们掌握的技能是研究和理论性理解,而不是写代码和为客户提供价值。 你看到区别了吗? 我合作过的最好的程序员,他们的工作方式就是做东西,做很多东西,并且几乎一直这样。 例如,现在几乎每个人都使用 WordPress。在 WordPress 出现很久之前,我就用 PHP 和 MySQL 创建了 3 到 5 个不同的内容管理系统。我写过游戏、移动应用程序、框架,还有 SAAS 应用程序。 没人付钱让我做这些事情。我做这些事纯粹是出于好玩、学习或好奇的目的。 我已经好几年都没有上过课了,即使上了,我也不觉得这会对我的事业有任何帮助。然而,如果我决定坐下来,从头开始创建我自己的计算机语言或操作系统,我打赌我一定能在过程中学到很多有趣的东西。 是的,我可以带着那些想法上课,但在创建东西,犯下错误,以及真正“体会到”这一切的经历中,相比读一本书或听一次讲座,我能收获更多。 因此,我给你的建议(如果你做到了,相比没有做的那些人而言,会带给你巨大的优势),就是: 解决一个你想解决的问题。创建一个用于某件事的软件,解决一些你本人或他人想要通过软件解决的问题。每天为这个软件写代码,晚上写,周末也写,每天都写。即使你每天只花了 15 分钟写代码,也没关系。 最终,你将得到一个能用的软件,这很不错。 然后,你再重复这一过程。做一个其他的东西。不断地做。花费大量的时间,通过创建更多的东西来提升你的技能。 做东西的同时,注意在你的网站上保存工作,并将其放在一个作品集中。每次你结束了一个项目,就将它上传到 Hacker News、Reddit 或其他什么网站,并发条关于它的博文。 你现在仅仅 17 岁,当你 20 岁的时候,你已经轻松地将两千多小时用于锻炼技能,你的个人作品集中也有了大概十到二十多个软件,你学习到的经验是那些仅仅上课的人无法比拟的。 更重要的是,你已经清楚地告诉别人,你能够独立地写代码,解决问题并给世界带来一些新东西。这是最难能可贵的一点,也是公司在不断追求的一点。 一旦你找到了工作,请继续在业余时间创建东西,并提升你的工作技能。你的提升速度将比你的同事更快,因为他们在下班回家后看电视,而不是学习、成长或创建东西。他们拿到了薪水就回家享受去了。 你做的越多,你学的也越多;你学的越多,你的价值就越高;你的价值越高,你就越容易找到工作,你的工资也就更高,这是一个良性循环。 所以,去做些东西出来。现在就开始写代码吧! 文章来源:伯乐在线 |