注:本文采用意譯而不是直譯web
在我當初剛從事 web 開發的時候,有不少重要的事我並無事先了解。如今看來,個人不少指望都和現實有很大的差距。在這篇文章裏,我會告訴你 20 件事情,這些都是在你準備開始或者剛開始 web 開發不久的時候就應該知曉的。這有助於你更好地正視本身的指望,同時少走一些彎路。編程
編程能夠隨時開始,並不須要學位。在互聯網上你能夠找到不少資源,尤爲是一些基礎知識。你徹底能夠自學編程,同時求助於互聯網。瀏覽器
剛開始學習 web 開發的你並無足夠的知識能夠解決當前遇到的問題,這很正常,但並不意味着你不能解決這些問題。學會谷歌是一項重要的技能,能夠幫助你節省大量時間。服務器
有太多東西要學了。單看 JavaScript 的流行框架,就有:React,Vue 和 Angular。你沒辦法學習全部的框架,而且也沒有這個必要。你只須要專一於你喜歡的或者公司目前使用的框架便可。框架
不少沒有經驗的開發者會寫一些花裏胡哨的代碼,以此向其餘開發者炫耀本身的編碼能力。請務必不要這麼作,你應該儘量地保持代碼簡潔。工具
根據個人經驗,開發者對測試工做比較懈怠。大部分的開發者都以爲測試環節不是頗有趣。畢竟,你是來製造東西的,不是來破壞東西的。
大部分時候你都會和截止日期作鬥爭。一旦意識到所剩時間很少,第一件應該放棄的事就是測試。儘管你們都知道這可能會致使很差的結果,但的確是這樣作的。佈局
軟件開發中的時間預估一般都是不許確的。對於一個小小的功能,你會以爲一小時內就能搞定,可是當你查看代碼後,你會發現:要想實現這個小功能,必須重構大量代碼。這樣看來,一小時絕對是搞不定了。學習
剛開始從事開發的時候,你想作的只是修復一些東西。只要代碼能夠運行就夠了。對於那些缺少經驗的開發者來講,能夠運行的軟件和運行良好的軟件沒有差異。但隨着你成長爲一名真正意義上的開發者,你將不得不面對之前寫的舊代碼,而後心想:「這些麪條式代碼真的是我以前寫的嗎?」好吧,在這種狀況下你只須要作一件事:好好嘲笑一番,而後重構一下這些亂糟糟的代碼。測試
調試代碼是你的一個主要工做。寫出徹底正確的代碼是不可能的,尤爲是在你經驗尚缺的時候。缺少經驗的開發者之因此須要花大量時間去調試,是由於他們不知道應該查看哪裏,有時候他們甚至不知道應該找什麼。最糟糕的是,大部分時候,這些 bug 是你本身形成的。網站
Internet Explorer,又名 Internet Exploder,將會讓你由衷厭惡本身書寫 的 CSS。即便是最基本的樣式,在 IE 瀏覽器中也會崩掉。不少時候,你都會疑惑爲何會存在這麼多不一樣的瀏覽器。對於瀏覽器的兼容問題,大多數公司採起的作法是隻支持 IE11 或者更新的版本。
忙活了一天後,開發服務器或者版本控制服務器最後會關閉。若是你不是在本地寫的項目,那你就沒辦法繼續手頭的工做了。這時候仍是喝杯咖啡休息片刻吧。
同事可能會和你聊聊最新的技術或者工具,雖然你頻頻點頭以表贊同,但事實上你並不理解他說的那些東西。
編程就是知識的應用,沒有必要記住全部的東西。你隨時能夠在網上找到資源,只須要知道去哪裏找就能夠了。作項目、積累經驗,這些東西天然就記住了。
最重要的是,你要有足夠的創造力。編程說白了就是解決問題,一樣的問題能夠用多種方式解決。創造力有助於你更輕鬆有效地解決問題。
你的大部分時間將花費在閱讀上。從各類途徑閱讀並瞭解新的技術、最佳實踐、工具等,時刻關注業界最新動態。固然,也不要忘了多看書。總而言之,閱讀能夠擴大你的知識面,作到與時俱進。
嘗試讓你的網站適配全部的設備是一件很煩人的事。設備和瀏覽器的種類數不勝數,總會有某一臺設備的某一個瀏覽器沒法正常顯示你的網站。
調試很耗時間,尤爲是在你不知道應該查看哪裏、查看什麼的時候。瞭解代碼運行機制並掌握調試工具的使用,能夠幫你省下大量時間。若是你但願提升本身的調試能力,你能夠了解開發者工具在瀏覽器中是如何工做的。
當遇到一個沒法解決的難題時,你可能會求助於谷歌。大部分時候,你會在諸如 StackOverflow 這樣的論壇獲得有建設性的解答。但更多時候,只靠複製粘貼這個回答並不能解決你的問題。這時候,你的問題解決能力和創造力就顯得尤其重要了。
在開始編程以前,你應該花時間找一款不錯的 IDE。免費的也好,收費的也好,好的 IDE 將會讓你的代碼生活更加愉快。IDE 能夠作到語法高亮,也能夠展現語法錯誤。大部分 IDE 還提供了各類定製插件。
若是你以前習慣經過用戶圖形界面(GUI)工做,那麼在剛轉爲使用終端的時候可能會以爲不知所云。終端是一個強大的工具,能夠比圖形工具更快地完成任務。你應該學會熟練地使用它。
當你想要建立一些功能特性的時候,你應該先查看一下 GitHub 上是否已有相似的輪子存在。針對你想要創造的這個功能,可能早就有流行且穩定的庫了。多看看一些文檔友好且更新活躍的項目。若是你想要新增或者重寫項目的功能,你能夠選擇建立 PR 或者 fork 項目。