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

UCD3138A64/UCD3138128程序員手冊

評論