天天看點

區分一個程式員是“老手”還是“新手”

除多年程式設計經驗之外,還有什麼能區分一個程式員是“老手”還是“新手”?程式設計技巧當然是一部分,但它絕非是全部。

區分一個程式員是“老手”還是“新手”

聰明的程式員可能比他們的同行擁有更出衆的程式設計技巧,但那不足以說明他們就是“老手”。同樣,僅僅因為擁有10年程式設計經驗也并不意味着他們就是高手。在工作崗位上,擁有多年程式設計經驗也不能說明問題。即便沒被炒鱿魚,那也不能提升你的價值。

下面列舉的事情是大多數進階程式員都會做的。

1.至少掌握一門程式設計語言

我相信有些優秀的程式員隻懂(并精通)一門程式設計語言,但在某種程度上而言,這其實會限制一個人的思維。就像當你手拿一把錘子時,任何東西看起來都像釘子。我認為,知道并成功使用至少一門程式設計語言,這是程式員從新手走向老手的重要一步。我要說的是,像JavaScript和SQL這樣的輔助程式設計語言,隻有當你确實已經開發了完整的應用程式,并在其中使用這些程式設計語言時,它們才有價值。

2.工作之餘也經常程式設計

我抱怨過把開源作為招賢的一項要求,但那僅僅因為許多充滿激情的程式員把時間花在别的地方。除了對開源有所貢獻,你還可以做兼職顧問,兼職創業,開發自己的産品或者創辦自己的微型軟體公司。當然,你也可以嘗試從外部接些兼職項目,可參考伯樂線上的這篇《成功接項目需要注意的幾個要點》。

注:mISV即MicroISV,是一個隻有一名員工組成的軟體公司,是一種微型公司。

3.經曆完整的軟體開發過程,從概念設計到産品實作,再到産品維護

有的程式員希望不用自己動手就可以得到詳細的設計說明,然後把缺陷代碼交給測試/維護小組,這是平庸程式員的一個縮影。任何稱職的程式員都會跟客戶密切合作,去制定需求分析,然後編碼實作,當然也要維護。如果你在編碼實作階段偷懶了,那你在維護階段不得不付出代價。

4.不斷創新

創新就是做一些你身邊的人沒有做過的事情,用來改善你的過程或産品。你不一定非得是世界上第一個做這件事的人,隻要發現一個問題,找到解決方法然後實作它就行。

5.編寫的軟體能解決實際問題

有一副虛構的場景:一名黑客,僅僅是出于對技術以及自己所做事情的愛,一天到晚都在編寫代碼。但這幾乎無助于成就一名優秀的開發者。事實上,我曾見過有些開發人員和客戶争論,來采用更好但不太有助客戶的技術。這會适得其反。你可以利用自己的時間來完善。但涉及工作時,你最好還是編寫能實際改進并解決問題的代碼,而不是使用那些不同尋常的算法或接口。