致剛入行的前端工程師
作者:簡書 - lanzhiheng
微博@藍智恆
已獲轉載授權
講真,這篇文章已經憋了好多天了。其實本文可以說是「起於前端,但不止於前端。」
寫作的契機是最近在指導一位北京的哥們寫前端,有感而發罷了。希望能夠給同行一些可行性的建議吧。
文章開始之前我想要深情地問候一下社保業務的相關部門,你們高耦合的業務,讓我在天河區兜兜轉轉了小半天,卻只是為了一張難以識別的照片。讓這篇文章拖到深夜才能完成。
OK,回歸正題。這篇文章出於一個剛轉行6個月的初級前端之手,故不能保證看了這篇文章的人就一定能做好前端工程師的工作(我自己也尚且沒做好),也不確定這篇文章能夠幫到多少人,不過如佛家所言
「能度一人是一人吧」
1. Github,Github,Github
重要的事情所以說三遍。如今前端圈大熱,除了前端項目天生開源的優勢之外,Github這個網站功不可沒。
我們打開瀏覽器的調試模式就能看到對應頁面的結構,以及對應的樣式實現,我們也可以通過恰當的方式獲取到頁面的js代碼。
如果說前端天生的開源知識是「發散」的,那我覺得github就是這類知識的一種「聚合」。
如今幾乎所有的前端技術都是開源的,前端開發人員可以很方便地在上面找到一些高效的插件庫。這不但可以提高我們的開發效率,還可以藉此學習一些前端知識。
如果你想搞前端,那我覺得咱們面試之前起碼得有個Github的賬號,畢竟這個全球最大的同性交友網站對於前端工作者來說太重要了。
但有一點要注意的Github跟百度雲盤是不一樣的。他是程序員交流的地方我們只需要上傳代碼就可以了,我們不需要通過視頻來交流(曾經有同學說想往Github上傳視頻)。
2. 小心培訓班
如果你像我一樣窮到上不起培訓班的話,我相信你也不會對培訓班有什麼特別的好感。更加不會依賴培訓班。
當然,我這裡只是叫你小心培訓班。並沒有否定所有培訓班,畢竟我知道有一些培訓班還是挺用心的。
(1)培訓班並沒有教會你寫代碼
很抱歉北京的朋友,這裡得借用一下聊天記錄
這是我覺得比較操蛋的一件事情。畢業之後似乎就再也沒遇到過用拼音命名變數的情況。當時我只是建議這位哥們以後都用英文。並沒有說為什麼。
先引入一位大牛的話
「代碼是寫給人看的,並且可以順帶運行到機器上。」
你使用拼音來命名的話中國人都尚且看不懂,更何況是老外?而且咱們中國文化博大精深,用拼音來命名跟使用a, b, c 來命名其實並沒有什麼區別,語義並沒有明確多少。
為了減少代碼的字元數量而把變數名轉換成a, b, c這種簡化形式,那是優化器做的事情。而我們作為程序員,儘可能讓自己的代碼更語義化一些,請選擇適當的英文來命名你的變數。(當然,如果你使用國人開發的易語言,那就當我沒說。)
(2)培訓班並不會幫你找到工作
被這樣說簡直壓力山大,您付費都尚且做不到的事情,我這種免費的服務肯定也做不到。培訓班能做的頂多只是幫你梳理一些基礎知識(或許有的只是教你背書?)知識能吸收多少主要是看自己。
再者,如今許多公司對程序員的要求已經不限於他能否寫代碼(或者說敲鍵盤?)。還有一些其他的潛規則。我舉幾個例子
合作意識。
溝通能力。
編碼風格。
.....
當然還有很多,從這位兄弟的情形來看,某些培訓班只是教會了我們敲鍵盤,許多軟實力的東西並沒有提點太多。過於依賴培訓班的話,我相信人們會逐漸疏於其他軟技能的練習,這其實並不利於就業。
對於沒有經驗的技術工作者來說更是如此。技能已經不夠硬了,其他方面如果不能稍微彌補一下那還談什麼就業?
3. 挑選一個合適的編輯器
一個好的編輯器能夠提高你的編碼效率,一個賞心悅目的編輯器能夠讓你開發的過程更加愉悅。
現在出現了許許多多優秀的編輯器,Vim, Emacs,Sublime Text,Atom, VSCode 等等。編輯器之間該如何選擇?本來就是個人喜好問題。
據我個人的使用體會,Vim跟Emacs兩個編輯器比較輕量級一些,但是他們的界面我只能說一般,而且學習曲線比較陡峭。如果你喜歡折騰,倒是可以嘗試一下。
Sublime Text是我目前發現周圍用的人比較多的編輯器,而我個人也比較推薦,他不但有豐富的插件,還有比較美觀的界面。更重要的是操作簡單,能夠滿足大部分開發需求。
雖說我推薦Sublime Text,但其實我是一個Atom用戶,兩者用起來感覺差不多。
Atom比較Cool的地方是,它是通過Web技術搭建起來的桌面端軟體。這也有個問題,畢竟它是通過Web技術搭建的(可以看成是運行在chrome內核的瀏覽器上網站),這就導致了這款編輯器相當耗電。
總之選擇一個自己喜歡的編輯器。寫代碼去吧!!
4. 獨立解決問題的能力
「這種能力是個人都有啊!!」
是嗎?
如果一個程序員在一些沒有耐心的老鳥面前問這種問題的話,我相信老鳥們不只是內心有千萬隻草泥馬在蹦騰,而是草泥馬早已脫口而出了。
「當然如果對象是妹子的話,我們倒是很樂意著手幫她解決這些問題。」
以上哥們明顯就還不具有這種獨立解決問題的意識,並不是說不能拿問題去請教別人。而是,您需要請教別人的問題,必須是自己已經動手嘗試解決,而且解決不了的問題。
畢竟程序員最怕打擾,咱們能不打擾就不打擾。
我們生活在如此幸福的時代,其實很多問題已經有大牛解決了,並且他們會把經驗分享到網上,我們需要做的只是組織好自己的問題簡單地Google,或者百度一下。這樣很難嗎?
如果連這點都做不到,那我覺得要進入一家公司或者是在一家公司里生存都是很艱難的事情(當然某些國有企業除外)。畢竟大部分公司需要的是能夠解決問題的程序員,而不是只會寫代碼的打字員。
5. 閱讀英文文檔
這讓我之前想起知乎上Vue.js 作者尤雨溪說過的一句話,其大意是:
我為什麼要浪費跟家人相處的時間來教你學英文?
如今大部分優秀開發的資源都是以英文的形式展現到網路上的。
當然不排除有些國內的熱心人會把他們翻譯成中文,再託管到相關網站上,但是,這畢竟是少數。而且中文文檔往往會跟不上國外官網的腳步。
還記得我當初用Python的時候,框架Django的中文版本是1.6.x而官方的最新版本已經到1.8.x了。
這也導致了,如果你用著新版本的框架,而看著舊版本文檔寫代碼的話可能會引入一些新版本裡面已經拋棄了的寫法,進而你的項目可能會出現一些詭異的行為。而且這類bug往往最難發現。
當然,並不是說你一定要英文很流利才行,但是最起碼要看得懂英文文檔。(實話說現在我工作快兩年了,看英文文檔還是有些吃力。)
6. 操作系統
好吧,允許我再啰嗦一下。
這裡我們談談操作系統,畢竟有些朋友還是會糾結選擇什麼操作系統。
Windows
優點: 用戶頁面可用性較好,豐富的桌面端軟體,玩遊戲一級棒。
缺點: 軟體廣告比較多,病毒相對多些。命令行不夠友好(我個人覺得相當操蛋)。
Linux
優點: 命令行非常好用,開源社區活躍,發行版本比較多。
缺點: 常用桌面軟體開發商比較少,QQ這些都沒有。有些發行版不怎麼穩定,經常卡死。
MacOS
優點: 命令行非常好用,界面優雅,可用性高。蘋果商店有許多windows平台所沒有的優質軟體。
缺點: 設備昂貴,普遍配置不高,不太適合打遊戲。
以上是我使用操作系統的一些小體會吧。至於具體使用什麼系統各位可以自行掂量,但是個人覺得結合命令行開發會更爽一些。因此我曾經選擇過Linux。後來,機緣巧合之下買了台Macbook之後就再也回不了頭了。
正如業界的人所讚賞的
「MacOS就像是Liunx跟Windows的結合體。它既有Windows的用戶友好的界面,也有Linux優雅的命令行。」
不過這玩意兒
用了之後就很難回頭了。
我有個同學買了它之後,乾脆把LOL(英雄聯盟)都戒了。
7. HTML + CSS + JavaScript
現在才談這些技術點並不是說這東西不重要。只是我覺得這三樣東西就算我不說,只要你有心搞前端肯定會去學,那還有說的必要嗎?(此處省略百萬字)
8. 尾聲
都不知道自己寫了多少字,只希望今晚能夠發布出去。希望能對有緣看到此文的朋友有那麼一點幫助吧。
Happy Coding and Writing !!
※它們養活了一票國產軟體!這些開源軟體你知道嗎
※Swift 再等等?我的答案是:快上車
※兩個程序的愛情故事
※王小波的計算機水平到底有多好?
TAG:程序猿 |
※前端工程師眼裡的大前端
※前端工程師的未來在哪裡?
※為前端工程之崛起而編程!
※軟體工程師開始漸退,演算法工程師正在崛起是標誌走向大數據時代
※工程師的時間
※前微軟工程師為勒索軟體服務而被判入獄!
※全站工程師技能 之 前端可視化
※寫給已經走入或即將走入「土木工程行業」的你
※工程師的窘境和對策
※零基礎轉行成為前端開發工程師,很難嗎?
※蘇軾的工程師生涯
※互聯網職位之前端工程師
※師說丨班育安:「工程師老闆」提升了整個行業的進入門檻
※一名合格前端工程師的進階指南
※CV視覺工程師入職培訓暑期班
※前端工程師面試題(性能優化)
※AI工程師年薪遠超IT工程師,值得每一個技術人用心投入
※嵌入式系統工程師的十個「不要」
※石材工程的工程標準
※工程師的灰色收入有哪些?