程式員和其他工作一樣,需要不斷學習。如果各位程式員只安於現狀,在自己範圍內做份內事,沒有力求上進的心,相信終有一天會被日新月異的科技所淘汰。
能兼顧不同工作才是成功
專業程式員不應只懂得寫編碼,他們同樣地都是一個團隊人員,需要協助企業解決困難,監控各類不同版本,如果作為程式員的你,如果沒有其他技能,那麼你並不能晉身成為頂級人員。如果你問其他出色的開發人員,相信他們都會答你,須要懂得各種技能。
有甚麼需要學習?作為一個程式員,除了懂得程式語言外,像其他工作一樣,能兼顧不同工作才是成功。這兒並不會直接告訴你該學習甚麼,反而一些重要技能及態度才能助你改進事業。
學習良好溝通技巧
受到媒體渲染,程式員給別人印象總是孤獨的,但事實上程式員需要牽涉很多和別人溝通及合作。如果你在企業裡工作,你通常都是在開發團隊裡工作,別人會期望你和其他人有很好的合作。
Lifehacker 開發員 Jeff Bargmann 認為,程式員能夠清楚地談吐及寫作才會給別人有種信服感覺,這對獨立開發員尤其重要。他說:「在學校裡並沒有教我寫作和溝通,但在事業裡,如果你想往上爬,你需要花很多時間在溝通上,要表現得清楚才能令人有信心。想想接收訊息對象,他們想要甚麼?」
「同事、經理、客戶和合作伙伴都有不同的溝通方式,甚至有一天會與企業高層溝通,你需要寫專業的電郵。如果你習慣了比其他人花兩倍時間才能完成這類型的事情,或者同一件事情你需要做兩次,這就會帶給別人困擾,因為對方同樣地因為你而多花了時間。所以即使你是個獨立程式員,溝通技巧仍會為你帶來正面或負面效果,沒有良好溝通技巧會為你帶來很大損失,你需要在此方面下苦功。」
Jeff 還給程式員一些貼士:「如果你想在此方面進步,你可以嘗試發表一些短篇文章、大聲地朗讀電郵、面對面談話、多製造機會給自己,就像一些編碼程式工作。」
如果你沒有在團隊裡工作的機會,你可考慮報讀一些課程,如溝通技巧、演說技巧和寫作技巧等課堂。在香港,坊間有很多機構都有舉辦這類型課程,各位不妨多留意一下。
提升你的解決困難技巧
很多開發員指出明白一個程式語言只是編碼工作的一小部分。而解決困難是另一重要技能,尤其對於新入職程式員而言,他們都較缺少解決困難的能力。程式開發就像砌圖一樣,你需要找出如何把一塊碎片程式放到另一程式,這並不容易。
「我遇到一些可以完成程式語言的人,但他們在處理問題時一成不變。最佳例子是在大學裡一組同學在合作做一個功課,我需要負責組員那部分編碼,因為他不能連接到伺服器,原來他並沒有設立連接點,並花了整個星期,但不成功。其他人雖然不明白程式語言,但也能夠解決這問題,因為從另一角度思考。」
不過,解決困難是十分難學會的,只有通過實戰才能體會。處理小項目如開發筆記應用程式、計算機或其他你感興趣的能助你思考。當你在處理時,專注在編碼背後的邏輯,學習像一部電腦思考,這比只明白語言好得多。
了解電腦如何運作亦是十分重要:「解決困難是我們需要處理的最重要部分。電腦是奇異的,你通常需要重新學習讓你能想想問題所在。如要有效率,你需要真正地學習電腦如何運作及明白 CPU 運行程序資料。我討厭假設,但我實質上十分感謝過去所學習的,程式員少點兒假設會有更好主意在執行任務。」
重點是知道編碼和解決困難才能把碎片連接起來。當你開始建立真正程式,專注在發展系統上的假設以解決你將有可能面對的問題。
學習版本控制的正確方法
在學院裡,你通常都會以小組形式進行開發作業。 WindowsSVN 和 GitHub 是兩套軟件專門給小組學習開發、創造及更新的開源軟體。每個人都可以用這些軟件完成作業,但企業通常使用 Subversion 和 Apache SVN 。你可以透過明白這些軟件的基本系統而得到新工作,你也可以與新同事合作,這花你一點時間去學習。但如果你並不懂得如何運用以上程式,你就有可能會落後於他人。
如何控制這些系統?還是老套地說一句:多練習吧。如果你還在求學,通常你都會以小組形式學習。如果可以,請求導師讓你使用 GitHub ,或者找個隊伍是在使用 GitHub ,或者自學,因為學會這程式對你將來都十分有幫助。
建立學習的習慣
科技是經常演變,所以一名開發員也要經常更新自己。如果你想專注你的範疇,保持學習,更新新的程式語言、軟件及硬件是必要的。
作為程式員你會經常地學習到新語言、新科技和新工具,你需要分析他們的優點和缺憾,以及把它們和你自己同化。留意「同化」和「學習」兩者之間是不同,你必須完全吸收、明白和綜合這些新事物變成技能,不要只在外摸索。這裡不是只有軟件語言和工具,你需要學習這些工具,如何協助企業運作及企業本身怎樣運作。長久下去如果你能對新事物而感到興奮,那會很好。
你可以用不同方法以助你快速地學習新技能,比方說,在你使用記憶時,你可以先明白記憶體是如何運作。學習會牽涉理解能力,就像文章早段所講的,你可以以此為參考,專注在閱讀理解能助你在科技文件及其他資源上令你更快速地學習。你要知道你並不能完全地記下所有東西,所以學習如何速記及記憶方法會令你在處理各種事情上井井有條。當你需要找參考時,你也會有根有據。
從基本開始:視學習為技能,你必須專注在此,當你踏出這一步,你就能更容易掌握各種科技,在事業上取得突破。「終身學習」就是這種意思。
Source: LifeHacker
Good Article! 不過 Pro-Programmer 應該還有一點:
就是設計和編寫出來的代碼,是否容易理解,維護和擴搌;
Pro-programmer的代碼是令人容易pick-up;