來(lái)源:赫爾米娜的小宇宙 作者:赫爾米娜 2018-06-14 10:50:57
背景介紹:
Paul在牛津大學(xué)獲得了哲學(xué)、政治學(xué)及經(jīng)濟(jì)學(xué)學(xué)士學(xué)位后,曾在微軟,sybase,Hyder和QA培訓(xùn)等公司做軟件以及技術(shù)培訓(xùn)工作。目前他是專(zhuān)業(yè)技術(shù)培訓(xùn)公司Mallon Associates的董事,并總管一家跨國(guó)金融服務(wù)公司的全球技術(shù)培訓(xùn)生項(xiàng)目。
你從當(dāng)初自學(xué)編程到現(xiàn)在運(yùn)作和掌管貴公司的專(zhuān)業(yè)技術(shù)培訓(xùn)業(yè)務(wù),并總管一家跨國(guó)金融服務(wù)公司的全球技術(shù)培訓(xùn)生項(xiàng)目,這其間經(jīng)歷了多少年?
初中時(shí)學(xué)Basic的經(jīng)歷不算在內(nèi),我第一次正式學(xué)習(xí)編程是在1992年到1993年吧。
2013年的時(shí)候我成為我們公司的首席培訓(xùn)師。
2015年起我開(kāi)始負(fù)責(zé)我們最大的客戶的全球技術(shù)培訓(xùn)生項(xiàng)目。
這樣算下來(lái)20多年吧!
我知道C++之父Bjarne Stroustrup請(qǐng)你喝過(guò)酒。
有很多人好奇你和Bjarne是怎么認(rèn)識(shí)的。
我從是2003年開(kāi)始為我們最大的客戶提供技術(shù)培訓(xùn)服務(wù)的。
在我的職業(yè)生涯中讓我特別驚喜的一個(gè)事件就是2013年的時(shí)候Bjarne Stroustrup加入了該公司。
那之后我有過(guò)幾次和他面對(duì)面交談的機(jī)會(huì)。
能和我心目中的偶像聊生活和技術(shù)實(shí)在是太興奮了!
你本科所學(xué)的專(zhuān)業(yè)是PPE(Philosophy, Politics and Economics哲學(xué)、政治學(xué)及經(jīng)濟(jì)學(xué)),它和計(jì)算機(jī)編程并沒(méi)有多少關(guān)系。
你是怎么想起來(lái)要自學(xué)編程的?
你的第一份編程工作是怎么得來(lái)的?
1992年到1993年我在牛津讀書(shū)的時(shí)候突然生了一場(chǎng)重病。
當(dāng)時(shí)為了方便治療我不得不離開(kāi)牛津回到家鄉(xiāng)。
回到老家看病的那一年里我要養(yǎng)活自己所以不能無(wú)所事事(本文作者注: 在英國(guó)大部分年滿18歲的人都自己工作掙錢(qián)不再依賴(lài)父母。除少數(shù)情況外,住在父母家的成年子女要給父母交房租和分擔(dān)水電等生活費(fèi)用。)。
看病之余,我需要找一份全職工作。
我的一個(gè)朋友當(dāng)時(shí)在一家公司的技術(shù)部門(mén)工作,他的推薦幫我贏得了一次面試機(jī)會(huì)。
那次面試很順利,那之后我就開(kāi)始邊工作邊學(xué)習(xí)。
我記得最開(kāi)始學(xué)的是兩門(mén)語(yǔ)言,Visual Basic for Application和C++。
我當(dāng)時(shí)的工作內(nèi)容之一是在excel里面用VBA編程。
可是如果你之前并沒(méi)有學(xué)習(xí)過(guò)編程的話,你是如何通過(guò)那次面試的呢?
我當(dāng)時(shí)用了一個(gè)周末做了一些準(zhǔn)備。
一個(gè)周末?
是的。
你已經(jīng)做了很多年的專(zhuān)業(yè)技術(shù)培訓(xùn),到現(xiàn)在你總共掌握了多少種編程語(yǔ)言?
我數(shù)一下。
Java,Scala,Perl,Python,JavaScript,C,C++,C#,SQL MDX,SQL的各種版本,Q,VB,F(xiàn)#,F(xiàn)orte,swift和ObjectiveC。
十六種?
差不多吧。
下面我想是程序員們最關(guān)心的一個(gè)問(wèn)題了。
當(dāng)客戶要求你提供某種你原本不熟悉的編程語(yǔ)言的培訓(xùn)時(shí),你是如何做到在非常短的時(shí)間內(nèi)掌握,甚至能夠給有過(guò)實(shí)際使用該語(yǔ)言工作的學(xué)員授課,讓他們從中有所收獲的并得到他們的好評(píng)的?
你有什么特別的學(xué)習(xí)方法嗎?
我覺(jué)得學(xué)習(xí)編程語(yǔ)言和學(xué)習(xí)任何一門(mén)人類(lèi)語(yǔ)言一樣,你不能只是被動(dòng)學(xué)習(xí),你必須主動(dòng)使用。
僅靠一本入門(mén)書(shū)學(xué)習(xí)語(yǔ)法并能寫(xiě)出一句可以編譯通過(guò)的語(yǔ)句是不夠的。
我會(huì)給自己布置題目,選擇一些有趣的小項(xiàng)目,然后用這門(mén)新語(yǔ)言實(shí)現(xiàn)。
在項(xiàng)目的選擇上你有什么考量嗎?
我只選擇自己已經(jīng)用其他熟悉的語(yǔ)言做過(guò)的項(xiàng)目,這樣可以把未知因素降到最低。這是其一。
其次我會(huì)根據(jù)要學(xué)的這門(mén)語(yǔ)言的特點(diǎn)去選擇最合適發(fā)揮該語(yǔ)言?xún)?yōu)勢(shì)的項(xiàng)目。
比如說(shuō)Scala是一門(mén)函數(shù)語(yǔ)言,我會(huì)選擇一些和數(shù)字處理相關(guān)的項(xiàng)目,而不會(huì)用Scala去做一個(gè)用戶界面。
通過(guò)實(shí)際做項(xiàng)目來(lái)學(xué)習(xí)是個(gè)非常好的主意!
除此之外,你還有其他的學(xué)習(xí)途徑嗎?
學(xué)習(xí)編程語(yǔ)言和學(xué)習(xí)一門(mén)外語(yǔ)是類(lèi)似的,在你著手寫(xiě)代碼同時(shí)你也要學(xué)習(xí)如何閱讀別人的代碼。
就像你不會(huì)僅僅學(xué)了某門(mén)外語(yǔ)的基礎(chǔ)單詞和語(yǔ)法就立即去寫(xiě)作文一樣。
你要花大量的時(shí)間去精讀和泛讀經(jīng)典的作品,有了足夠的輸入才能自己有所輸出。
你這樣一橫向比較就很清楚了。
學(xué)英文的時(shí)候,我們是從第一天就開(kāi)始閱讀簡(jiǎn)單的課文,然后在學(xué)習(xí)的初期,中期和所有的學(xué)習(xí)過(guò)程中要始終堅(jiān)持閱讀。
是的。
像要學(xué)好英文必須持之以恒地閱讀原汁原味的英文作品一樣,程序員必須堅(jiān)持閱讀他人的優(yōu)秀代碼。
我一直奇怪為什么人們學(xué)習(xí)編程的時(shí)候就把這一點(diǎn)給忽略了。
是不是有些程序員水平提高得慢也和平時(shí)工作中光寫(xiě)不讀有一定的關(guān)系?
要做到不停地進(jìn)步就必須堅(jiān)持閱讀優(yōu)秀的代碼對(duì)不對(duì)?
那你一般是從哪里去找合適的代碼來(lái)讀的呢?
假如你所在的公司需要你學(xué)習(xí)一門(mén)新語(yǔ)言好做一個(gè)新的項(xiàng)目,或至少你有相應(yīng)的權(quán)限,那你就可以直接閱讀公司內(nèi)部已經(jīng)上線的工作代碼。
工作代碼的質(zhì)量雖然良莠不齊,但通過(guò)閱讀你會(huì)慢慢體會(huì)到它們之間的差異,并從中學(xué)習(xí)。
相關(guān)推薦:
小升初試題、期中期末題、小學(xué)奧數(shù)題
盡在奧數(shù)網(wǎng)公眾號(hào)
歡迎使用手機(jī)、平板等移動(dòng)設(shè)備訪問(wèn)幼教網(wǎng),幼兒教育我們一路陪伴同行!>>點(diǎn)擊查看