四件在我步入職業軟件開發生涯那天起就該知道的事情

做者:http://brotherb.info/2013/08/23/4-things-i-wish-i-would-have-known/android

出處:http://brotherb.info/2013/08/23/4-things-i-wish-i-would-have-known/編程


四件在我步入職業軟件開發生涯那天起就該知道的事情

個人軟件開發生涯開始於大約15年之前。post

可是直到最近5年,我才真正地看到它的提升。單元測試

下面這些事情,我但願在進入軟件開發領域時我已經知道了。若是我早點知道這些事兒,我將會變得更加成功。學習

軟件開發中沒有「正確的方式「

在我開發生涯的早期,我在學習和爭論上浪費了大量的時間。我錯誤地認爲,在軟件開發的諸多方面都存在一種絕對」正確的方式「。測試

可是,關於軟件開發,幾乎每一件我當時認爲是正確的事到頭來都被證實是錯的。spa

更重要的是,我發現幾乎沒有任何一件事是非黑即白的。在編寫代碼和開發軟件的過程當中,幾乎全部的決策都是基於當時特定的情形。.net

我以前已經談過爲何信仰一種技術對開發人員有害,可是我如今說的這個話題談的不止是一種技術(這麼狹隘)。視頻

沒有通用的最佳實踐,這也是真的。甚至是一些highy charged話題。例如,要不要單元測試?敏捷開發和瀑布模型哪一個好?這些沒有永遠正確的答案。遊戲

在個人職業生涯中,我在」正道「(理想主義)路線的迷宮裏浪費了太多的時間,而不是採用能夠幫我走得更遠的」務實「(現實主義)路線。

細讀書不是最佳的學習方式

我一開始學習編程和技術知識的時候,我花了太多時間細讀一些關於特定技術的書。

reading-book_thumb

讀書沒錯,可是選擇讀什麼書和讀它的哪一部分很是重要。

好比,我記得我讀過一本很是厚的講VC++的書。(我十分確定是這本書的更早的一個版本。)無論怎麼說,這本書是本內容豐富的好書,可是一頁一頁地讀並非學習VC++最好的方式。

若是我當時先粗略地看看此書的章節,得到對VC++的一些全局的認識,而後再去搞懂其中最最重要的部分,我能學到並記住更多的東西。

若是我當時坐下來,經過實際地作一些東西來練習基礎知識,而不是僅僅讀一下或者過一過書上的例子,我如今會更加成功。你沒有在真正地學一門技術,除非你用它解決了真正的問題。

深刻學習一門特定技術是浪費時間

我不只在」細讀書「上浪費了時間,我在」讀錯書「上也浪費了時間。

我錯誤地相信,從裏到外學習一門特定的技術能很好地推進個人職業生涯。

我花了太多時間讀一些很是專門的技術書,如,ASP.NET或Hibernate,而不是讀更多的像《代碼大全》《代碼整潔之道》,和《敏捷軟件開發:原則、模式與實踐(C#版)》。(BTW,我推薦你去讀全部的這些書,若是你沒讀過的話。)

儘管瞭解你所使用的技術很是重要,可是成爲那個特定技術的絕對專家並不重要。知道確切的API調用沒多大好處,你須要的時候能夠垂手可得地查到。

我在太多技術上花了太多時間深刻學習,最後這個技術不是死掉了就是我後來放棄不用了。大多數關於這些特定技術的知識最後只表明了浪費掉的時間。

我發現,成爲你正在使用的特定的程序語言的專家很重要,由於程序語言方面的知識將影響你很長時間。我仍然百分之百會花時間深刻學習C++,C#和Java,可是我可能會花較少的時間去學習C++全部複雜的細節,由於那些細節如今對我幫助不大。

在你的開發生涯中,社區極其重要!

個人生涯早期,我犯了一個錯誤,就是不怎麼去向社區尋求幫助,也不爲他人提供幫助。

community_thumb

我一貫樂於幫助個人同事,也在不一樣的工做崗位上也很是善於交際,但活動範圍歷來沒有超出過公司。

我在個人生涯中花了大量的時間,試圖在一個特定的公司進行投資,卻沒能將個人時間投資在我參與的軟件開發社區中。

我花了不少時間,作關於技術或者是最佳實踐的內部presentation,而這些時間本來能夠用來製做能夠服務於社區的內容和材料,同時也能給我帶來工做上的承認。

我也犯了另外一個錯誤,就是認爲本身沒什麼有價值的東西去貢獻。

我和不少剛入行的開發者聊過,有時候我以爲,比起咱們這些」老油條「,他們有更多的東西去貢獻給社區,由於他們更理解其餘初學者蛋疼的問題。

若是我能夠重來一遍,我必定會在個人生涯中更早、更多地參與各類會議和用戶羣。我會更早地開始寫博客,並利用個人大部分學習時間去創建項目和資源,去幫助別人而不是隻讀書。

老是參與一個業餘項目

可能我作的最大的,而且對我生涯影響最大的改變將會是徹底戒掉電視,無盡的任務和魔獸世界(兩個遊戲),並把這部分時間花在一個業餘項目上。

我過去花了至關一部分時間作一些享受性的,可是對個人生活沒有長遠利益的事情。

大約3到4年前,我已經基本不看電視了,如今我也不多看電影。電視和大部分電影只是一個對時間的巨大浪費,而這些時間你能夠用來幹不少有用的事。視頻遊戲很大程度上也是同樣,但至少在視頻遊戲裏,你在積極地作一些事情,而不是被動地吸取一些沒有用的信息。

我會一直熱愛玩視頻遊戲,而且我不認爲我會停下來,可是,我真心但願我(以前)把一大部分用來打遊戲看電視的時間花在一個業餘項目上。

慚愧的是,我作的第一個真正的業餘項目是在大約三年前,那時我開始建立個人第一個android應用。

當你在爲別人工做的時候,花時間爲本身工做很是重要,否則你就是在爲他人創建王國而忽視本身的王國。

我不只從最近幾年的業餘項目中學到了不少,而且我也從中獲得了不少利益。事實上,其中一個,即製做Pluralsight課程,是我如今花所有時間在作的。

(本文最初發表在brotherb上)

[英文原文: 4 Things I Wish I Would Have Known When I Started My Software Development Career ]
此條目發表在 心得體會分類目錄,貼了 業餘項目技術選型社區活動標籤。將 固定連接加入收藏夾。
相關文章
相關標籤/搜索