從人的角度看抱慌。
衡量一份工作是否適合自己的標(biāo)準(zhǔn)至少有三個:你所擅長的逊桦、你所喜歡的、對你最有價值的(最能掙錢的)抑进。如果你把世界上所有的工作按自己的標(biāo)準(zhǔn)分類到這三個組里强经,理想的狀態(tài)是這三個組存在交集上,然后你從這個交集里選一個寺渗。然而不幸的是匿情,對有些人來講,這三者的交集為空信殊,還有更不幸的情況是任意兩組交集都為空炬称,最不幸的情況是這三個集合本身都為空。當(dāng)一個人不知道自己擅長什么鸡号,也不知道自己喜歡什么转砖,也不知道什么對最自己的人生最有價值的時候,就屬于這種最不幸的情況鲸伴。根據(jù)題目描述不難推測出:程序員這個職業(yè)目前不在題主的擅長集府蔗,也不在熱衷集,或許在價值集汞窗。
從程序員這個職業(yè)的角度看姓赤。
判斷一個人是否適合做程序員的標(biāo)準(zhǔn)很多。最關(guān)鍵的幾個是:
0. 理解力(或自學(xué)的能力):程序員的起點仲吏。具有這個能力的特點是不铆,如卡馬克說的:“給我一冰箱的漢堡和互聯(lián)網(wǎng)蝌焚,我就能解決所有問題∈某猓”只洒。如果你從小養(yǎng)成了個習(xí)慣或思維定勢——覺得沒有老師教就學(xué)不會,那你不適合當(dāng)程序員劳坑。如果你學(xué)了的東西只是為了過考試毕谴,比如學(xué)完高中物理還買個仙人掌放電腦前防輻射,你也不適合當(dāng)程序員距芬。
1涝开、邏輯思維力(或推衍的能力):這個是做稱職程序員的底線。比如不能寫的代碼出個Exception就抓瞎不知道哪里出了問題框仔,而是有能力從Exception順藤摸瓜反推出哪里出了問題舀武。Code即邏輯,Code有問題即邏輯有問題离斩。沒有邏輯的人是無法找到邏輯漏洞的银舱,也寫不出條理清晰的代碼。
2捐腿、抽象思維力:這個能力大體可以決定一個程序員的上限纵朋。沒有這個能力是做不出一切皆文件這種抽象的,可以試試學(xué)習(xí)函數(shù)式編程茄袖,如果無法理解并使用高階函數(shù),你不適合做程序員嘁锯。再來幾個更初級的例子宪祥。如果你學(xué)寫代碼的過程中,理解指針的指針的指針這個東西的時間超過了一天家乘,那你不適合當(dāng)程序員蝗羊。(強(qiáng)調(diào)一下,這里不適合是指你無法成為一個優(yōu)秀的程序員仁锯,你想做當(dāng)然肯定是可以做的耀找。)
3、專注力:我理解的專注力只是興趣的衍生品业崖,你打Dota打CS打個幾個小時能越打越精神野芒,為什么?因為你覺得有趣兒双炕。如果也覺得寫代碼有意思狞悲,那專注自然就不是個事兒。
4妇斤、想象力與記憶力:這個不是說過目不忘的那種摇锋,只是說你大概記得有什么類丹拯,都有什么函數(shù),每個函數(shù)里的大體過程是什么樣的荸恕。然后走路乖酬、坐地鐵的時候就可以用想象力在腦子里做代碼的重構(gòu)啦狮腿,找Bug啦什么的宣吱,然后回到電腦前就噼里啪啦敲代碼。我聽說有人在夢里也能寫代碼球匕,我還沒有鍛煉出這個技能双肤。當(dāng)然施掏,這些能力不是必須的,你隨身帶個筆記本也行茅糜,就是效率低些七芭,影響職業(yè)成長的上限。
5蔑赘、英語:很遺憾地狸驳,目前多數(shù)有價值的東西都是英文的。所以無障礙閱讀Stackoverflow的回答是起碼的缩赛。
6耙箍、閱讀速度:我想不出一個和合適的能力名與之對應(yīng)。大體是指看書酥馍、看網(wǎng)頁辩昆、看和理解代碼的速度、如果有需要旨袒,能從一大堆Log中迅速找出關(guān)鍵信息(當(dāng)然不是僅僅閱讀速度的問題汁针,還確定于你所能熟練使用的文本處理工具)、能抓到在屏幕上一閃而過的異常訊息(不是說能記住砚尽,而是說一眼就能感覺出有些不對勁施无,然后回去細(xì)看。)有不少人也不笨必孤,但是聰明反被聰明誤猾骡,從小不怎么看書,閱讀速度上不去敷搪,一個Stackoverflow的回答兴想,有人掃一眼幾秒就抓到重點,有人要看3分鐘购啄。有人看代碼速度襟企,一目十行,再善用佳軟狮含,再加強(qiáng)大的理解力和扎實的基礎(chǔ)知識顽悼,找個Bug幾分鐘的事兒曼振,有人看代碼瞪著屏幕一個單詞一個字地看,文件一多就閱讀障礙了蔚龙,如果理解力再差些冰评,找個同樣的Bug找一上午。當(dāng)然這個技能不是很核心木羹,因為它無法獨立帶來價值(有人看小說快甲雅,但是看代碼慢,就是由于別的核心能力不足坑填,閱讀速度快也沒太大用)抛人。但是這個技能很錦上添花、拉開差距(閱讀速度+理解力=更快的學(xué)習(xí)能力)脐瑰。好在這個技能算是可以鍛煉的妖枚,只是如果你比別人晚了20年開始鍛煉的話,怕是再努力也要幾年才能追趕上苍在。
7绝页、溝通:很多人都覺得程序員不需要溝通,其實只是板磚碼農(nóng)不太需要而已寂恬。你起碼要能清楚地解釋自己的方案续誉,更好地溝通是能把自己的好想法推廣出去。當(dāng)然初肉,如果你1-4都是非常NB的水平酷鸦,你不溝通也沒有問題。桃李不言朴译,下自成蹊井佑。你一個人把大家的代碼都寫了,你一句話不講眠寿,大家也會把你當(dāng)神的。
以上幾個能力焦蘑,0-6應(yīng)該在學(xué)校就獲取到80%盯拱,7在學(xué)校獲取到50%。能把上面幾點全部做到很好的人是極少數(shù)例嘱,能把其中的2狡逢、3點做好大體就算“適合”做程序,能在軟件行業(yè)找到合適的崗位了拼卵。只是如果只有2奢浑、3點能做好,在軟件業(yè)的職業(yè)發(fā)展不會很理想腋腮。
如果實在分辨不出哪個適合自己雀彼,那就選自己最喜歡做的壤蚜。
來自stack overflow