談一談全棧,為什麼不建議初學者去做

FEvivi發表於2018-10-31
       最近二刷了餘果的《web全棧工程師的自我修養》,頗有感觸,想要和大家分享一下。
       第一次看是還在上學的時候,那時剛學前端不久,和很多初學前端的同學一樣,想著以後要走全棧開發的路,要學好前端的技能,同時還要掌握資料庫,服務端開發等技能,甚至是會點設計和測試,等於說是要一個人包攬整個web專案的開發。在持續的學習和工作中,越來越覺得,全棧可行,但不要輕易嘗試。對於初中級前端來說,掌握好需要的前端技能已經是一件比較困難的事情了。
       第二次看就是最近看的了,目前工作四個月,主要從事React技術棧的專案開發,僅限於熟練使用React+Antd的API,也瞭解生命週期的執行機制,但是並不知其所以然,對於常用的資料結構與演算法也僅僅侷限於面試的時候的瞭解,設計模式一竅不通,ES6是各個框架和Node的基礎必學,看了好幾次仍然覺得理解的不夠深入。目前的狀態是我渴望學習很多知識,但是並沒有真的學到這些,當然,我的狀態估計也是很多前端同學現在也面臨的問題。
       回到正題,兩次看的側重點也是不一樣的。
在我認為,書的內容分為四部分,一是什麼是全棧;二是學生和野生程式設計師,三是一些全棧的知識點,四是好的習慣和成長方式。
       第一次看的時候主要是看第一二部分,從那個時候瞭解到了全棧,也就有了成為全棧工程師的想法。第二次看著重看的是第三四部分,真的是受益匪淺,作為初入職場的小菜鳥,沒有導師帶領,只能自己摸爬滾打,沒有人指導良好的程式碼習慣和成長路徑,靠自己慢慢摸索總會感覺到迷茫,當我靜下心好好看第四部分的時候真的覺得這些對於我來說都是很需要去執行的。
再來剖析的聊一聊這個話題:
1、什麼是全棧
2、怎樣的人或達到什麼階段可以做全棧
3、適合自己的成長方法論
希望大家可以帶著這幾個問題去看文章,看完之後可以回顧一下自己有什麼收穫。
一、什麼是全棧
       有人這樣說過:全棧工程師是指,一個能處理資料庫、伺服器、系統工程和客戶端的所有工作的工程師。根據專案的不同,客戶需 要的可能是移動棧、web棧,或者原生應用程式棧。也就是說一個人相當於一個團隊使用,你得會點前端,後端,還得會點設計和測試,最後還要會運維上線。需要清楚的知道web開發的流程。沒有接觸過整個流程的,可能認為應該比較好掌握,但是並不是,每一個方向學起來都是很難的。
       真正的大牛他了解的是內部的執行和實現機制,從計算機到程式語言再到嵌入式裝置和伺服器,無所不精。工具和語言只是他們用來解決問題的不同方法而已。說他們是全棧不說說是全才,需要的是紮實的基礎知識和良好的工作素養。
      書中也說了,我們大部分人都是普通人,遵循一萬小時定律,才能掌握到某一行業的精髓,從平凡變為超凡。那麼如何從一個小菜鳥成長為全棧工程師呢?書中推薦採用“先精後廣,一專多長”,我也是很贊同這種學習方法的。下來談一談怎麼成為一名全棧(即使不能成為全棧,也起碼在這條路上前進了)
二、怎樣做全棧
      全棧工程師並不意味著整個專案都只是你一個人負責,只是說希望擁有全域性的思維去審視問題,記得一句話說的很好,觀察網站的角度越高,就越能有效地定位問題和解決問題。說到‘先精後廣,一專多長’,大家也應該理解意思,一個方向先仔細鑽研,進行深度發展,之後在擴充套件寬度,學習其他技術。擁有全棧思維是一個基本素養,即使現在技術水平還不達標,但是看待問題的視角也會更加寬廣一些。比如說小E是一個前端,他不僅能寫前端程式碼,還需要圍繞商業目標和關注使用者體驗。圍繞商業目標就是說要關注產品質量,對市場和商業有想法;關注使用者體驗是指從使用者角度出發,自己作為開發者,如果自己都不願意使用自己開發的產品,那使用者怎麼會喜歡呢,多點設計理念,而不是單純的實現需求。
      總結來說,需要的是‘先精後廣,一專多長’,圍繞商業目標和關注使用者體驗
三、成長方法論
       這點是比較有感觸的,每個人需要的成長方式都是要找適合自己的,你不能把別人的經驗拿來即用。正如作者在高效工程師這一章所講的一樣,不提倡無效率的加班,如果在工作8小時內沒有解決完問題,那就是自己效率太低或排期安排太緊張了。有以下方式都是可以提高工作效率,特別是對我們這些初入職場的,沒有得到良好的指導,所以很多需要自己去摸索,在職場初期養成良好的行為習慣,也將受用終生。
      時間管理
      每個人一天都只有24小時,為什麼別人可以高效的完成工作,你卻拖拖拉拉要加班到深夜,有一大部分原因是上班時間工作效率太低。所以時間管理就顯得尤為重要。時間管理四象限是目前一種很被提倡的時間管理方式,合理的安排將提高你的工作效率。在工作之餘可以做自己喜歡的事情,人生不止工作,多去生活也是很重要的。

談一談全棧,為什麼不建議初學者去做

       英文
       作為軟體開發工程師,接觸的最新的技術文件其實都是英文的,而且全球最大的同性交友網站github也是國外網站,不會英文就只能看別人翻譯後的文件,但是
中文化的文件都是加入了翻譯者的主觀思想,不能確保完全是作者的意思。作為一個大學四級考了第四次才考過的人,我的英語也是極差的,所以我也是更加深刻的感覺到英語的重要。首先是英文的技術資料更多也更前沿一些,其次google是更能解決問題的(相信開發者都是比較有感觸的)。
      怎麼學習英文呢,頗有感觸的是 github.com/byoungd/Eng… 這個文章,我看了兩遍了,感覺很不錯。所以推薦大家在日常的開發和搜尋中可以多使用英文,多去github看看專案和原始碼,讀不懂沒有關係,一個單詞一個單詞的先去認識,推薦 一款google外掛,可以劃詞翻譯。大家可以在公眾號後臺回覆chrome獲取google神外掛。
      關注使用者體驗和設計優化
      部門老大一直強調我們需要關注使用者體驗,做一個懂點設計的前端工程師,不需要學會設計,就是要懂一些設計理念和原則就好,在實現原型圖的時候,可以從前端的角度出發,做出優化,因為前端是離使用者最近的開發者,可以將產品做到更好。設計的原則其實很簡單,四大基本理論:親密,對比,重複,對齊。可以帶上這些理念去重新審視原型圖。
       推薦一些設計的網站:antd,小程式,Behance,dribbble,UI8,站酷,花瓣,Pinterest。可以瞭解一些。
      溝通,反饋與輸出
      有人認為開發工程師只要好好敲程式碼就行,不用太會說話,其實並不是這樣,溝通能力真的很重要。正確的表達自己的想法,又讓別人覺得舒適的溝通方式一直是很多人想要的。程式設計師和產品,測試,對應的開發以及上級是溝通最多的,和產品,測試那就不是溝通,基本就是懟,但是怎麼能懟的他們心服口服呢,我目前也沒有什麼方法,哈哈。和對應的開發需要聯調介面,那就是需要好好溝通了,以介面文件為準,如果修改了就及時反饋到文件上,有必要的時候可以帶著電腦一點點的調介面,沒有什麼的是解決不了的。
       程式設計師經常做專案,一個專案完成之後總會有收穫,所以需要進行及時的反饋輸出,我算是有一個好的習慣,每天都有工作筆記,沒有多難堅持下來,就是你早上開啟電腦,自然而然就會想一想今天需要完成什麼,進度需要到哪裡,然後我就會列出來,下班之前再回顧一下,把今天遇到的難題和解決辦法記錄下來。一個專案完成之後,我會把它們梳理成一篇文件,記錄一些經驗和學習成果。如今做了公眾號,我也會把最終結果輸出並分享給大家。
       記筆記的工具就給大家推薦 有道雲筆記 吧,建議使用網頁版,聽說在客戶端即使是加密的文件,也是可以根據檔案路徑找到並讀取的,但是網頁版就不會的,可以放心使用。

【結尾】

以下型別的人有且大有人在:
1、還在學校或是剛工作,連JS執行機制,原型都還沒有搞懂
2、每次遇到陣列,字元的方法時還需要百度
3、只在做業務,熟練使用框架API,但不知其所以然
對號入座自己是不是以上型別的開發者,如果是,先暫時放棄全棧的想法吧,好好攻克自己的專業方向,先做到一專多能,也就是要先有深度,再擴充套件寬度。

       此文並不是勸你不要走全棧,只是談了一些觀點,對於想走全棧的朋友,我認為大家應該先深挖自己的潛力,打好基礎,不要著急,將前端學習到比較深入的層次,至少是要理解了JS的原型,執行機制,閉包等,做個幾個專案,對web開發流程有一定的瞭解。希望大家可以找到適合自己的成長方法論。

關注我獲取更多前端資源和經驗分享
關注後回覆 vivi 獲取我的微訊號,望不吝賜教,pps:可輕撩哈哈
感謝大佬們閱讀,希望大家頭髮濃密,睡眠良好,情緒穩定,早日實現財富自由~

相關文章