程式設計15年的技術大神之經驗告白,樣樣實在
得到經驗和浪費時間終歸是兩回事嗎?
我是個完完全全自學入門的人,現在雖已經進入科班,但是我認為經驗還是可以分享給想自學程式設計的大家的。當然如果大家是想要為了資訊學的競賽學習,那我覺得這個答案就不適合你了,你應該選擇更為系統,更為針對,強度也更大的訓練方法。
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的偏見。
學習程式設計的人需要這樣一個自我認知和自我提高的過程,老實說,我覺得這其實不算彎路,這可都是經驗呀。這些所謂的彎路是你只要踏上這條路就必走不可的,就像是宜家的步道設計,人家設計好就是要你走遍全程。因為這是一個過程,學習過程上的彎路是寶貴的。
學會選擇,學會甄別,學會找到適合自己的方法,這才最重要。
原文連結:http://toutiao.com/a4274046777/?iid=2940446160&app=news_article&tt_from=mobile_qq&utm_source=mobile_qq&utm_medium=toutiao_ios&utm_campaign=client_share
github主頁:https://github.com/chenyufeng1991 。歡迎大家訪問!
相關文章
- 程式設計師怎樣新學一門技術程式設計師
- 在國企做程式設計師是怎樣的體驗?程式設計師
- 程式設計的真實樣子程式設計
- 扎心!一個3年經驗的程式設計師經驗之談!程式設計師
- 在小公司程式設計是一種什麼樣的體驗?程式設計
- 技術從業者的經驗和年齡-程式設計師的職業規劃程式設計師
- 10年之後,程式設計師的收入可能會怎麼樣?程式設計師
- 漫談程式設計師系列:怎樣成為技術達人程式設計師
- 技術總監7年經驗——論程式設計師的職業發展路線程式設計師
- 窺探Swift程式設計之別樣的HelloWorldSwift程式設計
- 程式設計師的樣子程式設計師
- 如何像程式設計師一樣思考 - 解決問題的經驗與教訓程式設計師
- 回顧15年程式設計師生涯,我總結的7點經驗程式設計師
- C++ Builder 多執行緒程式設計技術經驗談C++UI執行緒程式設計
- 程式設計師大神,C語言程式設計製作不一樣的五子棋小遊戲程式設計師C語言遊戲
- 在國企做程式設計師怎麼樣?程式設計師
- 在Facebook當程式設計師會是什麼樣的程式設計師
- 程式設計師喜歡什麼樣的產品經理?程式設計師
- 我在 Twitch 平臺直播程式設計的經驗程式設計
- 做大廠程式設計師是一種怎樣的體驗?程式設計師
- 經驗之談:程式碼該怎樣寫才能乾淨整潔
- 怎麼樣學好python技術當一名程式設計師Python程式設計師
- 在西方的程式設計師眼裡,東方的程式設計師是什麼樣的?程式設計師
- 在北京程式設計工作經驗3年可以拿到多少工資?程式設計
- App架構設計經驗談:技術選型APP架構
- 實際工作中是這樣程式設計的程式設計
- 一百年後,人類怎樣程式設計?程式設計
- 這樣用技術,程式猿更幸福
- Java加薪寶典——程式設計師年薪50W必需掌握怎樣的技術Java程式設計師
- 程式設計師自我修養之程式設計經驗總結程式設計師
- 99.9%的程式設計師有過這樣寫程式碼的經歷程式設計師
- 在遊戲中設計動物是怎樣一種體驗?遊戲
- 《深入react技術棧》之樣式處理React
- 10年學到的程式設計經驗總結程式設計
- 程式設計從業五年的 14 條經驗程式設計
- 在中國,什麼樣的Java程式設計師最受歡迎Java程式設計師
- 送給和我一樣曾經浮躁過的PHP程式設計師PHP程式設計師
- 和程式設計師談戀愛,是什麼樣的體驗程式設計師