1. 程序員工作兩年后的感受

        共 3921字,需瀏覽 8分鐘

         ·

        2021-07-29 00:52


        源 /         文/ 

        大家好,我是3y。

        不知道你們還是學(xué)生的時(shí)候,是否好奇工作兩年的人,究竟在公司學(xué)了些什么東西。我當(dāng)年還是比較好奇的,但卻不好意思去問,因?yàn)檫@樣會(huì)顯得我很呆
        我現(xiàn)在工作已經(jīng)兩年了,我想來簡(jiǎn)單講講這兩年我的工作體會(huì),給還在大學(xué)讀書的同學(xué)一些微小的參考。
        在開篇之前,首先你們需要降低下預(yù)期,不要想著我經(jīng)常寫博客,就以為我懂得很多,其實(shí)不然。

        技術(shù)和項(xiàng)目

        在實(shí)習(xí)之前,憑借著我大學(xué)時(shí)期的"努力",當(dāng)年我找實(shí)習(xí)的簡(jiǎn)歷技能清單如下:
        看起來還是很豐富很牛逼的,對(duì)吧?
        其實(shí)很多只是用過,里邊好多技術(shù)棧都是沒有真正理解它的思想和實(shí)現(xiàn)原理。
        在大學(xué)期間自己動(dòng)手做了兩個(gè)小項(xiàng)目,從前端到后端到服務(wù)器部署都是自己搞的,往簡(jiǎn)歷貼了下在線地址。面實(shí)習(xí),小公司一般不成問題,畢竟還是能從簡(jiǎn)歷看出,我是能干活的(:
        面大公司?基礎(chǔ)、基礎(chǔ)、還是TM的基礎(chǔ)

        當(dāng)年只是自己用了下Git命令把代碼push到Github,就敢寫熟練應(yīng)用了

        當(dāng)年只是自己用Maven的打包命令工具打個(gè)包,就敢寫熟練應(yīng)用了

        當(dāng)年只學(xué)會(huì)了幾種設(shè)計(jì)模式,就敢說自己熟悉常見的設(shè)計(jì)模式了

        當(dāng)年連AQS的源碼都沒看懂,就敢寫自己熟悉Java基礎(chǔ)了
        當(dāng)年
        ....
        唉,年少輕狂
        回過頭來,我認(rèn)為學(xué)生時(shí)期,沒有必要學(xué)習(xí)這么多"亂七八糟"的框架。因?yàn)槊嬖嚬僖豢春?jiǎn)歷就知道,你簡(jiǎn)歷寫的大多數(shù)技術(shù)棧,只是懂得如何使用罷了(:
        很有可能面試官也沒用過各類你在簡(jiǎn)歷上列出的框架(別想著坐你對(duì)面的面試官是多么地牛逼,或許幾年之后,你也變成了面試官,你拿到簡(jiǎn)歷時(shí),一樣會(huì)發(fā)現(xiàn),存在很多自己還沒接觸過技術(shù)框架)
        當(dāng)然啦,大廠的面試官都是有幾把刷子的(我認(rèn)識(shí)的大廠同學(xué),大多數(shù)下班之后都會(huì)自主學(xué)習(xí),提升自己)。
        在簡(jiǎn)歷上只要有其中一二,面試官是了解的,他就可以問針對(duì)某個(gè)框架一直問原理了(比如Spring這種常見的)。這樣一來,你寫在簡(jiǎn)歷上寫著各種了解某某某框架,意義也就沒那么大了。
        面試是雙向選擇,放平心態(tài)吧
        回到現(xiàn)在,像Shiro、Activiti這種框架,兩年后的我,只大概記得知道它們是干什么用的,細(xì)節(jié)都忘光了。
        即便我大學(xué)時(shí)沒學(xué)過,以目前的經(jīng)驗(yàn),花點(diǎn)時(shí)間擼會(huì)文檔我還是能快速入門一把。
        工作以后,校驗(yàn)一個(gè)人是否真正有過項(xiàng)目經(jīng)驗(yàn)。我自認(rèn)為看他會(huì)不會(huì)用Maven和Git是一個(gè)很好的校驗(yàn)方式(如果他簡(jiǎn)歷上寫了這兩項(xiàng)工具的話)。比如:

        1.先說下你日常使用的Git命令有哪些吧

        2.假如我寫完項(xiàng)目代碼,沒切分支直接push到master分支了,怎么解決?

        3.說一下你日常使用的Maven姿勢(shì)唄?日常升級(jí)jar包版本的姿勢(shì)是怎么樣的?

        4.現(xiàn)在項(xiàng)目起不來了,懷疑是各種依賴出現(xiàn)了版本問題,導(dǎo)致失敗了,怎么排查?
        因?yàn)楣ぷ髁艘院?,一般來說都會(huì)大量用到這兩個(gè)工具,而在沒工作之前是比較少機(jī)會(huì)深度使用的。
        自然地,兩年后的我對(duì)部分工具的使用熟練度就日益提升了
        在技術(shù)方面,舍棄了很多還是學(xué)生時(shí)所了解過的技術(shù),而轉(zhuǎn)向于在工作項(xiàng)目中實(shí)際使用到的技術(shù)
        很多人曾經(jīng)問我怎么提升自己的技術(shù),感覺自己所負(fù)責(zé)的項(xiàng)目太挫了。工作了以后應(yīng)該學(xué)什么東西,往往我給出的建議是:學(xué)工作中能用到的技術(shù)。

        比如,你用到了Kafka消息隊(duì)列,你就可以去學(xué)習(xí)Kafka的原理是怎么樣的

        比如,你用到了Redis內(nèi)存數(shù)據(jù)庫,你就可以去學(xué)Redis的原理是怎么樣的

        比如,你用到了Flink流式處理框架,你就可以去學(xué)Flink的原理是怎么樣的

        比如,你用到了HBase數(shù)據(jù)庫,你就可以去學(xué)HBase的原理是怎么樣的

        比如,你就只用到了Spring,你都可以去學(xué)習(xí)Spring對(duì)Bean生命周期的管理,以及各種日常使用注解其原理是如何實(shí)現(xiàn)的
        ....
        在剛工作的時(shí)候,我對(duì)項(xiàng)目中使用到的技術(shù)都感興趣,想了解他們的實(shí)現(xiàn)原理是怎么樣的,又或者說想了解這些框架誕生的過程。我覺得這是一件在技術(shù)成長過程中很有趣的事。
        了解框架誕生的思想說白了就是:在學(xué)習(xí)這個(gè)框架之前,知道為什么要使用該類型的框架,假如沒有該類型的框架以前是怎么樣的,而它的設(shè)計(jì)理念又是怎么樣的,為什么它能從同類型的框架脫穎而出,在項(xiàng)目里為什么又用到它。
        從零學(xué)習(xí)一項(xiàng)能在生產(chǎn)環(huán)境中落地的技術(shù)的思想和原理,是幸福的。
        由于老東家的技術(shù)還可以,所以基本市面上流行的Java后端技術(shù)我都淺嘗輒止地?cái)]了一遍,這兩年很大程度上提高了我的技術(shù)廣度,在這個(gè)過程中,就可以真正體會(huì)到:很多技術(shù)的思想是互通的。
        比如各個(gè)技術(shù)框架(中間件)對(duì)待「持久化」這件事上,思想幾乎都是WAL(預(yù)寫日志):一邊寫內(nèi)存(緩存),一邊順序?qū)懭罩尽?/span>
        精于基礎(chǔ),廣于工具
        除開技術(shù)之外,還想說的就是項(xiàng)目能力了。
        曾經(jīng),我歸屬于某個(gè)leader下,他找我要了一份現(xiàn)在我所負(fù)責(zé)的系統(tǒng)文檔。我不知道他啃了多久,再后來有新的業(yè)務(wù)需求找到他時(shí),他就給我畫了下技術(shù)方案,并問我這樣做是否可行,是否合理。
        當(dāng)他跟我對(duì)方案的時(shí)候,我懵圈了(:原來我的老板是有讀過我所負(fù)責(zé)項(xiàng)目的代碼的啊,原來還有人不靠著我的描述就能把系統(tǒng)的架構(gòu)給弄懂的啊,我這老板強(qiáng)啊...
        項(xiàng)目能力我認(rèn)為是需要時(shí)間積累的,5年經(jīng)驗(yàn)和2年經(jīng)驗(yàn)的人理解同一個(gè)新事物的速度是不一樣的(:
        如果是新入職進(jìn)公司,不了解業(yè)務(wù)系統(tǒng)很正常。我認(rèn)為最快熟悉系統(tǒng)的方式就是:
        1. 首先去找系統(tǒng)負(fù)責(zé)人聊下業(yè)務(wù)背景:包括系統(tǒng)功能、系統(tǒng)架構(gòu)、系統(tǒng)日常問題、系統(tǒng)上下游負(fù)責(zé)人等等...
        2. 刷歷史文檔和代碼,梳理系統(tǒng)運(yùn)行流轉(zhuǎn)核心鏈路
        3. 排查問題/Debug/寫需求

        不僅技術(shù)

        我在大學(xué)的時(shí)候,選修過一門課程,課程名我忘記叫什么了。
        印象比較深刻的是:當(dāng)時(shí)那老師在聊到職業(yè)發(fā)展的時(shí)候,她提及到:”絕大部分的職業(yè)都需要有良好的溝通和表達(dá)能力“
        隨后補(bǔ)充:“但,除了有個(gè)職業(yè),程序員。感覺他們就坐在電腦前一直敲敲敲...”
        大家都聽著,也沒人反駁。
        工作了以后,才發(fā)現(xiàn)這是外行人對(duì)程序員的刻板印象。
        1. 我們需要面試進(jìn)入公司,面試不單單考察的是你技術(shù)能力,還得在這過程中需要表現(xiàn)你的溝通能力??赡芗夹g(shù)知識(shí)點(diǎn)你都了解,但你沒辦法清晰表達(dá)出來,那面試官是不清楚的。
        2. 在工作中,我們需要跟產(chǎn)品聊需求是否可靠、跟同事聊業(yè)務(wù)背景、跟業(yè)務(wù)方聊細(xì)節(jié)等等,這些都需要自身去跟他人溝通,讓對(duì)方能快速get到你的問題
        3. 在工作中,我們有技術(shù)分享,一場(chǎng)好的技術(shù)分享需要讓大部分觀眾都能聽懂你在講述什么
        4. 在晉升中,我們需要在晉升會(huì)議上在十分鐘左右表述自己過去為公司做了什么貢獻(xiàn)。領(lǐng)導(dǎo)是不會(huì)想聽你修復(fù)了多少BUG,用了多少的設(shè)計(jì)模式編寫了多少行的代碼...

        溝通表達(dá)(演講)能力對(duì)程序員來說,是很重要的,這是能夠讓你在同一個(gè)環(huán)境中脫穎而出的重要技能

        大多數(shù)公司都會(huì)執(zhí)行KPI/OKR制度,每個(gè)季度都需要填寫績效(甚至可能每個(gè)周都需要寫周報(bào)),晉升/轉(zhuǎn)正需要寫PPT來簡(jiǎn)述自身的工作。人人都在笑阿里味(賦能、聚焦、抓手、閉環(huán)...)
        但很多的時(shí)候,你不得不承認(rèn),這東西寫PPT/績效,確實(shí)有一手,這的確也是一種能力。
        我歷屆的leader或者學(xué)長,曾經(jīng)都是技術(shù)大牛,都專研過行業(yè)內(nèi)技術(shù)各種方案和原理。但是,他們的現(xiàn)在的心思都不會(huì)只放在技術(shù)上。
        我上一任leader曾經(jīng)跟我說過:”技術(shù)對(duì)于程序員來說,是最基本的基礎(chǔ)。我認(rèn)為每個(gè)程序員都應(yīng)該去了解現(xiàn)在熱門的技術(shù),不能偏離掉程序員的根本。但同時(shí),希望你們多發(fā)展些軟技能,這對(duì)職業(yè)發(fā)展是很有幫助的。不能只會(huì)寫代碼,寫代碼對(duì)于大多數(shù)程序員來說都太簡(jiǎn)單了?!?/span>
        我第一任學(xué)長曾經(jīng)跟我說過:”可能你們剛畢業(yè)的都喜歡專研技術(shù),我能理解,我當(dāng)年畢業(yè)的時(shí)候也是這樣的。但是現(xiàn)在,我更去想要成為一個(gè)「業(yè)務(wù)專家」,技術(shù)這條路專研下去我認(rèn)為可能受益沒那么高。但不是說你們就可以不專研技術(shù)了,只是重心我希望你們不僅僅只有技術(shù),可以多考慮考慮未來的路怎么走“
        在告別杭州前,也找了我第二任學(xué)長約過飯。他給我分享經(jīng)驗(yàn)就是:”我覺得,我們這種搞互聯(lián)網(wǎng)的,優(yōu)勢(shì)就在于對(duì)數(shù)據(jù)比較敏感。你說我們?nèi)绻粚懘a了,要干什么去,也不好說啊?!叭缓蠼o我分享了個(gè)成功案例,靠著對(duì)現(xiàn)有數(shù)據(jù)的分析以及對(duì)互聯(lián)網(wǎng)流量的看法,是怎么一步一步創(chuàng)業(yè)的...
        技術(shù)是硬技能,軟技能也很重要
        當(dāng)我向上一任leader提出離職的時(shí)候,leader表示能理解,并表示:如果能早點(diǎn)回到自己的家鄉(xiāng)打拼,未嘗是一件壞事。
        我第二任學(xué)長也表示:離開一個(gè)城市轉(zhuǎn)到另一個(gè)城市的風(fēng)險(xiǎn)就在于,所維護(hù)的圈子和人脈可能就要重新認(rèn)識(shí)了,這成本可是很大的。
        當(dāng)我的學(xué)長或者同事離職后去新的去處之后,他們都會(huì)發(fā)出邀請(qǐng):”要不你來我這邊試試唄?“
        包括我現(xiàn)在寫公眾號(hào),也是有自媒體的圈子。
        一個(gè)好的圈子,一定是會(huì)給你帶來正收益的反饋
        工作兩年后,技術(shù)相較于以前有明顯的提升,圈子發(fā)生了變化,思想也發(fā)生了變化。
        以前覺得一個(gè)月拿很高工資的人牛逼,但后來發(fā)現(xiàn),他們大多活得都不那么容易(老板給你多少錢,一般是需要你付出多少代價(jià)的)。
        以前覺得技術(shù)很重要,后來覺得在職業(yè)道路上技術(shù)好像又沒想象中那么地重要。
        以前覺得很多事情沒那么簡(jiǎn)單,后來發(fā)現(xiàn)只要給我時(shí)間,也沒這么困難。
        以前覺得網(wǎng)上的大神很牛逼,后來自己寫了文章才發(fā)現(xiàn),原來也就這么一回事,他們也未必做到了如文章所寫的事。





        END


        頂級(jí)程序員:topcoding

        做最好的程序員社區(qū):Java后端開發(fā)、Python、大數(shù)據(jù)、AI


        一鍵三連「分享」、「點(diǎn)贊」和「在看」


        瀏覽 94
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
          
          

            1. 爱操在线| 国产特级婬片免费看9一区二区 | 少妇高潮叫床声20分钟 | 大尺度在线观看 | 爽好大快深点黄瓜视频动漫 |