第一篇:一個32歲入門的70后程序員給我的啟示
一個32歲入門的70后程序員給我的啟示
2016-06-19學高端IT開發,來濟南華清遠見
大家好,我是帥氣小伙,今天為大家帶來一個非常勵志,讓我反思的故事。今天為大家講的是我父親是如何用行動教會我成為程序員的。▼歲月的錘煉
圓口接口的鍵盤,2003年的
有人問這個鍵盤難道沒有擦過嗎?不是的,是擦不掉的歲月痕跡。如果有注意到細節的朋友會發現,程序員什么鍵位用得最多。除了(ASDW,YUHJ,那是我小時候玩拳王留下的)。這個鍵盤雖然老舊,但是我爸一直不舍得扔。03年的時候,他從二手市場買會來了這臺486Cpu主頻的二手電腦,開始自學匯編。我爸是只有初中文化。但是有超強的動手能力。
▼零編程基礎入門嵌入式開發 因為當時03年的時候,他剛從一家電子廠辭職,他在電子廠里看到了單片機這種玩意,他看到了他們工程師的工資和待遇,而當時的他只是一名流水線上的焊錫工,雖然是個組長,但是也感覺到了職業的局限性。(這也帶給我們一個啟示,作為男人,如果覺得職業看不到頭,趁早換工作吧,如果不趁早,你會在以后的家庭壓力中選擇妥協,再也看不到頭了。),辭職的第二天,他就買回了這臺486賽揚系列的二手電腦,和一臺仿真的燒寫機器(把程序寫到芯片的機器),一本匯編語言入門的書,開始了他12年的嵌入式開發之路。(這里給我的啟示是,說學就學,不要想著看看怎么入門,最好的入門技巧就是動手。)
▼圖書館抄書的怪蜀黍
這是他當時學C語言的時候在新華書店偷偷抄的
我記得初中的時候每周六我爸都會帶我去新華書店去看書,然后去到那里,每次都是他叫我看著圖書館里員有沒有來,然后他就在那里專心地去抄寫這些代碼片段(這種學習方法在我看來,現在就是個笑話,隨便打開一個網站,代碼都是一堆堆的,但是話又說回來,你們在這些源代碼中學到了什么,記住了嗎?會靈活運用嗎?從前輩的學習方法來看,記錄一些常用的代碼片段還是很用必要的,你的github有一套自己的代碼片段嗎?如果沒有那就趕緊收集!)但是我爸的筆記,我每次問他,這是什么項目的,他都能記得很清楚,當然他當時入門的時候是非常痛苦的,一個英文單詞都不懂,可想而知。可是大家的基礎應該比我爸高很多吧,所以不要懷疑自己是否能夠學會編程,是一定能夠學會的。
▼程序員特技—專注
我的親人總是對我說:“你啊,坐久了要多起來走走,看看遠處,這樣子才好”。可是我覺得大部分程序員都做不到,因為編程是根本停不下來的,一旦你入門之后,你就會有種時刻想創造的感覺。這是寫程序寫出來的專注。說到這,我就想問問大家:“你能夠專注多少個小時?”,我把這個問題拋給了我爸,我爸笑著跟我說:“用煤氣,把一個裝滿水的平底鍋燒穿需要多少時間?”。這是他的一次真實的經歷,那是他在用匯編語言編寫一個MP3播放器,在調試的過程中,忘記了自己在燒開水,幸虧煤氣燒完了!說這個故事只想告訴大家一個道理:“寫程序你必要保持高度的專注,但是不能夠疲勞過度地專注。” ▼編程需要的是流程再造
軟件工程跟建筑學很像,它們都是基于現實的技術,搭建最好的解決方案。“鋼筋,混凝土”這些都是做好的,都可以直接拿來用,編程也是如此,嵌入式開發也是如此。
這是一塊移植了UCOSII系統的STM32實驗板
這塊板嵌入了UCOSII系統,可同時執行多個任務,并可指定任務優先級。通俗地說,你可以邊聽音樂邊打字。雖然看起來很低級,但是嵌入式就是這樣。很高端吧,但是我一問我爸,你是怎么做出來這塊板的,你真的這么厲害用C語言寫了一個操作系統? 板子是自己畫的,其他的芯片都是買的,CPU程序是自己寫進去的。原來嵌入式開發所做的事就是負責把各個功能模塊合理設計,用程序去調度。現在成熟的芯片都是廠商寫好了程序,提供外部調用接口,開發人員并不需要了解他里面的內容就可以開發了。這對我以后學編程啟發很大。我的老師曾經說過:“軟件工程師之所以能夠寫出解決實際問題的程序,是因為他們懂得流程再造,用現實的輪子(技術)去實現這個流程”。想成為一名軟件工程師首要的不是編程語言能力的把握有多么厲害,而是懂得把現實生活中繁瑣的流程通過計算機科學來簡化,我覺得這才是真正的軟件工程師。我爸的編程基礎雖然沒我強,但是流程再造的能力比我強太多了。也許這就是經驗吧。
這是它給我提供的串口應答式發送的流程(可能有錯)
▼我把我爸逼成了偽全棧
大二時候的我,學了C#,會做一下簡單的winform程序,然后就開始飄飄然了,跟我爸吹牛了,當時我爸高興壞了,直接就給我接了一個真實的項目,真金白銀啊,我當時還傻傻地答應了。由于是真實的項目,程序的容錯必須很高,你不能夠點幾下就throwexception吧,但是我做的項目都是校園里面的實驗,過家家玩的而已,雖然老師給了好評,這都是大學里面的花拳繡腿。真正派上用場的時候,確顯得蒼白無力。理所當然,我的程序終將不能按時完成。我爸意識到了,他笑著跟我說:“你教我學C#吧,我們一起探討這個程序。”,沒辦法啊,只能讓我爸去學吧,一個星期后,他開始于我并行開發,這是我跟我爸同臺工作最好的回憶;為什么我爸能夠在一個星期學會C#(只有C語音基礎)?
語言都是通的,變的只是表達方式,思維和流程是不會變的
我們的老師從一開始就教我們畫一些簡單的流程圖,但是我們很多人都覺得他太簡單了,沒什么意思,于是就開始去追求那些表面華麗的界面,去滿足自己好奇而又虛榮的心,但是他們錯過的是真正的編程技術,這就是當時的我。有很多人都覺得大學的課程很基礎,實際用到項目的很少,是根本不能拿來做項目,書本上學的都過時了。
而實際上,書本教會的是我們寫字(編程)的姿勢(方法),教會我們如何拿筆(寫程序),如何寫好字(好程序),一旦你學會了就能夠寫出一手好字(好程序)。所以有很多人寫不好字(程序),那就是在小時候練字(初學編程)急于求成,想著去玩(炫耀)。這是我最深刻的反省,也是對各大初學者最好的忠告,編程必須耐得住寂寞!
▼程序員要時刻認識自己
當時,我是膨脹了,有點自以為是了,就覺得自己行,然后就答應項目了,結果幸虧我爸厲害,不然可是要賠錢的。作為程序員,必須了解自己的水平上限。知己知彼(我能做,你不能做),百戰不殆(我就是要這么多錢)。對的,時刻了解自己水平上限是有助于自身價值的評估的,例如你跳槽了,你對比同行,你的水平在哪里。決定市場價格的并不是企業本身,而是社會必要勞動時間(別的程序員要多久才能夠做出來)。而最好的認識就是看最新的技術,了解行業的趨勢。這次才能夠讓自己立足于高薪階層。
▼做一名守信用的程序員
我爸當時給我說:”既然你答應了人家,無論你有千百個理由都要給人家完成,完成不了就是你的錯,因為你對人家承諾過“。這不是在講道理規范,而是一個程序員的職業操守,因為這樣,我爸能夠接手到很多外包的項目,因為他在別人眼里只有兩個字:”可靠“。也許這就是程序員的個人品牌吧,如果你在企業中能夠有這樣的品牌,能不升職嗎? 總有人質問:“我現在學編程晚嗎?”,“我30歲之后還能繼續寫程序嗎?”,“學編程難嗎?”看完這篇文章后,我相信你不會再問了,因為如果你真的是熱愛編程,你就應該像我父親那樣,無論現實如何逼迫,初心永遠不忘。雖然,我跟我的父親沒有太多的語言交流,但是這么多年的耳濡目染,足以讓我發出:“謹遵父訓,不忘初心”。文/帥氣小伙(簡書作者)
第二篇:一個故事給我的啟示
一個故事給我的啟示
坐在電腦旁的我,百無聊賴,一時興起便看起“作文網”。忽然,我眼前一亮:咦、這里怎么會有哲理故事?于是、我便興致勃勃的看了起來。
沒不一會兒功夫我就看了不少了,其中,就數“我們不是木桶”這篇故事給我的印象最深刻了。
故事講述的是:自從“狐假虎威”的事在動物王國傳開之后,老虎很快成為大家的笑柄了。有一天,老虎在河邊散步,忽然碰到了黑熊老師和他的學生踏青,黑熊老師邊走邊說:“一個木桶能裝多少水不在于他最長的那根木板,而在于最短的那根。”老虎豁然開朗:“我自己最短的那根木板就是缺少智慧啊!”于是,他虛心跟著黑熊老師學習知識,也慢慢地認識到自己的其他不足,于是他又跟地鼠學打洞、和羚羊學習奔跑、向青蛙學習游泳??每一樣本領老虎都學的不錯,很快、老虎就成為了技能最全面的的動物,名揚動物王國。終于有一天,老虎又碰到狐貍了,這一次,他再也不信狐貍的花言巧語了,并且狠狠地懲罰了狐貍、一雪前恥,老虎正高興呢,卻有兩只豹子要和他搏斗。老虎因為一直在學習其他的本領,卻沒有時間去訓練撕咬、搏斗、最終,他倒在了血泊中。“一個木桶能裝多少水不在于他最長的那根木板,而在于最短的那根。”這非常準確,但是、我們并不是木桶。
一個人的成就永遠在與他最擅長的一項。絕對不可以“琴棋書畫、樣樣不精”每一個人都要有一個長處,如果一個人每一種本領都普普通通,那么他的生活就會枯燥無味??
河南平頂山新華區建設街小學六年級:王銀宇
第三篇:php程序員入門必讀
php程序員入門必讀
php程序員入門必讀:
1.概要:學習任何語言都需要多看、多想、多寫、多問!寫編程是一種熟能生巧的東西!學習PHP也一樣,因為知識就那么多,你看多了就會覺得怎么都一樣。
程序員就是炒冷飯的,一遍又一遍。代碼多敲幾遍就可以閉著眼睛寫了,所以企業招聘都會問你寫過多少行代碼的!程序員最忌諱浮躁,有時候發現一段程序完全找不出錯誤,僅僅是因為少了或多了一個符號,程序員需要的是細心,粗心的人當不了程序員!
2.php參考手冊是必須熟知的,有的新手會問一些很基礎的問題,其實手冊上面都有,所以建議新手先把手冊看了,最好把常用函數抄幾遍!再敲幾遍手冊里的代碼。
當你把手冊里的東西都熟悉了,你遇到問題的可能性就很小了。當然mysql手冊,也要看一下,但可以不先看的那么細!至少要知道常用的sql語句,這是必須的!
3.覺得php最好的東西就是,網上能找的開源項目很多,而且一些都是大項目的。所以建議php程序新手可以看留言板代碼,先熟悉常用的數據操作,然后可 以去看一下簡單的企業網站或者博客,然后可以去研究一下ecshop之類,當你看懂這些,你可以去看看discuz,phpwind論壇源碼,帝國,PHP168等開源CMS系統,里面的架構都是相當強悍的,當然這不是新手需要去做的,但是 總要有個做將軍的理想!
4.要習慣,遇到問題自己先解決,在網絡時代,要學會用百度,這是必須的。當你實在沒法解決的時候再去尋求別人的幫助!
5.當你寫完一個程序的時候,要學會分享出去,因為你是新手,你的程序也許會有很多不完善的地方,所以分享你寫的程序對你更有益!多分享多交流!才
會讓你寫的程序更精!
6.記住,學了php你要不只是學會php,你要學會分析一個項目的實現方式或者一個程序的實現方式。都說算法是語言的基礎,要學好php,你還得去學習和運用算法去實現你的程序,學會用算法可以用于任何語言,學會用php你只能用php.
第四篇:PHP程序員入門Plus
PHP程序員入門Plus
這篇文章和MySQL的那個一樣,本文其實并不專指PHP,僅僅是因為搜索引擎的關系才用了這個名字。
我解除了很多新的不能再新的新人,發現新人的通病是不明白怎么做程序員,這是一個思想境界的問題,只能依靠頓悟,本文的作用也只是點撥,希望能對你有所幫助吧。
程序和語言
在我看來,哲學是一切知識的基礎,藝術、語言、數學都是已不同的方式對哲學思想的表達,程序其實也是如此,它介于語言和數學之間。
程序,可以認為是過程和順序的簡稱。和那句名言“萬物皆對象”類似的,萬事皆程序。如果說物是名詞,那么事就是動詞,所有的事都是有序發生的過程。我們不承認“莫須有”的原因導致的結果,只是可能我們還沒有搞清楚而已。
也許你會認為C、Java、PHP、Perl之類的東西寫出來的東西叫做程序,其實這只是表象。各種開發語言本質上和漢語、英語沒有什么不同。也就是說,如果你能用漢語表達,那么就能用其他語言表達,最多可能需要借助翻譯軟件、詞典等工具而已。對于C、Java、PHP來說,翻譯軟件可能沒有,但是詞典還是很容易找到的,那就是開發手冊。不要迷信各種書籍、培訓、視頻,開發手冊才是真正能幫到你并一直陪伴你的東西。
什么是程序員
程序員是指掌握了某種計算機語言的家伙,程序員可以把自然語言翻譯為計算機可以識別的內容。沒錯,就是個翻譯。
那么你就會問,我沒吃過豬肉還沒看過豬跑嗎?翻譯誰不會?可是為什么我還是寫不出程序呢?
答案就是你還沒頓悟。元芳你怎么看這句話知道嗎?樓主你媽喊你回家吃飯這句話你知道吧?甄環體知道嗎?都不知道?沒關系,其實我的意思就是,你需要按照計算機的方式組織你的語言,這樣的語言才能更容易的翻譯為程序語言。
非程序員是沒有這個覺悟的,這就是為什么開發之前都要進行需求分析的原因。客戶告訴我們現實中發生了什么事情,需求分析的任務就是考慮怎么把這些事情在計算機上重現。
再舉個例子,“我想在屏幕中間顯示一個紅色方框”就是客戶的表達方式,而作為程序員,你應該這樣理解這句話:使用代碼為ff0000的顏色填充一個正方形并顯示在屏幕上,且正方形距離屏幕頂部的距離和距離屏幕底部的距離相等,正方形距離屏幕左側的距離和距離屏幕右側的距離也相等,然后立刻拋出問題,正方形的邊長是多少?客戶如果回答50,那么我們就得到了一個常量,如果客戶回答不一定,那么就知道邊長是個變量。
這是一個矯枉過正的例子,現實中絕對沒有這么二,但是其實差不多。
我該怎么做
計算機語言中的各種對象、函數其實就像是木匠手中的榔頭和錘子。但是唯一的麻煩就就是:如果你是個木匠,我讓你幫我做一套家具,你會明白一套家具至少包括柜子、床、書桌、椅子,因為你家有家具,而且你用過,并且知道大致的結構;可是你是個程序員,我讓你幫我做一個電子商城,誰家有電子商城,誰用過電子商城(指后臺),誰知道它是個啥東西拼起來的;這就是結癥。
初學者最缺乏的是經驗,經驗依靠累計,不要去思考我學了半天還不會做網站的問題。網站是個統稱,是個類,你應該已其實例為目標,比如,今天做個網頁,展示一下我家的裝修效果,明天做個網頁發表一下我的學習經驗,后天做個網頁讓大家給我留言。這種累積式必不可少的過程。
如果你還不理解,我真的沒辦法了。最后嘗試用一種玄幻的風格告訴你答案:程序員就如修真者,而且是老厲害那種,言出法隨,我讓你輸入6個字母作用戶名你就不可能寫5個,我讓你填密碼你就別想空著,只要你想,你就可以去做,別人喜歡不喜歡是別人的事(不過悲催的是給不給工錢也是別人的事)。
親,加油吧,努力頓悟,早成正果!
如果你有什么意見和想法可以點擊這里打開原文地址并通過回復的方式告訴我,只有注冊用戶才能回復哦。呵呵。
第五篇:程序員入門要學多久
程序員入門要學多久
程序員入門要學多久,那要看你通過什么樣的渠道去學習,而且還要根據個人的情況來定,比如說自制力、時間是否充裕、對程序員的熱情。程序員入門學習的方式主要有兩種:培訓和自學。某種意義上講視頻教學也屬于自學。
培訓:市面上程序員入門培訓的時間在3~12個月不等。只有個別的方向根據培訓內容的不同在三個月以下、一年以上。而在3~12個月之間,又以四個月最為見長。這樣的一個時間段里,如果培訓機構靠譜些,再加上你個人的努力,是可以勝任編程類基礎性的工作。
例如一些熱門的編程語如Java、HTML、Python等等,培訓時間基本都是四個月上下。這也是一些比較傳統的IT行業方向,基本都是以一門單一的編程語言作為整個工作的重點。
而對于一些復合性較強、應用范圍比較廣的崗位方向從業的程序員,入門學習的時間都在4個月以上。
比如IT里的新興行業大數據和底層信息安全等。
要想學好大數據最好是理工科成績過硬,這樣以后的發展天花板高得多。前期你要有編程語言的基礎,后期要培訓自己的數據思維、統計學思維。
而底層信息安全,入門就需要有幾門編程語言做基礎,中期的Windows原理方方面面知識、安全知識、最后的實戰技能,是一個知識量眾多的行業方向。
比如我們機構15PB信息安全教育,培訓時間就是7個月。相信很多打算培訓或培訓過的小伙伴都會覺得時間很長,但是7個月,已經是在保證授課質量的前提下,能達到的最短時間了。
自學:由于個人自制力和悟性的不同,自學的時間也有長有短,就總體情況來說四個月的培訓課程一般的自學時間都在一年以上。我們機構7個月的課程,如果個人自制力夠好、悟性夠高入門自學時間也要2~3年,深入一些時間就更長了。我們機構的大BOSS任曉琿,自學時間長達4~5年。
個人建議:不管程序員入門學習要學多久,最終的目的都是獲得一份工作進入一個行業。
而要想快速而有效率的的進入一個行業,培訓要比自學更合適一些,它能解決方向上的問題,避免自己在自學的過程中沒有側重點的去學習,對就業方面的問題也有一定的幫助。培訓機構肯定比你了解掌握什么樣的知識、什么樣的技能能找到工作。