1. 程式人生 > 實用技巧 >程式設計師應該具備哪些素養

程式設計師應該具備哪些素養

能堅持別人不能堅持的,才能擁有你想擁有的。
關注程式設計大道公眾號,讓我們一同堅持心中所想,一起成長!!

哈嘍,大家好,我是walking。今天咱們不聊技術,聊聊作為程式設計師應該具備的素養。

程式設計師,一個多麼讓人“敬仰”的職業。而程式設計師作為新一代的迴歸自然的“猿人”,也是屬於新一代的第三類人種,程式設計師這個職業在外界眼中就是“人傻錢多死得早”的代名詞,因為“高薪”的誘惑,不少其他行業的兄弟,轉行做了程式設計師,而且近幾年各種大大小小的培訓機構如雨後春筍般遍地開花,越來越多的其他行業的從業者都在往程式設計師這一行業轉,相信作為程式設計師的你身邊多多少少都會有幾個同事是從其他行業轉行過來的。

而在21世紀這個資訊化、網路化快速發展的今天,獲取資訊和知識的途徑越來越廣泛,在這個快速發展、節奏緊張的社會,作為一個程式設計師應該具有哪些素養才能夠幫助程式設計師進一步的提升與進步呢?下面walking作為一個程式設計師在此做一個個人分享。

紮實的專業技能

這是作為程式設計師最基本的職業素養,如果專業技能掌握的不夠牢固,那就是技術不到家,作為程式設計師應該感到慚愧。最基本的,比如我們Java開發者吧,最起碼把這個Java的常用的API要熟練吧,這是毋庸置疑的。不然你怎麼寫程式碼,怎麼開發呀。不要覺得我說的在這一點是廢話,這不,walking最近就看到一個同事寫出了這樣的程式碼

@GetMapping("/getUserCount")
public Map<String,Object> getUserCount(){ Map<String,Object> result = new HashMap<>(); String key = "users_set"; Jedis jedis = jedisPool.getResource(); Set<String> smembers = jedis.smembers(key); Iterator<String> iterator = smembers.iterator(); int
count = 0;; while (iterator.hasNext()){ iterator.next(); count++; } result.put("count",count); return result; }

這段程式碼僅僅是為了得到使用redis的set結構儲存的使用者ID的count數,這位同事怎麼寫的呢,從redis裡拿到所有使用者ID的set集合,然後用java的方式--迭代器遍歷集合,再count++計算set中元素個數。看到這,你有什麼想法呢?明明很簡單的一行程式碼,卻搞的這麼麻煩,到底是為什麼?不還是技術不到家嗎?redis的api不會也就算了,java的set集合的api再不懂就說不過去了吧?所以紮實的專業技能是程式設計師的基本素養,否則寫出這樣的程式碼只會讓人貽笑大方。

保持良好的編碼習慣

不但要專業知識紮實,程式碼規範程度也很重要。知名網際網路公司的程式碼的變數命名、註釋格式,甚至巢狀中行縮排的長度和函式間的空行數字都有明確規定,良好的編寫習慣,不但有助於程式碼的移植和糾錯,也有助於不同技術人員之間的協作。一些所謂的高手甚至叫囂高手寫的程式碼一般人看不懂,我只能說他不是一名合格的程式設計師。正所謂“規範大於約定”,良好的編碼習慣將會讓你受益終身。阿里的一套Java開發手冊讓無數公司追捧,聞名國內外。詳看:下載 | 阿里Java開發手冊嵩山版

團隊精神和協作能力

團隊精神和協作能力是作為一個程式設計師應具備的最基本的素質。軟體工程已經提了將近三十年了,當今的軟體開發已經不是程式設計了,而是工程。獨行俠可以寫一些程式也能賺錢發財,但是進入研發團隊,從事商業化和產品化的開發任務,就必須具備這種素質。可以毫不誇張的說這種素質是一個程式設計師乃至一個團隊的安身立命之本。

文件習慣

文件是一個軟體系統的生命力。一個公司的產品再好、技術含量再高,如果缺乏文件,知識就沒有繼承,公司還是一個來料加工的軟體作坊。作為程式碼程式設計師,必須將30%的工作時間寫用於技術文件。沒有文件的程式設計師勢必會被淘汰。

需求理解能力

程式設計師要能正確理解任務單中描述的需求。在這裡要明確一點,程式設計師不僅僅要注意到軟體的功能需求,還應注意軟體的效能需求,要能正確評估自己的模組對整個專案中的影響及潛在的威脅,如果有著兩到三年專案經驗的熟練程式設計師對這一點沒有體會的話,只能說明他或許是認真工作過,但是沒有用心工作。

模組化思維能力

作為一個優秀的程式設計師,他的思想不能在侷限當前的工作任務裡面,要想想看自己寫的模組是否可以脫離當前系統存在,通過簡單的封裝在其他系統中或其他模組中直接使用。這樣做可以使程式碼能重複利用,減少重複的勞動,也能使系統結構越趨合理。模組化思維能力的提高是一個程式設計師的技術水平提高的一項重要指標。

測試習慣

測試是軟體工程質量保證的重要環節,但是測試不僅僅是測試工程師的工作,而是每個程式設計師的一種基本職責。程式設計師要認識測試不僅是正常的程式除錯,而要是要進行有目的有針對性的異常呼叫測試,這一點要結合需求理解能力。

學習和總結的能力

程式設計師是很容易被淘汰的職業,所以要善於學習總結。許多程式設計師喜歡盲目追求一些編碼的小技巧,這樣的技術人員無論學了多少語言,程式碼寫起來多熟練,我們只能說他是一名熟練的程式碼民工,他永遠都不會有質的提高。一個善於學習的程式設計師會經常總結自己的技術水平,對自己的技術層面要有良好的定位,這樣才能有目的地提高自己。這樣才能逐步提高,從程式設計師升級為軟體設計師、系統分析員、專案經理。

作為高階程式設計師,乃至於設計師而言,除了應該具備上述全部素質之外,還需要具備以下素質:

1、 需求分析能力

2、 整體框架能力

3、 流程處理能力

4、 模組分解能力

5、 整體專案評估能力

6、 團隊組織管理能力

保持程式思維

作為一個程式設計師而言,程式設計師的思維可謂是超人類的思維,因為我們面對產品提出的需求時要用一個程式的大腦去思考,去想如何控制電腦做出我們想要完成的事情,如何用最簡單、最優的方式去實現這個功能。那何為程式思維呢?那就是“源於程式,終於程式”,但是不脫離程式,要做程式中的散文詩人。程式設計師的思維只有從不斷的練習中去感悟,去思考,去總結,去完成。比如產品經理突然有一個想法想做一個論壇,問你們誰能做,你怎麼應對?下面的視訊帶有一定的娛樂性質,但是希望大家能夠多聯絡,多總結,去挖掘自己程式的潛力,有一天可以做到:根據problem反射出answer或者根據answer反射出problem的時候就是程式設計師思維出來的時候。【視訊在公眾號

不斷的學習的精神

程式設計師要保持不斷的學習與進步,因為程式設計師界的新的技術層出不窮,在新的技術中去注意自己應該掌握的知識點,學習並且利用就是最好的競爭力,如果作為程式設計師知識儲備不深,或者固步自封永遠停留在自己的世界裡而沾沾自喜,不去主動接觸、學習並掌握新知識,那麼你遲早會被淘汰。可以從哪裡得到更多的新的技術呢:1)github 2)各大論壇 3)部落格網站 4)培訓機構 5)程式設計師你懂的牆外的東西
有人會說:平時上班那麼忙,哪有時間學習啊?偉大的文學家魯迅曾經說過:時間就像海綿裡的水,擠擠總是有的。你把刷視訊、玩遊戲、發呆的時間拿來學習不香嗎?沒時間是你懶惰的藉口!

保持頭腦靈活

作為程式設計師要不斷去參加一些益智類的專案,來保持自己的大腦的活性。久坐和長時間面對電腦給自己的精神壓力和身體壓力是非常大的,保持一個大腦的活性有助於我們的學習,研究,更有利於我們心腦血管的健康,這樣對我們的生活會有更進一步的提升空間。比如,玩一玩益智類的小遊戲,適當的玩一玩開拓自己的大腦;再比如去找找演算法題做做都是可以的。walking身邊就有一些大齡程式設計師,在與其對接的過程中,發現一個小問題他就要想半天,甚至是告訴他之後還不是很明白,很明顯腦子反應慢了,不靈活了。老話說的好,腦子越用越靈,不用就生鏽了。

充足的睡眠和持之以恆的鍛鍊

對於程式設計師來說,加班是常事,但是良好的生活作息可以讓我們得到更好的工作效率,充足的睡眠是保證我們工作效率的第一開端。哪怕我們工作再忙,切記一定要保證充足的睡眠。持之以恆的鍛鍊源於運動,運動是生命之本。有很多人工作後,1-2年內就發胖,大肚子渾身贅肉,作為程式設計師更容易這樣,長期的伏案工作,吃完就坐在電腦前,缺乏運動,加上不注意飲食,暴飲暴食,長此以往身體就會越來越差,糖尿病,高血壓,脂肪肝…這樣的疾病就會找上門。我們要每天給自己一定的時間去鍛鍊,去流汗,去釋放,這樣我們才可以在家庭生活中成為一個強者。美國程式設計師是世界的領先水平,凡是在美國的白領,仔細看看都是身體健康,體能充分的人。

保持良好的心態

程式設計師更要保持良好的心態,不然你寫程式碼寫文件就和容易出錯,不要帶情緒上班,保持一個平和的心態,佛系應對工作。如果有一個良好的心態,可以更加好的去解決bug,bug對於程式設計師來說是最耽誤時間,最影響心情的一件事情,即使是有了bug也不要太著急,告訴自己急也沒有用,當下之際是找出bug快速解決它。。walking身邊的同事就發生過這樣一件事,兩個前後端的同事合作做一個功能的開發,測試階段bug不斷,到上線前還在解決,結果兩個人就互相埋怨,起初還是隨口說說,最後甚至大大出手互相辱罵,傷了和氣,後來均被勸退。所以無論我們面對工作,還是生活都要有一個良好的心態,只有良好的心態我們才可以走的更遠。

時常規劃自己的人生

程式設計師的職業生涯比起其他的職業是要更加的短暫的,新生的程式設計師是層出不窮的,他們思維活躍精力充沛,能吃苦能加班,相對於30多歲以後的你如果還不考慮轉型的話,是和他們拼不過的,所以我們要時常有一種危機意識,做好自己的職業規劃。

作為程式設計師的我們,可以強化自己的專業技能做技術經理,技術專家,技術顧問,架構師等,也可以轉型去做管理,或者也可以創業等等,腦袋裡面一定要時常規劃自己的人生路線,否則很難走到最後。

一定明白自己想要什麼,是一輩子做底層的程式設計師敲程式碼嗎?那不會被淘汰嗎?如果想升職做技術大牛,那就應該把自己的技術功底打紮實,從剛工作甚至是大學時代就規劃好自己將來要做到什麼樣的技術程度,不斷的積累經驗掌握技術原理,解決問題,而不是等到30歲以後工作有可能有危機的時候才去著急,為時已晚。規劃越早越好,並不斷的去實踐達到一個個目標。

好了,今天就分享到這。如果感覺本文對您有幫助,有勞點贊,分享給更多的人。歡迎關注本公眾號,謝謝您的支援!

本文僅做個人分享,如有疑問或不妥之處,請歡迎指正、交流。

你可能感興趣的文章:

《[需求設計]從一個小需求感受Redis的獨特魅力》

《【面試突擊】— Redis篇》--Redis資料型別?適用於哪些場景?

《【面試突擊】— Redis篇》--Redis的執行緒模型瞭解嗎?為啥單執行緒效率還這麼高?

《【面試突擊】— Redis篇》-- Redis的主從複製?哨兵機制?

《【面試突擊】— Redis篇》-- Redis哨兵原理及持久化機制

《【面試突擊】— Redis篇》--Redis Cluster及快取使用和架構設計的常見問題

《你真的瞭解Redis的釋出訂閱?》

《Redis快取穿透,快取擊穿,快取雪崩,熱點Key》

《高併發場景下快取+資料庫雙寫不一致問題分析與解決方案設計》

《什麼?我往Redis裡寫的資料怎麼沒了?》

覺得好看,請點贊哦~

關注公眾號程式設計大道,第一時間獲文章推送。

覺得好看,請點贊、關注、轉發哦~

參考:
https://jingyan.baidu.com/article/6181c3e0f0c589152ef153bb.html
https://zhidao.baidu.com/question/565951751422039924.html