你是怎麼樣深入學習一門編程語言的?

馮學餘


1.學習語法,寫點小程序練手

2.做項目,積累經驗

3.看博客,動手調試源碼,深入原理

4.分析語言進化歷史,掌握每次更變的原因,理解設計思想


架構師筆記


我的大學是計算機系信息系統管理專業,這個專業學到的編程內容並不是很多。學學簡單的SQL、HTML、Java的基礎內容就完了。我的同學們,這個專業兩個班120餘人,最終從事編程的人員不超過10個人,我就是其中的一個。

我一直對計算機特別的感興趣,之前還受到黑客風潮的影響,初中高中就特別的崇拜,想著能夠成為電腦高手。但是我高中學文去了,報考大學計算機工科類報不了,最接近的就是信息系統管理這個,是文理都收的。所以說上面的數據不足為奇。

因為這份興趣與熱愛,我學習編程課的時候都是非常的認真。我的HTML老師也是非常的溫柔耐心,所以我的HTML在大學學的是非常好。java學的基礎內容,學到數組依然會暈。學到循環,開始打印乘法表,打印鳳仙花數依然會絞盡腦汁想不明白。甚至於懷疑自己到底是不是學編程的料。

但是,我依然認真的學,並且算是班級裡的佼佼者。大二我有一次機會,進行分班。我還是想從事軟件,報了軟件精英班。當時的考試題目稍微難一些,不過也還好,做的不錯。我成功的分班進去了。這個時候,我對於軟件依然是一頭霧水,依然不明白。也僅僅是我能瞭解java的基礎內容語法,HTML的內容,SQL學的也是非常的差。

在一次課上,我把SQL語句結構照抄,但是我小寫了。我瞬間認識了這些單詞,明白了SQL的結構。根據結構SQL是一件非常簡單的事情。從此 ,我的SQL水平瞬間提高好幾個檔次,包括我工作後,依然對於寫SQL遊刃有餘,這是後話。慢慢的複雜查詢也不在話下,畢竟是簡單查詢構成的複雜查詢而已。

到現在,我只能說是對於單獨的HTML、SQL掌握的還可以,java基礎內容也一般,但對於新學的java web 依然沒有學好,還是一頭霧水。我們是項目與教學結合,我們是維護真實的上線項目。我們老師倒是很放心的交給我們。但是,架子是老師搭起來的,我們只是完善細節。即使這樣,我也是有些不明白,有些暈頭轉向。直到,有一次,我認真的從視圖層追蹤代碼追蹤一路到了數據模型層,我建立起來一條程序調用的關係,我忽然間又通透了。我明白了程序的運行邏輯,之後再寫項目我是可以獨立完成交給我的模塊了。

但是我現在依然不是一個合格的開發者,因為我做的僅僅是簡單的那一部分。重複工作的那一部分。框架怎麼搭建起來,怎麼運行出來的,原理什麼的,數據庫交互什麼的,我依然不清楚。

畢業後,依然是懷疑自己是否有能力從事軟件開發,我跟同學一起去了北京參加培訓。大學雖然學習的java,但是去培訓是學習的iOS開發。在培訓中,我覺得老師講的東西比較簡單,我能快速的跟上,這也得益於大學學習的就是編程。在培訓班也有零基礎的,他們學習起來就是非常的費勁。培訓班上學的基礎語法,我很快的就掌握了,然後學習面向對象。曾經在大學也學習面向對象,可是一直不理解面向對象的思想。這一次又學習了一遍,忘記是在哪個節點,我忽然開竅了,完完全全的明白了面向對象。以前所學的很多東西忽然間就明白了。我覺得從來沒有像現在這樣的理解程序,明白程序。

然而後面因為我的開竅,我忽然有些自大,覺得程序不過如此,沒什麼難的。後面的iOS UI課程我自己看的,老師講的時候我也是挑著聽。我認為我明白了我就過了。這樣我學的很快,但是壞處也會很明顯,就是不紮實。

學完所有的UI組件後,我們培訓班就結業了。我自信滿滿的去寫簡歷找工作。本以為我不需要弄虛作假整工作經驗,我也可以找到一個好的工作。但是我錯了,我簡歷寄出去總是沒了消息,了了幾家會跟我約面試,然而這幾家也並不看好我。然後我又修改簡歷,非常認真的修改簡歷。第一次發現,漂亮的簡歷是非常重要的。我想要一個機會,來證明我自己可以。但是我依然不敢太過弄虛作假,只是寫了自己有一年的實習經歷。這次面試的機會稍微多了點,但是大都面試的不理想。這段時間也是過的非常壓抑。我想不明白為什麼,在培訓班裡,我屬於尖子的那批,而找工作,我卻是墊底的。有些人寫三五年工作經驗,遇到了不是很懂技術的面試官,隨便聊聊就拿到了offer,薪資都一萬四五。我就是很奇怪,為什麼我就沒有機會。找不到工作的期間,我又調節情緒沉下心來,審視了我自己。我是有些傲氣了,不夠謙遜。並且我的技術也並沒有那麼好,因為自大矇蔽了雙眼。我開始看技術視頻,沉澱著,跟著學。所有的簡歷我也不投了,面試先終止。這是很艱難的,在北京生活成本很高,而我也不願意跟家裡要錢,還是靠著我大學積攢的三千塊錢一直撐著,學費也是貸款貸的。最後我已經淪落到一頓飯就花一塊錢買兩個饅頭,一瓶老乾媽將就著,有時候靠著蹭同學的救濟。這大概是我人生中的一個大低谷吧。熬過去總會上升的。

終於,功夫不負有心人,我看了很多的學習視頻,我覺得可以邊投簡歷面試邊繼續學習。我收到了面試邀約,我去面試了幾家,基本上是都談的不錯,能夠給到我offer。我選擇了第一家給我offer的公司。事實上,我的選擇也沒有錯,第一家公司讓我的成長也是飛速的,我至今還是非常感激我的第一家公司。

在第一家公司裡,有一個寶貝級的架構師。但是她的性格非常的好,我們整個iOS小組都跟她打成一片。她也是我們iOS小組的孩子王。工作上,我們遇到問題會去找她,她也能很快的發現問題給予指導。下班後,我們也是經常聚餐。在這個公司,我學了很多的組件開發,也學習了H5的開發。編程水平是直線上升。

不想寫了,戛然而止


小莊I


很多人都有你這樣的問題,已經入門了一門語言,卻怎麼也精通不了。原因不外乎兩點:\r

第一:缺乏實戰\r

第二:缺乏持續的學習\r

我是如何解決這個問題呢?\r

實戰:\r

1,在新項目中,多使用你新學到的知識。\r

2,將不錯的技術推廣到小組,大家一起用的話,更容易交流獲得心得。\r

3,使用剛學的技能加入公司內部的競賽,比如我們公司有個測試開發競賽。就可以將你的測試驅動開發(TDD)的思想應用進去。比完就會知道自己和他人的長短\r

持續學習;\r

1,總結工作過程的經驗教訓。這是一個長久的過程,為什麼十年經驗的會比一年經驗的平均薪資更高,就是他們長期的寫代碼過程中,會積累經驗。\r

碰到各類問題後解決的思路已經積累到了一個質變了。\r

2,有益的書多看看,數據結構之類的知識在後臺程序員的初級,乃至資深都是有要求的。\r

3,刷刷網上的題目,開闢另一種視野。\r

4,研究開源代碼實現,比如java的話,jdk源碼和spring源碼,非常值得去看看。


技術古玩


下面我以大學理工科必學課程《C程序設計》為例,其它編程語言都是一樣的道理。

1.找到一本講解該編程語言的經典教材,C語言一般就是風靡校園的譚浩強的《C程序設計》;

2.學習C語言的語法,按照教材的目錄內容通讀一遍。書中一般會有大量小例子,建議在電腦上自己把例子敲一遍、運行一遍、調試一遍,把例子中的語法吃透;

3.經過上面兩個步驟,一般基本掌握C語言的語法了。接下來就是找一些深入學習C語言的其它教材,教材以提供大量的真實案例為佳,按照書上的例子,看懂、吃透。這樣反覆聯繫,就能熟練掌握C語言了;

4.接下來就需要大量實戰項目經驗了,比如在單片機上做各種各樣的應用,這樣堅持幾年,就能精通C語言啦。



羊羊羊愛毛豆


我算是一名擁有多年工作經驗的工程師了,雖然不是軟件專業出身,但是由於工作的需要,也在摸爬滾打中用了5,6年左右的時間來學習了C語言的使用。非常高興來為你解答這個問題。

就拿C語言這個編程語言來講,要深入其中去學好它,其實沒想象中那麼簡答的。甚至可以用非常困難來形容。但是也不要被我的說法嚇到,其實要入門卻是很簡單。為什麼我會這樣說呢?下面就讓我來給你分析一下原因。

編程語言為什麼入門容易,深入困難?

首先,這是一門實踐性非常強的一門課程。在我看來,剛從學校畢業出來的計算機專業的學生99%都是業餘選手,就算你在大學期間考試拿了優秀也是一樣的。為什麼這樣講呢,因為你沒有經過各種項目的實戰,只是學了一堆理論的知識,敲了一點上機的代碼。這根本就不算學會編程,只能說是入門。就好比學習開車一樣,你最初看著別人開車,好像比較簡單,以為就是掛擋,然後踩油門的事,其實並不是這樣的。等到你考駕照的時候,你突然發現其實並沒有那麼簡單,因為你發現有各種操控技巧與規則要學習。等你畢業順利拿到駕照的時候,你可能感覺自己很牛逼了,什麼都會了,其實你錯了,這個時候你只是剛剛入門而已,當你上路的時候,你發現自己還沒有真正能夠駕馭車輛隨心所欲的那種感覺,你只是一個初生牛犢而已。等到你上路完全不再緊張的時候,可能已經經歷了很長的時間。

曾經網上有一個觀點:普通人用C語言在3年之下,一般來說,還沒掌握C語言;5年以下,一般來說還沒熟悉C語言;10年之下,談不上精通。

當我畢業的時候,我曾以為C語言只要掌握其語法、簡單的語義,無非就是弄懂變量、數組、指針、函數、內存管理就夠了。但是當我參加工作,真正要去做項目的時候,我發現我錯了,我確實想得太簡單了。剛開始我還不太會使用調試工具,所以常常出現一些簡單的語法錯誤都沒辦法解決。後來我學會了使用調試工具,但是有好多次程序報錯了,我用工具也找不出問題來,甚至不吃飯、不睡覺也還是出不來,直到慢慢的積累經驗之後,你會發現一些莫名其妙的問題,類似數組越界、指針使用不當等等。只有在結合了項目進行開發使用編程語言的時候,我才發現自己快速的進步了。有一句話說得好,初學者騎自行車的時候,可能覺得後輪兩側的輔助輪很有幫助,但一旦熟練過後,就會發現它們其實很是礙手礙腳。

學習編程語言要如何深入?

到了這個階段之後,我覺得自己需要一些更深入的去了解這門語言了,我要去找一些更有深度的書籍來去學習,而不是一些簡單入門的書。我去找了一些國外很早就出版,然後經過不斷更版的書籍來讀,因為我覺得這樣的書籍才是經得起歲月的推敲的。其中類似下圖這樣的書我就感覺很不錯。

結合這些比較有深度的書籍,然後在項目中不斷的實踐,我編寫的代碼有了比較大的改善,以前迷迷糊糊的一些東西,才開始慢慢得到答案,經常有恍然大悟的感覺。原來我知道的可能只是冰山之一角而已。

另外,檢驗自己有沒有學懂的方法就是:要經常把學到的知識點和大家去分享,看看別人的反應如何,如果他們都是似懂非懂的話,那你就是還沒完全學通,只有你分享的東西,大家都懂了,我認為這才是你真正掌握它的時候。

好像說得有點多了,我自己在編程方面雖然摸爬滾打多年,但是時常感覺自己有時候也只是大海上面的一隻船而已,茫茫天際,還是看不到邊際。


一起勉勵吧,喜歡我的分享請關注我,我們可以一起交流和探討。


智能硬件分析


1.找到一本講解該編程語言的經典教材,C語言一般就是風靡校園的譚浩強的《C程序設計》;

2.學習C語言的語法,按照教材的目錄內容通讀一遍。書中一般會有大量小例子,建議在電腦上自己把例子敲一遍、運行一遍、調試一遍,把例子中的語法吃透;

3.經過上面兩個步驟,一般基本掌握C語言


科科影視集結號


對於學習編程語言,根據我自身學習的經驗來說,深入學習的方法就是,

第一,找一些相關資料和視頻把基礎學會,能夠看的懂,會寫,會做。

第二,找一些基礎案例繼續編寫操作,並加深對基礎代碼的運用和記憶。

第三,然後找編寫代碼比較資深的行業精英學習,學習他的專業,學習他的耐心,學習他的細心,多多溝通他的代碼編寫經驗。

第四,多找幾個編寫語言比較出色的行業高手學習,融匯他們每個人身上的優點,提高自己編寫語言的能力。

總得來說,要深入學習一門語言的編寫能力,一定要多學習,多思考,多做案例,多分析,多向身邊的高手學習,這樣的進步一定會非常快。希望我的回答能夠幫助到您!



ai人工智能科技之旅


1. 以JAVA語言為例子吧,首先準備好編譯環境。網上的教程很多。

2. 其次,在京東,天貓等弄幾本比較好的編程語言來肯。多看,多實踐,寫一些Demo什麼的。

3. 多找些相關技術的社區如CSDN等,多看些技術的博客。

4. 如果可能的話,做些兼職提升自己

5. 學好數學,數據結構等基礎學科,對編程的硬提升有極大幫助

6. 學好英語等等吧


黃花家的黑胖


1.明確學習這門語言的目的,是要做web前端,後臺,還是桌面,還是Linux?

2.先學習基本的語法,同時瞭解一些業務相關知識,比如數據庫。做好筆記

3.網上尋找一些實例,學習,印證之前學習的知識,

4.做一個實際的項目

以項目為導向,學習的效果最好。

光學習語言本身,是沒法學好語言的,需要和業務結合

語言只是工具


Shaka0723


任何一門編程語言要想深入學習,基本功和項目經驗是不可或缺的。

基本功包括操作系統、計算機網絡、編譯原理、數據結構和算法等等。瞭解了基本功才能更好地熟悉各門語言中的多線程、IO流、網絡編程、集合框架的原理。基本功不掌握的話,只能到達熟練使用框架的地步,而無法(更準確的說是非常難)更深入地掌握語言的底層。

至於項目經驗的話,它是任何學習過程都需要的。


分享到:


相關文章: