題主更新了問題,那么原答案就當回到第一問了,至于第二問,講講我個人的看法吧:
其實編程這個東西,很大程度上上是一個經(jīng)驗工種,前期也許需要一點所謂的理解能力去搞懂一些抽象的東西,也可以不去搞懂,只是這樣的話天花板來的會很快;中期需要橫向拓展,因為很多東西是相同的,比如緩存機制,從硬件一路用到分布式,但是你不靠經(jīng)驗去了解它是很難搞明白怎么用好它的;后期需要縱向深入,中期積累的各方面經(jīng)驗足夠你在一個領域去爆發(fā)的時候,你就可以嘗試一下所謂的一通百通。
當然所謂的前中后期的說法是我自創(chuàng)的,不代表普適規(guī)則,但是終究多數(shù)人是平庸的(無貶義 畢竟我自己也只是個平庸的普通人),在沒有足夠驚艷的天賦時,只能靠經(jīng)驗來強化自己的能力,又由于這個行業(yè)的特殊性,幾乎可以說一生都在學習。
我從初三開始學習編程,批處理入的門,也進過學校的信奧班(奈何智商不夠,沒讀完 ORZ);
高中主用易語言,我知道很多人瞧不起這個東西,但是靠它我可以很快得上手 windows gui 編程,這讓我明白了很多 gui 系統(tǒng)的消息機制到底是什么,也讓我明白了一個通用ui組件的抽象化是怎么做的,中間斷斷續(xù)續(xù)學過 php 和 python(為了折騰 ss),在此期間我買過 vps 綁過域名也通過 http 權(quán)威指南 懂了一個http請求的歷程;
高中的過分沉迷編程讓我的文化課成績異常糟糕,我那一屆98%的人上了本科而我就是那2%,所以讀了大專
到了大一,按部就班學習 c 語言和網(wǎng)頁,此時的我對 c 已經(jīng)沒太多興趣因為用過高級語言就不想用那么麻煩的東西了 Orz,而網(wǎng)頁我也只是處于知道盒模型但是搞不定兼容 js 更是一竅不通的水平;
到大二我開始用 node.js ,我現(xiàn)在的所有js知識全部來源于此,5月份我開始學習 java,哪怕一行也沒寫過,我也能看過基礎語法后當晚用 java 就寫一個把 .java 轉(zhuǎn)換為 .jsp 的東西(當時猜測 jsp 的性質(zhì)與 php 類似);
現(xiàn)在我大三正準備找實習呢 Orz
講我的經(jīng)歷是因為,以我現(xiàn)在的經(jīng)驗,還有對于編譯原理的一些理論了解(比如我在 sf 倒數(shù)第二篇文章),對于一些 oo 的語言我可以根據(jù)文檔很快上手,其框架也大抵如此,不過這是將將能用而已,很多我重新造輪子的地方后面就發(fā)現(xiàn)框架已經(jīng)提供了我不知道而已。
因此一個語言是變化的,一個框架也是會更新?lián)Q代的,經(jīng)典的思想雖然不會太快過時,但也避不過時代巨輪的碾壓,畢竟硬件性能足夠了我們可能就不那么需要扣內(nèi)存了(所以現(xiàn)如今不用太會算法也足夠找份吃飯的工作了),所以是學不完的。
那么到底怎么快速上手一門語言或者框架呢,無他,唯手熟爾。
這個答案可能不會被很多人看到,但是我自己是個從彎路走上來的人,甚至可以說不算是一個科班出身的,希望能幫到一些人吧。
突然看到標題說的是從0到精通???
精通這個詞,就不提 c++ 那種多范式的變態(tài),java 這種 語言規(guī)范 加 虛擬機規(guī)范 合起來近千頁的,0基礎一個小時看的完?那還有 Spring 等等之類的文檔還沒開始看呢。
假定我們討論的是,寫的產(chǎn)品的代碼量是一個小時內(nèi)能寫完的。
我見過有研究生寫的代碼是『一個main幾千行』,沒有任何編程思想(指的是抽象 模塊化 這些)在里面。
事實上,語言本身是可以用數(shù)學抽象的,不排除有人對語言的理解就是能一目了然,甚至可以按部就班硬寫個所謂的產(chǎn)品(只要求跑的起來,結(jié)果正確)。
但是還有個大前提,那就是他寫的是這個產(chǎn)品,包不包含其他知識點,你可以用 c 寫個純數(shù)學算法,但是你用 c 寫個 http 響應哪怕是個 socket,你都得還要學習一下網(wǎng)絡協(xié)議,這種情況下,一個小時能不能把網(wǎng)絡協(xié)議看完都是未知數(shù),遑論寫產(chǎn)品。
從0到精通這個過程,我個人覺得這個周期的長度是因人而異的。如果你是小白,那么你想入門很簡單,但是你想精通你需要很長的一段時間,除非你功底特別好。對操作系統(tǒng),數(shù)據(jù)結(jié)構(gòu),編譯原理,網(wǎng)絡相關的都比較熟悉。在學習語言的過程中,除了掌握當前語言的特性之外,還要多問幾個“為什么”?比如:“為什么會這樣實現(xiàn)多態(tài)?”等等之類的問題。然后找?guī)讉€這個語言的開源項目,記住不要找太大的,然后閱讀下源碼。如果這門語言有其內(nèi)核相關的資料,然后去閱讀下,比如php,去了解下php的內(nèi)核了解下zval,了解下它的生命周期。總結(jié)一下,從入門到精通是一個漸進的過程,我們說的方法只提供參考,你要根據(jù)你自己情況來安排。
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。