㈠ 前端工程師的職業發展路線在哪
前端工程師往往屬於產品研發團隊,但卻很容易被邊緣化——後端工程師覺得自己才是主力,沒有後端工程師 產品就不存在了,但沒有前端工程師產品還能有,只是界面非常糟糕而已。這時候前端工程師就開始感覺自己像是個外包似的,只是來幫別人完成一些任務而已,對 產品沒有歸宿感。這時候成為一個更好的外包嗎?要做關鍵任務我覺得,要別人重視你的工作,不僅僅是你做得好就行了,還要求你的工作對別人來說足夠重要。這跟產品定位有關——例如說對搜索引擎來說,前端對產品 的影響不會非常大,用戶只要能搜索到自己想要的結果就行了。搜索引擎最復雜的交互可能就是搜索框的自動完成了,但有自動完成和無自動完成的區別到底有多大 呢?跟准確率和召回率相比,有沒有自動完成實在沒有多重要。況且,自動完成的結果本身也依賴於准確率和召回率,所以後端工程師比前端工程師重要得多。因此,前端工程師在選擇工作時首先要選擇前端足夠重要的工作。重要用什麼來衡量?務實的話,是錢;務虛的話,是產品。如果一個功能只能在前端實現, 並且這個實現能夠提高多少的轉化率,使得多少原本不產生利潤的點擊產生利潤,那麼前端對這個產品來說一定十分重要。可惜往往跟錢相關的事情不由前端工程師 來研究和決定,所以這部分工作還是安心交給產品設計師來做吧,讓他們來決定怎麼樣的產品能賺錢,然後由你來完成這個產品的實現,這時候你的目標就是把產品 做好。回到剛才的問題,有些產品更依賴於後端,例如搜索引擎,當然也有些產品更依賴於前端。什麼樣的產品更依賴於前端?就是後端難以建立起技術壁壘的產 品。這類產品要抄襲一個功能差不多的並不難,因此只有細節做得最好的能夠獲得足夠多的用戶。這類產品在 iOS App Store 上很常見——有很多 app 擁有相似的功能,而其中只有一個交互設計得最好的能夠獲得絕大多數的用戶。盡管 app 不存在 HTML + CSS + JS 這個前端,不過道理是一樣的。當年 Tweetie 能夠取代老牌的 Twitterrific 成為主流 Twitter 客戶端,靠的就是交互上的創新,外加不差的性能和穩定性。如果交互對於一個 web app 來說十分重要,這個 web app 自然也就需要十分優秀的前端工程師。總結一下,由於前端工程師的價值在於實現復雜的前端細節,因此如果可以選擇的話盡量選擇一個細節決定成敗的產品。如果產品的成敗已經由後端工程師決定了,例如某某數據規模要麼能做要麼不能做,那麼這個產品就沒你什麼事了。要懂核心業務每一個公司,每一個項目,都有它的官方語言。不是指普通話,也不是指 C++,我指的是大家圍繞什麼問題來展開項目,什麼問題的討論能讓大家為之興奮。舉個例子來說,網路的官方語言就是搜索,跟搜索沒有關系的產品也會使用 「准確率」、「召回率」這樣的術語用來做比喻。前端工程師有多少知道什麼是「准確率」、「召回率」的?估計不多,因為前端根本沒有這樣的概念。這時候前端 工程師要跟後端工程師溝通也就不容易了。久而久之,你對人家很興奮在討論的什麼 O(1) 還是 O(n) 不感興趣,人家也不理解你的 {} != {} 是什麼意思,你就被邊緣化了。如果不想被邊緣化,就算前端不是公司的核心業務,你也必須懂公司的核心業務,然後說著官方語言,而不是前端的方言。這就意味著,如果你在一家後端技 術很強大的公司,你最好也懂後端技術。我知道國內有很多前端工程師並不是計算機系畢業的,就算是國內的教育也不怎麼樣,這時候你只能惡補相關的基礎知識 了。如果你不懂這些,就算你能把整本《JavaScript 權威指南》背下來,你說的還是方言,說官話的人還是會鄙視你。如果公司主要服務於某個垂直領域的話,你必須對這個垂直領域十分了解,隨時能用這個領域的行 話來溝通。總結一下,由於每個人已經熟悉的領域都不一樣,所以沒辦法說哪個領域更適合前端工程師。如果你原本已經有某個領域的從業經驗,進入服務於該領域的技 術公司總是有顯著優勢的。如果你進入了一個自己不熟悉的領域,那就一定要補充相關基礎知識,否則你對這個領域不感興趣,這個領域也不會對你的前端工作感興 趣。實際例子為什麼我選擇加入豌豆莢?主要考慮的還是上面兩點。我在網路的時候一直就在想,既然前端對搜索引擎來說不重要,那對什麼類型的應用來說比較重要呢?當時看到 Facebook 做得不錯,所以覺得社區會需要復雜的交互,而如果復雜交互做不好則會影響用戶使用,因此前端對社區來說應該十分重要。現在看來,也不完全是這樣子。前端對 社區來說確實重要,但 Facebook 並不是一個典型的例子,它是一個前端做得尤其優秀的例子。在我了解到豌豆莢 Windows 客戶端的實現方式時,我立即意識到它可以通過我的第一個判別標准——前端對它來說是關鍵任務。它使用 Webkit 做了一個容器,然後把所有的交互都通過 web app 的形式做在裡面,然後通過一組介面跟 native 進行交互。如果一個應用決定要這樣做了,那麼前端就能影響到它的成敗,因為這時候前端後端的分隔線已經很明確了。如果一項功能應該由前端來做那就必須由前 端來做,後端基本不可能成為實現此項功能的備選方案,這時候前端就具備了無可替代的位置。至於第二個判別標准——豌豆莢的核心業務是什麼?我覺得豌豆莢做的很多事情都是以產品設計為起點的,而這至少是我感興趣並且也有點感覺的東西。從細 節上來說,就是大家喜歡談論的事情是一致的,例如產品如何做一些很智能的設計,最新的技術方案如何能夠巧妙地幫助這些設計得以實現。Junyu 說「設計就是創造性地解決問題」,這是我喜歡的解決問題方式。這個世界上能夠把邏輯轉化為代碼的人非常多,同時有一定數學和計算機專業基礎的人也不少,因此要拼誰的解決方案更好的話那還要加上創造力。我知道國內有很多產品設計師,在考慮產品時首先想到的是百萬千萬級用戶量,這樣無論從單個用戶身上賺到的錢多麼的少,最終產品還是能賺大錢。網路曾 經就屬於這種思維方式,但這不是我喜歡的風格,因為沒有明確的目標用戶定位。我知道國內由很多工程師,在編寫代碼時用盡各種技巧以展示自己過人的才智,但 是這樣的代碼還有可復用性嗎?除了作者本人沒有人能夠維護啊。不同的人有不同的品味,能夠跟品味一致的人一起工作是一件幸福的事情。
㈡ 前端開發好還是軟體測試好
web前端相當於是半個程序猿,測試門檻比較低但是薪資待遇也相對差一些。每當換行業時,總是不知道學習什麼,又怕自己入錯行了,那到底web前端和軟體測試哪個好呢?
了解web前端的知識
前端方面非常稀缺人才,如果懂H5那是非常好的了,而且待遇也不低,不過 瀏覽器兼容性是前端噩夢測試雖然入門門檻低,但是其實需要學的東西非常多,如果是web測試,那麼各種亂七八糟前端的東西都要去了解(JS,CSS,HTTP,HTTPS,POST請求,XML,JSON)起碼不會寫代碼,但是你要了解。
軟體測試的基礎知識
軟體測試還可以細分為功能測試,這個要求技術不高薪水也不高,屬於黑盒測試開發,這個介於黑盒和白盒之間,都要懂,而且要會代碼,薪資和開發比差不多;白盒測試,這個一般開發會做,也有給測試做的,薪資和開發差不多,基本持平自動化測試,這個基本要會寫代碼而且量還不少,薪水不錯性能測試,這個主要是性能分析,薪水也不錯,不比開發少安全測試這個基本就是搞安全的 這個能力有多強,薪資有多高。
web前端該掌握的基礎
web前端開發一般指網頁開發,學好CSS3是網頁外觀的重要一點,就是布局效果,CSS3可以幫助把網頁外觀做得更加美觀。學習JavaScript的基本語法,以及如何使用JavaScript編程將會提高開發人員的個人技能,JavaScript相對於前端來說,也是分量比較重的。也要認識一下NodeJS和PHP加上資料庫等這樣的後端語言,方便前後端開發配合,學習 HTML5、CSS3、響應式頁面布局、微網站製作等開發移動互聯網的應用。像Ajax、JQuery、jQueryMobile、Bootstrap、AngularJS等更是前端開發必學的高級技術,掌握精通這些可以拿到很滿意的薪資。
軟體測試邏輯性
軟體測試工程師與軟體工程師不同,軟體工程師大多是男生,因為軟體開發的工作需要很強的邏輯推理能力,而軟體測試工程師則不需要天天去思維創造,工作重點是在注重經驗的積累上面,同時,軟體測試工程師要查找軟體的缺陷需要具備的素質與女性所有的細心,耐心,安靜,敏感等各個方面很吻合。同時,女生做測試的優勢還在於溝通,女生應該比男生稍微細心點,這點對於發現Bug還是很有優勢的。
軟體測試是在軟體開發過程中,在不同階段對程序進行測試,發現程序中的錯誤,對軟體的質量進行控制,扮演著「把關人」的角色。細膩、敏感、認真、有耐心、想像力豐富、溝通能力強是女性與生俱來的性格特點,這些性格特點可以使女生在軟體測試工作中更加順利。