摘要:本文的作者是之前編程教室的實(shí)訓(xùn)生之一,原本在汽車(chē)制造車(chē)間里工作,后來(lái)成功轉(zhuǎn)行為一名程序員,從事車(chē)載語(yǔ)音識(shí)別相關(guān)軟件的開(kāi)發(fā)。通過(guò)編程教室的公眾號(hào)看到先生招實(shí)訓(xùn)生的公告,毛遂自薦之后拿到,然后從就職的車(chē)企辭職,來(lái)到上海。
這篇文章在我的草稿箱里躺了有一年多,今天總算是發(fā)出來(lái)了。本文的作者是之前編程教室的實(shí)訓(xùn)生之一,原本在汽車(chē)制造車(chē)間里工作,后來(lái)成功轉(zhuǎn)行為一名程序員,從事車(chē)載語(yǔ)音識(shí)別相關(guān)軟件的開(kāi)發(fā)。這是他個(gè)人轉(zhuǎn)行過(guò)程中的一些經(jīng)驗(yàn)分享。今天發(fā)這篇文章的另一個(gè)原因,是文中的這個(gè) 實(shí)訓(xùn)生計(jì)劃,又開(kāi)啟了 。 Crossin 本人線下指導(dǎo),不收費(fèi)用。 如果你對(duì)此有興趣,在看完前人的經(jīng)驗(yàn)之后,可 移步公眾號(hào)(Crossin的編程教室)了解一下 。
希望編程教室的存在可以讓更多人走上自己想要的路。
*
2017.9.27 我從編程教室畢業(yè)我叫周鑫鑫,如果你經(jīng)常關(guān)注“ crossin的編程教 室”公眾號(hào)的話,那你應(yīng)該對(duì)我有印象,編程教室一些文章出自我手,2017.9.27 我從編程教室畢業(yè),去到一家語(yǔ)音識(shí)別相關(guān)的公司,開(kāi)始新的征程。
2016.9 通過(guò)編程教室的公眾號(hào)看到 Crossin 先生招實(shí)訓(xùn)生的公告,毛遂自薦之后拿到 offer, 然后從就職的車(chē)企辭職,來(lái)到上海。
經(jīng)過(guò)一年的學(xué)習(xí),機(jī)緣巧合通過(guò)獵頭知道目前的公司產(chǎn)業(yè)跟汽車(chē)有一定關(guān)系,個(gè)人非常感興趣,最終也順利拿到 offer,Crossin 先生了解之后也非常尊重我的意愿,然后讓我總結(jié)一下這一年,給編程教室的學(xué)員以及想轉(zhuǎn)行的同學(xué)一個(gè)參考。
說(shuō)實(shí)話,我是很幸運(yùn)的,在 Crossin 先生的指導(dǎo)下完成從新手程序員到初級(jí)程序員的過(guò)程。有工作經(jīng)驗(yàn)的同學(xué)都應(yīng)該清楚,在新手階段有大神帶會(huì)成長(zhǎng)得非???,事實(shí)也是如此,每當(dāng)遇到困難的時(shí)候,寫(xiě)代碼沒(méi)有頭緒的時(shí)候,找 bug 找的心累的時(shí)候,Crossin 總會(huì)給出適時(shí)的建議,真的是說(shuō)不完的感謝。
還在編程教室學(xué)習(xí)的同學(xué),請(qǐng)好好珍惜手上的資源,好好利用起來(lái)。
接下來(lái)是正文
這一年,都做了什么憑著記憶我大概回憶一下,這一年我都學(xué)習(xí)了哪些內(nèi)容:
Python 基礎(chǔ):
笨辦法學(xué) Python
Crossin的編程教室 圖文教程
廖雪峰 Python 教程
Python標(biāo)準(zhǔn)庫(kù)保守估計(jì) 10% 內(nèi)容
伯克利 cs51 課程
SICP 前 3 章
Python 核心編程前 5 章
Data Structures and Algorithms Using Python
Fluent Python
Web 端:
Django 1.10 60% 的官方文檔
W3S Css 教程
W3S Html 教程
W3S Javascript 教程
W3S jQuery 教程 3 遍
Bootstrap 官方文檔 3 遍
微信小程序官方文檔
echarts 官方文檔 3 遍
爬蟲(chóng)端:
requests 官方文檔
scrapy 官方文檔 60% 的內(nèi)容
bs4 官方文檔 3 遍
pyquery 官方文檔
其中 web 和爬蟲(chóng)知識(shí)大部分轉(zhuǎn)化為了項(xiàng)目:
Crossin的編程實(shí)驗(yàn)室
http://lab.crossincode.com/
其他:
peewee 官方文檔 60% 的內(nèi)容
jieba 官方文檔
leetcode 刷題 60+
Mysql 必知必會(huì)
google + stackoverflow
Crossin 先生的言傳身教
其實(shí)可以看出,我是個(gè)忠于官方文檔的開(kāi)發(fā)者,以上提到的官方文檔并不只是走馬觀花的一掠而過(guò),而是實(shí)實(shí)在在的 把文檔中給出的示例代碼都敲過(guò)一遍 ,雖然費(fèi)時(shí)費(fèi)力,但的確物有所值。這一年算努力,不算拼命,這是自己對(duì)自己的評(píng)價(jià)。
基礎(chǔ),程序員的立身之本因?yàn)獒槍?duì)的是 Python,所以這里講的基礎(chǔ)至少為 數(shù)據(jù)結(jié)構(gòu)與算法 + 熟練使用Python 。其實(shí)在日常的開(kāi)發(fā)中,很少會(huì)遇到高深的算法或者復(fù)雜的數(shù)據(jù)結(jié)構(gòu),但還是得抽出時(shí)間學(xué)習(xí)。
有兩本進(jìn)階書(shū)籍切切實(shí)實(shí)的幫助到了我,不管是在找工作方面還是學(xué)習(xí)編程方面。一是 Data Structures and Algorithms Using Python, 然后是 Fluent Python ,看完前者可以去 leetcode 開(kāi)始刷題,看完后者你會(huì)對(duì) Python 這門(mén)語(yǔ)言有一個(gè)全新的認(rèn)識(shí)。
以我目前的基礎(chǔ)知識(shí),還遠(yuǎn)遠(yuǎn)談不上扎實(shí),只是說(shuō)應(yīng)付普通的開(kāi)發(fā)工作足矣。在接下來(lái)的日子里,還需要花時(shí)間精力深入下去。
一些方法在這一年的學(xué)習(xí)過(guò)程中,個(gè)人認(rèn)為一些好用有價(jià)值的方法:
1. 不停地寫(xiě)代碼
快速提高編程水平的方法就是不停的寫(xiě)代碼 。
編程一年,我在 github 上建立了 26 個(gè)倉(cāng)庫(kù),近 300 次 commit 。不停的做一些小的項(xiàng)目,不管是 django 也好,爬蟲(chóng)也好,小程序也好,前端也好,都在不停的學(xué)習(xí),不停的寫(xiě)。這對(duì)我在編程方面的成長(zhǎng)非常重要。
以下的幾個(gè)方法都是在勤寫(xiě)代碼的基礎(chǔ)上總結(jié)出來(lái)的。
2. 擴(kuò)展閱讀
這一年我讀了很多文檔 ,其中一些比如 bs4 / requests 文檔是一次性從頭到尾讀一遍,另外還有一些是不可能一次性讀完的,比如 Python 標(biāo)準(zhǔn)庫(kù), Django官方文檔,scrapy官方文檔等等。
對(duì)于某些龐大文檔,要抱著打持久戰(zhàn)的準(zhǔn)備, 一個(gè)很好的方法就是一次讀完一個(gè) topic , 比如有一次 Crossin 先生讓我寫(xiě)一篇關(guān)于有序字典(OrderedDict) 的文章,了解到 OrderedDict 是 collections 下的一個(gè)數(shù)據(jù)類(lèi)型后,我順便就把 collections 下的所有數(shù)據(jù)類(lèi)型簡(jiǎn)單過(guò)了一遍。之所以提到這個(gè)是因?yàn)樵诿嬖囍校矣?collections.Counter 解決了一道編程題,面試官繼續(xù)問(wèn)我關(guān)于 collections 還了解哪些內(nèi)容?我反手就開(kāi)始如數(shù)家珍地講起 namedtuple/Userdict/DefaultDict/ChainMap 等等。
同樣的道理適用于 Python 標(biāo)準(zhǔn)庫(kù)中的 re 模塊,functools 模塊,itertools 模塊,random模塊等等, 不用每次都詳細(xì)地過(guò)一遍,這很費(fèi)時(shí)費(fèi)力,但至少有個(gè)印象 ,之后再次遇到的時(shí)候,再仔細(xì)閱讀,反復(fù)幾次下來(lái),自然而然就可以信手拈來(lái)了。
3. Pythonic
來(lái)自知乎: Pythonic 就是以 Python 的方式寫(xiě)出簡(jiǎn)潔優(yōu)美的代碼。
來(lái)自我: Pythonic 的程度就是對(duì) Python 的熟悉程度。
舉幾個(gè)簡(jiǎn)單的例子,就可以體會(huì)到:
1、1 到 100 求和:
# 普通方法 total = 0 for i in range(1,101): total += i print(total) # Pythonic 的寫(xiě)法: print(sum(range(101)))
2、 兩個(gè)列表以鍵值的形式生成字典:
s1 = ["a", "b", "c"] s2 = [1, 2, 3] # 普通方法 dct = {} for i in range(len(s1)): dct[s1[i]] = s2[i] print(dct) # Pythonic 的寫(xiě)法 print(dict(zip(s1, s2)))
這兩個(gè)例子只是拋磚引玉。對(duì)于普通的寫(xiě)法來(lái)說(shuō),任何一個(gè)學(xué)習(xí)Python一個(gè)月的同學(xué)都能寫(xiě)出來(lái),但 Pythonic 的寫(xiě)法就需要對(duì) Python 了解得深入一些才行了。知識(shí)本身不難,但需要時(shí)間去學(xué)習(xí)掌握。
Pythonic 沒(méi)有止境,這應(yīng)該作為日常積累的一部分。不用刻意的去收集,而是在閱讀他人的代碼的時(shí)候,看到好的片段,立馬模仿一遍,轉(zhuǎn)為自己的知識(shí)即可, 積硅步,至千里 。
4. 養(yǎng)成良好的編碼規(guī)范
編碼規(guī)范對(duì)我來(lái)說(shuō)意味著兩方面, 一是書(shū)寫(xiě)規(guī)范,二是文檔規(guī)范。
說(shuō)來(lái)慚愧,我自己是近兩三個(gè)月才開(kāi)始慢慢注意到這方面,權(quán)當(dāng)給初學(xué)的同學(xué)的忠告,請(qǐng) 從一開(kāi)始就遵照 PEP8 規(guī)范寫(xiě)代碼 ,嫌麻煩可以使用 PyCharm,這個(gè)編輯器自帶規(guī)范檢查。
文檔盡可能寫(xiě)的詳細(xì)些 ,一是可以邊寫(xiě)代碼邊整理自己的思路,二是之后不管是自己維護(hù)還是其他人閱讀,都能很快的理解你寫(xiě)的代碼。
從一開(kāi)始就把事情做好,這總是沒(méi)錯(cuò)的。
轉(zhuǎn)行,容易也不容易辭職,就是一念之間。
2016.9.12 我給 crossin 發(fā)的郵件,2016.9.18 拿到 offer 當(dāng)天就口頭辭職,2016.10.4 來(lái)到上海。完成從汽車(chē)工程師到碼農(nóng)的心態(tài)轉(zhuǎn)變只用了 6 天。
果斷的前提是想清楚:
想清楚自己是否對(duì)編程有興趣?
想清楚自己是否對(duì)目前的工作失去了信心?
想清楚自己是否可以拋棄之前的積累?
想清楚自己是否能夠?qū)⒆藨B(tài)放到最低,從 0 開(kāi)始學(xué)習(xí)一門(mén)新事物?
……
一年的時(shí)間說(shuō)短不短,說(shuō)長(zhǎng)不長(zhǎng),經(jīng)過(guò)了很多曲折,也收獲了很多樂(lè)趣。對(duì)我來(lái)說(shuō),是值得的。
最后到上海第 8 個(gè)月的時(shí)候,一次偶然的機(jī)會(huì),從路邊的草叢里撿回了 小白 ,小家伙長(zhǎng)得很快,讓我榮幸成為了一名有貓的程序員。
奉上幾張貓片:
════
其他文章及回答:
如何自學(xué)Python|新手引導(dǎo)|精選Python問(wèn)答|Python單詞表|人工智能|嘻哈|爬蟲(chóng)|我用Python|高考|requests|AI平臺(tái)|計(jì)算機(jī)視覺(jué)
歡迎搜索及關(guān)注: Crossin的編程教室
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43219.html
摘要:嗨,我是積極廢人,我是摩卡先生,現(xiàn)在是一所二流學(xué)院的大二學(xué)生。我不反感他,因?yàn)樗f(shuō)的沒(méi)錯(cuò),我就是個(gè)菜鳥(niǎo)啊。一個(gè)徹頭徹尾的菜鳥(niǎo)。保持對(duì)成功的渴望,繼續(xù)當(dāng)自己的傻瓜我是摩卡先生,謝謝你的閱讀,期待我后續(xù)的文章吧 showImg(https://segmentfault.com/img/bVbbjDc); 人們總是一邊不相信雞湯,一邊又奢望雞湯在關(guān)鍵時(shí)刻能夠拉自己一把。事先說(shuō)明,這是一碗有...
摘要:嗨,我是積極廢人,我是摩卡先生,現(xiàn)在是一所二流學(xué)院的大二學(xué)生。我不反感他,因?yàn)樗f(shuō)的沒(méi)錯(cuò),我就是個(gè)菜鳥(niǎo)啊。一個(gè)徹頭徹尾的菜鳥(niǎo)。保持對(duì)成功的渴望,繼續(xù)當(dāng)自己的傻瓜我是摩卡先生,謝謝你的閱讀,期待我后續(xù)的文章吧 showImg(https://segmentfault.com/img/bVbbjDc); 人們總是一邊不相信雞湯,一邊又奢望雞湯在關(guān)鍵時(shí)刻能夠拉自己一把。事先說(shuō)明,這是一碗有...
摘要:而且蘋(píng)果也提供了專(zhuān)門(mén)的頁(yè)面供下載你可以手動(dòng)下載不同格式的年報(bào)數(shù)據(jù)。反過(guò)來(lái),這兩年國(guó)行銷(xiāo)量下降,對(duì)蘋(píng)果也是很傷注年數(shù)據(jù)實(shí)為大中華區(qū)。 蘋(píng)果昨天夜里發(fā)布了今年份兒的新手機(jī): iPhone Xs 、史上最大款 iPhone Xs Max ,以及史上最貴廉價(jià)版 iPhone Xr 。 看著動(dòng)輒萬(wàn)元的價(jià)格,我不禁摸了摸自己的腰。 showImg(https://segmentfault.com/...
摘要:上次翻過(guò)一篇我是如何在自學(xué)編程個(gè)月后找到工作的,是一個(gè)編程自學(xué)者的經(jīng)驗(yàn)之談。如果你想通過(guò)學(xué)習(xí)編程來(lái)改善你的生活,你不該總想著這些快速成功的案例。 有人問(wèn)我, Reddit 是什么網(wǎng)站,我想了下說(shuō): 美國(guó)貼吧 。 但話說(shuō)回來(lái),關(guān)注了一陣子我發(fā)現(xiàn),Reddit 上的討論真要比貼吧不知道高到哪里去了,甚至比不少知乎回答要有價(jià)值。而且感覺(jué)下面的討論氛圍也更好些。 我在上面關(guān)注了 learnpr...
摘要:看到網(wǎng)上各種說(shuō)達(dá)內(nèi)怎么怎么滴,我以自己親身經(jīng)歷來(lái)講講我在達(dá)內(nèi)的這段經(jīng)歷吧。事先申明,中國(guó)很多城市都有達(dá)內(nèi),每個(gè)城市很可能不只一個(gè)達(dá)內(nèi)培訓(xùn)區(qū),并且達(dá)內(nèi)每一培訓(xùn)期的情況可能不一樣。我只講我培訓(xùn)時(shí)所在的達(dá)內(nèi)培訓(xùn)區(qū)。這些就是在達(dá)內(nèi)個(gè)月基本的生活了。 看到知乎上很多說(shuō)培訓(xùn)班出來(lái)的人咋個(gè)了,甚至還有人說(shuō)培訓(xùn)3個(gè)月怎么能和大學(xué)四年如一日努力學(xué)習(xí)的人相比。想著我也是培訓(xùn)出來(lái)的,那么就我自身經(jīng)歷說(shuō)一說(shuō)吧...
閱讀 3967·2021-11-22 13:53
閱讀 1700·2021-08-25 09:39
閱讀 2422·2019-08-29 18:36
閱讀 1484·2019-08-26 13:35
閱讀 1225·2019-08-26 11:57
閱讀 1692·2019-08-23 15:57
閱讀 811·2019-08-23 14:55
閱讀 1174·2019-08-23 14:51