偶爾的,我會(huì)被人問(wèn)道:如何成為一名優(yōu)秀的程序員,更或者,如何成為一名程序員。每次人們問(wèn)起,我都力圖給出不同的答案。因此,我的答案是各種各樣的。
下面就是我認(rèn)為的成為一名優(yōu)秀的程序員需要做的一些事情。記住,想成為一名程序員,很多條路可走,這里列出的只是我的方法。
1. 解決你自己的問(wèn)題
從外面獲取答案和自己解決問(wèn)題、找到答案,這兩種方式是有區(qū)別的。當(dāng)你自己解決一個(gè)問(wèn)題時(shí),你不僅解決了這一個(gè)問(wèn)題,也意味著解決了跟它類(lèi)似的數(shù)百萬(wàn)問(wèn)題。這是一個(gè)先投資后收獲的過(guò)程。有時(shí),你可能需要花2到3天的時(shí)間解決一個(gè)問(wèn)題,這沒(méi)什么;這是你的前期投資。
2. 從做小程序開(kāi)始
我說(shuō)的小程序,是指100行左右的。目前為止,《Java程序設(shè)計(jì)教程實(shí)驗(yàn)手冊(cè)(翻譯版)》這本書(shū)是我見(jiàn)過(guò)的最好的編程書(shū)。從第一章到第十章,里面的所有習(xí)題都做一遍。當(dāng)你做完了這些,你就對(duì)編程有了相當(dāng)?shù)恼莆樟恕?/p>
3. 仿造軟件
找一個(gè)你喜歡的網(wǎng)站或游戲,把它仿造出來(lái)。在你真正的想做一件項(xiàng)目前,先做完這個(gè)。這個(gè)能促使你學(xué)到前沿的編程技術(shù),而且能讓你更容易的被招聘公司選中。做3-5個(gè)這樣的仿制項(xiàng)目后,你就能實(shí)現(xiàn)任意的你想要的東西了。
4. 每個(gè)項(xiàng)目都要學(xué)到新東西
每次項(xiàng)目都努力使用一些聽(tīng)到過(guò)但從未使用過(guò)的新東西。沒(méi)有使用過(guò)Jquery,那下次項(xiàng)目中就使用它;沒(méi)有試過(guò)測(cè)試驅(qū)動(dòng)開(kāi)發(fā),下次項(xiàng)目就是你的實(shí)驗(yàn)品;你明白我的用意,對(duì)嗎?
5. 說(shuō)“行”
如果有人請(qǐng)求你為他做些什么東西,記得要說(shuō)“行”——如果你從來(lái)沒(méi)有給別人做過(guò)什么東西的話(huà)。我知道你可能會(huì)想,我自己還有無(wú)數(shù)的東西要做呢,但從經(jīng)驗(yàn)來(lái)看,除了把主要時(shí)間花在自己有利可圖的項(xiàng)目上外,你也應(yīng)該花一些時(shí)間做一些慈善項(xiàng)目。這樣做你會(huì)得到人們的認(rèn)可,人們會(huì)想著你,如果有機(jī)會(huì)的會(huì)話(huà),他們就會(huì)引薦你。
6. 交結(jié)程序員朋友
這是另外一個(gè)獲得引薦機(jī)會(huì)的方法。總有機(jī)會(huì),你的程序員朋友的盤(pán)子裝滿(mǎn)了,他們需要有人把多余的商業(yè)機(jī)會(huì)接下來(lái)。這時(shí)他們需要你出現(xiàn)。同樣,當(dāng)你的盤(pán)子裝不下時(shí),你也需要有人幫你把活接走。
7. 成為一個(gè)領(lǐng)域?qū)<?/strong>
廣聞博識(shí),同時(shí)要至少精通其中一項(xiàng)。編程世界很大,沒(méi)有人能掌握所有東西,所以,要有一個(gè)專(zhuān)長(zhǎng)。例如,成為一個(gè)本地應(yīng)用或金融軟件方面的專(zhuān)家。