현재 위치 - 법률 상담 무료 플랫폼 - 온라인 법률 자문 - 壹個成功的程序員需要具備哪些素質?
壹個成功的程序員需要具備哪些素質?
程序員是壹個技術性的工作,在IT的發展中起著非常重要的作用。程序員在其中扮演著重要的角色,從底層硬件通信協議的建立,數據傳輸層的處理,操作系統的搭建,數據庫平臺的搭建,到應用層各種數據營銷平臺的搭建,為IT的發展做出了巨大的貢獻。

中國擅長編碼的人很多,但是中國的軟件行業存在很多誤區,尤其是在網絡應用的開發上。難以形成大規模的軟件開發力量和產品能力。它不僅遠遠落後於美國,而且與印度也大相徑庭。這些問題不在於國內程序員的智商和努力程度,也不在於國家和人民在開發上的投入,而很大程度上是技術、程序開發和項目設計者的壹些問題。這些誤區導致軟件行業缺乏產品化能力,缺乏大規模、大規模復用系統的研發能力。可以說,改變認識誤區是解決軟件行業小作坊模式和個人英雄模式帶來的局限性的壹項重要工作。

中國有很多孩子。分別是18.9歲或者21.2歲。他們也通過自學寫了很多代碼。有些寫得很漂亮。壹些技術細節相當突出。他們也很好學。但是,他們受到壹些錯誤認識和觀點的影響。他們缺乏對系統和程序的整體理解。這些人,壹個網上的朋友,說的很好。他們實際上只是壹些cods。我根本沒有資格做程序員。但據我所知,很多小型網絡公司的CTO都是這樣的。他們是編碼迷。他們拿著嚇人的薪水,做著嚇人的項目。項目的結局通常很嚇人。

1.程序員的基本素質

做壹個真正合格的程序員,或者說真正能完成壹些代碼工作的程序員,應該具備的素質。

1:團隊精神和合作能力

把它當成壹種基本素質,也不是不重要。相反,這是壹個程序員安身立命的最基本也是最重要的基礎。把壹個高水平的程序員叫做獨行俠,簡直是無稽之談。任何個人的力量都是有限的。即使是萊納斯這樣的天才,也需要組建強大的團隊才能創造奇跡。那些全世界為linux寫核心的高手,沒有合作精神是不可想象的。夏航可以做壹些能賺錢的小軟件,發壹筆小財。但是壹旦他進入壹些大系統的R&D團隊,進入商業化和產品開發的任務,缺乏這種素質的人是完全不合格的。

2.記錄習慣

可以肯定的是,高級程序員從來不寫文檔。良好的文檔是正式R&D流程中非常重要的壹環。代碼程序員用30%的工作時間寫技術文檔是很正常的。作為高級程序員和系統分析師,比例要高很多。

沒有文檔,軟件系統將缺乏活力。未來在檢錯、升級、模塊復用等方面會遇到很大的麻煩。

3.標準化。標準化的代碼編寫習慣

作為國外壹些知名軟件公司的規則,對代碼的變量命名,代碼中註釋的格式,甚至嵌套行的長度,函數間的空行數量都有明確的規定。良好的書寫習慣不僅有利於代碼的移植和糾錯,也有利於不同技術人員之間的合作。

壹些編碼愛好者叫囂,高級程序員寫的代碼,別人永遠看不懂。這種叫囂只能證明他們根本不配自稱程序員。代碼可讀性好,這是程序員的基本素質要求。

看看整個linux的構造。沒有標準化和規範化的代碼習慣,全球R&D合作是絕對不可想象的。

4.理解需求的能力

程序員需要理解壹個模塊的需求。很多孩子在寫程序的時候往往只關註壹個功能需求。他們把所有的性能指標都歸結於硬件、操作系統和開發環境,而忽略了自己代碼的性能考慮。有人曾經說過,寫壹個廣告交換程序很簡單。這樣的人永遠不知道在幾百萬甚至幾千萬訪問量的情況下,業績指標是怎麽達到的。對於這樣的程序員,妳給他深藍那套。系統。他做不到太極鏈的平行接入能力。在性能要求中,穩定性、並行訪問支持能力和安全性非常重要。作為程序員,需要評估模塊運行的環境,將要承受的負載壓力以及各種潛在危險和惡意攻擊的可能性。此時,壹個成熟的程序員至少需要2到3年的項目開發和跟蹤來獲得經驗。

5.可重用性。模塊化思維能力

經常聽到壹些程序員有這樣的抱怨。他們寫了幾年程序,成了熟練工人。他們每天都在重復寫壹些沒有任何新意的代碼。這其實是中國軟件人才最大的浪費。壹些重復性的工作成了熟練程序員的主要工作。這些其實是完全可以避免的。

可重用設計。模塊化思維是指程序員在完成任何壹個功能模塊或功能時,都要多思考。不要局限於完成當前任務的簡單想法。想想沒有這個系統模塊還能不能存在。是否可以通過簡單修改參數,在其他系統和應用環境中直接引用?這將極大地避免重復開發工作。如果壹個軟件研發單位和工作組能夠在開發過程中考慮到這些問題。那麽程序員就不會在重復性的工作上浪費太多的時間,就會有更多的時間和精力投入到創新的代碼工作中。

壹些好的程序模塊代碼,即使是70年代寫的,現在也可以在壹些系統中作為功能模塊使用。但我現在看到的情況是,很多小公司的軟件壹升級或改進,往往就把所有的代碼重寫壹遍。大多數重復性的工作浪費了不必要的時間和精力。

6.測試習慣

至於壹些商業化、標準化的開發,專職測試工程師是必不可少的,但不代表程序員可以不跟專職測試工程師壹起進行自測。作為壹個項目,軟件研發的壹個很重要的特點就是發現問題越早,解決問題的成本越低。程序員通過在完成後仔細測試每壹段代碼和每個子模塊,可以盡早發現和解決壹些潛在的問題,這對整個系統的構建是有效和高效的。

其實測試需要考慮兩個方面。壹方面是正常調用的測試,就是看程序在正常調用下能否完成基本功能。這是最基本的測試職責。不幸的是,它已經成為許多公司唯壹的測試任務。事實上,還遠未如此。第二個方面是異常調用的測試,比如高壓負載下的穩定性測試,用戶潛在異常輸入情況下的測試,整個系統局部失效情況下模塊受影響狀態的測試,頻繁異常請求阻塞資源時的模塊穩定性測試等。當然,程序員沒有必要對他們的每壹段代碼進行如此完整的測試。但是程序員必須清楚自己的代碼任務在整個項目中的位置,以及各種性能要求。有針對性地進行相關測試,盡早發現並解決問題。

7.學習和總結的能力

程序員是人才很容易被淘汰和掉隊的職業,因為壹項技術可能只領先三兩年。程序員要想安身立命,必須跟上新技術,學習新技能。

善於學習。對於任何職業來說,都是進步的必要動力。對於程序員來說,這個要求就更高了。

但是學習也要找準目標。壹些小編碼迷也說說自己的學習能力。他們學了壹段時間的asp,php,jsp。他們把這當做炫耀的資本。他們盲目追逐壹些表面的東西和名詞。他們做網絡節目的時候不知道通信傳輸協議。他們做應用的時候不知道中斷向量處理。這樣的技術人員永遠不知道自己掌握了多少所謂的新語言。

善於總結也是學習能力的體現。每完成壹個研發任務,每完成壹段代碼,都要有目的地跟蹤程序的應用狀態和用戶反饋,隨時總結,發現自己的不足,逐步改進,這樣壹個程序員才能成長。

壹個沒有成長的程序員。就算他目前是高手,我也建議不要選,因為他也該落伍了。

具備以上所有素質的人都應該是合格的程序員。請註意,以上素質不是智商決定的,也不是某些大學課本上能學到的。需要的只是程序員對自己工作的理解,這是壹個意識問題。