前言
程序員這個行業的流動性是非常高的,每進入一家新公司,工作內容都是全新的。
假如你是剛畢業沒關系,如果你有3年以上的工作經驗,就不可能讓你長時間慢慢地熟悉這個項目。
只能在最短的時間內,快速了解項目,快速上手。
接下來咔咔就用自己的經驗和大家聊聊入職一家工作后應該如何快速上手。
一、正式上崗
第一天
根據Offer的入職時間到人事報到完成入職手續。
當你完成入職手續后,人事會把你帶到你的工位,此時你的崗位已被確定,下一步就是正式開始工作。
你需要下載所有工作所需的環境,這里咔咔建議大家都注冊一個谷歌賬號,將平時用到的東西都保存到標簽里邊。
這樣無論換電腦還是換工作都能直接登錄谷歌賬號進行書簽同步,可以快速完成所有前期工作。
然后去找你的組長或者主管要開發資料,開發資料無非就是接口文檔、數據庫信息、代碼庫、代碼規范、建表規范
這幾種,開發需要這幾個資料也就行了。
在獲取資料之后,首先將代碼拉下來,根據文檔先使項目運行,如果該項目在運行過程中出現任何問題,需要對其記錄,因為你不可能只部署這一次,將這些記錄下來便於你后期查閱。
如果你根本把項目運行不起來,此時就不要自己瞎搗鼓了,趕緊去找同組的小伙伴進行救助。別因好面不願問,不知道怎么弄就問。不怕工作上有問題,就怕你沒問題。
盡量在第一天就把項目在你的本地跑起來,可以做簡單的調試工作。
下班回家后再做一件事,在家里重新搭一份項目以防不時之需。要知道bug可不會專挑你在公司的時間冒出來。
只要在第一天解決如下問題即可。
- 配置本地環境
- 向上級領導索要開發資料
- 在本地運行並調試項目
二、考慮做什么而不是怎樣做
你可以想一下在上家公司的工作,要在一個新的項目上開始寫東西,要先知道那些東西呢?
大部分小伙伴反應都是技術,作為開發,當然技術是第一位的,於是一個猛子就扎進了代碼中,然后,研究代碼實現過程。
這個方法是不被推薦的,技術方面當然也需要了解, 但是第二天就不應該這樣做。
作為技術都是一個bug一個bug改過來的,在腦海里已經潛移默化了。總在考慮如何做
的問題,但我們首先要理解的是做什么
。
做什么
這個問題,只有產品才能給你最好的解釋,所有的業務都是在產品中一點點構建。
找到產品並獲得研發排期。因此,優先級最高的就是業務。了解業務和技術都是你進入一家新公司必備的工作。
為何要先讓你解業務?想象一下,如果讓你先閱讀代碼,然后推演出一個業務,你覺得吃力嗎?
但是,當你了解業務情況時,你可以推演出基本的代碼框架。正因為如此,許多公司都會進行入職培訓,讓你熟悉項目的運作。
並且一個產品都是協作完成的,所以,還要看看其他組員遇到的問題是如何一起合作完成的,此時就需要了解團隊是如何工作的,
通常,在剛入職的前幾天是不會給你安排工作的,這些時間是為了讓你充分了解項目和各部門的工作。
因此,千萬不要用這幾天的時間來划水。一旦你用來划水,當給你項目排期時就會一無所知,做東西沒有思路,無從下手。從而導致心態不好,越來越難融入新的環境中。
三、拿到數據庫應該怎么做
進來不斷接觸兩個新的項目,雖然一個是Phalcpn框架、另一個是原生。令我恐懼的並非代碼,而是數據庫。
通常接到的項目大部分都是之前開發好的,目前的工作或者是優化或者是維護。
可以毫不誇張地說,咔咔見過一個項目有2500多張表,這是目前為止在項目中遇到過最多的表了。
在這個項目中,進行了多庫連接,將2500張表分別存儲到了3個數據庫,本身表就很麻煩了,這還分了三個。
所以說你修改這樣的項目,代碼估計就五六行,找表得找好久。
進入正題,假設你拿到的項目數據庫是這個樣子的。
這張表結構很熟悉吧!這是MySQL 的系統表,這里只是做個演示。
假如你接手的項目數據庫是這樣的,那么你就要好好想一想,是否上輩子做了太多壞事。
要是真像上圖那樣的情況,誰也沒轍自己加班加點處理吧!
但是,如果你給數據庫中所有的表和字段都添加了注釋,則該項目的下一位接手者將變得非常容易上手。
執行MySQL查詢
select
TABLE_NAME,
TABLE_COMMENT
from
INFORMATION_SCHEMA.Tables
where
table_schema = 'enen''
通過上圖可以很清楚地了解每一張表是干什么的!通常的數據庫設計都與項目模塊關聯的。
即使有出入也不會太大,所以說根據模塊來找數據表也是沒問題。
假如你接手一個新項目,拿到這樣的數據庫會不會很開心呢!
因此,在日常開發過程中,該給注釋給注釋不要吝嗇你幾秒鍾的時間,讓自己看或接手人看都很友好。
將所有表的注釋整理出來后,大概看一眼都什么意思不用去刻意的記,上手做幾天業務就熟悉的差不多了。
在寫業務時必不可少的就是查看表注釋,查看表注釋的方式非常多,咔咔給大家介紹幾種。
第一種方式就是直接在客戶端中查看,十分方便
當然你也可以直接使用SQL來查看。
select
COLUMN_NAME 字段名,
column_comment 字段說明,
column_type 字段類型
from information_schema.columns
where table_schema = 'enen'
and table_name = 'fa_admin' ;
然后可以把使用到的表字段注釋復制出來,整理一份你自己的數據庫字典,方便后期開發使用。
四、開始做一些簡單的功能
通常到第四天,你的組長就會給你指派一些簡單的任務,此時你應該很興奮,因為你終於可以參與這個項目了。
在得到分配的任務之后,對應到項目中簡單的過一遍,然后在開發過程中每個任務都寫一個實現文檔。
最初的文檔可以是標題、需求、相應的代碼文件路徑、所需的表、字段注釋,把這些工作都准備好之后,就別急着開發。那這時候應該怎么做呢?
首先找到產品對需求,把你對任務的理解跟產品對接一遍,確保無誤后再進行開發,這種溝通成本是很小的,幾分鍾就能解決的事情。
在公司中每個職位都有各自的工作要做,所以不要在收到需求后就直接去找產品,你要先對需求有一定的了解再去找產品對接。唯有如此,你才能保證工作質量。
當你開發東西時卡住了怎么辦?
此時,一定要找你的組長或者主管幫忙,一定要把整個需求和你卡住的問題都描述清楚,只要這樣可以節約大家的時間。
別自己瞎搞,延誤了工期。也許你問了別人幾十分鍾就能解決問題,自己弄就需要很久。千萬不要有,問過別人就會顯的自己菜的心態
,既然你能得到offer,那么你的能力就可以勝任這份工作的,否則,你在面試那一輪你就結束了。
五、如何在一個新的公司中不斷得到提升
技術群里可以看到很多小伙伴離職原因都是在原公司得不到提升,一部分小伙伴是真到了天花板,另一部分小伙伴此處省略....,自己體會哈!!!
一周無論給你分配多少需求都不要抱怨,分配得越多你就越了解項目,不要只看自己的一畝三分地。只要保持這種心態,你就不會在任何一家公司得不到提升。
一個項目少說三五人,多則三五十人開發,行業里經常流傳一句話在小公司你的技術提升會非常快,因為什么東西都得你來弄,不會也得快速去學,學了就可以直接運用到項目中,這樣技術就提升的非常快。但是你在開發人員稍微多一點的團隊,你只做你的肯定不會感覺到明顯的提升。
給你需求分派下來后,你要把這個需求所關聯的業務都要仔細看,然后想想如果是你開發的話會怎么寫。如果開發思想有出入的話,可以想想別人為什么會這么寫,肯定有別人的道理,然后對別人寫的東西進行細嚼慢咽,直到任督二脈都被打通。
一段時間后,你就會發現你對整個項目都會非常的熟悉。在線上遇到bug后能夠很快的定位到問題。
上述僅是個人觀點,根據情況來定哈!
如果你把公司項目熟悉得差不多,就需要開始自我提升了,你的技能水平是怎么樣的會很快的在工作中展現出來,一定要經常給自己充電,多看、多練、多想。
堅持學習、堅持寫作、堅持分享是咔咔從業以來所秉持的信念。但願文章在偌大的互聯網上能給你帶來一點幫助,我是咔咔,下期見。