32歲入門晚不晚?來聽聽這位70後程序員的故事

640?wx_fmt=png&wxfrom=5&wx_lazy=1


不少人都說,程序員是吃青春飯的,我一直也這麼認爲。爲何呢,你看如今技術更新這麼快,一會兒又是XX框架出來,一會兒又是那個.net Core 出來,你說程序員到了30歲後,學習能力明顯不如年輕人,程序員就像是永不停息的運動員同樣,達成了一個目標,而後又有新的東西。
php

但看了今天分享給你們的這個故事,我有了個新的理解——沒有生活激情的人,無論青不青春,同樣都是沒飯吃。git

下面正文程序員


你們好,我是帥氣小夥,今天爲你們帶來一個很是勵志,讓我反思的故事。今天爲你們講的是我父親是如何用行動教會我成爲程序員的。github

歲月的錘鍊編程

640?

圓口接口的鍵盤,2003年的api

有人問這個鍵盤難道沒有擦過嗎?不是的,是擦不掉的歲月痕跡。若是有注意到細節的朋友會發現,程序員什麼鍵位用得最多。除了(ASDW,YUHJ,那是我小時候玩拳王留下的)。這個鍵盤雖然老舊,可是我爸一直不捨得扔。03年的時候,他從二手市場買會來了這臺486Cpu主頻的二手電腦,開始自學彙編。我爸是隻有初中文化。可是有超強的動手能力。網絡

零編程基礎入門嵌入式開發框架

由於當時03年的時候,他剛從一家電子廠辭職,他在電子廠裏看到了單片機這種玩意,他看到了他們工程師的工資和待遇,而當時的他只是一名流水線上的焊錫工,雖然是個組長,可是也感受到了職業的侷限性。(這也帶給咱們一個啓示,做爲男人,若是以爲職業看不到頭,趁早換工做吧,若是不趁早,你會在之後的家庭壓力中選擇妥協,再也看不到頭了。)辭職的次日,他就買回了這臺486奔騰系列的二手電腦,和一臺仿真的燒寫機器(把程序寫到芯片的機器),一本彙編語言入門的書,開始了他12年的嵌入式開發之路。(這裏給個人啓示是,說學就學,不要想着看看怎麼入門,最好的入門技巧就是動手。)運維

圖書館抄書的怪蜀黍編程語言


640?

這是他當時學C語言的時候在新華書店偷偷抄的

我記得初中的時候每週六我爸都會帶我去新華書店去看書,而後去到那裏,每次都是他叫我看着圖書館裏員有沒有來,而後他就在那裏專心地去抄寫這些代碼片斷(這種學習方法在我看來,如今就是個笑話,隨便打開一個網站,代碼都是一堆堆的,可是話又說回來,大家在這些源代碼中學到了什麼,記住了嗎?會靈活運用嗎?從前輩的學習方法來看,記錄一些經常使用的代碼片斷仍是很用必要的,你的github有一套本身的代碼片斷嗎?若是沒有那就趕忙收集!)可是我爸的筆記,我每次問他,這是什麼項目的,他都能記得很清楚,固然他當時入門的時候是很是痛苦的,一個英文單詞都不懂,可想而知。但是你們的基礎應該比我爸高不少吧,因此不要懷疑本身是否可以學會編程,是必定可以學會的。

程序員特技—專一

個人親人老是對我說:「你啊,坐久了要多起來走走,看看遠處,這樣子纔好」。但是我以爲大部分程序員都作不到,由於編程是根本停不下來的,一旦你入門以後,你就會有種時刻想創造的感受。這是寫程序寫出來的專一。說到這,我就想問問你們:「你可以專一多少個小時?」,我把這個問題拋給了我爸,我爸笑着跟我說:「用煤氣,把一個裝滿水的平底鍋燒穿須要多少時間?」。這是他的一次真實的經歷,那是他在用匯編語言編寫一個MP3播放器,在調試的過程當中,忘記了本身在燒開水,幸好煤氣燒完了!說這個故事只想告訴你們一個道理:「寫程序你必要保持高度的專一,可是不可以疲勞過分地專一。」

編程須要的是流程再造

軟件工程跟建築學很像,它們都是基於現實的技術,搭建最好的解決方案。「鋼筋,混凝土」這些都是作好的,均可以直接拿來用,編程也是如此,嵌入式開發也是如此。

640?

這是一塊移植了UCOSII系統的STM32實驗板

這塊板嵌入了UCOSII系統,可同時執行多個任務,並可指定任務優先級。通俗地說,你能夠邊聽音樂邊打字。雖然看起來很低級,可是嵌入式就是這樣。很高端吧,可是我一問我爸,你是怎麼作出來這塊板的,你真的這麼厲害用C語言寫了一個操做系統?

板子是本身畫的,其餘的芯片都是買的,CPU程序是本身寫進去的。原來嵌入式開發所作的事就是負責把各個功能模塊合理設計,用程序去調度。如今成熟的芯片都是廠商寫好了程序,提供外部調用接口,開發人員並不須要瞭解他裏面的內容就能夠開發了。這對我之後學編程啓發很大。個人老師曾經說過:「軟件工程師之因此可以寫出解決實際問題的程序,是由於他們懂得流程再造,用現實的輪子(技術)去實現這個流程」。想成爲一名軟件工程師首要的不是編程語言能力的把握有多麼厲害,而是懂得把現實生活中繁瑣的流程經過計算機科學來簡化,我以爲這纔是真正的軟件工程師。我爸的編程基礎雖然沒我強,可是流程再造的能力比我強太多了。也許這就是經驗吧。

640?

這是它給我提供的串口應答式發送的流程(可能有錯)

我把我爸逼成了僞全棧

大二時候的我,學了C#,會作一下簡單的winform程序,而後就開始飄飄然了,跟我爸吹牛了,當時我爸高興壞了,直接就給我接了一個真實的項目,真金白銀啊,我當時還傻傻地答應了。因爲是真實的項目,程序的容錯必須很高,你不可以點幾下就throwexception吧,可是我作的項目都是校園裏面的實驗,過家家玩的而已,雖然老師給了好評,這都是大學裏面的花拳繡腿。真正派上用場的時候,確顯得蒼白無力。理所固然,個人程序終將不能按時完成。我爸意識到了,他笑着跟我說:「你教我學C#吧,咱們一塊兒探討這個程序。」,沒辦法啊,只能讓我爸去學吧,一個星期後,他開始於我並行開發,這是我跟我爸同臺工做最好的回憶;爲何我爸可以在一個星期學會C#(只有C語音基礎)?

語言都是通的,變的只是表達方式,思惟和流程是不會變的

咱們的老師從一開始就教咱們畫一些簡單的流程圖,可是咱們不少人都以爲他太簡單了,沒什麼意思,因而就開始去追求那些表面華麗的界面,去知足本身好奇而又虛榮的心,可是他們錯過的是真正的編程技術,這就是當時的我。有不少人都以爲大學的課程很基礎,實際用到項目的不多,是根本不能拿來作項目,書本上學的都過期了。

而實際上,書本教會的是咱們寫字(編程)的姿式(方法),教會咱們如何拿筆(寫程序),如何寫好字(好程序),一旦你學會了就可以寫出一手好字(好程序)。因此有不少人寫很差字(程序),那就是在小時候練字(初學編程)急於求成,想着去玩(炫耀)。這是我最深入的檢討,也是對各大初學者最好的忠告,編程必須耐得住寂寞!

程序員要時刻認識本身

當時,我是膨脹了,有點自覺得是了,就以爲本身行,而後就答應項目了,結果幸好我爸厲害,否則但是要賠錢的。做爲程序員,必須瞭解本身的水平上限。知己知彼(我能作,你不能作),百戰不殆(我就是要這麼多錢)。對的,時刻了解本身水平上限是有助於自身價值的評估的,例如你跳槽了,你對比同行,你的水平在哪裏。決定市場價格的並非企業自己,而是社會必要勞動時間(別的程序員要多久纔可以作出來)。而最好的認識就是看最新的技術,瞭解行業的趨勢。此次纔可以讓本身立足於高薪階層。

作一名守信用的程序員

我爸當時給我說:」既然你答應了人家,不管你有千百個理由都要給人家完成,完成不了就是你的錯,由於你對人家承諾過「。這不是在講道理規範,而是一個程序員的職業操守,由於這樣,我爸可以接手到不少外包的項目,由於他在別人眼裏只有兩個字:」可靠「。也許這就是程序員的我的品牌吧,若是你在企業中可以有這樣的品牌,能不升職嗎?

總有人質問:「我如今學編程晚嗎?」,「我30歲以後還能繼續寫程序嗎?」,「學編程難嗎?」看完這篇文章後,我相信你不會再問了,由於若是你真的是熱愛編程,你就應該像我父親那樣,不管現實如何逼迫,初心永遠不忘。雖然,我跟個人父親沒有太多的語言交流,可是這麼多年的耳濡目染,足以讓我發出:「謹遵父訓,不忘初心」。

穩定工做的背後

34歲那年,他在朋友的推薦下,去到了某鎮的電視臺作運維的技術工人,負責平時線路的搶修,設備故障的處理。平時工做都是朝九晚五,不加班。工資2500,有養老保險。這但是06年的工資待遇。沒辦法,在家庭的壓力下(當時個人初中學費是1280元,我感謝我爸,在家庭不富裕的狀況下,給了我最好的教育條件!),他不得不選擇這份「完美的工做」,因而開始了他10年的運維職業生涯。是的,我爸的本行不是嵌入式開發,他只是一名業餘的開發者。他只能憑藉着短短的晚上3小時的學習時間去學習嵌入式開發。

穩定工做,是如何消磨這個堅韌不拔的中年人的?有一次,他在電視臺宿舍值班(電視臺固定要輪值的),他的學習習慣是3小時固定用來學習,7點到10點這段時間。但是此次不幸運的是被巡視的領導看到了,領導只能讓他搬離宿舍,今後讓我爸天天早起1小時去上班。

有人問:「不能夠辭職嗎?」,我給你的答案是:「那時我正在讀高二,我媽也是身體很差,沒法工做。」,家庭綁架了這位中年人,他不得不選擇了妥協,讓步。

穩定工做,有時候讓他無可奈何。上次,我表哥結婚,正趕上他值班,沒辦法,領導不批。他只能被迫和同事換班,可是換一次,值兩次(這就是規矩,體制內的規矩),就這樣,他求來了這1天半的假期。週五晚出發,週六是婚宴,週六晚回來。地點是廣西南寧。工做讓他的生活無可奈何。

有人問:「不能夠辭職嗎?」,我給你的答案是:「這時我在讀大學,他應經是40知天命的人了」,年齡限制了這位中年人的職業生涯,他不得不選擇妥協,遵照着這體制內的金科玉律。

若是你年輕的時候選擇了「穩定」,那麼你這輩子都很穩定,想要成就一番事業,對不起,你已經沒有了那份年輕時候的激情了,由於你選擇了太多的妥協,讓步。但願年輕的你正確作好本身的職業規劃,作你想作的事,不要被外界泯滅了你的初心。

黃金般的晚上三小時

憑藉着對編程的執着,我爸用晚上的三小時告訴我:「我雖然沒有你在大學那麼多的時間去學習,可是這三小時我也能夠作出不少東西,學到不少東西。」,確實他作到了一個僞工程師的水平,硬件(嵌入式芯片,其餘芯片的種類,性能),軟件(與硬件配套的軟件),產品設計(產品報價),電路設計(畫板),焊接(18歲開始作流水線工人)。一我的就能實現完整的一套產品。

那如何利用這晚上的三小時?其實高中的老師就已經告訴咱們了。

1.目標:要完成什麼東西

高中那段的歲月,相信你們都要求晚自習吧,晚自習固然有做業,而咱們天天晚上的目標就是按時完成做業,通過了三年的訓練,咱們變成了解題能手,從中總結出來的方法和套路也是頭頭是道。但是看看你如今的大學生活,三小時都是什麼?6盤英雄聯盟吧,而後三年的訓練,你變成了最強王者,打野套路也是頭頭是道。

2.順序:要從哪裏開始

有了一個目標以後,咱們要作的是細化,而後順序完成,高中寫做業都是這樣,看哪門簡單,先作什麼,固然是抄寫的做業優先對吧(O(∩_∩)O~)。其實編程也是這樣的,例如咱們用MVP開發一個手機應用

640?

我有這麼多的回調接口要寫

我先從model層開始,相信看到這麼清晰的回調接口,你就知道該怎麼去寫model層了。是的我在這裏應經告訴你們,用MVP開發,如何寫model層的技巧了,就是先寫回調接口。

3.總結:作沒作完都要給本身一個答覆

在高中,咱們總有一萬個完不成做業的理由,可是爲何你不給本身的完不成編程任務一個理由呢?其實你可以寫出你完不成的理由,那就是你知識薄弱的一面。上述的回調接口,光上傳圖片這裏,我就卡住了一夜。我用的是Retrofit2.0+RxJava的網絡請求庫。我發現了一個定理:「任何編程庫官網的例子都不能知足你奇葩的需求。」

640?

接口文檔是這樣子上傳的

哈哈,是否是很奇葩,網上找的東西都是要麼get的都是一個固定的URL,要麼都是隻有一個文件沒有其餘東西的。後來我是參考這篇歪果仁寫的文章解決的Retrofit

640?

api接口是這樣寫的(/capi/cp.php?/是我接口的BaseUrl)

640?

請求參數就這樣寫就能夠解決了,把post的參數作一個MediaType的聲明便可

程序員的入場券

我一直質問我爸:」你當初爲何不選擇去當程序員,而去作運維」,他老是這樣跟我說:「你覺得我不想,我沒有學歷啊,人家不相信我,況且我也是幾十歲的人了。」這看似簡單的回到,確說得我啞口無言。

1.大衆化的大學教育

大學生早已不是百裏挑一的資源了,研究生,本科生都滿大街都是,在衆多的招聘信息中,本科以上學歷的限制就能限制一大批人,也能選到一大批人。而你由於這個硬性條件,再好的編程能力,沒有入場券,保安是不讓你進的。當今這個年頭,幻想着小學畢業就能創業作老闆,除非你有超厲害的背景和能力,不然你就在作夢。用這個殘酷的現實告誡那些想輟學的「有志青年」

2.年齡

程序員,是一個須要吃青春飯的職業,這個我不否定,不過我有些不認同,現在的編程人人均可以學,不必定只有年輕人才去學。但是你想成爲一個企業的開發人員,年齡是硬傷。24-28的要求,相信你們都很清楚的。這是一我的學習能力最強,可塑性最強的年齡。程序員須要的不斷地去學習,所以24-28歲時最有競爭力的年齡。

3.優秀程序員的「眼睛」—英文

我爸常常問我:「兒子,幫我從CSDN下載箇中文的文檔,我沒有積分了」,這又是簡單的提問,確讓我看到了老一輩程序員的天生不足,他們不會英語。技術都是國外引進的,特別是硬件方面的東西(芯片),不懂英文,你用到的技術老是落後的,由於你要等着別人翻譯給你聽,而翻譯的東西一定會有不少坑的(你們都懂的),因此,英文是優秀程序員的眼睛,你不須要帶「眼鏡」就能看到真正的東西。

我很是慶幸,我有一位爲我指路的父親。我是帥氣小夥,在這裏,是屬於個人真實故事!歡迎你們的評論留言!

-END-

轉載聲明:本文轉載自「簡書」,做者:帥氣小夥

640?wx_fmt=jpeg

相關文章
相關標籤/搜索