怎樣才算一個真正的程序員?

流星小子


本人10年開發培訓經驗,期間經歷了Java Web,Android,H5,大數據,PHP等多個不同的方向的開發,也做過軟件培訓公司的金牌講師,很有興趣回答你這個問題。

我覺得如何才是“一個真正的程序員”,這個還真沒有一個固定的標準或者說答案。就好比說,怎麼才算一個好人?

當然雖然沒有一個完全的標準,固定的答案,但是我覺得大多數人還是可以用以下幾條來進行評判吧。

1.業務能力

一個合格的程序員,最起碼得把自己的項目如期完成,業務能力不能low。

2.團隊合作

程序員很多時候,都是和團隊裡的其他成員一起工作的,那麼一個合格的程序員,最起碼得能夠與其他人和平共處,團結協作。

3.學習能力

程序員這一個行業,是一個不停更新技術,不停學習新東西的行業,如果自己的技術不能及時更新,只會自己那點過時的技術,這樣的程序員應該不怎麼靠譜。

4.對技術的熱愛

程序員畢竟是靠技術吃飯的,所謂幹一行愛一行,保持對技術的熱忱,應該是對自己行業最起碼的尊重,什麼時候對技術沒有熱情了,那麼可能就與這個行業無緣了。


我從事互聯網開發10年,主要的研究方向集中在Java web微服務架構領域,Android移動端研發,HTML5前端方向,我會陸續寫一些關於互聯網技術方面的文章,感興趣的朋友可以關注我,相信你一定會有所收穫。

如果有Java,Android,H5等開發方面的問題,或者是開發求職方面的問題,都可以在評論區留言,或者私信我。


一一哥Sun


怎樣算合格的程序員。我覺得每個人的理解或評判標準是不一樣的,下面我只說說我觀點。我認為一個合格的程序員應該具備如下標準。

第一、有良好的開發習慣。所謂良好的開發習慣是指寫代碼的時候儘量使代碼易懂,比如即使你熟知各種操作符的優先級也需要用括號顯式標明,因為並不是每個人對操作符的優先級都一清二楚。其次,必須添加註釋,否則會使代碼閱讀比較困難。以上便是所謂的良好開發習慣。

第二、開發不僅僅是為了完成任務。作為代碼的書寫者,不僅僅是為了實現需求描述中所要求的功能,而是需要思考是否有更好的解決方案。因為任一個功能都有多種實現方案,但是在不同場景下,都會有一個最優方案。所以,如果選擇也是程序員所要考慮的。

第三、不斷學習新技術。因為技術是不斷推陳出新的,當一個新技術開始流行時要及時進行學習,因為一個技術之所以流行,必然是解決了舊技術的某些弊端,或簡化了開發,或提升了效率。如果故步自封,那麼寫出的代碼必然不如用新技術實現的高效。當然,離被裁也就不遠矣。

第四、必要的謙虛。作為身為程序員,總覺得自己是最牛的,我想每個人都會有這種想法。但但是這樣會導致一個問題,就是自以為是,聽不進別人的意見。我始終認為,不管對方說得對不對,至少先認真聽完對方的陳述,然後大膽假設,細心求證,而不是根據自己的過往經驗來盲目做出決斷。尤其是自己剛入門不久時候。作為一個合格的程序員,必要的謙虛是要有的。

第五、靈敏的思維。因為正如我所說的,一種功能可能有多種解決方案,而且為了實現某個功能,你必須明白什麼樣的數據會觸發哪種狀態,會進入哪種分支。如果沒有靈敏的思維,或許你的代碼在某組特定數據下可以正確執行,但是換組數據或許就會錯誤百出。所以,我認為靈敏的思維是必須的。

第六、舉一反三的能力。我認為舉一反三的能力也是一個合格的程序員所必須具備的。因為技術在不斷推陳出新,如果每出一種新技術都需要你學習很久,那麼等你學會時候必然又落伍了。但如果你可以舉一反三,那麼你學習的時候便可以加快很多。

當然,一個合格的程序員所具備的條件應該還有。但是目前我只能想到這些。


但求無Bug


作為一個好的程序員應該有以下幾個方面:

1.業務能力強,工作效率高。

2.學習能力強,技術日新月異,只有不斷學習才能不被淘汰。把學到的知識進行歸納總結,行成完善的知識體系。

3.編程能力強,只有多寫代碼,代碼能力才有提升,不能廣看不寫。

4.知識技能強,程序員不是固定一個知識技能範圍,可能需要你會C,C++,熟悉大數據,熟悉操作系統,熟悉算法和結構,熟悉網絡協議棧,瞭解基本的通信協議,網絡編程等等。


程序猿的未來人生


從2011年以後,培訓機構的興起造就了一批靠跳槽張薪資的程序員,平均每六到十二個月跳槽一次漲薪幅度在20-30%,當然在一定價格之後價會縮減很多。

這其中導致大部分人的技術是沒有任何進步的。特別是培訓機構出來的。

很多培訓機構的人出來都會開價10k+,知道原因是什麼嗎,答:老師讓我們要這麼多或者覺得自己值這麼多。

題外話說多了,說點正事。

web前端這個程序語言需要了解至少一門後端語言,以便更好的去協作,另外ps ai的使用也尤為重要(遇到web前端不切圖的,什麼事情別人去做只負責做代碼,你的競爭力就是你能把前端搞定,老闆看中的是你能解決問題而不是你去讓老闆安排幫你解決問題)服務器操作最好也會,例如你在使用一些技術的時候會用到,例如nodejs vuejs等等。特別是剛開始做的同學耐心做三年三年後絕對是從技術和薪資都是一個好的開始。

php程序員最起碼的環境搭建lamp lnmp windows下的php環境 iis nginx apache等。mysql redis mogondb 等技術最好要了解並會熟練使用,三年五年的別說你能去精通,完全扯淡。

java程序員和php共性很多最起碼的環境tomcat nginx apache linux redis jetty等springmvc status啥的就不說了。

python go golang c c++等基本可以說都是比較相同的,會一門語言要了解語言的解決面,適合開發哪一類型的產品應用,圍繞產品的技術性需求來完善和學習相應的技術。

外行閒扯,內行勿噴。

謝謝


Mayaq


程序員需要神形兼備,從三個角度認證程序員:

1. 穿著: 冬天 牛仔褲+衝鋒衣 夏天 短褲 +T恤《公司的文化衫》 運動鞋或者人字拖

2. 技術能力:能夠靠寫代碼賺錢就行

3. 其它: 冷不丁的幽默感;改變世界的妄想力;遇到問題相信科學,鄙視遇到鬼的說法;強大的自嘲能力。


嘟嘟曰


1.技術學習能力。隨著技術日新月異很多東西現在適用,後面就面臨著淘汰。所以學習能力要強。

2.瞭解業務。只有充分了解業務才能更好的編寫邏輯,全局觀念思考。

3.耐得住。做開發是煎熬且枯燥的,要耐得住bug,抗的了壓力。


柒蒔鏈_翠


以最低的成本,實現需求。


非魚TSL


C

基礎知識,基本語法,變量,常量,運算符,判斷,循環,函數,數組等,高階一點學會指針,文件操作,內存,socket通訊都會。

C++

封裝,繼承,多態,STL庫都掌握,各種數據結構,高階點動態內存,模版,多線程等都會。

C#

反射,屬性,索引器,委託,事件,集合,多線程等等都會。

Java

SSH框架,Servlet,Maven,web,數據庫。

web

javascript PHP python HTML node.js SQL Android Hadoop等語言都能會用。

以上都是真正的程序員需要掌握的知識,技多不壓身,能夠搞定前後端的全棧工程師才能算是一位合格的真正的程序員。


電視鵬


一個合格的程序員要具備三大知識體系,一基礎知識,二應用技術知識,三業務方向知識。

基礎知識包括:數據結構,常見算法,操作系統,編程語言的相關的語法、環境、編譯、工具,程序調試等,為程序提供正確性和性能提供保證。

技術應用知識包括:專業領域常用算法和結構,語言相關常用框架技術,常用工具類庫,系統運行的問題分析技術,安全相關常識,代碼管理技術知識,測試相關技術等,為開發的可靠性、可維護性、開發效率提供保證。

業務方向包括:常見業務標準、業務流程、業務領域模型,常見業務處理工具和技術等,為開發的兼容和易用性提供保障

學習並實踐上述內容,理論上會成為一個合格的程序員了。


逍遙君武


1、興趣是最好的老師,而不至於在遇到挫折,中途放棄。

2、大約3年有個瓶頸期,持續沉澱突破過去。最近剛剛有夥伴說,越來越不敢寫代碼了,這其實也是種提升,在自身接觸很多優秀代碼和框架設計後,自身也會越來越重視品質,不再毫無顧忌的寫代碼。

3、語言,方向有很多,專注一個先做到極致,重視技術沉澱,解決實際問題,創造價值。忽略工資和大方向誘惑。不太看好那些追趕大數據,AR/VR,AI這些的,除非你本來是搞這些基礎研究的。

我本人是做互聯網應用的,只關注解決實際業務,產品場景問題,基礎研究應該是實驗室裡,科研人員的事,至少我搞不了,也不去追這些潮流,我只關注如何用好,這些基礎功能PaaS都會提供。

不要過高估計自己的能力,有多大屁股,穿多大褲衩,人可以跳起來摘桃子,但夠不到星星,心態很關鍵


分享到:


相關文章: