写给程序员的秘籍:你跟优秀程序员的差距,其实就在这几个方面!
軟件蠶食一切,未來屬于程序員。所以人人都想當程序員。但是并不是每個人都能當好程序員。在你做出決定前還是先看看自己能不能當好程序員吧。
要記住的是,編程不是什么精英才能干的事情。
這個行業永遠都缺人。所以除非你一點都不喜歡編程,或者也沒有準備好看在錢的份上忍住這種不喜歡,否則都可以來編程。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
如果純以編碼能力來看,可分為五類:
1. 拷貝型
拷貝型選手就是傳說中的“代碼拷貝員”了,他們對實現功能幾乎沒有思路,所作的事情就是從網上或是之前其他團隊成員寫的代碼中拷貝出片段,然后放到項目中,如果運行項目出現了期望結果,則表示任務完成。這類人只會改代碼,卻不會寫代碼。他們大多對編程毫無興趣,只是希望以此糊口而已。
2. 新手型
當產品有功能需求時,由于經驗有限,程序員并不完全知道要如何實現這個功能,需要通過學習、尋找資料等方式來解決問題。這種情況下的編碼過程,程序員的主要目標是“完成功能”,那么很難有多余的心思去考慮邊界條件、性能、可讀性、可擴展性、編碼規范等問題,因此代碼bug可能較多,穩定性不高,常常會發生開發花費1個月,改bug卻要改上好幾個月的事情。
3. 學習型
這類程序員對所在領域的語言已經比較了解,對于一般功能可以有較為清晰的實現思路,給出需求時可以通過自己的思路來實現,并且會一定程度上考慮邊界條件和性能問題。但僅此而已,他們對可讀性和可擴展性考慮很少,也沒有項目級別的考慮,主要是希望通過實現代碼來練手或是學習。
4. 實現型
這類程序員一般有較為豐富的經驗,由于寫得太多,因此不再追求“創造代碼”來進行學習,同時對所在領域可能涉及的很多第三方框架或是工具都比較熟悉,當接受到產品需求時,對功能實現方案已經了然于胸,因此他們可以快速的實現需求,并且對邊界、性能都有一定程度的考慮。
? ? ? ? ? ? ? ? ? ? ?
優秀程序員的幾個表現:
1、先進行實驗是他們的本能反應
編譯器和運行環境通常能比人更快地解釋一個問題。一個優秀的程序猿在拿著問題去向別人尋求幫助之前,會自己試試看并判斷方法是否有用,而不是直接找一個高級程序員問“我這么做有用嗎?”。
2、對待代碼和設計不要情緒化
代碼就像紙巾:它有用你就用,沒用了就扔掉。幾乎我們所有人都認為代碼復用( code-reuse )很重要,盡管確實如此,但是這也不意味著要像養孩子那樣去對待代碼。代碼沒有感覺也不會在乎,它們會像法蘭克斯坦( Frankenstein )怪物那樣攻擊你。代碼只是一堆字節,是一種責任( liability )。
3、對編程有激情
很多程序員干這一行只是為了掙錢,如果有更好的職業,他們會毫不猶豫的辭掉程序員的工作。而優秀的程序員熱愛編程,喜歡鉆研代碼中的問題,他們感到能指揮電腦來幫助人們和自己解決現實生活中的問題是一種神奇的能力。當遇到問題無法解決時,他們會茶不思、飯不想,無法入睡。
4、君子善假于物
優秀的程序員知道如何能更高效的完成任務,如何更能有效的解決問題。當遇到問題時,不鉆牛角尖,善于利用外部工具解決自己的問題,特別是能熟練應用搜索引擎。初級的程序員只會使用百度和百度知道搜索問題,而高級的程序員/優秀程序員使用谷歌和Stack Overflow或者MSDN forums這類網站尋找更優秀的答案。
5、不斷學習
我們生活在一個有趣的時代。隨著軟件開發逐漸遍布全球各地,你會發現有很多人都可以干你的工作。所以你需要不斷學習以保持競爭力。否則,你就會落伍,停滯不前,直到有一天,這份工作不再需要你,或外包給一些更廉價的勞動力。
那么我們能做些什么?有些雇主很慷慨,會提供培訓以拓寬你的技能。也有的人會說我沒時間或者沒這個資金去接受任何培訓。所以,關鍵是要擺正心態,學習是對自己的負責。
6、不要害怕破壞東西
每個具備行業經驗的程序員肯定參與過代碼庫岌岌可危的項目。系統很糟糕,并且改變這邊總是會破壞另一邊不相關的功能。每次添加模塊,程序員只能想著盡可能少地改變代碼,每次發布都膽戰心驚。這座軟件的摩天大樓隨時有坍塌的可能。之所以改動代碼會如此傷腦筋是因為系統太糟糕了。但是即使你知道系統出了問題,卻又因為投鼠忌器,而不得不聽之任之。
要成為優秀的程序員(geek),都是自己一步一步努力的結果,從不吹噓自己多么多么能干,多么多么 NB,他們很低調,甚至有時候有點悶。請謹記:
素質高:他們都有較高的的思想道德素質,說話談吐都很舒服,不帶臟話,雖然有點屌絲;
邏輯思維:理工科的男生思維都比較活躍,清晰;寫代碼之前都理清實現的原理再下筆;話說我們這還有個清華的女程序員,做事超級認真,職業素養非常高,程序都是一次性通過很佩服;
注重細節:代碼縮進,變量命名,標點符號都需要做到規范,便于后期維護以及改版等等;
注重安全開發:程序員開發的代碼不出現 bug 肯定是不可能的,除了修復 bug,一定要注意安全技術;
效率:不做無用功,碰到不能解決的問題,自己解決,不能解決就主動問,汲取教訓,收獲經驗;
耐心:需求改變或者程序錯誤都需要靜下心來不停的調試錯誤以及修改;就算有時候做自己不喜歡的事情,你也要堅持,也許會的達到意想不到的收獲。
希望你也能成為一名優秀的程序員!
所以說,想要在程序員生涯內有更高的成就的話,最最重要的是盡可能的提升自己的編程能力,并且,與其想著怎么去提升,不如從現在開始動手動腦,如果對于C/C++感興趣的話,可以關注博主的微信公眾號“C語言編程學習基地”,一起進步吧!
總結
以上是生活随笔為你收集整理的写给程序员的秘籍:你跟优秀程序员的差距,其实就在这几个方面!的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 08-05-05
- 下一篇: 程序员年薪高达40万,为什么有很多程序员