**cjsdn上乙個值得思考的帖子.
中國有很多小朋友,他們18,9歲或21,2歲,通過自學也寫了不少**,他們有的**寫的很漂亮,一些技術細節相當出眾,也很有鑽研精神,但是他們被一些錯誤的認識和觀點左右,缺乏對系統,對程式的整體理解能力,這些人,乙個網上的朋友說得很好,他們實際上只是一些coding fans,壓根沒有資格稱為程式設計師,但是據我所知,不少小網路公司的cto就是這樣的coding fans,拿著嚇人的工資,做著嚇人的專案,專案的結局通常也很嚇人。
程式設計師基本素質:
作乙個真正合格的程式設計師,或者說就是可以真正合格完成一些**工作的程式設計師,應該具有的素質。
1:團隊精神和協作能力
把它作為基本素質,並不是不重要,恰恰相反,這是程式設計師應該具備的最基本的,也是最重要的安身立命之本。把高水平程式設計師說成獨行俠的都是在囈語,任何個人的力量都是有限的,即便如linus這樣的天才,也需要通過組成強大的團隊來創造奇蹟,那些遍布全球的為linux寫核心的高手們,沒有協作精神是不可想象的。獨行俠可以作一些賺錢的小軟體發點小財,但是一旦進入一些大系統的研發團隊,進入商業化和產品化的開發任務,缺乏這種素質的人就完全不合格了。
2:文件習慣
說高水平程式設計師從來不寫文件的肯定是乳臭未乾的毛孩子,良好的文件是正規研發流程中非常重要的環節,作為**程式設計師,30%的工作時間寫技術文件是很正常的,而作為高階程式設計師和系統分析員,這個比例還要高很多。缺乏文件,乙個軟體系統就缺乏生命力,在未來的查錯,公升級以及模組的復用時就都會遇到極大的麻煩。
3:規範化,標準化的**編寫習慣
作為一些外國知名軟體公司的規矩,**的變數命名,**內注釋格式,甚至巢狀中行縮排的長度和函式間的空行數字都有明確規定,良好的編寫習慣,不但有助於**的移植和糾錯,也有助於不同技術人員之間的協作。
有些coding fans叫囂高水平程式設計師寫的**旁人從來看不懂,這種叫囂只能證明他們自己壓根不配自稱程式設計師。**具有良好的可讀性,是程式設計師基本的素質需求。
再看看整個linux的搭建,沒有規範化和標準化的**習慣,全球的研發協作是絕對不可想象的。
4:需求理解能力
測試有很多種:按照測試執行方,可以分為內部測試和外部測試;按照測試範圍,可以分為模組測試和整體聯調;按照測試條件,可以分為正常操作情況測試和異常情況測試;按照測試的輸入範圍,可以分為全覆蓋測試和抽樣測試。以上都很好理解,不再解釋。
總之,測試同樣是專案研發中乙個相當重要的步驟,對於乙個大型軟體,3個月到1年的外部測試都是正常的,因為永遠都會又不可預料的問題存在。
完成測試後,完成驗收並完成最後的一些幫助文件,整體專案才算告一段落,當然日後少不了公升級,修補等等工作,只要不是想通過一錘子買賣騙錢,就要不停的跟蹤軟體的運營狀況並持續修補公升級,知道這個軟體被徹底淘汰為止。
寫這些步驟算不上賣弄什麼,因為實話講我手邊是一本《軟體工程》,在大學裡這是計算機專業的必修課程,但是我知道很多程式設計師似乎從來都只是熱衷於什麼《30天精通vc》之類的,他們有些和我一樣游擊隊出身,沒有正規學過這個專業,還有一些則早就在混夠學分後就把這些真正有用的東西還給了老師。
網上現在也很浮躁,一些coding fans亂嚷嚷,混淆視聽,實際上真正的技術專家很少在網上亂發帖子的,如筆者這樣不知天高地厚的,其實實在是算不上什麼高手,只不過看不慣這種對技術,對程式設計師的誤解和胡說,只好挺身而出,做撥亂反正之言,也希望那些還沉迷於一些錯誤人士的coding fans們能認真想想,走到正途上,畢竟那些聰明的頭腦還遠遠沒有發揮應有的價值。
從IT人士到IT經理倪應該學會的30 項技能
按照個人職業發展的角度,我羅列了it從業人員都應該具有的30項技能。1.處理簡單的電腦問題,比如,連線印表機 備份檔案或者安裝網絡卡。你不需要成為深入了解諸如超頻cpu或者是入侵注 冊表之類問題的專家 但是因為你從事it行業,所以人們會期待你能夠解 決一般的電腦故障。如果你手下的it技術人員沒有達到...
從頁面走向單元實現真正的業務驅動
需求從何而來?對於乙個專案來說,應該是從設計需求文件中而絕不是頁面。之所以說國內的產品經理技術偏低,很大部分因為他們把過多的熱情放在了畫原型的上面。從頁面走出,實現真正的業務驅動。pdd 一切以頁面為核心,每個程式設計師針對每個頁面來找到功能點,從而以頁面為單位進行任務交付。開發未動,頁面先行,這也...
從技術到管理的問題
案例1 技術到管理如何起步 小范從開發人員轉pm,有理論沒有實踐。入職新公司的職位是pm,但每件事無從下手,不知道該幹什麼,心裡害怕,但一想不去做會就會越來越害怕,想請教上司,上級也忙著開會。想有好的開端但又不知該如何去做。首先要了解技術與管理的區別,技術是對事,一件事做好就行,但是管理是對人和專案...