編程15年的技術大神之經驗告白,樣樣實在

文章推薦指數: 80 %
投票人數:10人

學習過程中的彎路是不得不走的,但是學習方法上的彎路還是可以繞的。

得到經驗和浪費時間終歸是兩回事嗎?

我是個完完全全自學入門的人,現在雖已經進入科班,但是我認為經驗還是可以分享給想自學編程的大家的。

當然如果大家是想要為了信息學的競賽學習,那我覺得這個答案就不適合你了,你應該選擇更為系統,更為針對,強度也更大的訓練方法。

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...

學習編程的誤區

解惑:不要動不動覺得什麼東西過時了,COBOL還有OO版本面世,還有FORTRAN,LISP,好古老的語言吧,現在還用得很廣呢。如鵬網的楊中科老師經

小白入門編程學習路線圖

編程是個很有趣的事情,它會帶給程式設計師無窮無盡的快樂,隨著計算機的普及,越來越多的同學都選擇踏上編程之路,那作為一個初學者,學習編程要如何入門,相信這個問題也在困擾著很多人...小編小姐姐在這...

為什麼大家都怕學C++?

現在很多人都覺得C++學起來相當的費勁,特別是對剛入門的,看到最後直接就沒法看下去了,抽象的邏輯太多了,越看越迷糊,最後也就選擇了放棄。筆者看到很多大學開設的第一門程式語言就是C++,如果單純從...

如何才能做C語言項目?

很多初學C語言的小夥伴,在學習之初並沒有一個大概的概念,學習這門語言需要掌握多少知識點,怎麼才算學的差不多?C語言的精髓點在哪? 學到多少東西才能夠達到做項目的標準?學習的時候需要注意哪些細節點...

從入門到精通c語言需要多久,你真的知道嗎?

C語言作為一種程式語言,它的發展可謂歷經千辛萬苦。我們總是在說,程式設計師所做的就是天天敲代碼,但是單單敲代碼可是永遠也學不會C語言的更深一層的所蘊含的知識。所以說,學習C語言,學的紮實的話,5...

c++和Java,誰更勝一籌?

方向比努力更重要,對於初學編程的人來說選擇一門合適的程式語言關係到自己以後的職業發展。c++和Java哪個更適合作為入門語言?今天就聽千鋒武漢小編來講一講。

為什麼放棄學習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 ;首先作為一個初學者,必須扎...