程式設計師的學習之路

2021-08-30 12:37:18 字數 1727 閱讀 7919

[size=large]

乙個程式設計師,一旦進入了一家軟體企業,就會被安排到專案組中,進入專案的緊張開發過程。沒日沒夜的加班,寫**、調程式、改**,披星戴月,累個半死。往往乙個專案還沒幹完,第二個專案就來了,有的程式設計師甚至同時在4、5個專案中,整天忙得不可開交。

然而,高質量的軟體,需要用高水準的技術來構建。軟體開發,是個智力勞動,而非體力勞動。在專案進度很緊時,程式設計師會傾向用自己已經掌握的技術來解決問題,儘管他也知道這不是解決問題的最有效方法,但迫於時間壓力,他願意用陳舊的技術和大量的體力勞動來贏得時間。然而,專案的需求在不斷變化,需求變化導致的最直接結果,就是大量的**要被修改。以前大量複製貼上的**,都要被一一找出來,乙個個仔細修改。進度被進一步延緩,體力勞動進一步加大。因此,當專案結束時,這樣的程式設計師技能沒有任何提公升,只是付出了大量的體力而已。如果問他:你願意學習你的技術嗎?他會回答:我願意,但專案太緊,我沒時間學習。

以上,就是中國程式設計師的普遍生存狀況。

1. 高質量的軟體,需要用高水準的技術來構建。

使用更先進、更強大的技術,會顯著改善程式的結構,優化**實現過程,導致**數量更少,重用度提高,並提供更加強大的功能特性。當需求變化時,只需做少許改動,就能快速滿足新需求。從而使專案進度加快,質量提高。

2. 軟體開發,是個智力勞動,而非體力勞動。

構建軟體是個智力密集型生產過程,而非體力勞動。所謂體力勞動,是指機械式的重複一些完全相同或大部分相同的工作。體力勞動工作量=∑重複**數x重複次數。在這個公式中,需引起注意是重複次數。往往在專案開發中,我們第一次進行複製貼上**時,認為只此一次,但後續需求變化、結構調整、類的數量增多,重複次數的增長是驚人的。比如web開發是,如果每個頁面都複製貼上同一段**,那麼整個專案可能會有成百上千個頁面,這種重複勞動帶來的體力工作量是巨大的。

因此,唯有使用更優化的軟體架構、更好的程式結構、更優的演算法、更優的實現邏輯,才有可能從忙碌疲憊的體力勞動中解脫出來,才有可能加快專案進度,提高軟體質量。

而學習、掌握新的更為先進、更為強大的技術,是在專案中有效應用的前提。

那麼,就如本文一開篇描述的那樣,專案如此緊張,根本沒時間學習啊?

答案:在專案中學習。

今天的專案是如此緊張,下乙個專案也是如此。永遠也不會出現這種情況:乙個專案結束後,專案成員都放一周假,用於給大家學習。那是不可能發生的事情!即使出現短暫的假期,那麼在假期裡,沒有任何壓力,你就容易失去目標,你學什麼呢?又怎麼知道你理解的是否正確呢?這些知識應該用在什麼地方呢?

因此,只能在專案中學習,在緊張的專案中進行深入學習,提公升技能。

如何能做到?

在每一天的程式設計中,面對問題時,要求自己必須用最優的演算法、最簡單的結構、最簡潔的邏輯過程、最大程度的重用來實現**。遇到任何乙個問題,都不放過,通過翻書、網際網路搜尋、與團隊討論、請教上級等各種方式對其進行探索,讓自己徹底搞清楚,找到解決問題的最佳方法。與此問題相關的技術點,都一併進行學習,力求透徹理解。這樣乙個專案下來,此專案中遇到的各種問題,你都可以徹底解決,與這些問題相關的各種技術點,都被你全部掌握。這樣,你的技能就會大大提公升。

這種學習方法,會不會導致我的任務無法按時完成?剛開始的時候,會出現這樣的情況。是因為你的基礎太差,遇到的問題太多,並且還沒有掌握分析問題、解決問題的正確方法,因此進度會比較慢。但很快你就會通過這一時期,基本概念變得清楚,分析問題也有了思路,解決問題的速度會大大加快。最終,你的進度和**質量,一定會讓你的專案經理滿意的。

並非開啟書本,一頁頁研讀才叫學習。軟體研發是一門實踐的學科,在專案實踐中學習,理論應用於實踐,在實踐中探索和思考,這樣才能快速成長!

[/size]

程式設計師學習之路

風風雨雨,學習ios有兩年有餘,從c語言開始,然後學習oc,再到ui,當時在乙個破舊不堪的實驗室裡,幾個同學一塊學習,沒有蘋果電腦,簡陋環境,但是我們很開心,那些年,我們還是學生,我還是農村的孩紙,經濟條件不太好,沒有肯德基,沒有麥當勞,每天只能在食堂吃飯,去一趟香山就沒有捨得住在北京,窮遊,每乙個...

程式設計師高薪之路

程式設計師高薪之路 現在隨便登陸乙個人才 都可以看到招聘軟體人才的資訊鋪天蓋地,但是不同企業開出的薪酬卻是千差萬別。同樣的用人要求,薪酬的落差甚至可以達到萬元以上。究竟中國程式設計師的薪酬待遇是如何定位,程式設計師應當如何確立自己的身價,這都是值得大家 的問題。就中華英才網2000年下半年的薪資調查...

經典程式設計師之路

乙個程式設計師的成長可分為如下六個階段。第一階段 此階段主要是能熟練地使用某種語言。這就相當於練武中的套路和架式這些表面的東西。第二階段 此階段能精通基於某種平台的介面 例如我們現在常用的win 32的api函式 以及所對應語言的自身的庫函式。到達這個階段後,也就相當於可以進行真實散打對練了,可以真...