大家好郊尝,我是帥氣小伙,今天為大家?guī)硪粋€非常勵志约郁,讓我反思的故事缩挑。今天為大家講的是我父親是如何用行動教會我成為程序員的。
歲月的錘煉
有人問這個鍵盤難道沒有擦過嗎供置?不是的,是擦不掉的歲月痕跡绽快。如果有注意到細(xì)節(jié)的朋友會發(fā)現(xiàn)芥丧,程序員什么鍵位用得最多紧阔。除了(ASDW,YUHJ,那是我小時候玩拳王留下的)。這個鍵盤雖然老舊续担,但是我爸一直不舍得扔擅耽。03年的時候,他從二手市場買會來了這臺486Cpu主頻的二手電腦物遇,開始自學(xué)匯編乖仇。我爸是只有初中文化。但是有超強(qiáng)的動手能力询兴。
零編程基礎(chǔ)入門嵌入式開發(fā)
因為當(dāng)時03年的時候乃沙,他剛從一家電子廠辭職,他在電子廠里看到了單片機(jī)這種玩意诗舰,他看到了他們工程師的工資和待遇警儒,而當(dāng)時的他只是一名流水線上的焊錫工,雖然是個組長眶根,但是也感覺到了職業(yè)的局限性冷蚂。(這也帶給我們一個啟示,作為男人汛闸,如果覺得職業(yè)看不到頭蝙茶,趁早換工作吧,如果不趁早诸老,你會在以后的家庭壓力中選擇妥協(xié)隆夯,再也看不到頭了。)别伏,辭職的第二天蹄衷,他就買回了這臺486奔騰系列的二手電腦,和一臺仿真的燒寫機(jī)器(把程序?qū)懙叫酒臋C(jī)器)厘肮,一本匯編語言入門的書愧口,開始了他12年的嵌入式開發(fā)之路。(這里給我的啟示是类茂,說學(xué)就學(xué)耍属,不要想著看看怎么入門,最好的入門技巧就是動手巩检。)
圖書館抄書的怪蜀黍
我記得初中的時候每周六我爸都會帶我去新華書店去看書厚骗,然后去到那里,每次都是他叫我看著圖書館里員有沒有來兢哭,然后他就在那里專心地去抄寫這些代碼片段(這種學(xué)習(xí)方法在我看來领舰,現(xiàn)在就是個笑話,隨便打開一個網(wǎng)站,代碼都是一堆堆的冲秽,但是話又說回來舍咖,你們在這些源代碼中學(xué)到了什么,記住了嗎锉桑?會靈活運(yùn)用嗎谎仲?從前輩的學(xué)習(xí)方法來看,記錄一些常用的代碼片段還是很用必要的刨仑,你的github有一套自己的代碼片段嗎郑诺?如果沒有那就趕緊收集!)但是我爸的筆記杉武,我每次問他辙诞,這是什么項目的,他都能記得很清楚轻抱,當(dāng)然他當(dāng)時入門的時候是非常痛苦的飞涂,一個英文單詞都不懂,可想而知祈搜。可是大家的基礎(chǔ)應(yīng)該比我爸高很多吧较店,所以不要懷疑自己是否能夠?qū)W會編程,是一定能夠?qū)W會的容燕。
程序員特技—專注
我的親人總是對我說:“你啊梁呈,坐久了要多起來走走,看看遠(yuǎn)處蘸秘,這樣子才好”官卡。可是我覺得大部分程序員都做不到醋虏,因為編程是根本停不下來的寻咒,一旦你入門之后,你就會有種時刻想創(chuàng)造的感覺颈嚼。這是寫程序?qū)懗鰜淼膶W⒚亍Uf到這,我就想問問大家:“你能夠?qū)W⒍嗌賯€小時阻课?”叫挟,我把這個問題拋給了我爸,我爸笑著跟我說:“用煤氣柑肴,把一個裝滿水的平底鍋燒穿需要多少時間霞揉?”旬薯。這是他的一次真實的經(jīng)歷晰骑,那是他在用匯編語言編寫一個MP3播放器,在調(diào)試的過程中,忘記了自己在燒開水硕舆,幸虧煤氣燒完了秽荞!說這個故事只想告訴大家一個道理:“寫程序你必要保持高度的專注,但是不能夠疲勞過度地專注抚官。”
編程需要的是流程再造
軟件工程跟建筑學(xué)很像扬跋,它們都是基于現(xiàn)實的技術(shù),搭建最好的解決方案凌节∏仗“鋼筋,混凝土”這些都是做好的倍奢,都可以直接拿來用朴上,編程也是如此,嵌入式開發(fā)也是如此卒煞。
這塊板嵌入了UCOSII系統(tǒng)痪宰,可同時執(zhí)行多個任務(wù),并可指定任務(wù)優(yōu)先級畔裕。通俗地說衣撬,你可以邊聽音樂邊打字。雖然看起來很低級扮饶,但是嵌入式就是這樣具练。很高端吧,但是我一問我爸甜无,你是怎么做出來這塊板的靠粪,你真的這么厲害用C語言寫了一個操作系統(tǒng)?
板子是自己畫的毫蚓,其他的芯片都是買的占键,CPU程序是自己寫進(jìn)去的。原來嵌入式開發(fā)所做的事就是負(fù)責(zé)把各個功能模塊合理設(shè)計元潘,用程序去調(diào)度∨弦遥現(xiàn)在成熟的芯片都是廠商寫好了程序,提供外部調(diào)用接口翩概,開發(fā)人員并不需要了解他里面的內(nèi)容就可以開發(fā)了牲距。這對我以后學(xué)編程啟發(fā)很大。我的老師曾經(jīng)說過:“軟件工程師之所以能夠?qū)懗鼋鉀Q實際問題的程序钥庇,是因為他們懂得流程再造牍鞠,用現(xiàn)實的輪子(技術(shù))去實現(xiàn)這個流程”。想成為一名軟件工程師首要的不是編程語言能力的把握有多么厲害评姨,而是懂得把現(xiàn)實生活中繁瑣的流程通過計算機(jī)科學(xué)來簡化难述,我覺得這才是真正的軟件工程師。我爸的編程基礎(chǔ)雖然沒我強(qiáng),但是流程再造的能力比我強(qiáng)太多了胁后。也許這就是經(jīng)驗吧店读。
我把我爸逼成了偽全棧
大二時候的我,學(xué)了C#,會做一下簡單的winform程序攀芯,然后就開始飄飄然了屯断,跟我爸吹牛了,當(dāng)時我爸高興壞了侣诺,直接就給我接了一個真實的項目殖演,真金白銀啊,我當(dāng)時還傻傻地答應(yīng)了年鸳。由于是真實的項目剃氧,程序的容錯必須很高,你不能夠點(diǎn)幾下就throwexception吧阻星,但是我做的項目都是校園里面的實驗朋鞍,過家家玩的而已,雖然老師給了好評妥箕,這都是大學(xué)里面的花拳繡腿滥酥。真正派上用場的時候,確顯得蒼白無力畦幢。理所當(dāng)然坎吻,我的程序終將不能按時完成。我爸意識到了宇葱,他笑著跟我說:“你教我學(xué)C#吧瘦真,我們一起探討這個程序∈蚯疲”诸尽,沒辦法啊,只能讓我爸去學(xué)吧印颤,一個星期后您机,他開始于我并行開發(fā),這是我跟我爸同臺工作最好的回憶年局;為什么我爸能夠在一個星期學(xué)會C#(只有C語音基礎(chǔ))际看?
語言都是通的,變的只是表達(dá)方式矢否,思維和流程是不會變的
我們的老師從一開始就教我們畫一些簡單的流程圖仲闽,但是我們很多人都覺得他太簡單了,沒什么意思僵朗,于是就開始去追求那些表面華麗的界面赖欣,去滿足自己好奇而又虛榮的心屑彻,但是他們錯過的是真正的編程技術(shù),這就是當(dāng)時的我畏鼓。有很多人都覺得大學(xué)的課程很基礎(chǔ)酱酬,實際用到項目的很少壶谒,是根本不能拿來做項目云矫,書本上學(xué)的都過時了。
而實際上汗菜,書本教會的是我們寫字(編程)的姿勢(方法)让禀,教會我們?nèi)绾文霉P(寫程序),如何寫好字(好程序)陨界,一旦你學(xué)會了就能夠?qū)懗鲆皇趾米郑ê贸绦颍┭沧帷K杂泻芏嗳藢懖缓米郑ǔ绦颍蔷褪窃谛r候練字(初學(xué)編程)急于求成菌瘪,想著去玩(炫耀)腮敌。這是我最深刻的反省,也是對各大初學(xué)者最好的忠告俏扩,編程必須耐得住寂寞糜工!
程序員要時刻認(rèn)識自己
當(dāng)時,我是膨脹了录淡,有點(diǎn)自以為是了捌木,就覺得自己行,然后就答應(yīng)項目了嫉戚,結(jié)果幸虧我爸厲害刨裆,不然可是要賠錢的。作為程序員彬檀,必須了解自己的水平上限帆啃。知己知彼(我能做,你不能做)窍帝,百戰(zhàn)不殆(我就是要這么多錢)链瓦。對的,時刻了解自己水平上限是有助于自身價值的評估的盯桦,例如你跳槽了慈俯,你對比同行,你的水平在哪里拥峦。決定市場價格的并不是企業(yè)本身贴膘,而是社會必要勞動時間(別的程序員要多久才能夠做出來)。而最好的認(rèn)識就是看最新的技術(shù)略号,了解行業(yè)的趨勢刑峡。這次才能夠讓自己立足于高薪階層洋闽。
做一名守信用的程序員
我爸當(dāng)時給我說:”既然你答應(yīng)了人家,無論你有千百個理由都要給人家完成突梦,完成不了就是你的錯诫舅,因為你對人家承諾過“。這不是在講道理規(guī)范宫患,而是一個程序員的職業(yè)操守刊懈,因為這樣,我爸能夠接手到很多外包的項目娃闲,因為他在別人眼里只有兩個字:”可靠“虚汛。也許這就是程序員的個人品牌吧,如果你在企業(yè)中能夠有這樣的品牌皇帮,能不升職嗎卷哩?
總有人質(zhì)問:“我現(xiàn)在學(xué)編程晚嗎?”属拾,“我30歲之后還能繼續(xù)寫程序嗎将谊?”,“學(xué)編程難嗎渐白?”看完這篇文章后尊浓,我相信你不會再問了,因為如果你真的是熱愛編程礼预,你就應(yīng)該像我父親那樣眠砾,無論現(xiàn)實如何逼迫,初心永遠(yuǎn)不忘托酸。雖然褒颈,我跟我的父親沒有太多的語言交流,但是這么多年的耳濡目染励堡,足以讓我發(fā)出:“謹(jǐn)遵父訓(xùn)谷丸,不忘初心”。