2018年7月9日敞峭,在大學(xué)畢業(yè)后,以應(yīng)屆生的身份加入了工作2年的公司蝉仇。
我司18年初旋讹,有較大的變革殖蚕,組織架構(gòu)調(diào)整比較大。
可能運(yùn)氣好一點(diǎn)沉迹,加入了一個(gè)聽起來比較牛逼的部門:中間件團(tuán)隊(duì)睦疫,部門產(chǎn)品涉及消息隊(duì)列、網(wǎng)關(guān)鞭呕、RPC蛤育、緩存、數(shù)據(jù)庫中間件等葫松。確實(shí)都是主流瓦糕。
2018年7月-2018年12月是試用期,6個(gè)月腋么,由于大學(xué)時(shí)啥也沒學(xué)咕娄,啥都不會(huì),非常的惶恐珊擂。
部門由于是剛剛成立的圣勒,人員還不是很充足,我呢未玻,負(fù)責(zé)接手部門的網(wǎng)關(guān)產(chǎn)品API-Gateway灾而。
啥也不會(huì)嘛,然后第一個(gè)任務(wù)就是搭環(huán)境扳剿,我領(lǐng)導(dǎo)給了我一個(gè)ftp地址,從上面下載maven編譯所需的依賴包昼激,然后添加啟動(dòng)參數(shù)庇绽,啟動(dòng)項(xiàng)目,啟動(dòng)3個(gè)進(jìn)程橙困,就開始了第一段社畜工作瞧掺。
后來由于安全需求需要增加校驗(yàn),校驗(yàn)密碼加解密凡傅、密碼過期時(shí)間之類的辟狈。
這個(gè)時(shí)候菜雞的面目就一覽無余了,寫了好長一坨if-else夏跷,堪稱shit code的典范哼转,給大家欣賞一下:
if (developerDto != null) {
//用戶名正確:密碼為初始密碼
if (apiGeneralConfigProperties.getDefaultPwd().equalsIgnoreCase(pwd)) {
//狀態(tài)判斷,X為已失效
if ("X".equalsIgnoreCase(developerDto.getState())) {
// 已失效
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Username is disabled!");
return dict;
}
//沒失效槽华,沒鎖定
//判斷是否要過期
else if (!Contants.DEVELOPER_LOCKED_Y.equalsIgnoreCase(developerDto.getIsLocked())) {
if (developerDto.getPwdExpDate() != null) {
long expPwdTime = developerDto.getPwdExpDate().getTime();
long deadTime = new Date().getTime() + apiGeneralConfigProperties.getRePwdRemindDays() * 24 * 60 * 60 * 1000;
if (new Date().getTime() > expPwdTime) {
// 密碼已經(jīng)過期
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Password has expired!");
return dict;
} else if ((deadTime > expPwdTime) && (new Date().getTime() < expPwdTime)) {
// 密碼即將過期
dict.set("USER_VALID", true);
dict.set("STATUS", Contants.LOGiN_STATUS_2);
dict.setMsg("The password is about to expire, please change your password within" + (expPwdTime - new Date().getTime()) + "days.");
String id = developerDto.getId();
dict.set("id", id);
return dict;
} else if (!passwordEncoder.matches(pwd, developerDto.getPassword())) {
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Username or password is not right!");
return dict;
} else {
dict.set("USER_VALID", true);
// 初始密碼
dict.set("STATUS", Contants.LOGiN_STATUS_1);
String id = developerDto.getId();
dict.set("id", id);
dict.setMsg("This is the initial password ,you needs to be modified to log in.");
return dict;
}
}
}
//沒失效壹蔓,鎖定
else if (Contants.DEVELOPER_LOCKED_Y.equalsIgnoreCase(developerDto.getIsLocked())) {
Date unlockedDate = developerDto.getUnlockDate();
if (unlockedDate.getTime() < new Date().getTime()) {
//鎖定時(shí)間已過
developerDto.setIsLocked(Contants.DEVELOPER_LOCKED_N);
registryManager.updateById(developerDto);
} else {
// 鎖定
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Username is locked!");
return dict;
}
}
}
//用戶名正確,校驗(yàn)密碼不為初始密碼的情況
if (passwordEncoder.matches(pwd, developerDto.getPassword())) {
//斷掉初始密碼猫态,該加在哪
if ("X".equalsIgnoreCase(developerDto.getState())) {
// 已失效
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Username is disabled!");
return dict;
}
//沒失效佣蓉,沒鎖定
//判斷密碼是否過期
else if (!Contants.DEVELOPER_LOCKED_Y.equalsIgnoreCase(developerDto.getIsLocked())) {
if (developerDto.getPwdExpDate() != null) {
long expPwdTime = developerDto.getPwdExpDate().getTime();
long deadTime = new Date().getTime() + apiGeneralConfigProperties.getRePwdRemindDays() * 24 * 60 * 60 * 1000;
if (new Date().getTime() > expPwdTime) {
// 密碼已經(jīng)過期
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Password has expired!");
return dict;
} else if ((deadTime > expPwdTime) && (new Date().getTime() < expPwdTime)) {
// 密碼即將過期
dict.set("STATUS", Contants.LOGiN_STATUS_2);
dict.setMsg("The password is about to expire, please change your password within " + (expPwdTime - new Date().getTime()) + "days.");
dict.set("USER_VALID", true);
String id = developerDto.getId();
dict.set("id", id);
dict.setMsg("login success");
return dict;
}
//加上初始密碼判斷
//if(apiGeneralConfigProperties.getDefaultPwd().equalsIgnoreCase(pwd))
else {
dict.set("USER_VALID", true);
String id = developerDto.getId();
dict.set("id", id);
dict.setMsg("login success");
return dict;
}
}
}
//沒失效披摄,鎖定
else if (Contants.DEVELOPER_LOCKED_Y.equalsIgnoreCase(developerDto.getIsLocked())) {
Date unlockedDate = developerDto.getUnlockDate();
if (unlockedDate.getTime() < new Date().getTime()) {
//鎖定時(shí)間已過
developerDto.setIsLocked(Contants.DEVELOPER_LOCKED_N);
registryManager.updateById(developerDto);
} else {
// 鎖定
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Username is locked!");
return dict;
}
}
} else {
dict.set("USER_VALID", false);
dict.setMsg("Username or password is not right!");
return dict;
}
}
//用戶名不正確,不用校驗(yàn)密碼勇凭,直接返回失敗
else if (developerDto == null) {
//用戶名不正確
loginAttemptService.loginFailed(usrCode);
dict.set("USER_VALID", false);
dict.setMsg("Username or password is not right!");
return dict;
}
if套if疚膊,if套else,擱現(xiàn)在再回去看虾标,不忍直視啊酿联,19年的時(shí)候抽空去重構(gòu)了一下,沒用啥高深的方法夺巩,就是非法情況提前返回贞让,減少嵌套。
這個(gè)就是我剛畢業(yè)做的第一個(gè)功能了柳譬,雖然代碼丑陋了點(diǎn)喳张,不過還好可以達(dá)到目的,淚目美澳。
大概18年9月的時(shí)候销部,幾個(gè)中間件的產(chǎn)品都各自有1個(gè)web頁面,都重復(fù)依賴了我們公司的前端框架制跟,姑且叫portal吧舅桩,然后就開始了管理平臺(tái)頁面的改造之旅。
想法是各自的web頁面都依賴同一個(gè)portal公共組件雨膨,我們自己的web頁面可以改造成springboot擂涛,然后通過nginx掛載到portal上,這樣公用組件就可以復(fù)用了聊记。
第二個(gè)階段的工作就是這個(gè)web頁面改造了撒妈,期間還接了個(gè)公司基于Dubbo維護(hù)的RPC框架的支持的活。
這個(gè)階段的狀態(tài)可以歸結(jié)為一條SQL寫一周排监,就整理web頁面的菜單SQL狰右,然后融合進(jìn)portal的數(shù)據(jù)庫里,可以說是相當(dāng)?shù)挠刑魬?zhàn)了舆床。
周報(bào)匯報(bào)的時(shí)候:本周工作內(nèi)容棋蚌,整理菜單SQL。
在這個(gè)階段挨队,18年9月到11月谷暮,接觸了Dubbo,對(duì)RPC和ZK有了一些認(rèn)識(shí)瞒瘸,還寫了第一篇博客介紹ZK鑒權(quán)模式:
zk單機(jī)開啟sasl認(rèn)證
后來19年又補(bǔ)充了一篇關(guān)于ZK集群鑒權(quán)的文章
zk集群開啟sasl認(rèn)證
當(dāng)時(shí)閱讀zk官方文檔坷备,還是全英文的,看的頭疼情臭,靠谷歌翻譯續(xù)命省撑,不過也算是自己第一篇寫出的文章赌蔑,還是有價(jià)值的。
后來18年11月就開始了一個(gè)漫長的拉鋸戰(zhàn)竟秫,接手API-Gateway并進(jìn)行維護(hù)支撐娃惯。
我們公司主營業(yè)務(wù)是運(yùn)營商,當(dāng)時(shí)國外有2個(gè)項(xiàng)目現(xiàn)場(chǎng)要用API-Gateway肥败,這個(gè)活就從我領(lǐng)導(dǎo)那光榮的交接到我的身上了趾浅,當(dāng)時(shí)非常的害怕,我湊馒稍,我要負(fù)責(zé)項(xiàng)目了皿哨,不會(huì)出BUG吧,不會(huì)背鍋吧纽谒,事實(shí)證明证膨,確實(shí)是會(huì)出BUG的。
我司的網(wǎng)關(guān)產(chǎn)品咋說呢鼓黔,功能還是有的央勒,就是服務(wù)編排比較麻煩,使用的是activity+freemarker澳化,這個(gè)freemarker語法相當(dāng)?shù)墓之惔薏剑鲜菚?huì)出現(xiàn)各種問題。
前期幾個(gè)月的時(shí)間基本浪費(fèi)在這個(gè)freemarker語法上了缎谷,為此還寫了幾篇文章記錄了一下遇到的問題及解決方案:
http://www.reibang.com/p/5d252721b7ec
http://www.reibang.com/p/784c4983d151
18年12月月底的時(shí)候井濒,經(jīng)過轉(zhuǎn)正答辯,就正式的從P3升級(jí)為P4正式員工了慎陵。期間我們部門離職了好幾號(hào)人眼虱,入職了好幾號(hào)人。
當(dāng)時(shí)有點(diǎn)不解席纽,我們部門不是挺好的嗎,咋離職這么多撞蚕。后來過了2年后润梯,也逐漸理解了大家的想法。馬云說過甥厦,離職不外乎2個(gè)原因纺铭,錢沒給到位和工作受委屈了。
19年過完年回來刀疙,從3月份開始吧舶赔,開始負(fù)責(zé)國外的2個(gè)項(xiàng)目的上線支撐,和2個(gè)項(xiàng)目的交付在所內(nèi)配置freemarker谦秧,天天解決模板語法問題竟纳,有時(shí)候可能會(huì)到12點(diǎn)撵溃。
當(dāng)時(shí)還是處于成長期,雖然工作價(jià)值不大锥累,不過也還能接受缘挑,現(xiàn)在再來看的話,寫自動(dòng)化工具自動(dòng)處理模板或者把模板配置的工作交出去是對(duì)個(gè)人最有利的桶略。
一個(gè)是我當(dāng)時(shí)代碼能力不強(qiáng)语淘,二是自己有點(diǎn)老好人的心態(tài),所以自己吃的虧多了一點(diǎn)际歼。
其實(shí)工作中還是要盡量只專注自己的事惶翻,不該自己問的事還是少問為好,免得最后吃力不討好鹅心。
19年4,5月份吕粗,經(jīng)過2個(gè)月的忙碌,配置聯(lián)調(diào)工作差不多了巴帮,所內(nèi)交付開始準(zhǔn)備去現(xiàn)場(chǎng)溯泣,出國,我的工作輕松了一些榕茧。
之后國外現(xiàn)場(chǎng)那邊開始部署測(cè)試垃沦,也還是出現(xiàn)好多問題,感覺現(xiàn)場(chǎng)的交付流程有問題用押,不管怎么測(cè)都是會(huì)有問題肢簿,最后上線是頂著無數(shù)的BUG壓力上的線。
我負(fù)責(zé)的這個(gè)網(wǎng)關(guān)產(chǎn)品蜻拨,受限于當(dāng)時(shí)的能力問題池充,對(duì)一些問題的解決也不太到位,導(dǎo)致測(cè)試流程也不太順暢缎讼,還是要努力提升自己收夸,解決問題盡量一步到位。
19年6月份到19年9月份這幾個(gè)月血崭,接觸了一個(gè)MQ的知識(shí)卧惜,給MQ加了幾個(gè)小功能,算是入門了MQ夹纫。
這個(gè)階段沒事就改改前端咽瓷,加個(gè)按鈕,改個(gè)文檔舰讹,過的非常非常的閑茅姜,這個(gè)階段還每天都記錄時(shí)間分配,年底看的時(shí)候一地雞毛月匣,做的東西都是個(gè)啥啊钻洒,基本啥產(chǎn)出也沒有奋姿,白白浪費(fèi)了時(shí)間,這也是第一次萌生離開的想法航唆,因?yàn)閷?duì)未來感到困惑胀蛮。
19年9月和19年11月這2個(gè)月分別是項(xiàng)目現(xiàn)場(chǎng)上線的日子,就是不斷的測(cè)試糯钙,修改粪狼,發(fā)布。涉及到項(xiàng)目上線任岸,要求也多了起來再榄,要有各種checklist,不過還是出現(xiàn)了問題享潜,一個(gè)是我代碼功底不夠困鸥,一個(gè)還是測(cè)試不充分。
當(dāng)時(shí)先上線的現(xiàn)場(chǎng)A剑按,發(fā)現(xiàn)URL404了疾就,排查了一下,發(fā)現(xiàn)是由于更新了API艺蝴,然后通過ZK通知更新后臺(tái)服務(wù)的緩存(一個(gè)map)猬腰,由于根據(jù)URL重新加載的,表里有個(gè)字段叫BASE_URL猜敢,根據(jù)這個(gè)重新加載姑荷,BASE_URL是會(huì)有重復(fù)的,導(dǎo)致map里的kv被覆蓋了幾個(gè)缩擂,導(dǎo)致了服務(wù)不可用鼠冕。
問題發(fā)生了,如果吃個(gè)一級(jí)故障單胯盯,肯定是吃不了兜著走懈费,寫B(tài)UG還是要充分測(cè)試,充分檢查才行博脑。
后上線的項(xiàng)目現(xiàn)場(chǎng)B楞捂,上線也吃了一個(gè)故障,發(fā)生死鎖了趋厉,由于引入了ehcache-core-2.6.6這個(gè)緩存模塊,不知道是使用不當(dāng)胶坠,還是這個(gè)緩存框架確實(shí)有問題君账,反正這個(gè)死鎖,我查了好久沈善,還問了我領(lǐng)導(dǎo)乡数,別的部門的同事椭蹄,死活查不出來,卒净赴,工齡1年3個(gè)月绳矩。
其實(shí)當(dāng)時(shí)上線前壓測(cè)的時(shí)候就發(fā)生了504了,也是死鎖造成的玖翅,吃光了tomcat線程池資源翼馆,導(dǎo)致504,不過當(dāng)時(shí)不會(huì)看jstack金度,也不會(huì)jmap应媚,所以也沒看出來,重啟了事猜极,結(jié)果上線10天就死鎖了中姜,唉,人生艱難跟伏,后來把ehcache換成了ConcurrentHashMap丢胚,再也沒有死鎖了。
解決不了問題受扳,就解決提出問題的人的一個(gè)典型案例携龟。
之后就開始進(jìn)入了平穩(wěn)期,19年11月到19年12月辞色,沒工作做骨宠,響應(yīng)公司的安全要求,進(jìn)行代碼的安全改造相满。
升級(jí)第三方依賴的jar包层亿,升級(jí)的痛不欲生,尤其是ElasticSearch組件從2.4升級(jí)到6.8立美,es版本更迭很快匿又,升級(jí)過程痛不欲生。
轉(zhuǎn)眼到19年年底了建蹄,19年就這么不痛不癢的過來了碌更,寫了幾個(gè)BUG,freemarker模板配置練的爐火純青洞慎,安全改造日益熟練痛单,前端劃水功底也在加深。
可是這一切的一切對(duì)個(gè)人能力的提升基本沒有劲腿。不能說沒有旭绒,只是提升的太慢了,速度不夠,外面畢竟已經(jīng)卷的天翻地覆了挥吵。
2020年重父,是個(gè)特殊的一年,不知道多年過后忽匈,大家再回顧這次疫情房午,會(huì)不會(huì)有別的感悟。
2月遠(yuǎn)程辦公丹允,領(lǐng)導(dǎo)列了一系列條款郭厌,需要我們執(zhí)行,遠(yuǎn)程辦公確實(shí)效率會(huì)低下嫌松,不過列了這么多條款就像是被監(jiān)視了沪曙,畢竟上班的時(shí)候絕對(duì)不會(huì)有這么些屁事。
大部分還是需要一定的管理萎羔,遠(yuǎn)程辦公確實(shí)低效液走,如果不是自制力特別強(qiáng)的話,上班其實(shí)也是一個(gè)約束自身的好辦法贾陷。
3月份回公司上班缘眶,然后要把MQ的相關(guān)知識(shí)整理成在線文檔,這樣方便向外輸出MQ的知識(shí)髓废,提升團(tuán)隊(duì)的影響力巷懈。在線文檔依托DevOps和gitbook,構(gòu)建慌洪,發(fā)布顶燕,訪問確實(shí)很方便,我自己平時(shí)也會(huì)去在線文檔看一些自己拿不準(zhǔn)的內(nèi)容冈爹。
誠然涌攻,在線文檔對(duì)部門,對(duì)其他部門的人來說是有價(jià)值的频伤,可是我作為整理人恳谎,花了1,2個(gè)月的時(shí)間整理文檔,不僅要整理文檔憋肖,還要錄制文檔對(duì)應(yīng)的視頻因痛。
整理文檔我覺得至少有價(jià)值,我自己也會(huì)去在線文檔查一些資料岸更⊥腋啵可是錄視頻是為啥,不太能搞明白怎炊,就是把文檔的內(nèi)容较性,口述一下用僧,還要學(xué)視頻剪輯,費(fèi)事費(fèi)力不討好赞咙。
感覺做出錄視頻的這個(gè)決定相當(dāng)奇怪。
后來4,5月份糟港,推進(jìn)高可用演練攀操,基于阿里的chaosblade整了個(gè)頁面出來,調(diào)度故障注入實(shí)驗(yàn)秸抚,要人工手動(dòng)整理故障實(shí)驗(yàn)速和,整理了大幾百條故障實(shí)驗(yàn),一條一條需要手動(dòng)往頁面上錄故障剥汤。
高可用演練這個(gè)如果可以固化下來颠放,形成自動(dòng)化演練,其實(shí)也還行吭敢,不過在我這就止步于手動(dòng)錄入故障了碰凶,自動(dòng)化我剛開始寫腳本,還沒完善鹿驼,就被安排了欲低。
四月底的時(shí)候領(lǐng)導(dǎo)突然安排我和部門的另一個(gè)小伙子去別的部門支援,27,28號(hào)左右過去吧畜晰,過去就996砾莱,然后五一要加班4天,3號(hào)休息凄鼻,1,2,4,5要去上班腊瑟。
然后28號(hào)過去,搭了幾個(gè)環(huán)境块蚌,主要是前端缺人闰非,安排2個(gè)后端過去寫前端,還是2個(gè)不會(huì)前端的人匈子,what the mother fuck河胎。
加班,996虎敦,五一加4天游岳,加4天只有1號(hào)發(fā)了200塊錢也就算了,最最重要的是其徙,說是過去寫前端胚迫,然后從28號(hào),到5月6號(hào)唾那,7,8天的時(shí)間访锻,就搭了個(gè)環(huán)境,然后也沒任務(wù)分配。
這種拍腦袋人力分配期犬,不知道是我的錯(cuò)覺河哑,還是確實(shí)有問題,讓2個(gè)前端廢去寫css龟虎,去了還啥事沒干璃谨,陪著996。
唉鲤妥,當(dāng)時(shí)五一加班的時(shí)候佳吞,一個(gè)大廳,4棉安,500號(hào)人在那996底扳,領(lǐng)導(dǎo)說的話是現(xiàn)在加班是為了以后不加班,現(xiàn)在看之前4,5月的話贡耽,還是有點(diǎn)戚戚然衷模,真的實(shí)現(xiàn)了一小部分人加班,換取了其他人的提效嗎菇爪?不見得算芯。
之前主力攻堅(jiān)這個(gè)項(xiàng)目,大概投入4,500人凳宙,加班加點(diǎn)2,3個(gè)月熙揍,為了5月底可以達(dá)到里程碑,996成了常態(tài)氏涩。
不知道這幾個(gè)月中有多少人的付出成了泡沫届囚,這種項(xiàng)目攻堅(jiān)應(yīng)該很多公司,很多時(shí)候都會(huì)有是尖。
身為打工人意系,還是要為自己多想一想,付出什么饺汹,會(huì)得到什么蛔添,能容忍的底線在哪。
后來這個(gè)項(xiàng)目組攻堅(jiān)實(shí)在沒我倆啥事兜辞,我倆就被這個(gè)攻堅(jiān)項(xiàng)目組的一個(gè)小組的領(lǐng)導(dǎo)迎瞧,撈過去打雜了。
在那打雜了一個(gè)月逸吵,做安全治理凶硅,對(duì)照買的安全掃描工具,逐條治理扫皱,度過了一個(gè)月的時(shí)間足绅。這一個(gè)月雖然996捷绑,但是也是常態(tài)劃水,一張單子做一天的那種氢妈。
雖然心理上不累粹污,不過身體上還是會(huì)有反應(yīng),晚上9點(diǎn)下班之后會(huì)餓允懂,餓就想吃東西厕怜,這一個(gè)月吃了不少泡面和油炸,胖了一些蕾总。
6月的時(shí)候,部門有一個(gè)小組琅捏,人基本走完了生百,然后就回來了,又開始做回了部門的內(nèi)容柄延。
6月的時(shí)候出去面試過幾家蚀浆,南京的大公司還是不多,選擇比較少搜吧,面試的內(nèi)容也不深市俊,問一問項(xiàng)目,問一問springmvc就差不多了滤奈,給的工資也不是太多摆昧,漲幅不大。
當(dāng)時(shí)也沒想好到底要不要離職蜒程,離職欲望不太強(qiáng)烈绅你,所以當(dāng)時(shí)只是面了3家,1家愿意給offer昭躺,沒去忌锯,后面就沒繼續(xù)面了。
后來三季度领炫,7,8,9月份偶垮,三個(gè)月,頁面重構(gòu)帝洪,我負(fù)責(zé)了一部分前端的頁面改造似舵,寫js和css真滴是痛不欲生,就這還是在有人搭好頁面布局的情況下寫的碟狞,前端實(shí)難啄枕。
寫前端雖然壓力不大,也不難族沃,不過還是使用jQuery频祝,和目前的主流框架一點(diǎn)都不搭泌参,不知道是不是白寫了。
前端太難了常空,移動(dòng)互聯(lián)網(wǎng)如此發(fā)達(dá)的今天沽一,不知道寫這種頁面的意義是否很大,雖然是給公司員工用的管理頁面漓糙,其實(shí)也不用做的太花哨铣缠,不需要像移動(dòng)端做得那么好。
9月職級(jí)晉升昆禽,P4升P5蝗蛙,我們部門升了2個(gè),都是18屆入職的醉鳖,然后我不知道為啥沒能升上P5捡硅。
不知道確實(shí)是我業(yè)績不夠,還是能力不夠盗棵,還是就是不配壮韭,反正我是不知道了。這件事我本人算是有一點(diǎn)不滿意吧纹因,可能我覺得我做的挺多的喷屋,但是在領(lǐng)導(dǎo)那沒價(jià)值,這個(gè)就是沒價(jià)值瞭恰。
年終獎(jiǎng)發(fā)了一個(gè)月屯曹,這個(gè)可能是沒有季度S,有季度S就發(fā)2個(gè)月寄疏,沒有就發(fā)一個(gè)月是牢,這個(gè)我沒拿到S,認(rèn)了陕截。不過別人拿著2個(gè)月驳棱,心理還是會(huì)有些酸酸的。
薪資保密农曲,績效保密社搅,可能就是為了避免同事間互相了解,產(chǎn)生一些負(fù)面情緒吧乳规。
10月的時(shí)候18年一起入職的小伙伴提了離職形葬,裸辭,我自己也覺得差不多了暮的,這次是真的要走了 笙以,不在是6月份的時(shí)候,不知所措冻辩,想著出去面一面的那種狀態(tài)了猖腕。
我和我的領(lǐng)導(dǎo)提出了離職的意愿拆祈,領(lǐng)導(dǎo)平時(shí)對(duì)我也還可以,我剛?cè)肼毜臅r(shí)候就是他帶的倘感。
如果和領(lǐng)導(dǎo)關(guān)系不是太好放坏,不建議讓領(lǐng)導(dǎo)知道你的離職意愿,不然工作上可能會(huì)有點(diǎn)難受老玛,會(huì)患得患失的淤年。
我是因?yàn)闆Q定好要離職,并且對(duì)領(lǐng)導(dǎo)性格有把握才告訴領(lǐng)導(dǎo)要離職的蜡豹,不然最好還是偷偷的出去面試比較好麸粮。
領(lǐng)導(dǎo)讓我先別急著裸辭,先出去找镜廉,拿一些offer再說豹休,我的工作年限只有2年,選擇不多桨吊,并且南京沒啥互聯(lián)網(wǎng)氛圍,外包比較多凤巨。
最后面了一家拿了一個(gè)offer视乐,然后就正式提了離職。11月10號(hào)提的離職敢茁,在送走10月提離職的小伙伴當(dāng)天提的佑淀。
流程一提,正式開始了離職手續(xù) 彰檬,手續(xù)慢慢走伸刃,離職流程走了大概一個(gè)多月吧,11月10號(hào)提的逢倍,今天是12月14號(hào)捧颅,手續(xù)還差最后一步,走完就正式結(jié)束了较雕。
大部分年輕人都會(huì)有跳槽的經(jīng)歷碉哑,跳槽之前要想好為什么要跳槽,當(dāng)前工作有哪些不滿亮蒋,下一份工作想要獲得啥扣典。
我離職的原因有下面幾個(gè)
- 工資太低,對(duì)收入不滿意
- 做的工作對(duì)個(gè)人提升沒有太大的幫助
- 厭倦了一些部門之間的扯皮慎玖,以及對(duì)公司一些流程制度不太滿意
大家跳槽一個(gè)是為了漲薪贮尖,一個(gè)是個(gè)人能力有成長,對(duì)公司而言趁怔,職員是要給公司解決問題的湿硝,而職工的個(gè)人訴求是收入和能力提升薪前。
當(dāng)這2方面不滿意的時(shí)候,或者對(duì)工作環(huán)境忍受不了的時(shí)候图柏,其實(shí)可以考慮動(dòng)一動(dòng)序六。
面試我覺得應(yīng)該長期保持,比如一年出去試一試蚤吹,面一面例诀,不一定要走,面一面裁着,看看自己在市場(chǎng)上值多少繁涂,自己還有哪些欠缺,對(duì)自己真的需要跳槽的時(shí)候還是有點(diǎn)幫助的二驰。
跳槽首要考慮的其實(shí)也不是薪資問題扔罪,我覺得還是要為以后考慮一下,需要考慮在新的公司可以收獲多少工作技能之外的東西桶雀,對(duì)未來2-3年的成長有幫助矿酵。
這樣2-3年跳槽的時(shí)候收獲的就不僅僅是那么點(diǎn)工資了,還有個(gè)人能力矗积、履歷全肮、見識(shí)方面的成長。
另外跳槽之前最好要有一個(gè)大概的目標(biāo)棘捣,要準(zhǔn)備哪些東西辜腺,要去哪個(gè)行業(yè),哪家公司發(fā)展乍恐,并為之做出相應(yīng)的準(zhǔn)備评疗,才能提高一下通過率。
我本次其實(shí)跳槽也是比較草率的茵烈,離職決心是下了百匆,不過對(duì)于以后做什么,要提升哪些方面瞧毙,還是一團(tuán)漿糊胧华,就Boss直聘上主動(dòng)投簡歷,或者等著別人找你宙彪,沒有一點(diǎn)目標(biāo)矩动,這樣效率也低一些。
平時(shí)還是應(yīng)該多認(rèn)識(shí)一些人释漆,內(nèi)推方便一些悲没,也可以多了解一下公司以及部門的實(shí)際情況。
離職跳槽還是要多準(zhǔn)備一些東西,多收集一些信息示姿,進(jìn)行多方交叉驗(yàn)證比較甜橱,免得選錯(cuò)了以后后悔。
我就是因?yàn)闇?zhǔn)備不充分栈戳,萬事隨緣岂傲,這樣不好,免得哪一次就掉坑里取了子檀,這個(gè)還是要改一改镊掖。
好了,應(yīng)屆畢業(yè)之后的2年多時(shí)間褂痰,記了個(gè)流水賬亩进,希望后面的工作生活會(huì)比這2年會(huì)更豐富一些吧。
昨晚南京下雪了缩歪,今年的第一場(chǎng)雪归薛,下的挺大的,瑞雪兆豐年匪蝙,挺好主籍。