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