致剛入行的前端工程師

發表於2017-04-13

講真,這篇文章已經憋了好多天了。其實本文可以說是“起於前端,但不止於前端。”

寫作的契機是最近在指導一位北京的哥們寫前端,有感而發罷了。希望能夠給同行一些可行性的建議吧。

致剛入行的前端工程師
Paste_Image.png

文章開始之前我想要深情地問候一下社保業務的相關部門,你們高耦合的業務,讓我在天河區兜兜轉轉了小半天,卻只是為了一張難以識別的照片。讓這篇文章拖到深夜才能完成。

OK,迴歸正題。這篇文章出於一個剛轉行6個月的初級前端之手,故不能保證看了這篇文章的人就一定能做好前端工程師的工作(我自己也尚且沒做好),也不確定這篇文章能夠幫到多少人,不過如佛家所言

“能度一人是一人吧”

1. GITHUB,GITHUB,GITHUB

致剛入行的前端工程師
Paste_Image.png

重要的事情所以說三遍。如今前端圈大熱,除了前端專案天生開源的優勢之外,GITHUB這個網站功不可沒。

我們開啟瀏覽器的除錯模式就能看到對應頁面的結構,以及對應的樣式實現,我們也可以通過恰當的方式獲取到頁面的js程式碼。

如果說前端天生的開源知識是“發散”的,那我覺得github就是這類知識的一種“聚合”。

如今幾乎所有的前端技術都是開源的,前端開發人員可以很方便地在上面找到一些高效的外掛庫。這不但可以提高我們的開發效率,還可以藉此學習一些前端知識。

如果你想搞前端,那我覺得我們們面試之前起碼得有個GITHUB的賬號,畢竟這個全球最大的同性交友網站對於前端工作者來說太重要了。

但有一點要注意的GITHUB跟百度硬碟是不一樣的。他是程式設計師交流的地方我們只需要上傳程式碼就可以了,我們不需要通過視訊來交流(曾經有同學說想往GITHUB上傳視訊)。

2. 小心培訓班

如果你像我一樣窮到上不起培訓班的話,我相信你也不會對培訓班有什麼特別的好感。更加不會依賴培訓班。

當然,我這裡只是叫你小心培訓班。並沒有否定所有培訓班,畢竟我知道有一些培訓班還是挺用心的。

(1)培訓班並沒有教會你寫程式碼

很抱歉北京的朋友,這裡得借用一下聊天記錄

致剛入行的前端工程師
Paste_Image.png

這是我覺得比較操蛋的一件事情。畢業之後似乎就再也沒遇到過用拼音命名變數的情況。當時我只是建議這位哥們以後都用英文。並沒有說為什麼。

先引入一位大牛的話

“程式碼是寫給人看的,並且可以順帶執行到機器上。”

你使用拼音來命名的話中國人都尚且看不懂,更何況是老外?而且我們們中國文化博大精深,用拼音來命名跟使用a, b, c 來命名其實並沒有什麼區別,語義並沒有明確多少。

為了減少程式碼的字元數量而把變數名轉換成a, b, c這種簡化形式,那是優化器做的事情。而我們作為程式設計師,儘可能讓自己的程式碼更語義化一些,請選擇適當的英文來命名你的變數。(當然,如果你使用國人開發的易語言,那就當我沒說。)

(2)培訓班並不會幫你找到工作
致剛入行的前端工程師
Paste_Image.png
致剛入行的前端工程師
Paste_Image.png

被這樣說簡直壓力山大,您付費都尚且做不到的事情,我這種免費的服務肯定也做不到。培訓班能做的頂多只是幫你梳理一些基礎知識(或許有的只是教你背書?),知識能吸收多少主要是看自己。

再者,如今許多公司對程式設計師的要求已經不限於他能否寫程式碼(或者說敲鍵盤?)。還有一些其他的潛規則。我舉幾個例子

  1. 合作意識。
  2. 溝通能力。
  3. 編碼風格。
    …..

當然還有很多,從這位兄弟的情形來看,某些培訓班只是教會了我們敲鍵盤,許多軟實力的東西並沒有提點太多。過於依賴培訓班的話,我相信人們會逐漸疏於了其他軟技能的練習,這其實並不利於就業。

對於沒有經驗的技術工作者來說更是如此,技能已經不夠硬了,其他方面如果不能稍微彌補一下那還談什麼就業?

3. 挑選一個合適的編輯器

一個好的編輯器能夠提高你的編碼效率,一個賞心悅目的編輯器能夠讓你開發的過程更加愉悅。

致剛入行的前端工程師
Paste_Image.png

現在出現了許許多多優秀的編輯器,Vim, Emacs,Sublime Text,Atom, VSCode 等等。編輯器之間該如何選擇?本來就是個人喜好問題。

據我個人的使用體會,Vim跟Emacs兩個編輯器比較輕量級一些,但是他們的介面我只能說一般,而且學習曲線比較陡峭。如果你喜歡折騰,倒是可以嘗試一下。

Sublime Text是我目前發現周圍用的人比較多的編輯器,而我個人也比較推薦,他不但有豐富的外掛,還有比較美觀的介面。更重要的是操作簡單,能夠滿足大部分開發需求。

雖說我推薦Sublime Text,但其實我是一個Atom使用者,兩者用起來感覺差不多。

Atom比較Cool的地方是,它是通過Web技術搭建起來的桌面端軟體。這也有個問題,畢竟它是通過Web技術搭建的(可以看成是執行在chrome核心的瀏覽器上網站),這就導致了這款編輯器相當耗電。

總之選擇一個自己喜歡的編輯器。寫程式碼去吧!!

4. 獨立解決問題的能力

“這種能力是個人都有啊!!”

是嗎?

致剛入行的前端工程師
Paste_Image.png
致剛入行的前端工程師
Paste_Image.png

如果一個程式設計師在一些沒有耐心的老鳥面前問這種問題的話,我相信老鳥們不只是內心有千萬只草泥馬在蹦騰,而是草泥馬已經脫口而出了。

“當然如果物件是妹子的話,我們倒是很樂意著手幫她解決這些問題。”

以上哥們明顯就還不具有這種獨立解決問題的意識,並不是說不能拿問題去請教別人。而是,您需要請教別人的問題,必須是自己已經動手嘗試解決,而且解決不了的問題。

畢竟程式設計師最怕打擾,我們們能不打擾就不打擾。

我們生活在如此幸福的時代,其實很多問題已經有大牛解決了,並且他們會把經驗分享到網上,我們需要做的只是組織好自己的問題簡單地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(英雄聯盟)都戒了。

致剛入行的前端工程師
Paste_Image.png

7. HTML + CSS + JAVASCRIPT

現在才談這些技術點並不是說這東西不重要。只是我覺得這三樣東西就算我不說,只要你有心搞前端肯定會去學,那還有說的必要嗎?(此處省略百萬字)

8. 尾聲

都不知道自己寫了多少字,只希望今晚能夠釋出出去。希望能對有緣看到此文的朋友有那麼一點幫助吧。

Happy Coding and Writing !!

相關文章