初学者内心最慌的问题:适不适合做一名码农(程序员)??
什么樣的人才適合做一名程序員。現(xiàn)在無論是線上還線下,都有越來越多的教育機(jī)構(gòu),速成程序員,我不否認(rèn)里面可能有還不錯(cuò)的課,不可否認(rèn),在當(dāng)今社會(huì)程序員算是一個(gè)中高收入的職業(yè),所以越來越多的人想去當(dāng)程序員,可我今天想聊聊的是, 可能并不是每個(gè)人都適合當(dāng)程序員,或者說,做程序員會(huì)有很好的職業(yè)發(fā)展。所以我覺得在你擼起袖子下決心成為一名程序員之前,在你花錢花精力去學(xué)習(xí)之前,可能應(yīng)該仔細(xì)想想,自己是不是適合這個(gè)職業(yè),做這個(gè)職業(yè)會(huì)不會(huì)有很好的發(fā)展。
歡迎更多喜歡it,在學(xué)習(xí)it的小伙伴加入我們的Python交流群:7848.6745
在開始聊之前,我想先說明,我自己的計(jì)算機(jī)知識(shí)完全在美國期間自學(xué)的,也并不認(rèn)為自己算是個(gè)很優(yōu)秀的程序員,以下觀點(diǎn)完全是我自己的一些想法 ,肯定有很多不準(zhǔn)確的地方,有說的不對(duì)地方,也歡迎多交流。
自學(xué)能力:
這可能是做一名程序員最最重要的素質(zhì)了。這里說的自學(xué)能力不僅僅局限于看一本書,或者通過網(wǎng)絡(luò)課程自學(xué)的能力。因?yàn)檫@個(gè)行業(yè)發(fā)展太快的原因,很多技術(shù),平臺(tái),語言都在不斷的迭代更新,所以一個(gè)程序員永遠(yuǎn)都在不停的學(xué)習(xí),學(xué)習(xí)新的平臺(tái),學(xué)習(xí)新的語言(編程語言),學(xué)習(xí)新的架構(gòu),等等等等。說具體一點(diǎn),自學(xué)能力在這個(gè)行業(yè)可以主要分為兩點(diǎn),一是通過搜索尋找答案的能力,第二是通過示例舉一反三解決自己問題的能力。有人可能會(huì)認(rèn)為,搜索誰不會(huì),這哪還能算能力。這里說的更多是去自己搜索解決問題的主動(dòng)性,舉個(gè)例子來說明這個(gè)問題,我之前帶過一個(gè)新人,他會(huì)為我說A問題怎么解決,我會(huì)告訴他去用tool B, 他會(huì)說好,然后沒過多久,他又回來問我tool B怎么用啊。這樣的程序員不僅不可能做的好,還會(huì)被同事和領(lǐng)導(dǎo)煩死。一個(gè)程序員,應(yīng)該有在別人給你指引一個(gè)大方向,或者完全沒有人告訴你大方向的時(shí)候,通過搜索,去一步一步解決問題的能力,然而每一步你能找到的答案,基本上都不可能是完全針對(duì)你的問題的,你都要通過去看別人的問題,別人的解決方法,去快速的用類推的方法嘗試解決自己問題。比如我在那個(gè)自學(xué)計(jì)算機(jī)的回答里,提到了幾門伯克利的課程,里面給了課程號(hào)和youtube的鏈接,然而就收到了很多人問我看不了怎么翻墻,還有人說鏈接過去有版權(quán)的問題被限制了,問我該怎么辦。如果這種情況下,你想不到去晚上搜課程號(hào)找新的鏈接,或者自己去找翻墻的教程,我覺得,你真的不適合當(dāng)一名程序員。在程序員工作的過程中,會(huì)遇到各種各樣沒人解決過的問題,如果有人給你指引個(gè)大方向,你就應(yīng)該感激了,不可能指望總有人一步一步帶著你解決這個(gè)問題,如果別人要這樣帶你,還需要你干嘛呢。
想象力和創(chuàng)造力:
有人會(huì)覺得程序員是個(gè)機(jī)械刻板的工作,其實(shí)并不是,很多時(shí)候,程序員在做的工作就是動(dòng)腦子想出巧妙的方法解決問題。舉個(gè)簡單的例子,這個(gè)例子是個(gè)網(wǎng)上常見的面試題,雖然現(xiàn)在在真正的技術(shù)面是不可能出現(xiàn)了,但我覺得解決這個(gè)問題可以被看作是一個(gè)程序員工作中解決問題的縮影(真正工作中的問題當(dāng)然會(huì)復(fù)雜,難很多)。例如,給你一個(gè)5升的和3升的杯子,你只有這兩個(gè)杯子,問你怎么精準(zhǔn)的量出4升的水。這個(gè)問題,不像是解決物理或者數(shù)學(xué)問題,你可以用邏輯一步步推倒出來,更多是用小聰明,巧思。程序員在工作中解決問題的時(shí)候也是這樣,很多時(shí)候沒有固定的公式,而你手中的工具就是那些,但你要能想出新的思路用現(xiàn)有的工具解決問題。這就是為什么,即使你再努力,把專業(yè)知識(shí)學(xué)的再熟練,也不一定能成為一個(gè)優(yōu)秀的程序員。簡單的來說,程序員更多時(shí)候不是像科學(xué)家一樣具有深厚的知識(shí)儲(chǔ)備,用嚴(yán)格數(shù)學(xué)計(jì)算來解決問題,而更像熟練使用工具,但經(jīng)常需要小聰明和靈光乍現(xiàn)的巧思來解決問題的工匠。
耐心,推理和分析能力:
debug, 是一個(gè)程序員避不開的工作,再好的程序員也會(huì)寫出bug, 再多的測(cè)試也避免不了bug的出現(xiàn),優(yōu)秀的程序員,嚴(yán)格的測(cè)試,只會(huì)減少bug的出現(xiàn)。一個(gè)大的IT公司的產(chǎn)品,通常是成百上千的程序員合作出來的產(chǎn)品,你可以把這樣的程序看作一節(jié)節(jié)鏈接起來的水管,而用戶,只是在水龍頭那端用水的人,每一節(jié)水管,都是由不同的組做出來的,每個(gè)程序員,只是負(fù)責(zé)那個(gè)水管的一部分。很多時(shí)候,當(dāng)一個(gè)bug出現(xiàn)的時(shí)候,表象緊緊是水龍頭那端沒水了,誰也很難判斷是哪根水管的哪個(gè)部件出問題了,而作為一個(gè)程序員,就要開始大海撈針一般的找問題。當(dāng)然,不可能是真的像大海撈針一樣慢。基本方法就是,你做出一個(gè)假設(shè),你認(rèn)為哪里可能除了問題,然后修改一下程序,驗(yàn)證你的判斷,有時(shí)候運(yùn)氣好找到問題了,大多數(shù)時(shí)候,找不到,但是你做出調(diào)整后的程序會(huì)有一些變化,這些變化,就是你做出下一步假設(shè)的依據(jù),根據(jù)這些依據(jù)做出邏輯推理產(chǎn)生下一步假設(shè),很多時(shí)候debug可以一步步這樣進(jìn)行下去,最終找到問題根源。但也有的時(shí)候,你會(huì)像走迷宮一樣,毫無頭緒,這種時(shí)候,就需要你有耐心,在時(shí)間壓力和frustration下能繼續(xù)保持冷靜,繼續(xù)你的邏輯推理和分析,這種時(shí)候,往往是做程序員最艱難的時(shí)候。
說到這,可能大家大概明白了,為什么碼農(nóng)這樣的一個(gè)職業(yè)并不適合所有人,如果你具有以上特質(zhì),并且enjoy做這樣的工作,那么你很適合當(dāng)程序員,但如果你沒有以上的能力,或者很討厭做這樣的事情,在投入精力和時(shí)間準(zhǔn)備成為一個(gè)程序員之前,不妨看看自己還有什么其他的選擇。
歡迎更多喜歡it,在學(xué)習(xí)it的小伙伴加入我們的Python交流群:7848.6745
需要學(xué)習(xí)資料的可以進(jìn)群領(lǐng)取~
總結(jié)
以上是生活随笔為你收集整理的初学者内心最慌的问题:适不适合做一名码农(程序员)??的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈种子搜索算法及C++实现方法
- 下一篇: 哥哥被我打哭了的飞鸽传书