1. 程式人生 > >四年努力,夢歸阿里,和大家聊聊成長感悟。

四年努力,夢歸阿里,和大家聊聊成長感悟。

轉載:https://www.cnblogs.com/xrq730/p/9159586.html

前言

阿里面試成功已經過去一個月了,入職也已經過去十多天了,趁著週末寫點東西和大家進行一下分享,本文會寫到以下的內容:

  • 個人一路走來的經歷
  • 未來的一些思考
  • 我自己理解五年這個時間節點一名優秀程式設計師應當具備的技術素質
  • 小廣告時間

那這次加入的BU是菜鳥,一個非常有發展前景的公司。

從校園出發,走向阿里

工作五年,標題卻是"四年努力",實際上確實是這樣,2013年從母校杭州師範大學畢業之後,我和很多剛畢業的同學一樣,會沒有目標、找不到方向、不知道未來到底要做什麼,所以大約有一年的時間是很迷茫的,工作也就那樣吧,得過且過。

大約一年過後,也就14年樣子,那個時候公司還在西湖科技園,也許是自己的上進心作祟、也許是母校學長馬雲情懷作祟,有一段時間每天沿著石祥路回家,就想著這輩子我一定要憑藉著自己的努力進入阿里,而且這種想法每天每天越來越強烈。

就像我公眾號裡面寫的,4年前其實並沒有現在這麼多面試經或者程式設計師成長經,雖然有心,但是並不知道朝哪個方向去努力。於是想了一個辦法:花了一個禮拜時間,把51job、獵聘這些那時候比較有名的招聘網站裡面的Java崗位通通看了一遍,把每個崗位描述都寫下來,並進行整理和總結,列了一份比較大的提綱,作為自己的學習目標。

在這之後,開啟了算是比較瘋狂的2015年吧,那一整年只有一個關鍵字----學習。一整年除了幾個極重要的人,幾乎沒有和同事、朋友出去玩過,八九點下了班回去就開始學習到十一二點、工作中比較空餘的時間學習、雙休日學習、各種大小長假學習,反正各種能利用到的時間都用來學習了,各種JDK原始碼、多執行緒、Java虛擬機器這些都看了個遍,前前後後看過的書不下10本,像虛擬機器這本書我好像有說過幾次,PDF+實體書看了不下五遍,這個部落格也是從15年開始寫的。

學習是寂寞、枯燥的,這段時間裡其實有太多次想要放棄,但每次也都熬了過來,可以分享給大家一個感悟:花一年自己逼自己一下,讓一切優異的品質成為你的習慣。像我現在,就感覺努力、上進、鑽研、好奇心這些已經是骨子裡的東西了,研究一個技術點,不整理成一篇博文,我都不認為自己掌握了這個技術點。

至於工作,經過15年這一年的學習,由於個人水平的長進,16年到18年間,在工作中領導也願意給我機會,會寫一些底層的東西、會做一些系統性的設計、也有機會帶幾個人的小團隊,在這一過程中,慢慢發現基本功並不能說明所有問題,因為必然會遇到沒碰到過的東西、會遇到一些更復雜的問題,然後通過查資料、研究、尋找解決方案、解決問題進一步提升自己的能力。

個人技術成長,工作中成長(實際解決問題能力)一定是缺一不可的,就像前幾天我們大部門老大分享的:什麼是好的技術,能解決實際問題的技術就是好的技術。

18年年中,對的時間遇到一個對的部門、對的領導、對的團隊,夢想照進現實

希望我分享的個人成長經歷,能對看到的人有一些鼓勵、有一些感觸,如果讓我總結一下,那麼希望告訴大家兩點:

  • 相信你自己,我這樣學校一般又不聰明的人都能走到今天這一步,那麼大多數人一定都能走到我這一步,而且能走得比我更遠、更好
  • 世界上沒有什麼是努力辦不到的,如果有,那麼就更努力一些吧

五年之後,何去何從

在之前寫過的一篇文章《面試感悟----一名3年工作經驗的程式設計師應該具備的技能》一文中,有一段專門寫了對程式設計師的幾個階段的理解,當時是工作三年寫的,一轉眼兩年過去了,我自己也差不多工作五年了,在這個節點上,結合自己的認識,說一下第五年開始,一個程式設計師應該朝哪個方向努力。

首先,前五年,如果一個程式設計師大致能做到一下幾點(後面還會詳談):

  • 具有紮實的基本功
  • 能快速完成領導交給你的程式碼開發任務
  • 能在遇到問題的時候有正確的解決思路
  • 能對公司的新人進行一定輔導,包括但不限於技術點分享、程式碼評審、需求分析、表結構設計等

那麼,從第五年開始,我認為可以、也應當朝更高的層次進行邁進,前一個層次如果更多是偏重個人,那麼這個層次我認為更多應該偏重團隊,簡單羅列一下大致上應該有:

  • 系統設計能力,或許在之前給一個功能,能從DB設計-->服務端開發-->前端開發一棧把事情都做好,那麼之後,在領導給出具體一塊大業務,比如想做一個淘寶商場的會員模組,能充分分析出整個功能並把功能拆分成一個一個的點、能對每一個點之間的互動畫出互動圖、能梳理清楚資料庫的ER關係圖、能把工作合理分配給同事進行開發
  • 帶領團隊能力,大致就是把控整體開發節奏,保證在約定時間點前進行交付,不出現延期的情況
  • 大而博不如小而美,會10門技術、每門技術掌握到6分,不如會5門技術、2門技術掌握到8分,我感覺整個行業什麼都會一點的人比較多,把一門技術進行深入研究的比較少,畢竟掌握也許只需要1星期,深耕或許需要1個月甚至更久。在五年這個節點,我認為選擇一到兩個自己感興趣的方向進行深入研究會是一個比較好的選擇

這是我自己的思考,也是我在第五年開始對自己的要求,希望這一些思考也能給大家帶來一些啟發。

五年節點,我理解的優秀程式設計師應當具備的技術素質

網上有很多所謂的Java程式設計師面試經,其實看下來的感覺就是沒多大用,面試是沒有套路的,每一個面試官問的東西也都不一樣,如果根據那些面試問題去學習和準備,那真的是隻見樹木不見森林,對個人提升沒有太大提高。

那麼,在五年這個階段,一個優秀的程式設計師應當具備怎樣的技術素質呢?按照我個人的理解,主要就是基本功+專案

為什麼之前說針對面試題進行學習和準備作用不大,因為我認為我們關注的不應當是題,而是題背後的一個一個的方向,這也就是我認為的基本功。那從基本功的角度來說,羅列一下我能想到的,包括但不限於以下內容:

  • 工作相關使用到的JDK類及其相關原始碼、機制
  • 設計模式,設計模式在工作中用到了哪些,具體使用場景
  • 併發類的相關知識,執行緒安全、鎖機制、訊號量、閉鎖、柵欄、執行緒池等
  • 框架相關,Spring相關機制、Spring MVC相關機制、MyBatis相關機制、使用的細節點、框架實現原理等
  • JVM,記憶體佈局、垃圾識別演算法、垃圾回收演算法、垃圾收集器、類載入機制、記憶體模型、出現記憶體問題時定位問題的方法等
  • 資料庫的基本資料型別、索引機制、各引擎區別、鎖機制、慢SQL定位及優化等
  • 快取機制,這裡的機制指的是快取載入、快取擊穿、快取雪崩這些機制及其相關應對方案,用過Redis、MemCache的最好理解一下它們的原理或者快取提供的一些高階功能,叢集如何實現
  • 分散式的一些知識,比如CAP理論、資料一致性的幾種解決方案、分散式事務如何處理、分庫分表怎麼做、現有的相關解決方案等
  • NIO的作用,epoll模型是否知道一些,Netty的相關機制、Netty相比原生NIO的優點、半包拆包、斷線重連解決方案等
  • Web相關,Get與Post的區別、轉發與重定向的區別、跨域問題如何解決、如何保證介面冪等性等
  • 網路層相關,三次握手和四次握手、全連線佇列和半連線佇列、負載均衡演算法等
  • 其他中介軟體,MQ作用和使用場景、服務化治理框架的作用和使用場景、配置中心的作用和使用場景等
  • 資料結構,陣列、連結串列、棧、佇列、樹等優缺點,在什麼場景下使用什麼資料結構
  • Linux相關知識,基本命令的使用,排查日誌、定位問題,專案或者第三方元件的基本運維等

坦白講,以上的這些東西全都掌握也不可能,哪怕面試官肯定也有很多不會的,但這就是基本功,能多掌握一點多掌握一點,技多不壓身,至於別人如何評價你,就留給別人去評價吧,做好自己能做好的就行了。我在之前寫過的文章中反覆強調深度+廣度,深度優先、廣度次之,有了深度+廣度,在開發過程中我們可以儘快完成需求,在遇到問題情況下我們可以第一時間找到應對方案。

在三年的時間點,能掌握上述的知識點我認為已經是非常非常優秀的了,但這兩年的經歷讓我意識到的是,到了五年的時間點,如果只是具備這些硬性技能,還是不夠,這兩年更多的應當是在專案上進行積累,也就是前面說的專案,大致上應該有:

  • 獨立完成複雜業務,或者完成一個已有專案中的大功能點,這就需要有根據業務對功能進行分解、分析的能力
  • 獨立排查複雜問題,在專案執行過程中,一定不可能安然無事,除開業務性的問題,CPU 100%是否能獨立排查、記憶體溢位是否能獨立排查、應用死鎖或者DB死鎖能否獨立排查、API呼叫時間長能否獨立排查,以上問題排查完畢能否及時解決
  • 帶領團隊的能力,可能這時候帶領的是1~2個人的小團隊,即使一個小團隊,也能考驗帶團隊、任務合理分配的能力

可能上面的要求有點高,可能工作中未必有這樣的機會,但是不要抱怨,機會永遠留給有能力、有準備的人,我們首先想的不應該是等待別人交給你一件有挑戰性的事情,你在做這件事情的情況下去提升自己,而應當是先提升自己的素質,然後讓別人放心把有挑戰性的事情交給你來做。

回到我之前寫的,為什麼16年到18年間,領導願意給我機會去進行嘗試,首先就是因為個人水平的提升。

廣告時間

阿里內部有自己多個維度的評價標準,絕不是隻有具備我上面寫的那些技術素質才能進入阿里,因此不必太過在意上面寫的這些,那只是根據我個人理解,提供給大家一個建議性的技術成長方向而已。

最後是簡短的廣告時間,我所在的菜鳥國際物流技術部門持續招人,如果你滿足以下兩個條件之一:

  • 有兩年或者兩年以上工作經驗,對自己的技術有一定信心
  • 19屆應屆畢業生且是比較好的院校

那麼,歡迎以以下三種方式跟我進行聯絡:

  • 加我個人微信LBJ_Mayday進行諮詢
  • 傳送簡歷到我的個人郵箱[email protected]
  • 在我的部落格文章(百度搜索五月的倉頡即可)下進行留言

相關推薦

努力阿里大家聊聊成長感悟

轉載:https://www.cnblogs.com/xrq730/p/9159586.html 前言 阿里面試成功已經過去一個月了,入職也已經過去十多天了,趁著週末寫點東西和大家進行一下分享,本文會寫到以下的內容: 個人一路走來的經歷 未來的一些思考 我自己理解五年這個時間節點一名優秀程式設計師應當具備的

努力阿里大家聊聊成長感悟

文章來自:五月的倉頡 五月的倉頡 是一位非常優秀,樂於分享的大神,目前就職阿里 原文連結:https://www.cnblogs.com/xrq730/p/9159586.html 阿里面試成功已經過去一個月了,入職也已經過去十多天了,趁著週末寫點東西和大家進行一下分享

努力阿裏大家聊聊成長感悟

除開 epoll 層次 公眾號 未來 冪等性 鎖機制 blank 最好 原文地址https://www.cnblogs.com/xrq730/p/9159586.html,原文作者博客園----五月的倉頡,轉載請註明出處,謝謝 前言 阿裏面試成功已經過去一個月了,

努力 大家聊聊成長感悟

文章來自:五月的倉頡五月的倉頡 是一位非常優秀,樂於分享的大神,目前就職阿里 原文連結:https://www.cnblogs.com/xrq730/p/9159586.html 阿里面試成功已經過去一個月了,入職也已經過去十多天了,趁著週末寫點東西和大家進行一下分享,本文

5經驗年薪百萬一位阿里P8分享自己的成長乾貨

  今天這篇文章,我前後讀了 3 遍,主人公是阿里最年輕的 P8 之一,工作五年連升三級,他在一次採訪中分享了自己的成長經歷和職場心得,非常接地氣,我們整理了 一下,真誠地推薦給每一個渴望成長和進步的職場人,希望能帶給你力量。 保持好奇心——培養主動學習的意識和習慣 我每

不悔只恨太匆匆

先前我曾經寫了一篇“網站的安全登入認證設計”,可能是講述的不夠清楚,有一位讀者就留言質疑到,“公鑰顧名思義就是公開的啦,只要你願意,誰都會有你的公鑰,何來安全?應該是用網站的公鑰加密,傳到網站後,網站用自己的私鑰解密吧”。   這些密碼學的概念容易被搞混淆,的確也情有可原。因為公鑰、私鑰、加密、認證這些都是較

python全棧開發基礎【第二十五篇】死鎖信號量Event事件線程Queue

random 問題 定時器 初始 .get rand true () 進入 一、死鎖現象與遞歸鎖 進程也是有死鎖的 所謂死鎖: 是指兩個或兩個以上的進程或線程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力作用, 它們都將無法推進下去。此時稱系統處於死鎖狀態或系

有關多線程(同步鎖同步對象信號量)

self. utf-8 odi odin self 函數名 在線 less 遞歸 上面一個隨筆已經簡單介紹了多線程,比如下面在舉個簡單的例子: 1 #!/usr/bin/env python 2 #-*-coding:utf-8 -*- 3 4 import

Python學習【第24篇】:死鎖信號量Event事件線程Queue

個人 keyword 標準 性能測試 world src second gpo 機制 python並發編程之多線程2------------死鎖與遞歸鎖,信號量等 一、死鎖現象與遞歸鎖 進程也是有死鎖的 所謂死鎖: 是指兩個或兩個以上的進程或線程在執

我的實習面經(Android開發已拿阿里華為CVTE Offer)

忙過了一段時間,終於有空坐下來寫一篇面經,記錄一下自己前面一段時間找實習的過程和經驗,希望對閱讀到這篇面經的你有所幫助。 先介紹一下我的基本情況: 學校專業:本人某普通211通訊工程專業本科生(非計算機科班出身)。 面試崗位:Android

我在培訓機構折騰的經歷大家聊聊這個行業| 十系列

我是一個不太安分的人。 1.寫在前面 十年前,我還是象牙塔中數學系的一名普通的大三學生。 九年前,我是富士康流水線工廠的一名工人。 六年前,我包裡揣著 3000 RMB 來北漂。 三年前,我在一家網際網路金融公司做到了技術負責人。 兩年前,我在一家第三方支付公司擔任研發副總,最多管理超過100人。 現在,我是

【面經分享】網際網路寒冬7面阿里終獲Offer定級P6+

點贊再看,養成習慣,微信搜尋【敖丙】關注這個網際網路苟且偷生的工具人。 本文 GitHub https://github.com/JavaFamily 已收錄,有一線大廠面試完整考點、資料以及我的系列文章。 前言 這次去阿里面試的是我老東家的好朋友,我們之前都是一個專案組的,一起吃飯,一起洗腳,一起。

Java集合框架上機練習題:編寫一個Book類該類至少有nameprice兩個屬性該類要實現Comparable接口在接口的compareTo()方法.....

ext .cn 數據庫 識別 方法 屬性 set package compareto 編寫一個Book類,該類至少有name和price兩個屬性。該類要實現Comparable接口,在接口的compareTo()方法中規定兩個Book類實例的大小關系為二者的price屬性的

給定一個字串你需要顛倒每個單詞中的字元順序同時仍然保留空白初始的字順序

本題源自leetcode  557 -------------------------------------------------- 思路  將每個單詞反轉,遇見空格就跳過。 程式碼: string reverseWords(string s) { i

簡單教你怎麼混淆Android的程式碼讓你看到混淆沒有混淆的區別

一、咱們先看看沒有混淆的程式碼反編譯後什麼樣子反編譯過程1、把.apk重新命名成.zip(因為apk包和zip的演算法一樣)classes.dex就是程式碼存放的位置,下一步我們把dex轉成jar2、dex檔案轉成jar檔案把工具解壓到資料夾,為了方便省去輸入路徑,我們把上一

Java開發練習1打印出所有的"水仙花數"所謂"水仙花數"是指一個三位數其各位數字立方等於該數本身例如:153 是一個"水仙花數"因為153=1的三次方+5的三次方+3的三次方

打印出所有的"水仙花數",所謂"水仙花數"是指一個三位數,其各位數字立方和等於該數本身。例如:153 是一個"水仙花數",因為153=1的三次方+5的三次方+3的三次方。 public class

HTML中標籤屬性1.水平對齊2.垂直對齊(表格)

<!--水平對齊--> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>表格屬性(水平對齊和垂直對齊)

從P7到P9這個阿里小二的祕訣是給自己挖坑

惡魔有一頭精彩的頭髮。 “紫色、灰色、灰色、霧霾藍色、黃色、藍色、紫色、綠色、灰色、綠色。” 若有人問起她的染髮史,她能準確地

考了3工作零基礎在職終於拿到CFA證書

sch pan 等於 一個人 不理解 證明 auto 考前沖刺 2017年 大家都知道CFA Charterholder是獨有的全球公認的投資管理從業人員高職業水平和道德水準的有力證明,是金融界卓越專業成就的象征;CFA資格強調和遵循極其嚴格的職業操守和道德準則,

在北京三java開發經驗月薪16k如何在經驗時要到20k?

sql 任務 mongodb 語言 都是 阿裏 中間 python soa 3年JAVA程序員的自評 半道出家的程序員,從不偽造簡歷,起點低,三年時才16k月薪*14在北京,認為混的比較差。 當然補充一句,不要拿應屆生的所謂待遇來比,不是你比不起,而是這麽比沒意義,應屆生接