RT:本文僅適合開發萌新。
背景:
8月,同窗們陸陸續續開始進入職場,好多同窗進入職場後,都會有一些抗拒,不知道如何融入項目,不知道怎麼去進行開發。這裏分享一下我初入職場時的一些學習方法和感覺,但願可以對你們有所幫助。
求知慾,是你前進的動力:
首先,初入職場,最開始須要作的,就是熟悉組內的工做。這句話聽起來簡單,可是作起來卻很難。通常大公司都會有本身的wiki,那麼從wiki上獲取資料,就是一個不錯的學習方式。其實這種學習方式和編譯器的工做方式相似,先有詞法分析,然後纔有語法分析。也就是說,要儘量去理解你接觸到的一些專業詞彙,好比招聘系統中的簡歷和投遞的區別,訂單系統中的訂單狀態等等。開需求會的時候,即便不能理解其餘人說的內容,也要儘量去聽,這個過程其實和英語聽力相似,高頻詞彙記下來,而後能夠去查,去問。
技術和業務究竟哪一個更重要?
相信每一個初入職場的小夥伴都會有這樣的疑問。首先解釋一下技術和業務。好比一個招聘系統。HR閱覽簡歷以前,要將簡歷打標,看簡歷的投遞人是否在黑名單內,這就是業務。而這個過程當中,可能涉及到查庫,查緩存,渲染模板引擎等等,這些就是技術。孰輕孰重?只能說都重要,技術必定是服務於業務的,雖然業務可能在你找下一份工做的時候,不會提供過多的幫助,可是卻能決定你這一份工做能不能作好,因此學好業務,是十分重要的,必定不要去排斥業務。
軟件工程or編程藝術?
可能軟件開發是一門藝術,可是對於像我這樣的普通人而言,軟件開發更像是一門工程,這就要求咱們細心,嚴謹。有代碼潔癖,懂代碼規範(此處推薦阿里規約,不要只是下一個插件去check代碼,而是要將這些規範爛熟於心),寫單測。遇到問題不要去猜,要學會debug和看日誌。
好啦,廢話說了這麼多,接下來就是咱們如何去快速上手公司項目:
項目的「前驅結點」:
在熟悉項目以前,有一些準備工做是必定要事先作好的:
- 熟悉編程規範。
- 熟悉編譯器(包括一些經常使用的快捷鍵,學會debug)
- 熟悉操做系統
- 學習如何查看系統日誌
- 學習git或者SVN
- debug和看日誌,是解決問題的有效方式,如今的系統大部分都會用svn或者git記錄版本,因此必定要學習如何去使用。否則push錯代碼,或則是產生衝突,把別人提交的代碼覆蓋了,就會比較尷尬,會影響總體的代碼提交。
程序源於生活
這句話的意思是在理解業務的時候,能夠去試着將本身帶入一種情景,站在用戶的角度上,再去理解業務,多問本身這個程序爲何要這麼作,這麼處理有什麼好處。仍是以招聘系統爲例,想象一下本身的投遞是如何被處理的,本身的面試信息是如何錄入系統的,是如何被錄用的。這樣一來就能夠對系統有一個較爲直觀的認識。
運行代碼,是開發項目中的Hello World!
通常你的leader會給你一個git地址,讓你去網站上將項目down下來,而後你須要對本身的編譯環境進行配置,若是大家項目中使用的是Maven對jar包進行統一管理,別忘了要一下Maven的配置文件。
首先接觸項目最開始要觀察的,必定是項目的結構,看一看用了哪些技術,對項目有一個初步的認識。接下來就是運行項目了,若是你的項目是有頁面的,那麼恭喜你,至少從直觀上而言,你的項目較爲直觀(能夠經過觸發事件,來觀察效果)。
你能夠經過點擊按鈕,觸發事件來走一下代碼邏輯,看一看數據是如何存儲如何處理的,可是這裏值得注意的是,並非必定要每個方法都點到最深層去看,能夠先大致看一下代碼邏輯,好比遇到xxxDao.queryDate(obj),就知道他應該是一個查庫的操做,具體是如何操做的,是單表操做仍是多表操做,咱們能夠暫時忽略,先走一下大致的流程,等到流程跑通了,再回來看細節便可。可是這裏要注意的是,去讀代碼以前,必定要對這個系統有一個大體的瞭解,知道它分哪些功能,每一個功能大體是如何處理數據的。而後再去有選擇的讀代碼,先讀主流程的代碼,好比一個訂單系統,要先當作單時的邏輯,不要直接看支付的邏輯,要保持系統總體邏輯的連貫性。
這裏簡單說一下如何看前端調用的哪一個後端方法(SpringMVC):
通常前臺將數據提交到後臺的方式有兩種:form表單提交和Ajax提交。
from表單能夠看一下對應<form action="xxx">中action屬性的值,這個是前端將數據提交到後臺的地址,咱們能夠全局搜索這個xxx,來查找這個請求是哪一個Controller進行處理的。
Ajax提交是經過xmlHttpRequest對象將數據發送給後臺Controller的,這時就須要你具有一下js或者Jquery的知識,看一下ajax發送請求的路徑,而後再去找對應的Controller處理。
若是你的項目啓動起來發現是這樣的。那麼可能你就須要花費更多的時間去理解項目了,由於你的項目維護的可能只是一堆接口。
讀系統的方法與有界面的系統相似,這裏必定要先看主流程部分,找到程序執行的源頭,而後順着去理解。
工具推薦:
給出一些繪圖效果:
是否是很棒,感興趣的同窗能夠去研究一下。
怎麼寫代碼?—— 抽象、肯定邊界
寫代碼首先就要是明確需求,這個是須要反覆確認的一個過程,必定要保證開發出來的東西是產品經理真正須要的,其次就是學會將業務模型,抽象成解決方案。將寫代碼的過程如今腦子裏過一遍,這裏也能夠畫畫圖。
編程其實只是開發中的一小部分。編好的程序必定要通過充分的自測再進行提測。最後的最後必定關注後續,本身開發出來的功能有沒有人使用?使用起來有什麼問題?若是是跨部門完成的需求,其餘部門的進度如何?這個功能最終展現在線上是什麼樣的?這些都要考慮清楚。