![]() |
VOOZH | about |
人們都說,程式設計師的特性是悶騷、單身、宅。甚至有碼農、程序猿等戲稱。我們不拒絕,因為這是大家給予的Title,我們受寵若驚!
今天我想說的是,並不是每一個程式設計師都是死宅,並不是每一個程式設計師都悶騷,並不是每一個程式設計師都自己擼。我們不緊有著和其他職業人一樣的生活,我們同樣也有和其他職業人一樣和睦的家庭。
當我們寫下第一行「hello world」時候,就表示我們拜入師門。 我們有自己的祖師爺,是一個女性,她的名字是 Ada lovelace。 為什麼我們第一行代碼要用「hello world」,我不得而之。就像每一個門派的心法入門口訣一樣,靠每個人自己領悟。 從今天的網際網路發展來看,hello world就是在告訴新弟子,這是一個與世界接軌的行業,如果你固步自封,閉門造車,查資料不FQ。那麼,你將無法與師兄弟們並駕齊驅,你將是那個死在沙灘上的前浪。
現在,我的孩子兩歲了,他除了會吃喝拉撒以外。還會用padFQ看youtube上的視頻,能夠唱一些中英文歌曲,能夠說一些中英文廣告詞。當然,一開始不是這樣的,但是我沒有刻意去教,而是從他喜歡的東西上來引導。
他很喜歡用ipad看視頻,在他8個月的時候,他會用iphone看自己的照片和視頻。隨著年齡的增加,他慢慢學會走路,學會說話,有了自己的邏輯。有一天回家,我發現他在玩我ipad上的遊戲,我以為是我媽幫他開的。後來才知道,是他自己玩的,我媽也不會用ipad。
漸漸的他迷上了優酷,喜歡小蘋果,江南style。優酷上有許多廣告,他也偶爾會蹦幾句廣告詞出來。
有的朋友建議我禁止他玩ipad,說應該教他一些東西。我想,是應該教他,教他什麼呢。數學運算就算了,特長培養也算了。那些看似高大上的東西,無非就是為了滿足大人們的虛榮心。所以我想,從他的興趣出發,他自己學會的東西,才是他最開心的。
我卸載了他的優酷和其他一些國產視頻軟體,下載了YouTube,設置為了美國IP,並把他喜歡看的加入到了收藏。這樣一來,他想看自己喜歡的東西的時候,非常好找,當他想看其他東西的時候,都是英文的。對於他來說,接受一個東西用英文來描述和用中文來描述,成本是一樣的。比如目前來說他知道紅色是red,綠色是green,藍色是blue,蘋果是apple等。但是他知道籃球是皮球,鴨子是鴨鴨,貓是貓咪,狗狗叫汪汪。在他的世界裡,他只需要一個名詞而已。不需要知道中英文的對應關係。
但是youtube需要vpn才能夠看,所以每次我都先幫他把vpn連好再出門。只是ios的vpn偶爾會斷掉。就在使用youtube兩天後,我發現他自己知道如果連不上了,就打開setting面板,點一下vpn的連結。
有時候,我會坐在他旁邊用筆記本寫一些測試性的代碼。那天,正當我打算看幾個webgl的示例的時候,他突然扔掉手中的平板跑過來看我的屏幕,叫著blue blue blue。當時我運行的是一個普通的phong著色shader。顯示的是藍色。我順帶問,what color do u want else? 他就說red red red,yellow yellow什麼的。 我按照他的指示,改了shader代碼,當他看到畫面出現了他要的顏色的時候,就高興地鼓掌。
我不希望他做程式設計師,因為程式設計師確實少了很多陪伴父母,陪伴老婆,陪伴孩子的時間。 但是我又希望他喜歡程式設計師這個職業,他的喜歡,表明了他對我的肯定和認可。
截止到今天凌晨,網際網路上已經有大概 6 億 8 千萬張網頁,而且依然在迅速增加。今天就來嚴肅地展開一下網頁工程師的話題吧,關於他們的工作,關於他們的職業;關於 HTML,關於 Python;關於瀏覽器,關於這個世界。
周圍有一些朋友的孩子也快要誕生了,將來可以考慮做個網頁工程師呢~
每天的我們,在 (還算) 安靜的辦公室里,面對著電腦屏幕,忍受著窗外的喧囂,隨手點開瀏覽器,輸入一段 URL,敲下回車鍵。有沒有這樣的體驗,網站瞬間被打開了,高質量的內容,乾淨的布局和優秀的設計讓你過目難忘。感到吃驚是吧?這一切都歸功於一類人,網頁工程師,所謂的 Web Developers 們,他們不僅負責網站的搭建和網頁的編碼,還負責各種測試分析,以及一切和網站相關的維護。
如今網頁的重要性毋庸置疑,在商業上,好的網站已經是企業保持競爭力的重要環節。伴隨著網頁開發技術的日新月異,優秀的網站層出不窮,網頁工程師對於自己的工作已經不能有半點馬虎,成為一個好的網頁工程師也沒有任何的捷徑。
但問題就來了,正在頻繁疊代產品的苦逼創業者們,應該尋找怎樣的網頁工程師呢?想成為網頁工程師卻只是剛剛試水 HTML 和 JavaScript 或者剛剛開始了解 Python 和 Ruby 的童鞋,又應該如何規劃自己的技術之路呢?
登錄過智聯前程大街獵聘周伯通拉勾等等網站,瀏覽過各類工程師在線課程,接觸過網頁工程師相關的招聘和應聘的,應該不難發現一個趨勢,就是這群人被集中分成了三大類:前端工程師,後端工程師,全棧工程師。
前端工程師 Front-End Developer
和用戶發生交互的那一部分叫做網頁的前端,說白了它就是你在瀏覽網頁時可以看到的所有東西,字體、顏色、導航欄、下拉菜單、滾動的圖片,等等等等,這一切都是由 HTML + CSS + JavaScript 拼裝而成,在瀏覽器的渲染下變得井井有條,很神奇的!
首先來了解一下相關技能和工具。
前端工程師主要負責網站面向用戶部分的代碼,以及用戶體驗相關的架構。一個前端工程師必須熟練地掌握三門基本的語言:HTML,CSS 和 JavaScript。除此之外,前端工程師還應該熟悉一些樣式框架比如 Bootstrap 和 Foundation,和邏輯框架比如 Backbone,AngularJS 和 EmberJS,這些框架確保了網頁在不同平台上的質量和穩定性。最後還應該能夠熟練的使用一些基本的工具庫比如 jQuery 和 SASS/LESS,這些能讓開發更加高效,代碼更加優質。
另外,很多招聘文案中都會要求求職者有 Ajax 的開發經驗。Ajax 技術使用 JavaScript 默默地和伺服器通信來動態加載網頁內容,以實現無縫的瀏覽體驗。雖然這不是所有網站都必須的,但這也可以算是前端工程師的基本功之一,畢竟 Ajax 技術如今也越來越多地被應用到了網頁中。
有了前面說的這些技能,前端工程師就可以很好的和設計師合作,和用戶體驗分析師合作,把草圖和原型開發成成品。牛逼的前端工程師還能精確的發現用戶體驗相關的問題,給出建議和解決方案,用代碼來增強設計。一個好的前端工程師還應該能夠和業務人員流利的溝通,明白他們的目的,理解他們的需求,了解市場上的機會,並且順利地執行。
總之在後端工程師造好屋子以後,前端工程師主要負責房屋的內飾。至於房屋的類型和品位,這就取決於房屋的主人了。相比於後端,前端工程師一般來說更加滿足於自己的成果,畢竟這是一份技術和創意相結合的工作。經驗豐富的前端工程師不僅是一個技術人員,不僅是一個 Geek,因為他不僅實現了用戶可以看到一切和可以交互的一切,還致力於給用戶留下過目不忘的印象,所以他也是一個視覺達人。
那我們看到的網頁是怎麼來的呢?
再補充一下這個很多人都關心的話題吧,在網頁開發過程中,設計師繪製 Logo 和圖像,攝影師拍攝照片,文案編寫文字,最後由前端工程師把它們組裝在一起,用網頁向我們闡釋所有內容,用網頁向我們提供獨一無二的體驗,把我們在網站上看到的所有內容變成可能。
後端工程師 Back-End Developer
新的問題來了,網頁上的數據存在哪裡?API 又是什麼?
就像一間沒有造好的屋子,光有室內裝飾還是遠遠不夠的。於是我們還需要後端工程師。網頁的後端包括伺服器,應用程式,以及資料庫。這些組件相互作用,使用 API 和前端通信,確保了網頁前端的存在。後端工程師的主要工作就是搭建和維護這些組件。
還是先來看看相關技能和工具。
相比於前端開發,後端開發的技術和工具比較多元。為了實現伺服器、應用程式和資料庫三者之間的通信,後端工程師通常使用 Python,Ruby,PHP,Java,.Net 等語言來編寫應用程式,用 MySQL,Oracle,MongoDB 來查找、存儲和修改數據,然後把它們部署到伺服器上來為前端代碼提供支持。在實際工作中,後端工程師至少需要掌握一個開發框架,比如 PHP 的 Zend 和 Symfony,或者 Python 的 Django;還需要能夠熟練使用版本控制工具,比如 Git 和 SVN;以及了解 Linux 開發環境。這些看起來比前端開發枯燥多了!
後端工程師需要使用這些框架和工具來為網站編寫優質的代碼,有可讀性,可移植性,有完備的文檔。然而和前端工程師一樣,在開始埋頭編碼以前,後端工程師需要和業務人員充分溝通來理解他們的感性目標,將其轉換為技術需求,提出具有可行性的有效方案,來搭建技術架構。
優秀的後端工程師同樣熱愛自己的工作,沉浸在後端的他們從來不覺得無聊,反而樂在其中。他們喜歡玩弄數據,編寫出有用的 API,按照不同的權限分配給網頁前端、移動應用和其他系統,讓前端工程師可以安心的沉浸在交互和布局中。通俗易懂的高質量的 API 受人尊敬,這就是後端工程師的價值所在。
我們怎樣才能感受到後台的存在?
點擊 http://qidlove.com 打開婚禮邀請函。此時八音盒的伺服器會把信息發送到你的手機或電腦中,然後變成你所看到的內容。這就是後台工程師所做的事情。如果你向下滾動屏幕到最後,留下自己的姓名和祝福,點擊發送,別人就可以看到你的留言,下一次你再打開這個網頁,留言也不會消失,這些都多虧了後端工程師啊!
全棧工程師 Full-Stack Developer
說到這裡,首先要明確一點,前端開發和後端開發並不是黑與白的區別,前端工程師和後端工程師之間也沒有恐怖分子和反恐精英這樣子的曖昧關係。在目前的經濟形勢下,在這個資源緊缺的市場環境中,前端工程師往往需要學習(至少了解)一些後端開發的技能,反之亦然。產品開發有很多通用的規則,跨越了前後端的界限,於是我們開始尋找一種通才。
它的由來?
全棧工程師自然很早就存在,但是 「全棧工程師」 的叫法誕生於 Facebook 的開發部門。四年前,有一類特別的人群被挖掘出來,他們的工作內容涉及到了技術架構(技術棧)中的每一個環節,包括前端和後端,他們可以和後端工程師一樣在伺服器端玩弄應用程式和數據,也可以使用前端語言控制頁面內容和調節用戶體驗,他們能夠提供一套完整的系統。
總之,全棧工程師是網頁開發的全能戰士。
感覺很酷是吧?成為一個全棧工程師,同時精通前端和後端開發,無形之中給自己的職業生涯創造了很多機會。不過也別高興得太早,就和烹飪一樣,有人更擅長熱菜,有人更擅長甜點,精通兩者需要時間和經驗。媽媽的手藝可不是一日煉成的,更不是簡簡單單的按照食譜來做就行(事實上很多工程師依然在這樣錯誤的做著)。一個好的全棧工程師和一個好的大廚一樣,需要有自己的內涵,需要有所有的烹飪原料,需要掌握所有的方法,才能奉獻上一頓完美的晚餐。
全棧工程師需要掌握的技能相對複雜,甚至有些主觀,因為這不僅僅只是技能相關的需求,而且隨著時間的推移,人們對於他們的要求也在一點點變化。除了要根據不同項目掌握前端和後端開發的相應技能外,全棧工程師還需要充分理解網頁正常運行的每一個環節,不僅包括合理的伺服器配置,規範的 API 結構,還要通曉 JavaScript 的哲學,以及 CSS 背後的設計情懷。
舉個栗子,現階段一個典型全棧工程師的裝備,HTML5/CSS3 + Scala + MongoDB + 雲服務 + JavaScript
有了知識和技術,就還差經驗了,這也是最後一道門檻,全棧工程師尤其需要能夠在一個項目面前,快速地定義前端開發和後端開發的職責,分析各種解決方案的優勢和劣勢,最終選擇最合理的執行方式。
老問題,作為用戶如何感知網站背後的全棧工程師?
這個我真的說不出來了,自己去感受吧,頁面加載需要多久,內容布局是否專業,交互體驗是否自然,等等等等。
最後說一句:
不要迷戀全棧工程師,任何時間,任何場合,都有一個 「大而全」 和 「小而精」 的選擇,好的網站從來都不是一個人的功勞,不要忽略了設計師、攝影師、文案、產品經理、客戶經理、銷售、客服、用戶、以及其他所有直接參與和間接參與到網頁製作中的人們。識別優秀的工程師也並不一定只是技術層面的事情,無論是前端、後端還是全棧,工程師的自我修養還需要包括對細節的關注,自主學習的速度,解決問題的效率以及良好的溝通能力。
如果你是個網頁工程師,那麼恭喜你,你現在最不需要擔心的就是找到一份稱心的工作。事實上接下來五到十年是網頁工程師最好混的時期了,HTML5 終於定稿,五花八門的屏幕的出現,跨平台應用的需求越來越高,微信至少還火熱著,加油啊!!!