大綱
IT/互聯網行業概覽(研發崗)
學計算機需要掌握什麼?
結尾
IT/互聯網行業概覽(研發崗)
首先可以將互聯網行業的研發崗劃分一下:
開發:前端, 後端, 硬件, 算法, 中間件/架構.....
測試:測試可以大體劃分為三類 (功能,性能,安全,自動化,測開), 但之前聽一個測試專家聊到這個, 感覺到了高級後都要懂一點然後專精一部分
運維: 這個沒有具體瞭解過可以看看這篇文章: https://zhuanlan.zhihu.com/p/435371134
DBA: Database Administrator, 歸屬於運維
後面主要聊得都會偏向開發崗多一些.
學計算機需要掌握什麼?
我覺得計算機和其他傳統行業不同, 他需要你在足夠勤奮的前提下對它有至少那麼一點點興趣和好奇(至少高級以前是這樣的). 勤奮可以拉高你的下限, 而興趣與好奇可以提升你的上限. 有這個結論的原因是之前跟一位從阿里出來的專家聊天時他說: 阿里校招門檻很高(具體多高不方便說了), 但阿里裡面(不只是阿里 他待過的其他大廠都差不多如此)高級開發以上的才佔10%左右, 而專家則是那10%裡的10%.
話說回來, 那麼如果選擇了計算機系的專業需要掌握什麼? 已經從事這行的人會很肯定的告訴你: 自學能力. 自學的同時學校教的當然也要掌握好,比較重要的是:操作系統, 數據結構與算法, 吃飯的語言(不同專業可能有所差別, 具體可以去看看招聘網站).
那掌握這些能力的"度"又在哪呢? 這裡可以用接觸頻率劃分一下優先級, 以Java的後端開發來說. 接觸頻率最高的肯定是Java本身, 其次是Spring框架還有數據庫, 然後再是各種中間件(Redis, MQ...). 但這裡不得不提數據結構與算法這東西了, 對於後端開發來說算法不僅是你面試需要掌握的技能, 保持算法的手感能極大程度提高你的邏輯思維和在寫業務時的思路(減少代碼的壞味道), 所以我還是比較推薦即使不準備找工作也隔幾天去刷刷題(https://leetcode.cn/). 最終得出的順序則是:
語言(不僅僅會用還要用的6, 對語言支持的數據結構要信手拈來)
數據結構與算法(可以從劍指offer/力扣Hot100刷起, 剛接觸會很痛苦 多做就會發現有套路的)
框架(起碼要會用並且別用錯, 框架和語言的源碼是最值得學習和借鑑的)與數據庫(面試和工作的熱點)
操作系統, 計算機網絡 (所有研發崗的基礎)
中間件(前期會用就行, 通過工作時的項目進行深入最好)
新人可能會陷入對語言, 框架, 中間件的比較上面, 例如聽到很多人說go和java哪個好, go是不是比Java更快. 其實沒必要, 可以看看現在的中間件, 只要是抱著"我全都要"的心態去做的到後面都沒多少人用了.
美團-磁盤I/O那些事
同理, 語言也是. Go目前興起的原因主要是雲原生(Docker/K8S), 但Go以及其下框架對於業務的友好度較低, 就更不用跟Java裡Spring的生態去比較了.
結尾
有些xd想讓我說一下大環境的情況, 但這東西看人 只能說這兩年普遍差了許多. 比較少寫這種類型的文章, 疏漏可能會比較多 邏輯也可能不通暢, 各位大概得看一下就行. 如果有疑問蓋樓即可 我會盡量答覆.
#高考志願指南針#