1. 程式人生 > >非好學校科班出身的程式設計師,該如何快速提升自己?

非好學校科班出身的程式設計師,該如何快速提升自己?

在這裡插入圖片描述

目前一般的大點的公司,往往會在招聘時(尤其在招聘3年以下工作經驗的程式設計師時)會設定學校的門檻,比如需要211或985相關專業畢業。這裡我無意貶低不在這個範圍的程式設計師,相反在本文裡還將根據我所見和我所聞,為這些同學給出發展的建議。
首先我用一些實際的案例給大家予以足夠的信心:雖然在招聘時有上述的門檻,但事實上,在3年左右的正式員工裡,大約30%是一般學校,或非科班出身,在外派的員工裡,這個比例會高到70%左右,而且,每個組平均每年有3個左右轉正的名額。所以,出身一般的程式設計師,只要有足夠的勤奮度,而且方法得當,絕非就一定低人一等。
在這裡插入圖片描述
恕我直言,在學校和學歷方面稍微欠缺的同學裡,我有見過能力很強的,但平均綜合能力確實不如好學校。(這裡如果我說高於好學校,說出來也沒人信)。 不過對於勤奮的同學來說,並非是能力不行,而是努力的方法和方向不對。對於這批敬業勤奮的同學,我非常敬佩,所以在這篇文章裡,我將專門分享些相關的提升技巧。
1 戰術上要重視,分析為什麼大公司要設定學歷和學校的門檻
平心而論,為什麼有這樣的設定呢?
第一,能進好學校的同學在之前的學習過程中已經證實了自己“綜合能力強“這個特質,
第二,好學校畢業的同學,一般基礎能力比較紮實,比如資料結構演算法作業系統編譯原理等,不僅理論經驗,不少還有實訓經驗。
在前進的過程中,我們必須認清自己,所謂知己知彼百戰不殆,但認識自己絕非是讓我們妄自菲薄,而是明白自己的短板,歸納一下,在招聘時,一般會對這批程式設計師重點考核如下的要點(這其實就是目前普遍存在的短板):
1 是否有實際的商業專案經驗?
2 基本功是否能達標?比如是否熟悉連結串列Hash表的基本資料結構,是否熟悉排序等基本的演算法。
3 學習能力,團隊協作能力以及責任心等是否達標?
在這裡插入圖片描述


其實歸根到底就一點:如果程式設計師在大學畢業前,有過實際的專案經驗,比如做過兼職,或在學校裡幫老師幹過商業專案經驗,這能一定程度上彌補學歷學校和專業方面的劣勢,而且,如果做專案的時間足夠長(一般1年左右),而且專案裡用到的技術和公司職位需求比較匹配,而且候選人動手能力強,一些規模不大的公司甚至會忽視學校等方面的因素。
2 如何通過第一份工作,讓自己有個不差的起點
程式設計師在踏上社會後前兩年的發展,會比較重要。這裡給出的建議是,如果你感覺學校和學歷會成為障礙,可以找個規模一般但乾的活和你的職業發展相關的工作,如果萬不得已,不得不幹銷售等之類的工作,但一定得讓自己乾點和程式設計相關的事情。
下面給出些我見到過的案例。
案例1:小A本科畢業後,學校一般,能力屬於中下。不過他找了個外派公司,外派進了一個規模比較大的公司,在其中發展了2年,用專案經驗沖淡了學校的因素,後來就跳槽進了一個大公司,從初級開發做起,平時也經常學些知識,目前在升級到高階開發的路上順風順水。
案例2:小B學校一般,也大專學歷,但在大三期間已經在軟體公司實習,積累了一些基本的開發能力,畢業後就憑此順利進入到一箇中型公司做開發,至少能在社會上站穩腳跟。
案例3:小C大專學習,專業是理科,但和軟體關係不大,後來參加一個軟體培訓,積累了些技能,目前至少也能在公司裡做軟體開發的活。
在這個案例中,我絕非說一定得通過培訓學校,其實在培訓機構是用錢買時間買學習方法買專案經驗,如果你自己毅力足夠,靠自己看視訊執行專案,也能達到類似的效果。
案例4:我在面試時就看到不少簡歷,候選人學校學歷都一般,3年後,絕對有能力挑戰大公司的職位,而且公司更看重這些同學靠前3年工作積累的專案和技能經驗。
在這裡插入圖片描述

總結一下,如果學校學歷都一般,那麼該採取哪些措施呢?
1 最好在畢業前,進入軟體公司實習。這可以靠學校推薦,更得自己去找。學校裡的一些老師,會和外面公司合作,大家就可以找這些老師幹活。或者就到處投簡歷,工資看著要,以積累專案經驗為主。
2 平時可以適當放鬆娛樂,但就更得自己瞭解專案經驗。比如,通過視訊等方式,自己搭建一個框架,或者用python搭建一個數據分析平臺,這種案例多多益善。
3 準備簡歷時,一定得增加商業專案的經驗,同時靠刷面試題積累面試經驗。
在這裡插入圖片描述
這裡也給大家舉例,上海軟體公司數量多不勝數,往往一個樓裡就有5,6家,而且,小型或中型的公司,出於節省成本的考慮,往往只會看專案技能和基本功,不怎麼看學校和學歷。其實每個城市都一樣,所以要找工作,或者是不差的工作,絕對沒問題。
3 只要勤奮了,任何時間點都不算晚:論時間的安排
在龜兔賽跑裡,最讓人痛心的不是兔子在中途睡覺,而是烏龜自暴自棄。天道酬勤,但如果自己都失去信心或貪圖玩樂,那真就沒人能幫你了。
在上文裡提到,在學校裡,就該去積累專案經驗,或自己通過執行程式碼熟悉框架技能。不過如果已經不慎錯過學校裡的時間,但現在想迎頭趕上,只要努力了,什麼時候都不晚。
這裡給出些關於Java方面自學的途徑和時間點。
第一個月的學習進度
在這裡插入圖片描述

在第2個月裡,大家可以在掌握上述知識的基礎上深入瞭解Java Core的高階知識點,並可以進入Java Web初級階段的學習,這個時間段的學習進度如下表所示。
第二個月的學習進度
在這裡插入圖片描述
在第3個月裡,大家可以深入瞭解Java Web裡比較資深的框架技術,比如Spring MVC和ORM等,這個階段的學習計劃如下表1.4所示。
第三個月的學習進度
在這裡插入圖片描述
換句話說,只要你肯了,大概也就3個月的時間(基礎稍微差的同學最多5個月,如果上心點的,估計也就2個月),即能達到初級開發的水平。

我之前聽過一種說法,說培訓機構量產初級開發,根據我所見所聞,不無道理,而且量產物件,學歷甚至可以是高中,讀過計算機大專的,也寥寥無幾。相比之下,學校一般的同學基礎要好得多,更應該有能力和信心快速提升自己。

3 總結
總結下,如果要迎頭趕上,第一得靠信心,不妄自菲薄,第二得靠勤奮,笨鳥先飛,第三得靠方法,所謂事半功倍。

最後,如果你跟我一樣都喜歡java,想成為一名優秀的程式設計師,也在學習java的道路上奔跑,歡迎你加入java學習群:72030155 群內每天都會分享java最新業內資料,分享java免費課程,共同交流學習,讓學習變(編)成(程)一種習慣!