我是如何从一个新闻狗转行成为程序猿的?
我本科碩士都是讀新聞專業(yè), 畢業(yè)后卻去了游戲公司做程序員, 震驚了不止我的老師、同學(xué),也震驚了我的父母。那么, 這么大跨度的轉(zhuǎn)變我是如何實(shí)現(xiàn)的呢?
要想從完全不相關(guān)專業(yè)和背景轉(zhuǎn)換成為程序員,基礎(chǔ)、時(shí)間、決心,三個條件只要具備了兩個就有很大概率成功。接下來,我將和你說說我的故事,希望對你有所幫助。? ?? ? ? ?
決心:從產(chǎn)品經(jīng)理到工程師
大四的時(shí)候(2015~2016年),正是國內(nèi)互聯(lián)網(wǎng)巨頭群雄逐鹿的時(shí)代,每天打開手機(jī)看新聞和朋友圈都是相關(guān)的資訊,而且互聯(lián)網(wǎng)的高薪和發(fā)展前景非常吸引我。于是我就開始馬上學(xué)習(xí)編程要做程序員升職加薪迎娶白富美當(dāng)上CEO了么?
當(dāng)然不是了。
一開始我認(rèn)為大學(xué)非理工專業(yè)的人要進(jìn)互聯(lián)網(wǎng)行業(yè)肯定是先從運(yùn)營或者產(chǎn)品經(jīng)理開始。所以我先打算成為一個產(chǎn)品經(jīng)理。
我在一番拉勾、實(shí)習(xí)僧和微信群中的尋找和投遞后,獲得了在百度圖片當(dāng)產(chǎn)品實(shí)習(xí)生的機(jī)會。這段實(shí)習(xí)讓我不是很想繼續(xù)追求做產(chǎn)品經(jīng)理了——因?yàn)槲野l(fā)現(xiàn)他們所需要的“產(chǎn)品實(shí)習(xí)”只是需要有人幫他們重復(fù)地評審圖片而已,這并不是多有技術(shù)含量的工作,如同流水線工人一般,非常的無聊。
這次實(shí)習(xí)最大的收獲或許是百度的那種重視技術(shù)的文化(百度每年各種獎項(xiàng)都是頒給技術(shù)人員)。這讓我下定決心,要放棄成為PM而轉(zhuǎn)為RD(百度內(nèi)對程序員的稱呼)。
? ? ? ? ?? ? ? ?
起步:學(xué)習(xí)編程的基礎(chǔ)
那么我有學(xué)習(xí)編程的基礎(chǔ)么?算是有,也算是沒有。
我在高中學(xué)過的pascal的基礎(chǔ)——是真的很基礎(chǔ),就是差不多會寫if-else和for語句的那種水平。大一的時(shí)候我又學(xué)了C語言。雖然這些語言的知識我已經(jīng)幾乎全部忘光了,但是學(xué)習(xí)過編程的經(jīng)歷讓我對編程這件事至少有一些感覺,不會一想到要學(xué)習(xí)編程就覺得這對我來說不可能(而這卻恰恰阻礙了很多人)。
經(jīng)歷一些編程學(xué)習(xí)的人都知道編程不是什么黑魔法,其實(shí)也就是人把自己腦子里的邏輯思路寫到電腦里去讓它執(zhí)行,本質(zhì)上和寫一篇英語文章是很類似的。?
起步階段,我想先學(xué)一些容易的內(nèi)容。
16年的時(shí)候前端大熱,我就先是報(bào)了個網(wǎng)易云課堂的前端微專業(yè),開始跟著學(xué)習(xí)HTML、CSS和JS這些東西。不過我學(xué)了兩個月后,聽說Java作為后端最常用的語言更好找工作,于是又同時(shí)開始學(xué)習(xí)Java方面的課程。
通過這兩個方向的課程,我對web開發(fā)的前后端都有了一定的了解,并且發(fā)現(xiàn)自己更喜歡做的是后端的編程,因?yàn)榍岸撕芏鄸|西過于瑣碎了,經(jīng)常在為了視覺上的一些對齊而糾結(jié)。? ? ? ?? ??
?
深入:學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法??
在接觸Java學(xué)習(xí)的同時(shí),我也經(jīng)常上知乎等網(wǎng)站看一些前輩對學(xué)習(xí)編程的建議。在這些程序老手的建議中,反復(fù)被提及的就是要學(xué)好數(shù)據(jù)結(jié)構(gòu)和算法,因?yàn)樗鼈兪且粋€程序員的基本功。?
這時(shí)候,我剛好讀碩士第一年開學(xué),我趕緊就利用大學(xué)的在線系統(tǒng),查一下學(xué)校里有哪里在開《數(shù)據(jù)結(jié)構(gòu)》和《算法》這兩門課。查詢到具體課程的上課時(shí)間、地點(diǎn)和專任教師后,我就通過郵件咨詢了老師看看我能不能去上課。?
現(xiàn)在看來我這封郵件言辭非常不謙虛,接觸了一兩個月Java和JS竟敢自稱“熟練”。不過所幸我但凡有發(fā)郵件的教師/教授都給了我積極的回應(yīng),因此很快我就出現(xiàn)在了計(jì)算機(jī)和信管專業(yè)的教室里。?
我一個非工科專業(yè)學(xué)生學(xué)習(xí)CS核心課程,一開始就是抱著誠惶誠恐的心態(tài)的。我基本上每節(jié)課都坐在第一排,然后盡可能做到課前預(yù)習(xí),課后完成老師要求的作業(yè),并且上完一個章節(jié)的知識就寫一篇知識總結(jié)。相關(guān)的算法和數(shù)據(jù)結(jié)構(gòu)知識總結(jié)我很多發(fā)在了簡書上(https://www.jianshu.com/nb/7225186)。
在上算法課的實(shí)驗(yàn)課寫上機(jī)作業(yè)的時(shí)候,因?yàn)楫?dāng)天學(xué)的東西掌握得還不牢,我經(jīng)常還得一直請教助教小哥怎么寫。好在助教小哥是人長得很帥人還超好的學(xué)長,基本上有問必答。有一次我還去學(xué)長的宿舍樓下問圖算法那章節(jié)的作業(yè),學(xué)長解答完了我的問題才和他女朋友出門……
一整個學(xué)期下來,我成功學(xué)習(xí)完了《算法分析與設(shè)計(jì)》、《數(shù)據(jù)結(jié)構(gòu)》、《離散數(shù)學(xué)》這三門課,其中算法得了93,數(shù)據(jù)結(jié)構(gòu)得了88分(哎,我為啥一開始不直接學(xué)CS……),對整個計(jì)算機(jī)專業(yè)的體系結(jié)構(gòu)有了初步的認(rèn)識。
第二個學(xué)期,我又報(bào)了《計(jì)算機(jī)網(wǎng)絡(luò)》、《操作系統(tǒng)》、《機(jī)器學(xué)習(xí)入門》、《計(jì)算社會學(xué)》、《文本挖掘》等課程。報(bào)了這么多課程,一方面是因?yàn)榈谝粋€學(xué)期我的學(xué)習(xí)成績讓我覺得自己能夠handle更復(fù)雜深入的課程了,另外一方面則因?yàn)槲掖T士學(xué)業(yè)有很多的選修學(xué)分需要完成,既然我現(xiàn)在打算走CS這條道路了,那么就干脆選修課也全上CS好了。
? ? ? ?
走出校園:實(shí)習(xí)與就業(yè)
學(xué)習(xí)編程、踏入CS最后還是為了能找個寫程序的工作,但是萬事開頭難。?
我在上算法的那個學(xué)期的期末就開始積極尋找相關(guān)實(shí)習(xí),希望寒假的時(shí)間能積累自己的簡歷。然而,北京之大,我在拉勾投遞了三四十個簡歷后,卻只收到了兩三個面試機(jī)會。
其中有一次,有一個小公司說讓我去北京的東五環(huán)外的一個地方面試,結(jié)果我到了那里之后卻發(fā)現(xiàn)這公司在一個廢棄工廠里,而且這個地方周圍一個人都沒有。我面試完出來的時(shí)候是晚上八九點(diǎn),一個人瑟瑟發(fā)抖,心想萬一被傳銷分子抓走了怎么辦。?
所幸我后來在新浪找到了一個實(shí)習(xí)的機(jī)會,因此那個寒假都呆在新浪,工作主要是幫數(shù)據(jù)管理/分析員打下手,做些凌雜的事情。
這段實(shí)習(xí)做了一個多月后,我感覺能學(xué)習(xí)到的東西實(shí)在有限,因?yàn)槲抑饕胱鲩_發(fā)崗位,而當(dāng)時(shí)數(shù)據(jù)管理/數(shù)據(jù)分析的工作主要是單純寫SQL調(diào)取數(shù)據(jù)以及處理一些其他數(shù)據(jù)報(bào)表的小問題。這項(xiàng)工作要求人比較細(xì)心且對數(shù)據(jù)非常敏感,這并不是我喜歡和擅長的方面。
大概三月份的時(shí)候,各個互聯(lián)網(wǎng)廠商都開始暑期實(shí)習(xí)的招聘。名義上這是暑期實(shí)習(xí),但其實(shí)就是當(dāng)年的秋招,因?yàn)閷?shí)習(xí)機(jī)會就是留用機(jī)會。而且一旦取得一個大廠的實(shí)習(xí)機(jī)會后,收獲的不僅僅是這個大廠的留用機(jī)會,也是秋招時(shí)候簡歷上的經(jīng)歷,一舉兩得。
我一邊買了面試準(zhǔn)備的書(主要都是《Java程序員面試筆試寶典》之類)學(xué)習(xí)準(zhǔn)備面試常考的技術(shù)知識,另一邊投遞了幾乎所有市面上叫得出的有規(guī)模的互聯(lián)網(wǎng)公司,也收獲了很多次面試機(jī)會。
其中我印象很深刻、感覺特別挫敗的是阿里的面試:我面到了第二輪的時(shí)候,被面試官嘲諷我是不是寫的代碼非常少,因?yàn)槊嬖嚂r(shí)候他讓我說出我遇見的Exception,我說了大概五六個就語塞說不下去了,確實(shí)體現(xiàn)了我開發(fā)經(jīng)歷嚴(yán)重不足。
還有一次,我面了今日頭條的崗位,兩輪面試寫代碼后,面試官還帶我去食堂吃了飯,然后HR和我談,問我打算什么時(shí)候?qū)嵙?xí),來實(shí)習(xí)多久。我回學(xué)校后天天刷郵箱就等著發(fā)實(shí)習(xí)offer,沒想到過了幾天卻收了一封拒信。
暑期實(shí)習(xí)招聘的那段時(shí)間我整個人感覺非常焦慮又亢奮,每天都在想如果我一個實(shí)習(xí)都找不到,干脆還是放棄了回去做本行專業(yè)找個工作或者考公務(wù)員好了。還好最后,我有幸通過了一家知名游戲公司的面試,成為暑期實(shí)習(xí)生的一員,并且最后也通過完成實(shí)習(xí)項(xiàng)目獲得了公司的留用offer(那個暑假也過得很艱難,但是篇幅所限不再展開了~)。
這段暑期實(shí)習(xí)的從求職到最后結(jié)束,讓我才開始確信,我真的成功轉(zhuǎn)行到技術(shù)了。回頭看,我特別感激我當(dāng)時(shí)暑期實(shí)習(xí)公司的領(lǐng)導(dǎo)兼導(dǎo)師。?
之后,秋招的時(shí)候,我也投了很多公司,進(jìn)行了一輪嘗試,因?yàn)槲蚁胫雷约?strong>到底是因?yàn)閷?shí)力能留在實(shí)習(xí)的公司,還是單純的運(yùn)氣而已。最終秋招里我拿到了百度開發(fā)類的SP(據(jù)說算法的SP更高)、滴滴出行的小SP、央行背景的網(wǎng)聯(lián)清算公司(給北京戶口和年20多萬薪水)、華為、招銀網(wǎng)絡(luò)以及招行深圳分行的研發(fā)offer。?
因?yàn)槲蚁腚x開北京,所以我放棄了網(wǎng)聯(lián)清算、百度和滴滴的SP。由于當(dāng)時(shí)對暑期實(shí)習(xí)公司的好感以及一種被認(rèn)可的感激之心吧,我最后選擇留在它們這里而不是去深圳華為。? ? ??
?
回顧:理性樂觀地選擇,扎扎實(shí)實(shí)地努力
回頭看16、17年這兩年,做這個轉(zhuǎn)型的過程是痛苦和快樂交織著的:做自己不熟悉而且風(fēng)險(xiǎn)很大的方向,自然是有很多痛苦的,跑不起來代碼又自己解決不了不得不到處微信上問人的經(jīng)歷我真的是每天都有;
但是做技術(shù)不斷進(jìn)步,看到自己不斷取得成績,理解越來越多的方面知識,這種成就感所帶來的快樂又是巨大的。
我在向技術(shù)轉(zhuǎn)型的這兩年,經(jīng)常反復(fù)讀知乎問題《23 歲的你,曾處于什么樣的狀態(tài)?現(xiàn)在呢?》中的一個回答(https://www.zhihu.com/question/19832061/answer/13163761)
答主是一個自己努力學(xué)習(xí)成長克服困難最后在北京扎下根的技術(shù)女前輩。
她說:
做事要努力,困難面前不屈不撓;?
選擇不要猶豫,下了決心就付出行動;?
放下過去的成績,才能擔(dān)當(dāng)新的重任;?
工作很重要,家庭更重要;?
樂觀、積極、向上的心態(tài)是幸福的源泉。
?
我謹(jǐn)把這些話送給所有決心走這條路的人。
總結(jié)
以上是生活随笔為你收集整理的我是如何从一个新闻狗转行成为程序猿的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 后端风云
- 下一篇: 如何实现可以获取最小值的栈?