程式設計師最應該知道的一些事

龐順龍發表於2019-05-10

引用透明性是一個非常可取的特性。這意味著,不論何時呼叫它,對於同一組引數它永遠給出同樣的結果,這使它跟那些與其他系統相互交織的東西比起來更易於使用。

你不是使用者。不要把你的想法強加到使用者頭上,每個人的想法都不盡相同。花一個小時去觀察使用者的行為比你花上一天的時間去猜測他們想要什麼要有用得多。

在你決定客戶需求之前,最好先和他們多討論幾次,重新確認問題。有時候,客戶前後談論的話題以及不同客戶群體之間的想法是會有出入的。如果你想要成功,那麼必須得在軟體開發之前先好好解決差異問題。
在交流時不妨使用一些直觀的輔助工具,例如白板、視覺化模型等,有助於客戶的理解和資訊儲存。

不要客戶說什麼就是什麼,多問幾個Why。只有弄清楚需求背後的原因,才能發現新的可能。很多時候,我們可以通過對現有產品的改動來完成需求,大大減少工作量。
有時候,客戶的想法與你對產品的看法可能達不成一致。那麼反過來問自己“Why?”。這能讓你更加明確自己的第一感覺是否對頭。如果還是裁決不了,那麼就需要其他主要決策者的參與。

不要工作得太辛苦。減少工作量,增加工作效率,才能完成更多的工作。我可不是在忽悠你。做專案時,如果想減少工作量,那麼勢必得找到實現目標的高效途徑。在提高了工作效率的同時還有助於積累經驗。以後碰到這樣的問題不就是三下五除二的事了。

我們還可以訓練自己從而提高執行任務的能力。這是一種技巧和技術,也意味著重複——意味著帶著某種目的去執行任務。不斷地重複and重複,一遍又一遍,直到你達到所需的能力級別。
譯者注:我曾經學asp的時候重複寫了幾十遍資料庫操作的程式碼,都會背了:)

使用現有的程式碼與一步步設計自己的軟體——測試、修復、改進——是完全不同的。這些旁人看來所謂的“重複工作”有助於你更深刻地熟悉並理解現有的各個元件是如何運作的。
大多數開發人員可能從來沒有建立過核心的軟體庫,因此對它們的工作原理也不甚瞭解。其結果就是,一旦碰到這些種類的軟體出現問題就會束手無策。瞭解表面永遠是不夠的,只有將裡面隱含的工作原理挖出來,才能讓你真正地在這一行業,獨步武林。

●閱讀
●參與郵件討論。
●獲取並編寫程式碼。
●找一個導師。
●瞭解你正在使用的框架和庫。
●犯了錯誤,需要修復bug或遇到問題時,弄清楚原因。
●教人也是學習的一種好方法,可以教學相長。
●參於使用者組或本地會議。
●加入或啟動研究小組。
●聽講座或線上觀看會談。
●學習一門新的程式語言。
●梳理出新的,可用於技術堆疊的想法和點子。

由grep和SED提供的搜尋和替換能力往往比IDE的功能更強大。
如,查詢相同名稱的類:
find . -name ‘*.rb’ | see ’s/.*\///‘ | sort| uniq -c | grep -v “^ *1” | sort -r

Unix工具是很簡單的擴充套件工具。只需要謹記以下一些簡單的規則即可:
1.程式只需要執行單一任務
2.讀取標準輸入文字行資料
3.顯示結果為標準輸出
4.影響工具的操作引數使用的也是命令列。

掌握shell語言,如bash和PowerShell,構建自動化系統是不可能一蹴而就的。如果需要網站互動,可以使用如iMacros或Selenium等工具。
一開始你沒必要去學習所有的bash命令。當你需要的時候再去學也來得及。如果碰到你認為可以自動化的任務,那麼儘可能地學習並使用工具來達到自動化的目的。自動化任務越早開始越好。

龐順龍最後編輯於:5年前

內容均為作者獨立觀點,不代表八零IT人立場,如涉及侵權,請及時告知。

相關文章