• 正文
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

程序員學習就像練功,基礎(chǔ)打牢后百變不離其宗

2016/09/07
14
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?

有年輕的朋友問我:學習編程難不難?這個問題真難回答。因為編程的概念太廣泛了,不同的需求層面要求確實不一樣。如果只是干份工作,賺一份薪水養(yǎng)家戶口,根本不是難事。甚至學歷都不需要,只要你的邏輯能力尚可,認識 ASCII 碼和二十幾個 C 的關(guān)鍵字就可以。年輕人如果想學習是好事情,一般情況我以鼓勵為主。

但是有位同事是這樣回答的:“實在太簡單!一共才五條語句:if、for 、switch、 while、 do…while,你們都是大學畢業(yè),半個小時就學完了?!比绻皇侨腴T,做簡單項目,學習過程確實不需要太長。但是半個小時就可以完成,就有點調(diào)侃了。如果真的這么簡單,程序員這個崗位估計就輪不到我了??梢詮奈易陨淼睦斫庵v講經(jīng)驗,大家用于借鑒。

學習首先必須要花大量時間。

前一陣網(wǎng)絡(luò)上就“成為專家是否需要一萬小時”的話題展開了討論,想想確實是挺可怕,每天 10 小時,一年 3650 小時,大概需要三年可以完成。但是在這個快速變化的社會環(huán)境下,如果花費三年學習一項技術(shù),可能機會也隨之丟失了。

但是事實就是這么殘酷,做任何事情都需要時間,任何社會產(chǎn)品都會把時間計入生產(chǎn)成本。我愛人羨慕醫(yī)生的收入,但是一名可以出診的醫(yī)生需要通過本科學習五年,然后用五六年的進行實踐鍛煉,才能獨立出診。而我專科畢業(yè),在從事很多工作失敗情況下才選擇編程工作,基本沒有進行系統(tǒng)學習過程,所以自然薪水不及主治醫(yī)生。

高收入和權(quán)威就意味著在某一領(lǐng)域達到“專家”的水平,才會有舒服的工作環(huán)境。既然是“專家”,那么某方面的知識、技能、經(jīng)驗必然要超越 90%同一領(lǐng)域的人,成為少數(shù)權(quán)威派。但是人的工作技能是后天獲取的,所以必須學習,而且要在這個過程中付出相當多的努力。

很多人學習時希望有專家能帶一下,如果沒有這樣的同事或者朋友,這就是奢望。最直接的辦法就是報學習班,花一點錢也值得。前一陣我加入幾個 QQ 群,剛開始熱情很高,慢慢也就退熱了。因為高手不屑于和我交流,和我水平相當?shù)暮孟褚矝]有太大交流的必要,但是還是發(fā)生幾個有趣的事情。

星期五下午,有位QQ群中網(wǎng)友發(fā)出一個消息,我看了看覺得無語:

“有沒有流水燈的程序?那位有發(fā)一個上來?”

學習必須好問,但是關(guān)于流水燈程序應(yīng)該泛濫,自己搜羅一下即可。對于 1000 人的群,至少幾十人同時關(guān)注,這得浪費大家多少時間?誰又有興趣回答這種簡單的問題。二十分鐘后那位網(wǎng)友又重發(fā)這條消息,我實在忍不住了,就私聊給他順手寫了一了最簡單流水燈程序。結(jié)果他回答:“看不懂,講解一下?!蔽覍嵲跓o語了,告訴他“請百度”。其實在提問之前百度一下或者思考一下,很多問題自己也就可以解決了,實在想不明白的問題再提問,網(wǎng)友才更有興趣和你探討。

?

有天下午我看到有人給我發(fā)消息,讓我?guī)兔匆粡?a class="article-link" target="_blank" href="/tag/%E5%8E%9F%E7%90%86%E5%9B%BE/">原理圖。我看比較簡單,STM32103 采集 PT100 的值轉(zhuǎn)換為溫度,然后顯示在 LCD 上,另外由一個 RS485 接口,我猜一定用來通訊的,最簡單可以通過 RS485 接口讀取 PT100 傳感器溫度。如此簡單,一看就知道是照書本畫出來的,聊完原來是本科畢業(yè)設(shè)計。當時已經(jīng) 6 月初了,正常情況算來,本科生已經(jīng)開始離校,這位同學為什么還在做畢業(yè)設(shè)計?他希望我?guī)退帉懸幌鲁绦?。我又汗顏了一把?/p>

“事情不復雜,你花點時間可以自己完成,如果有搞不定,可以上網(wǎng)查詢,網(wǎng)上資料非常多?!蔽覄袼?/p>

他回答時間太緊,下一周就是最后一次答辯了,再不完成作業(yè)畢業(yè)都有問題。

“找一下你們輔導老師吧。”我認為如果不是學生問題,那么就一定是輔導老師有問題。

“我們輔導老師已經(jīng)不管我們了,我前一陣找工作了,一直沒有做畢業(yè)設(shè)計,現(xiàn)在剛忙完工作事情,才回學校做畢業(yè)設(shè)計,同學們通過的已經(jīng)離校了?!彼行┪?。

時間這么緊張,看來輔導老師也是無能為力了。

“你幫我把程序編寫一下吧,我實在不會?!比绻俏?guī)退麑懗绦?,簡單點估計一兩天也就行了,但是我真不想違背原則。

“實在不行,讓老師再另外給你一次答辯機會?!蔽覄袼?。

“我必須按時畢業(yè),老家工作已經(jīng)聯(lián)系好了,等著用畢業(yè)證。”他有些怒了。

“這是你自己造成的結(jié)果,自己想辦法解決?!蔽抑苯踊亟^了他。

他再沒有說話。別人做畢業(yè)設(shè)計的時候,你在找工作?,F(xiàn)在工作找好了,又來找人幫忙做畢業(yè)設(shè)計。工作機會和畢業(yè)設(shè)計是可以兼得的,你沒有協(xié)調(diào)好,沒有理由責怪別人不幫你做。

一萬小時對于抓住某個商機來說確實不合適。但是如果想掌握一門謀生技能,不一定需要 1 萬小時,但是連續(xù)的大塊的時間還是必須。

?

其次,必須獨立思考。

學習資料現(xiàn)在非常豐富,不可能一一瀏覽。找一本經(jīng)典仔細認真學習就可以。我比較反感一些工具類書籍的名字,如《21 天掌握 C 語言》、《100 天精通單片機》、《XX 入門大全》等。21 天初步認識一下 C 的編程規(guī)范是可以的,到底多長時間能“掌握”,就要看自己造化了。100 天如果能精通單片機,單位還要我們這些從業(yè)十年之久的工程師做什么?100 天也就完成一個不太復雜的項目,精通實在談不上,沒有任何一本書是大全的,因為技術(shù)一直在演進。

所以找經(jīng)典資料學習,只要有一本書仔細學習過后,很多同類的書可以一目十行。但是第一本書內(nèi)容學習起來確實十分不容易,這時候必須獨立思考。思考過程其實就是尋找你現(xiàn)在已經(jīng)具有的知識體系與新的知識體系對接過程。也就是搭建一個從過去已知到新的未知橋梁。其實就是建立一種新的思維習慣,只要這種思維習慣建立好了,新的知識就會轉(zhuǎn)化為一種潛在意識,成為意識后就是你固有思維一部分,也就可以靈活應(yīng)用了。

在單位 DTU 項目中,系統(tǒng)通訊配置參數(shù)使用了結(jié)構(gòu)體,編寫程序很方便,但是通過外部訪問時就不方便。我本來打算重新改寫數(shù)據(jù)類型,有位同事將結(jié)構(gòu)體中數(shù)據(jù)統(tǒng)一為 INT 類型,這樣就可以使用地址訪問結(jié)構(gòu)體了。原理非常簡單,了解結(jié)構(gòu)體和數(shù)組在內(nèi)存中存儲形式就可以了。

我以為做到這一點是他深思熟慮后的結(jié)果,誰知他只花費了不到一分鐘時間就搞定了。獨孤九劍,無招勝有招。忘掉所學的知識,剩下就是意識。

再有,超越原有知識領(lǐng)域,廣涉獵。

我女兒上一年級了,第一天老師就召集家長開會學習?!昂⒆訉W習時,家長不要看電視、玩手機,最好也找一本書來學習,給孩子做好榜樣。”

既然老師要求家長要看書,我也就找一本書看看吧。在女兒學習時,我隨手在書架上取下《C++ primer plus 第三版中文版》,這本書在我書架放了十三年了。我一直沒有時間系統(tǒng)學習,趁機彌補一下。我一直用 C 做單片機程序,C++一直沒有用到,因為我覺得面向過程更容易設(shè)計單片機程序,面向?qū)ο笮枰蟮臈:投?,單片機用起來比較困難,總覺得但是關(guān)于單片機書我實在沒有意義花大塊時間去學習了??墒菚嘘P(guān)于對內(nèi)存結(jié)構(gòu)描述非常清晰,做任何程序都可以參考其中的思想方法。我仔細閱讀后,第二天上班改寫了我們單位最近正在開發(fā)的 DTU 程序,代碼縮減了 40%左右。

怪不得 NBA 的球員在平時訓練時,不只是練習投籃動作,因為這個對于他們非常熟悉了。投籃使用的不是腦細胞,而是肌肉細胞,他們很多人在練習拳擊,因為拳擊可以鍛煉人反應(yīng)速度、身體爆發(fā)力、以及下肢動作靈活性,而這些技能常規(guī)的籃球訓練效果沒有拳擊訓練效果好。其實很多社會管理、哲學的知識與編程在某些方面有很大的共性。如果將其他學科方法應(yīng)用于編程,也會對程序效率提升很多。

總之學習是一個循序漸進,時時刻刻的事情,沒有一勞永逸的辦法。最近重溫讀金庸先生《笑傲江湖》,岳不群在思過崖對令狐沖說的一段話可以借鑒一下。岳不群人格不敢恭維,但是這句話絕對是對的。

“本門氣功與別派不同,只須勤加修習,縱在睡夢中也能不斷進步…?!?/p>

當年我的一位同事,程序怎么也跑不通。晚上睡夢中夢見程序跑通了,起來開電腦,改寫程序,2 分鐘后關(guān)電腦,第二天告訴大家問題解決了。

與非網(wǎng)原創(chuàng)內(nèi)容,謝絕轉(zhuǎn)載!

系列匯總:

之三十一:工程師們:挺直腰桿,再過 200 年咱也不會失業(yè)

摘要:有人預測隨時人工智能的發(fā)展,很多工作崗位將被機器代替,這是不是意味著工程師就要失業(yè)了?

之三十:工程師的苦衷:拿著如此這般的薪水如何能達到德國標準!

摘要:老板每次都要求我們達到德國標準,但是您老給的新書是德國標準嗎?

之二十九:工程師的工作量似冰山,水面下的 80%讓小習誤工期又失獎金

摘要:你以為你的工作量只是眼前的嗎?那就錯了,其實多得你遠遠想不到 ...

之二十八:工程師的宅男時光:無意間練就了一身“編程神功”

摘要:駱駝曾將有一段失業(yè)在家的時光,無聊之余,他學習了 c 語言編程 ...

之二十七:工程師:好書不是太“膚淺”,是大道至簡

摘要:推薦一個新同事學習 C 語言,他說這本書講得太膚淺,后來經(jīng)過慢慢的琢磨,他覺得這本書其實很有價值 ...

之二十六:工程師小李辭職記:老板的“情深意切”其實是個坑

摘要:老板一直不漲工資,于是小李提出了辭職,但是老板確讓他薪水翻倍 ....

之二十五:工程師:別被“等我有錢了再 ...”這句名言給害了

摘要:偶然的一次機會別人送了駱駝一臺咖啡機,駱駝一直想等買房子了再安裝上喝吧,結(jié)果新房裝修好的時候機器已經(jīng)碎了 ...

之二十四:工程師的時間就像海綿里的水,擠擠就能接個“私活兒”

摘要:駱駝最近接了個私活,可是兩個月過去了他卻還沒開始執(zhí)行,因為實在太忙,公司忙,家里還忙,可是答應(yīng)別人的事情總不能食言吧 ...

之二十三:馬領(lǐng)導的“勤勞”卻給我們平添許多愁

摘要:公司空降了一位馬領(lǐng)導,天天很勤奮,早出晚歸,還要大家都向他學習,駱駝變得更加忙碌了 ...

之二十二:你讓員工吃大鍋飯,員工更會磨洋工!

摘要:沒有鼓勵就沒有動力,在公司里同樣適用,如果你對員工的突出貢獻視而不見,他們就會想別的辦法 ...

之二十一:為了省下印刷費,老板把產(chǎn)品說明書縮成了 4 頁紙

摘要:產(chǎn)品說明書印刷成 10 頁和 4 頁的區(qū)別是什么?或許你會說省下很多客服電話,這位老板卻說會省下很多錢 ...

之二十:奮斗在城中村的“光輝歲月”

摘要可能很多人都有過城中村的奮斗史,那段時光收入低,但是內(nèi)心充實,工作忙,但精神奕奕,因為心中有一個希望不斷在呼喚,我要走出城中村,F(xiàn)ighting!!駱駝本次分享的是他在城中村的故事。

之十九:郭老板,隨你大聲吼,我走

摘要:如果你遇到一位愛大聲吼叫的老板會怎樣?留下悉心指導,還是拍拍屁股走人?駱駝遇到的這位可是他的朋友 ...

之十八:老板,我是程序員不是“組裝工”

摘要:梁程本來是程序設(shè)計的,負責公司的好幾個項目,但是老板卻一直讓他親自燒寫程序,而且不見有讓生產(chǎn)幫忙的跡象 ...

之十七:讓軟件工程師去修復硬件問題,咋下手?

摘要:軟件工程師和硬件工程師的職責分明,相互合作才能做出好的產(chǎn)品,但是如果硬件出問題了非要軟件工程師解決會出現(xiàn)什么結(jié)果?

之十六:競爭對手的五折價格戰(zhàn),耗不起!

摘要:合作多年的公司忽然告訴我們要停止供貨,原因是競爭對手開發(fā)了一款價格低廉而性能一樣的產(chǎn)品,于是老板決定要我們開發(fā)一款同樣的產(chǎn)品來和競爭對手競爭,等產(chǎn)品開發(fā)出來以后不料客戶又有了升級版,我們繼續(xù)死磕嗎?

之十五:一款產(chǎn)品的成敗在與細節(jié)

摘要:朋友想要按照市場比較成熟的產(chǎn)品設(shè)計一款類似的產(chǎn)品,隨后緊鑼密鼓開始設(shè)計硬件和軟件,完成以后發(fā)現(xiàn)在細節(jié)上有很多缺失,這引起了我對產(chǎn)品細節(jié)的考慮 ...

之十四:一個任務(wù),可以從第二項開始做

摘要:朋友托我給他編寫一本技術(shù)手冊,我思量半天遲遲無法下筆,后來女兒拿著玩具過來讓我?guī)退龘Q電池,問我為啥不能從第二個句開始,我豁然開朗,可以從自己會的先開始,靈感慢慢積累 ...

之十三:上帝遞給你一個機會,你敢接嗎?

摘要:上帝是一個推銷員,她無時無刻都在想你推銷各種機會,你只需要邁出一步就可以接住。機會在與把握,如果你不去把握,再好的機會也不屬于你。從我同事小張和小李兩個人的例子可以看出 ...

之十二:富二代也愁“娶妻”

摘要:我的同學李華是家里的獨生子,1995 年西安開始建設(shè)大明宮遺址公園,李華家剛好沒在規(guī)劃之內(nèi),于是一下子過上了小康的生活,說媒的踏破門廳,可是偏偏他母親對姑娘的要求很高,最后 37 歲還沒對象 ...

之十一:給自己挖一口“井”

摘要:我同學講了一個關(guān)于兩個小和尚挑水的故事,不是大家聽到的那個版本,如今我同學已經(jīng)成了當?shù)氐钠髽I(yè)主,這與給自己挖井有關(guān),每個人都應(yīng)該為自己挖一口井,以備不時之需 ...

之十:職場菜鳥:M3 還是 C51?

摘要:公司新來的小伙兒問我應(yīng)該選擇從 M3 開始學習單片機還是從 C51 開始?我當然提議是 M3,但是他卻擔心沒有 C51 的基礎(chǔ)不好入門!那就從 M3 和 C51 的價格、市場發(fā)展趨勢和占有率來分析一下吧 ...

之九:兩瓶啤酒斷送大好前程

摘要:由于公司規(guī)模的擴大和業(yè)績的激增,公司計劃提拔一些中層管理人員去北京總部任職,而這個名單里就有駱駝的名字,喜從天降,駱駝心情大好,可是在交接完工作之后的一次偶然事件讓他失去了這次機會,而且工作也不得不換 ...

之八:想省勁兒多動腦

摘要:每天熬夜寫程序,后來才發(fā)現(xiàn)一直是白天寫晚上改,晚上寫白天刪,周而復始,效率低下。后來認識了公司里的李工,他每天的工作悠閑有序,看上去很輕松,后來才知道他的高招兒,多動腦少動手 ...

之七:工程師愛上家務(wù)活兒

摘 要:由于母親身體的緣故,駱駝將三歲的女兒從老家接到西安照顧,由于愛人的工作很忙,于是駱駝不得不肩負起照顧女兒的重任,從此周末再無閑暇,買菜、做 飯、整理屋子、帶女兒出去游玩填滿了他的生活,重負之下他想到了辭職,老板的挽留讓他堅持下來,最后竟然發(fā)現(xiàn)自己多年的工程師職業(yè)病竟然好了 ...

之六:越簡單坑越深,跳進去出不來

摘要:公司小李由于技術(shù)功底扎實,在軟件業(yè)務(wù)部受到器重,準備提拔為項目組長,后來因為隨口接了朋友一個硬件設(shè)計項目而荒廢了本職工作,最終看似簡單的項目做了半年之久都沒有實現(xiàn),于是找駱駝?wù)埥?...

之五:做個勇敢的小馬,親自探探河水的深淺

摘要:公司接到一個大單,大家都眉開眼笑,可是到交貨的時候卻遇到了不可調(diào)和的難題,作為新手的我自然不受上司重視,該研究還是不該研究呢?

之四:拖到辭職也沒翻開書

摘要:小李是我們單位的資深工程師,產(chǎn)品量產(chǎn)以后,小李的工作只需要維護即可,于是日子變得清閑起來,每天網(wǎng)絡(luò)小說度日,有一天良心發(fā)現(xiàn)需要學習新知識,跟上技術(shù)更新的步伐,可是遲遲不肯開始 ....

之三:再好的專業(yè),技術(shù)也要扎實才行

摘要:老板的親戚來公司上班,還是名牌大學的碩士,聽說資歷很深,可是不喜歡和人交流,拿出一個小項目做實踐,一個很小的板子焊接了三天,后來他竟然問了這樣一個問題 ...

之二:老板的外甥:“朝里”有人也別太任性

摘要:老板的外甥保送了西安某大學的研究生,想趁暑假來公司實習,順便學習點實際知識,于是老板把他托付給了駱駝,結(jié)果這小子基礎(chǔ)知識沒有,還不想踏實補充基礎(chǔ),好高騖遠,只想一下子學到真本事 ....

之一:技術(shù)創(chuàng)新更得力

摘要:一位參加工作 3-5 年的工程師,憑借目前的新技術(shù),其工作能力可以達到工作 30 年的老工程師 90%的水平甚至超越。由此可見,年輕人憑借新技術(shù)完全可以挑戰(zhàn)權(quán)威,可見新技術(shù)的爆發(fā)力 ...

相關(guān)推薦

登錄即可解鎖
  • 海量技術(shù)文章
  • 設(shè)計資源下載
  • 產(chǎn)業(yè)鏈客戶資源
  • 寫文章/發(fā)需求
立即登錄

早年從事軟件測試工作,2002年從事C語言教學。同年設(shè)計了視音頻切換器,用于硬盤播出機。次年開始從事熱電偶檢測裝置的設(shè)計。2010年從事現(xiàn)代農(nóng)業(yè)管理機的設(shè)計。2012年從事電力行業(yè)的FTU設(shè)計與研發(fā),成功編寫了FTU軟件。2013參與了塔吊安全監(jiān)控設(shè)備開發(fā)。10多年來對C語言情有獨鐘。略懂verilog。