自学的程序员如何找到好工作?

编译: 伯乐在线/飞哥的咖啡

2016 年有位年轻的程序员在 Quora 上提问求助:

我今年 17 岁,从 14 岁开始编程。我主要关注 Java 语言,并在 AP 计算机科学这门课上拿了 5 分。我相当精通 Java(比如语法、主要类、GUI/JFrame 等),HTML5 和 CSS3 也不错。我感觉自己缺乏很多有用的技能,来帮助我在人才市场上推销自己(比如数据库的工作原理,以及我应该使用哪些工具),我很好奇其他人是如何学习这些东西的。我打算去大学拿一个软件开发的学位,但我开始感到有点沮丧,觉得读大学的目的就是为了工作。现在有哪些我应该上的课程,或者应该做的事情吗?

下面是 Brain Knapp 的回答分享︰

我认为你的看法错了。你觉得你需要上课,让别人来教你,告诉你答案。从根本上讲,自学的程序员能够做不一样的事情。

自学的程序员和自学的吉他手有很多共同点。我不知道你是否玩过吉他,所以我将向你解释如何自学吉他。

首先,这一切的开始是由于某人与某个吉他手产生了共鸣。大多数突然想要自学吉他的人,是想要成为另一个吉他手。之后,他们下定决心——“我也可以成为一个吉他手 ”,于是去了当地的乐器店,买了一把二手吉他(因为二手吉他更便宜,但也很酷)。

接下来可能会有两种情况,要不买一本“吉他入门”或类似的书籍开始自学,要不打开 YouTube,开始学习如何弹奏自己喜爱的歌。那些尝试学习弹奏喜欢的歌的自学者,往往学得更好。

当年轻的吉他手主动地学习某首歌时,他们往往需要观看视频、打印曲谱、练习和弦等等。然后,根据拿到的视频和曲谱,他们会坐下来尝试重新演绎歌曲。

经过数小时的练习,不断重复和弦、独奏、节拍等,他们将能够以自己的形式表演那首歌。它不再是原来那首歌,但也够酷。

然后,他们会拿起另一首歌,重复这个过程。一路走来,他们不断学习节拍、技术以及其他的东西,甚至都没有意识到学习的内容。在知道专业名词和理论前,他们已经懂得如何操作。

最终,弹吉他变成了一种“直觉”,学习一首新歌也变得习以为常且不再痛苦。吉他的“语言”变得像你我说话那样容易。

这一切的发生,背后是数千小时的艰苦练习。即使每天只练习一小时,也需要耗费数年。

那么,这和自学的程序员有什么关系呢?

事实上,真正成就自学的程序员的,就是他们会自己创建东西,很多东西。要成为一个具有卓越技能的出色程序员,你必须创建东西,写代码。

上课学习理论知识固然是好的,但很多教授不能跳出条条框框的束缚,以自己的方式编程。就算他们努力尝试,也做不出别人愿意用的应用程序。

这并不是说他们不了解教授的知识,而是说,作为一名教授,他们掌握的技能是研究和理论性理解,而不是写代码和为客户提供价值。

你看到区别了吗?

我合作过的最好的程序员,他们的工作方式就是做东西,做很多东西,并且几乎一直这样。

例如,现在几乎每个人都使用 WordPress。在 WordPress 出现很久之前,我就用 PHP 和 MySQL 创建了 3 到 5 个不同的内容管理系统。我写过游戏、移动应用程序、框架,还有 SAAS 应用程序。

没人付钱让我做这些事情。我做这些事纯粹是出于好玩、学习或好奇的目的。

我已经好几年都没有上过课了,即使上了,我也不觉得这会对我的事业有任何帮助。然而,如果我决定坐下来,从头开始创建我自己的计算机语言或操作系统,我打赌我一定能在过程中学到很多有趣的东西。

是的,我可以带着那些想法上课,但在创建东西,犯下错误,以及真正“体会到”这一切的经历中,相比读一本书或听一次讲座,我能收获更多。

因此,我给你的建议(如果你做到了,相比没有做的那些人而言,会带给你巨大的优势),就是:

解决一个你想解决的问题。创建一个用于某件事的软件,解决一些你本人或他人想要通过软件解决的问题。每天为这个软件写代码,晚上写,周末也写,每天都写。即使你每天只花了 15 分钟写代码,也没关系。

最终,你将得到一个能用的软件,这很不错。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180318B187IM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券