作為程序員,在日常的 Coding 中,你遇到過哪些坑?又有什么樣的心得與體會(huì)。
作者 | Alec Jones
譯者 | 彎月,責(zé)編 | 屠敏
出品 | CSDN(ID:CSDNnews)
以下為譯文:
大家好,我名叫Alec,今年17歲,我從12歲起就開始學(xué)習(xí)網(wǎng)絡(luò)開發(fā)了。我遠(yuǎn)非優(yōu)秀的開發(fā)人員,但我學(xué)到了一些普通開發(fā)人員應(yīng)該知曉的經(jīng)驗(yàn)教訓(xùn)。
以下是我學(xué)到的一些經(jīng)驗(yàn)教訓(xùn),我認(rèn)為每個(gè)開發(fā)人員,特別是新手,都應(yīng)該了解這些經(jīng)驗(yàn)教訓(xùn)。
沒有人無所不知
沒有開發(fā)人員知道一切,所以你也不需要知道一切。
作為一名開發(fā)人員,你需要用心學(xué)習(xí)知識,例如在PHP 5.6版本中操作數(shù)組的方法,除此之外還有很多重要的技能需要掌握。是否知道這些小知識點(diǎn)無關(guān)緊要,即便忘了也可以上網(wǎng)搜索。
作為開發(fā)人員,很多技能遠(yuǎn)勝于學(xué)習(xí)這些微不足道的知識,例如:
提高解決問題的能力
提高團(tuán)隊(duì)合作和溝通技巧
增加對編程概念和語言的了解
創(chuàng)建優(yōu)秀的項(xiàng)目來展示你的工作
專注于編寫整潔高效的代碼
成為開發(fā)人員的一個(gè)好處是你不需要知道一切。你只需要知道解決問題的方法。
Bug有助于學(xué)習(xí)
相信你們都聽過《五只小猴子》的童謠,下面是bug版的童謠:
99個(gè)Bug在代碼里鬧,
99個(gè)Bug在代碼里鬧,
打個(gè)補(bǔ)丁,把1個(gè)改掉。
127個(gè)bug在代碼里鬧……
如果你在編程的過程中沒有遇到任何Bug,那么就意味著你什么都沒學(xué)到。
沒有遇到Bug并不意味著你是一位偉大的開發(fā)人員,你太聰明了,壓根不會(huì)犯錯(cuò)。這只能說明類似的東西你開發(fā)過很多次,你已經(jīng)知道如何避免這些Bug。
遇到Bug說明你成長了。開發(fā)中存在無窮無盡的Bug,因此你必須學(xué)會(huì)處理這些Bug,越快越好。
沒有必要接受正規(guī)的教育
17歲的我非常糾結(jié)這個(gè)問題。我應(yīng)該上大學(xué)攻讀計(jì)算機(jī)科學(xué)學(xué)位嗎?
這對我來說是一個(gè)棘手的問題。但是,大多數(shù)讀這篇文章的人可能不是17歲,可能你們大多數(shù)人已經(jīng)工作了。
如果你大學(xué)畢業(yè),那么絕對沒必要再回去攻讀計(jì)算機(jī)科學(xué)學(xué)位。你也不需要參加編程培訓(xùn)班。
GitHub中一些有趣的項(xiàng)目可以為你代言。如果你能夠證明自己擁有編程的能力,那么你的背景并不重要。
這只是一個(gè)如何通過最佳方式學(xué)習(xí)的問題。
我沒得選,只能在周末學(xué)習(xí)編程,因?yàn)槲也荒茉诟咧衅陂g請6個(gè)星期的假去參加培訓(xùn)班。
如果你想回到大學(xué)攻讀計(jì)算機(jī)科學(xué)學(xué)位,或參加為期8周的培訓(xùn)班,那盡管去吧。但這沒有必要。
上網(wǎng)搜索也是一門技術(shù)
如果你想成為一名出色的開發(fā)人員,那么就需要加強(qiáng)上網(wǎng)搜索的能力。能夠找到你所需要的解決方案和代碼至關(guān)重要。
你需要頻繁地上網(wǎng)搜索,尤其是在學(xué)習(xí)一種全新的技術(shù)的時(shí)候。
有時(shí),你需要將一些不明的東西添加到代碼中。有時(shí),你需要找到一個(gè)不太理解的問題的解決方案。但好消息是,網(wǎng)上都有答案。
勤思考
在編寫代碼的時(shí)候,你需要思考:“如何才能用最好的方式編寫這段代碼?”
這方面我做的并不好,所以經(jīng)常寫出水平很次的解決方案。通常,一旦腦海中涌現(xiàn)某個(gè)解決方案,我就會(huì)立即動(dòng)手寫出來。大多數(shù)時(shí)候,問題的第一個(gè)解決方案并不是最好的。
寫代碼無需花費(fèi)太多時(shí)間。任何人都可以快速地編寫代碼,但結(jié)果往往很草率。你需要花時(shí)間想出一個(gè)優(yōu)秀、穩(wěn)定的解決方案。
測試驅(qū)動(dòng)可能很無聊,但是它能夠極大地推動(dòng)你勤思考,因?yàn)槟惚仨毧紤]清楚期望的功能以及實(shí)現(xiàn)方式。如果你提前做計(jì)劃,就無法動(dòng)手寫代碼了。
當(dāng)然,凡事都有例外。我并不是說你應(yīng)該安靜地坐下來仔細(xì)考慮每一行代碼。
然而,勤思考能夠?yàn)槟闶s重構(gòu)和改bug的時(shí)間。
當(dāng)心網(wǎng)上的教程
剛開始學(xué)習(xí)編程時(shí),可以從網(wǎng)上找一些教程,但我認(rèn)為你應(yīng)該利用的資源遠(yuǎn)不止這些教程。
當(dāng)你按照教程學(xué)習(xí)編程時(shí),實(shí)際上可能什么都學(xué)不到。雖然你可能學(xué)到了一些知識,但你并沒有真正明白自己編寫的代碼以及這樣做的原因。
此外,這些教程還可能會(huì)漏掉一些重要的代碼。初學(xué)者更喜歡直接從教程中復(fù)制和粘貼代碼,而不會(huì)認(rèn)真思考問題。
一種更好的學(xué)習(xí)編程的方式是構(gòu)建自己的項(xiàng)目。找到一小段代碼,然后自己編寫代碼、解決bug、閱讀文章和帖子。
最有效的學(xué)習(xí)方法是東拼西湊出一個(gè)能夠運(yùn)行的程序。
制表符比空格好
讀這篇文章的時(shí)候,你肯定在想:“很明顯,這個(gè)小孩肯定喜歡使用空格?!狈且?,每個(gè)人都應(yīng)該在編程的時(shí)候,使用制表符。
我明白,每臺(tái)計(jì)算機(jī)上的制表符可能不盡相同。但是,你只需要輕輕敲下制表符就好,而無需哐當(dāng)哐當(dāng)?shù)厍么蚩崭矜I。努力成為喜歡制表符的人吧!
聯(lián)系客服