-- 作者 謝恩銘 轉載請註明出處
《Web探索之旅》全系列
內容簡介
- 第四部分第一課:什麼是Web程式設計師?
- 第四部分第二課:如何成為Web程式設計師?
- 第四部分第三課:成為優秀Web程式設計師的祕訣
大家好,經過上一課 Web探索之旅 | 第三部分第三課:協議,我們結束了第三部分。終於來到了【Web探索之旅】的最後一部分。
我們的第二和第三部分都略有難度,不過這第四部分和第一部分一樣,都會比較輕鬆愉快。
這一課我們來聊一聊Web程式設計師,Web的文化,如何成為一名優秀的Web程式設計師。
或許看完這部分,你會躍躍欲試,想要成為一名Web程式設計師也不一定。畢竟現在Web程式設計師還是比較吃香的。
第四部分第一課:什麼是Web程式設計師?
很多公司都有Web程式設計師,負責不同的部分,每個公司的Web程式設計師所做的工作可能大相徑庭。要給出一個統一定義比較難。
不過,一般來說,我們可以將Web程式設計師(這些Web程式設計師都有一個共同的目的:維持公司的網站執行良好)分為幾大類:
FrontEnd
Frontend是英語“前端”的意思。一般我們所說的Web Frontend就是指“Web前端程式設計師”。主要負責網站的外觀,也就是“顏值”擔當。一般精通HTML,CSS和JavaScript等客戶端語言。
BackEnd
BackEnd是英語“後端”的意思。一般我們所說的Web Backend就是指“Web後端程式設計師”。與Web前端程式設計師配合,主要負責網站伺服器端的編寫和維護,也就是“功能”擔當。一般精通PHP,Java,Python,Ruby或C#等伺服器端語言。
QA Manager
QA是Quality Assurance(質量保證)的意思,manager是“主管”的意思。所以QA Manager就是我們平時所說的“質量主管”,他可以充當客戶的角色,來使用網站。負責網站的正確執行,對網站的質量進行監控,如果有什麼問題或有什麼需要的新功能,會通知Frontend,Backend或System Administrator來處理。可以想象是一個醫生,確診網站的“疾病”,對網站的健康負責。
System Administrator
System是“系統”的意思,Administrator是“管理員”的意思。所以System Administrator就是我們平時所說的“系統管理員”。他就好像一個很厲害的老工程師傅,可以想象提著一個工具箱,到機房裡去修修弄弄(當然其實並不見得是這樣)。他保證Web的伺服器可以正常運作,負責一些硬體的維修和管理,使網路暢通無阻,而且一般的SA都熟悉Linux技術,至少會用Linux命令列吧。
Full Stack
Full是“全部,完全的”的意思,Stack是“棧”的意思。所以Full Stack就是我們平時所說的“全棧程式設計師”或“全棧工程師”。他就好像一個“全能騎士”或者身懷絕技的“日本武士”,可以做以上四個職位的所有任務。當然,要成為全棧工程師是很辛苦的,因為什麼都要會。少年,珍愛生命,還是悠著點吧~
Web程式設計師特質
每個Web程式設計師的性格,習慣和愛好都各不相同。不過我們可以試著概括一些Web程式設計師的共同特質,或者說那些驅使他們選擇去這個公司而不是那個公司的因素。
喜歡解決複雜又新穎的問題:喜歡解難題並不稀奇,很多人都喜歡挑戰自我,但是Web程式設計師還喜歡解決新穎的問題。如果一個難題很老套又很陳舊,那他們可能提不起太大興趣。他們希望構建和維護的網站是新潮的,與眾不同。不喜歡用別人用爛了的模版,樣式。
不喜歡被約束,喜歡合理利用時間,不喜歡沒效率的工作方式。如果看過《社交網路》這部電影,那你會注意到Facebook公司內部的工作環境是非常舒適,輕鬆,和諧美好的。諸多Web程式設計師吃住在一起,就像一個大家庭。而大家也許也知道Google(谷歌)的工作環境也是很不錯的,不是那種高壓緊張的工作氛圍,而是給你自己最有效安排工作的機會。
第四部分第二課:如何成為Web程式設計師?
要成為Web程式設計師其實不難,這一節想要告訴大家的是:你也可以成為一個非常厲害的Web程式設計師。
聽到這話,也許你會說“哪裡哪裡,我肯定不行的。這麼多程式語言,這麼多協議等,好複雜的。Web程式設計師不是我想做,想做就能做...”。
但其實真的沒有那麼複雜。
你可以按照以下順序:
學完這個Web課程(幸好我們已經完成了)。
學習HTML5和CSS3:這兩門客戶端的語言可以讓你自己寫一個網站,從零開始。
學習一門伺服器程式語言:Java,PHP,Python,Ruby,等。隨你自己的意思選擇其中一個來入門,選擇你最喜歡的,用起來最順手的,社群支援更好的。這些伺服器端的語言可以幫我們產生HTML的網頁。所以這也是先學習HTML的原因。
學習JavaScript:雖然一般來說JS是客戶端的語言,但是藉助Node.js也可以實現伺服器端程式設計的。而且JS可以使我們的網頁變得動態起來,具有互動性。
學習Linux命令列:可以瞭解SA(System Administrator,系統管理員)是如何使伺服器正常工作的,如何與伺服器互動。因為大多數伺服器都使用Linux或者Unix系統。
還有幾點,是在程式語言之外的,也很重要:
緊跟技術潮流:每天去CSDN,51CTO等全國數一數二的大型程式設計社群,看看首頁的新興Web技術專題。如果不使用最新最好的技術,而死守一些老掉牙的技術,任你程式設計水平再高,也是沒用的。
練習:經常程式設計。
熱愛Web程式設計:如果你嘗試了Web程式設計之後,發現自己不適合這門職業,或者這不是你興趣所在。那麼可以換個職業。不過,也有很多人是慢慢喜歡上Web程式設計的。所以不妨試試。
第四部分第三課:成為優秀Web程式設計師的祕訣
要成為優秀的Web程式設計師沒有那麼容易,需要歲月的沉澱。但是也沒有那麼難,因為隨著時間的推移,你自然就越來越厲害了。
但是心態一定要擺對,不必一上來就學習所有知識點,所有程式語言。一步一個腳印,把自己位置放對了。要成為優秀Web程式設計師,我覺得可以照以下幾點來實行:
認識到你可以在任何年紀(只要不是老的不能打字)開始做Web程式設計,也不需要太在意你以前學過什麼:有的人認為只有智商很高才能做程式設計師,錯了,很多程式設計師智商並不高,比如小編,哈哈。有的人認為一定要很年輕就開始學習程式設計,才能成為優秀的程式設計師,錯了,現在網上那麼多好的教材,只要你願意,有什麼學不會呀。
認識到你最大的敵人是自己:我們常常抱怨說自己不可能做到這樣那樣,但其實是我們不夠努力。Web開發有那麼難嗎?我覺得真的不難,至少比嵌入式簡單。
用新技術,新理念裝備自己:程式設計技術日新月異,Web技術的演進更是快得超乎想象。保持一個不斷學習,不斷充電的好習慣,你會比別人走得更遠。可能別人用老技術花很多時間做出來一個很慢的東西,你用最新技術分分鐘搞定,而且執行還比他的快,人艱不拆啊。
學習英語:我一直覺得要成為程式設計師,英語不是必須的。但要成為優秀的程式設計師,英語真的大有裨益。看看網上優秀的論壇,教程,技術社群都是英語的,而且很多技術的文件和API沒有中文版,即使有中文版,翻譯的水準也是層次不齊,萬一翻得不準確呢,那不是毀一生麼。英語並沒有那麼難,比程式設計入門簡單多了吧,就是反覆,堅持。先把語法鞏固了(好比英語這座大廈的鋼筋混凝土底座),再豐富單詞,增加閱讀量,聽力練習,分分鐘(每天花少許時間)搞定英語。
使用一些好的工具:例如除錯的好工具Firebug(Firefox瀏覽器的一個外掛),Chrome瀏覽器自帶的開發者工具(更多工具->開發者工具)。會讓你事半功倍。
學會搜尋:檢索資料是一種能力,需要慢慢培養。其實90%的Web錯誤或難題,都可以通過百度和Google找到解決方法。因為通常我們的網頁是會顯示詳細的錯誤資訊的,你只要把錯誤資訊那句話輸入到百度的搜尋欄,搜尋一下,網上一般會有很多人已經遇到過這個問題了,分分鐘解決。我一直覺得,搜尋引擎是很好的老師,可以幫我解決大部分問題,根本不需要去QQ群,論壇,社群花時間問別人(效率不高),搜尋引擎就是自己的老師。
總結
Web程式設計有很多種語言,但是我們不需要全部學習。只要學習其中的幾樣就夠了。
Web程式設計師可以是各個年齡段,只要你不是年幼得讀不懂文字或者年老得文字讀不懂你,就可以來學Web程式設計。
我們大可以嘗試著來學習Web開發技術,一開始不需要太深入,如果你覺得這不是你想要的,大可以改行。“沒什麼大不了,你想改,就改吧,沒有人會知道...”
實踐很重要,把自己投入到Web開發中去,每天學習,每天進步一點點。
這個系列課程終於完結了
大家辛苦了~ 好好努力吧
微信公眾號「程式設計師聯盟」ProgrammerLeague
我是謝恩銘,在巴黎奮鬥的軟體工程師。
我的簡介
我的經歷
熱愛生活,喜歡游泳,略懂烹飪。
人生格言:「向著標杆直跑」