編程15年的技術大神之經驗告白,樣樣實在
文章推薦指數: 80 %
學習過程中的彎路是不得不走的,但是學習方法上的彎路還是可以繞的。
得到經驗和浪費時間終歸是兩回事嗎?
我是個完完全全自學入門的人,現在雖已經進入科班,但是我認為經驗還是可以分享給想自學編程的大家的。
當然如果大家是想要為了信息學的競賽學習,那我覺得這個答案就不適合你了,你應該選擇更為系統,更為針對,強度也更大的訓練方法。
1.
大多數人學習編程最早的懊惱就是不明所以的「燙燙燙燙燙燙燙燙」,雖然基本教育的節奏都是從大的C語言開始,但是作為一個早早自學編程的人來看,C語言作為入門語言是很容易打擊人的(教材本身的質量也是一個因素),所以如果是自學入門的話,不妨學一學的入門容易規則簡單的語言培養語感和基本素養,例如PHP、VB這樣的東西,可以很快做出一個可以看可以用的東西,是很有成就感的,有了自信就自然而然得會想深入的提升自己了。
2.
自己當年中學的時候做論壇,那時候流行的是Discuz!,為了做好玩的互動插件學的PHP。
當時的感覺是,自學一門程式語言並不輕鬆,在會的人看來容易的概念其實不容易灌輸給完全不會的人。
最開始自己就是啃書本,上課都不記筆記的我把學習到的東西規規整整地記在本子上,直到把基礎的語法和語言特性都了解了才停止。
不一定像我這樣,但是作為一個一清二白的菜鳥,一定要讓自己有一個把基礎的基礎看下去的驅動力才可以。
3.
實踐是檢驗真理的唯一標準。
實踐對於初學者而言非常重要,但是C語言課本上的實踐大多是一些就事論事,針對知識的題目,面對一個控制台程序,其實做完了……過幾天也不會覺得這個有什麼意思,所以我認為一定要儘可能的嘗試去做一個可以用的東西。
學PHP做個登陸頁面呀~學VB仿個Win計算器呀~學Java做個掃雷~總之做出能夠對除你之外的人都能有一點點興趣的東西,對自己是很鼓舞的。
在這方面,C語言這種,對於初學者做圖形介面比較不友好的語言……主要的問題就是不會讓你產生那種真正解決問題的成就感。
4.
最開始的實踐是一種拼湊,因為知識的不牢靠,但是需要解決的問題對自己又是如此的龐雜,所以那個時候的代碼都是以能解決問題為主,而不是以好的方法解決問題為主。
現在回過頭來看當年寫過的論壇家族,論壇寵物中心,從外觀上講確實是當時一流的,但是背後的代碼著實慘不忍睹。
不過對於初學的人而言,能夠利用現有知識達成目標已經是竭盡全力了。
那個時候的編程沒有精雕細琢,就是為了實現而實現,也不管有多少if套著if,甚至變量名我都能起成$if。
不過我必須承認的是,沒有那段經歷,我可能不會如此的喜歡編程。
當有人使用了你的成果,不管是對他提出建議還是提出讚美,對於一個尚未破殼的菜鳥而言,都是很棒的感覺。
說實話,作為初學者,敢寫代碼,就是個裡程碑了。
5.
歷史和人的感覺是很像的,當你的代碼寫得多了的時候,你自然就會覺得寫得不好看。
照現在的話講,那些代碼一點都不優雅。
作為一個逼格滿滿的人,完成任務已經不再是一個追求,當Ctrl+C/V成了編程的必備步驟的時候,你自然而然的就會思考了:是不是可以不這樣做?這是一個重要的過程,你會想要提升你代碼的執行效率,你會想減少查詢資料庫的次數,你會想用輕便的代碼實現想要的功能……當你步入這個階段的時候,恭喜,菜鳥終於入門了。
這是三個大坑,算法優化、資料庫查詢優化、代碼復用。
你得心甘情願跳進去,再慢慢往外爬。
5.
看上去我好像在抬高PHP一樣,其實不是這個意思。
我只是覺得作為一個可以立竿見影的入門語言,它是很合適的。
進入大學計算機專業後,我和同學一樣,一起學習C語言,我沒有接觸過這門語言,但是我卻比周圍的初學者們更快更好地接受了它,即便是像內存、數據類型、指針等從沒有接觸過的概念,我也比別人更快的認識清楚。
我覺得這一方面是因為編程所帶來的學習能力的提升,另一方面也是因為我自認為我不是菜鳥所帶給我的自信和動力。
我當時做了很多出格的事情,當講課、教科書都在用VC的時候,我執拗的使用VS2010,因為我覺得這個用戶體驗好。
在課設說明書還在按照Turbo
C說明圖形介面的時候,我卻找了個能在VS下使用的仿造的圖形庫EasyX。
其實人都是追求美的,老師也不喜歡你開個DOSBOX滾動翔一樣的Turbo C給他演示。
擅用和檢索現有的工具和資源,是這個時期我最大的收穫。
當然,這裡也挖了一個大坑,用戶體驗。
前幾天知道,我的學弟學妹們都放棄Turbo C了。
6.
在學校的學習過程是這樣的:C -> C++ -> Java。
C++和C截然不同,作為一個擁有面向對象特性的語言,它帶給我們很多新鮮的概念。
儘管初次見面的時候我們彼此都如此羞澀,誰都看不懂誰。
在學習C++的時候,其實我並沒有提起多大的勁頭,只是覺得STL很好很方便,在OJ上刷題的時候能比C省事不少。
不過之後看到一本國外的關於物理引擎的書,便又是提起了12分的興趣看了看。
那本書終歸我是沒有看完,不過只看一部分我便能感受到自己的膚淺——原來類是這麼用的啊。
很久之後我才知道這是一個高級坑:設計模式。
7.
之後數據結構的課程設計,按照套路是要用Java做UI的,但是Java的IDE在我的電腦上一直表現不佳,加上調試時候的種種不順暢,使得我我對Java做窗體程序好感不佳。
於是我想起了初中的VB,隨後又聯想到了它的同門C#(求別問怎麼聯想的=。
=),那種拖拽做介面的爽快感……經過我的推廣,班裡最後只有一人用Java做UI,還有另外一個人用的MFC。
這個其實是想說,我這個人比較懶,所以喜歡找更好的解決方案,存在就有存在的價值,短短5天,所有人都可以用C#做出一個好看的介面,而Java搞得很麻煩又不好看。
這不是在談優劣或是投機取巧,而是在談生產力、效率。
我訓練的人可以5天上崗,做得比你訓練一個學期的人還要好,那這就是價值。
8.
其實一路走來,站的越高,自己就越容易被顛覆。
當PHP寫代碼覺得原始的時候,框架這樣的東西就會跳在你眼前打臉。
當WinForm程序做起來感覺到代碼混搭的怪異的時候,就發現其實還有個WPF。
當覺得Java臃腫性能堪憂的時候,高級的Web技術又會顛覆你對Java的偏見。
學習編程的人需要這樣一個自我認知和自我提高的過程,老實說,我覺得這其實不算彎路,這可都是經驗呀。
這些所謂的彎路是你只要踏上這條路就必走不可的,就像是宜家的步道設計,人家設計好就是要你走遍全程。
因為這是一個過程,學習過程上的彎路是寶貴的。
學會選擇,學會甄別,學會找到適合自己的方法,這才最重要。
作者:Blueve
大家如果對編程感興趣,想了解更多的編程知識,解決編程問題,我們這裡有java高手,C++/C高手,windows/Linux高手,android/ios高手,請大家關注我的微信公眾號:程式設計師互動聯盟或者coder_online
C語言從入門到精通需要多久?你真的知道嗎!
C語言作為一種程式語言,它的發展可謂歷經千辛萬苦。我們總是在說,程式設計師所做的就是天天敲代碼,但是單單敲代碼可是永遠也學不會C語言的更深一層的所蘊含的知識。所以說,學習C語言,學的紮實的話,5...
菜鳥學C,各種問題讓你懵逼 初學者最容易遇到的問題解惑
都知道C語言很強大,這個強大一是來自其功能,第一次出名就很牛逼的編出了UNIX系統,然後跟著UNIX這個明星,於是自己的影響一路飆升,二是C語言不但能夠寫UNIX的作業系統,而且編寫LINUX...
小白入門編程學習路線圖
編程是個很有趣的事情,它會帶給程式設計師無窮無盡的快樂,隨著計算機的普及,越來越多的同學都選擇踏上編程之路,那作為一個初學者,學習編程要如何入門,相信這個問題也在困擾著很多人...小編小姐姐在這...
為什麼大家都怕學C++?
現在很多人都覺得C++學起來相當的費勁,特別是對剛入門的,看到最後直接就沒法看下去了,抽象的邏輯太多了,越看越迷糊,最後也就選擇了放棄。筆者看到很多大學開設的第一門程式語言就是C++,如果單純從...
如何才能做C語言項目?
很多初學C語言的小夥伴,在學習之初並沒有一個大概的概念,學習這門語言需要掌握多少知識點,怎麼才算學的差不多?C語言的精髓點在哪? 學到多少東西才能夠達到做項目的標準?學習的時候需要注意哪些細節點...
從入門到精通c語言需要多久,你真的知道嗎?
C語言作為一種程式語言,它的發展可謂歷經千辛萬苦。我們總是在說,程式設計師所做的就是天天敲代碼,但是單單敲代碼可是永遠也學不會C語言的更深一層的所蘊含的知識。所以說,學習C語言,學的紮實的話,5...
小白如何自學C/C++——一個系統的學習路線及學習思路
對這方面感興趣或者想學習C/C++的可以加群:558502932,大家一起學習交流如今,在這個信息高度發達的時代,越來越多的人去學習軟體編程,也有越來越多的人學習程式語言,但是學習程式語言的第一...
新手自學C++會遇到的問題怎麼辦?不怕這篇文章帶你飛
現在網際網路發展迅速,編程行業也成為了很多大學生或者工作者所嚮往的行業。大學生可以選擇自己專業課,但是還是要抽出大部分的時間來進行自學,應為基本上大學的專業課程所教授的內容都比較表面沒有深入的帶...
為什麼放棄學習C語言?
C語言還是很基礎的程式語言,還是值得去學,那麼怎麼去學?什麼人才能學好?為什麼學到一半就早早繳械投降了?眾多迷霧,眾多的困難,怎麼破局? 很多對編程感興趣的小夥伴,找個所謂的高手,問了幾個編程入...
想了解編程嗎?帶你入門java,不錯的學習資料!
在這個網際網路資訊時代,編程現在已經與我們的生活息息相關,你可能覺得它離我們很遠,但是它卻在的身邊。我們上網用的網站,玩的遊戲,以及手機上的程序等等,下面我就為大家介紹一下我所了解的程式語言,介...
初學者入門Python常見的疑惑及解答!
隨著近兩年人工智慧的逐漸火爆,Python已經被廣泛的運用到不同的領域,在tiobe統計程式語言的使用率中,Python在一年之間使用排行榜中上升了3名,而且各大公司在招聘員工的時候如果能掌握...
如何正確入門C/C++學習領域?
【推薦的學習書籍】1>C Primer Plus中文版2> C++ Primer Plus中文版【推薦的學習方式】1> 認真把推薦的C/C++書籍看完並理解80%以上的內容。2> 在看書的過程中...
Linux系統究竟該如何著手
初來乍到,作為一個小白,我想記錄自己學習進步,一是在未來回看時,發現自己的進步,其次就是希望能通過自己的學習之路,給未來的走向這條道路的兄弟指引一條道路。First ;首先作為一個初學者,必須扎...
C語言的大門,從入門到精通,你能想像它的距離有多大嗎?
C語言作為一種程式語言,它的發展可謂歷經千辛萬苦。我們總是在說,程式設計師所做的就是天天敲代碼,但是單單敲代碼可是永遠也學不會C語言的更深一層的所蘊含的知識。所以說,學習C語言,學的紮實的話,5...
編程入門寶典,給剛開始學習編程新手的5點建議!
編程就像圍城,城裡的人想出去,城外的人想進來!對於零基礎的編程菜鳥,要殺入代碼的戰場需要準備好哪些東西呢?w3cschool在此給小夥伴們分享5點建議。