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