2016 年有位年輕的程序員在 Quora 上提問求助:
我今年 17 歲,從 14 歲開始編程。我主要關(guān)注 Java 語言,并在 AP 計(jì)算機(jī)科學(xué)這門課上拿了 5 分。我相當(dāng)精通 Java(比如語法、主要類、GUI/JFrame 等),HTML5 和 CSS3 也不錯(cuò)。我感覺自己缺乏很多有用的技能,來幫助我在人才市場上推銷自己(比如數(shù)據(jù)庫的工作原理,以及我應(yīng)該使用哪些工具),我很好奇其他人是如何學(xué)習(xí)這些東西的。我打算去大學(xué)拿一個(gè)軟件開發(fā)的學(xué)位,但我開始感到有點(diǎn)沮喪,覺得讀大學(xué)的目的就是為了工作。現(xiàn)在有哪些我應(yīng)該上的課程,或者應(yīng)該做的事情嗎?
下面是 Brain Knapp 的回答分享︰
我認(rèn)為你的看法錯(cuò)了。你覺得你需要上課,讓別人來教你,告訴你答案。從根本上講,自學(xué)的程序員能夠做不一樣的事情。
自學(xué)的程序員和自學(xué)的吉他手有很多共同點(diǎn)。我不知道你是否玩過吉他,所以我將向你解釋如何自學(xué)吉他。
首先,這一切的開始是由于某人與某個(gè)吉他手產(chǎn)生了共鳴。大多數(shù)突然想要自學(xué)吉他的人,是想要成為另一個(gè)吉他手。之后,他們下定決心——“我也可以成為一個(gè)吉他手 ”,于是去了當(dāng)?shù)氐臉菲鞯辏I了一把二手吉他(因?yàn)槎旨阋耍埠芸幔?/p>
接下來可能會(huì)有兩種情況,要不買一本“吉他入門”或類似的書籍開始自學(xué),要不打開 YouTube,開始學(xué)習(xí)如何彈奏自己喜愛的歌。那些嘗試學(xué)習(xí)彈奏喜歡的歌的自學(xué)者,往往學(xué)得更好。
當(dāng)年輕的吉他手主動(dòng)地學(xué)習(xí)某首歌時(shí),他們往往需要觀看視頻、打印曲譜、練習(xí)和弦等等。然后,根據(jù)拿到的視頻和曲譜,他們會(huì)坐下來嘗試重新演繹歌曲。
經(jīng)過數(shù)小時(shí)的練習(xí),不斷重復(fù)和弦、獨(dú)奏、節(jié)拍等,他們將能夠以自己的形式表演那首歌。它不再是原來那首歌,但也夠酷。
然后,他們會(huì)拿起另一首歌,重復(fù)這個(gè)過程。一路走來,他們不斷學(xué)習(xí)節(jié)拍、技術(shù)以及其他的東西,甚至都沒有意識(shí)到學(xué)習(xí)的內(nèi)容。在知道專業(yè)名詞和理論前,他們已經(jīng)懂得如何操作。
最終,彈吉他變成了一種“直覺”,學(xué)習(xí)一首新歌也變得習(xí)以為常且不再痛苦。吉他的“語言”變得像你我說話那樣容易。
這一切的發(fā)生,背后是數(shù)千小時(shí)的艱苦練習(xí)。即使每天只練習(xí)一小時(shí),也需要耗費(fèi)數(shù)年。
那么,這和自學(xué)的程序員有什么關(guān)系呢?
事實(shí)上,真正成就自學(xué)的程序員的,就是他們會(huì)自己創(chuàng)建東西,很多東西。要成為一個(gè)具有卓越技能的出色程序員,你必須創(chuàng)建東西,寫代碼。
上課學(xué)習(xí)理論知識(shí)固然是好的,但很多教授不能跳出條條框框的束縛,以自己的方式編程。就算他們努力嘗試,也做不出別人愿意用的應(yīng)用程序。
這并不是說他們不了解教授的知識(shí),而是說,作為一名教授,他們掌握的技能是研究和理論性理解,而不是寫代碼和為客戶提供價(jià)值。
你看到區(qū)別了嗎?
我合作過的最好的程序員,他們的工作方式就是做東西,做很多東西,并且?guī)缀跻恢边@樣。
例如,現(xiàn)在幾乎每個(gè)人都使用 WordPress。在 WordPress 出現(xiàn)很久之前,我就用 PHP 和 MySQL 創(chuàng)建了 3 到 5 個(gè)不同的內(nèi)容管理系統(tǒng)。我寫過游戲、移動(dòng)應(yīng)用程序、框架,還有 SAAS 應(yīng)用程序。
沒人付錢讓我做這些事情。我做這些事純粹是出于好玩、學(xué)習(xí)或好奇的目的。
我已經(jīng)好幾年都沒有上過課了,即使上了,我也不覺得這會(huì)對(duì)我的事業(yè)有任何幫助。然而,如果我決定坐下來,從頭開始創(chuàng)建我自己的計(jì)算機(jī)語言或操作系統(tǒng),我打賭我一定能在過程中學(xué)到很多有趣的東西。
是的,我可以帶著那些想法上課,但在創(chuàng)建東西,犯下錯(cuò)誤,以及真正“體會(huì)到”這一切的經(jīng)歷中,相比讀一本書或聽一次講座,我能收獲更多。
因此,我給你的建議(如果你做到了,相比沒有做的那些人而言,會(huì)帶給你巨大的優(yōu)勢),就是:
解決一個(gè)你想解決的問題。創(chuàng)建一個(gè)用于某件事的軟件,解決一些你本人或他人想要通過軟件解決的問題。每天為這個(gè)軟件寫代碼,晚上寫,周末也寫,每天都寫。即使你每天只花了 15 分鐘寫代碼,也沒關(guān)系。
最終,你將得到一個(gè)能用的軟件,這很不錯(cuò)。
然后,你再重復(fù)這一過程。做一個(gè)其他的東西。不斷地做。花費(fèi)大量的時(shí)間,通過創(chuàng)建更多的東西來提升你的技能。
做東西的同時(shí),注意在你的網(wǎng)站上保存工作,并將其放在一個(gè)作品集中。每次你結(jié)束了一個(gè)項(xiàng)目,就將它上傳到 Hacker News、Reddit 或其他什么網(wǎng)站,并發(fā)條關(guān)于它的博文。
你現(xiàn)在僅僅 17 歲,當(dāng)你 20 歲的時(shí)候,你已經(jīng)輕松地將兩千多小時(shí)用于鍛煉技能,你的個(gè)人作品集中也有了大概十到二十多個(gè)軟件,你學(xué)習(xí)到的經(jīng)驗(yàn)是那些僅僅上課的人無法比擬的。
更重要的是,你已經(jīng)清楚地告訴別人,你能夠獨(dú)立地寫代碼,解決問題并給世界帶來一些新東西。這是最難能可貴的一點(diǎn),也是公司在不斷追求的一點(diǎn)。
一旦你找到了工作,請(qǐng)繼續(xù)在業(yè)余時(shí)間創(chuàng)建東西,并提升你的工作技能。你的提升速度將比你的同事更快,因?yàn)樗麄冊谙掳嗷丶液罂措娨暎皇菍W(xué)習(xí)、成長或創(chuàng)建東西。他們拿到了薪水就回家享受去了。
你做的越多,你學(xué)的也越多;你學(xué)的越多,你的價(jià)值就越高;你的價(jià)值越高,你就越容易找到工作,你的工資也就更高,這是一個(gè)良性循環(huán)。
所以,去做些東西出來。現(xiàn)在就開始寫代碼吧!
-
JAVA
+關(guān)注
關(guān)注
20文章
2984瀏覽量
106790 -
編程
+關(guān)注
關(guān)注
88文章
3679瀏覽量
94836 -
程序員
+關(guān)注
關(guān)注
4文章
954瀏覽量
30250
發(fā)布評(píng)論請(qǐng)先 登錄
求一份在STM32F407的CS1239的驅(qū)動(dòng)程序
阿里云升級(jí)通義靈碼AI程序員,全面上線
TMS320C55x DSP CPU程序員參考補(bǔ)充

UCD3138A64/UCD3138128程序員手冊

機(jī)械革命發(fā)布CODE AI程序員本
Linux驅(qū)動(dòng)程序程序員指南

AI編程工具會(huì)不會(huì)搶程序員飯碗
第五屆長沙·中國1024程序員節(jié)開幕
麻煩廠家發(fā)一份CS1237-SO的驅(qū)動(dòng)程序給我STC版本的
京東上萬程序員都AI用它!

程序員節(jié)視頻創(chuàng)意大賽,用串口屏贏取千元大獎(jiǎng)

程序員節(jié)視頻創(chuàng)意盛宴,邀您共襄盛舉!

助力程序員告別困擾已久的夢魘-Bug

評(píng)論