阿裡前端兩年隨想

来源:http://www.cnblogs.com/aishangJava/archive/2017/07/27/7243777.html
-Advertisement-
Play Games

其實按照我的情懷和尿性,文章的標題應該是 前端登堂入室寶典、前端成長就這三招 之類,奈何這是篇軟文 ~ 看官先別急Command + W,尤其是和我經歷類似 我可以負責任的說,這是一篇有態度的軟文 欲語淚先流 我希望做些有用的事情,甚至可以做個有用的人 才畢業工作的第一年我是滿足的,學到了很多新知識 ...


其實按照我的情懷和尿性,文章的標題應該是 前端登堂入室寶典前端成長就這三招 之類,奈何這是篇軟文 ~

看官先別急Command + W,尤其是和我經歷類似

做著其它崗位的工作,卻多少會接觸一些前端
發現有些興趣,但又不肯定這應該是自己未來
也會有些成就感,但似乎挫折和沮喪來的更多一些

我可以負責任的說,這是一篇有態度的軟文

欲語淚先流

我希望做些有用的事情,甚至可以做個有用的人

才畢業工作的第一年我是滿足的,學到了很多新知識,寫的代碼不但能work,還能真的跑在生產環境中

我提交代碼上線,忐忑的測試之後沒有問題,看著屏幕傻笑了一下午,雖然整個兩年半可以說失落更多一些,但那天我是幸福的

最後的半年我想走了,那裡有人真心對我好,工作氛圍也不錯,待遇也不至於讓人失望,可我還是想走了

有天早上醒來莫名其妙的沮喪,下午我看著代碼發呆的時候忽然想起我早上做的夢,客戶鋪天蓋地的投訴我做的產品問題太多,忽然覺得滿世界都是委屈,情不自禁的滿臉都是淚

除了登錄後首頁,我負責的產品根本沒人使用,永遠躺在免費的Package中,客戶投訴對我來說是一種奢望。公司方向也好,個人努力也罷,我一直在做一些可有可無的事情

那天才瞭解,我的成就感不像大部分技術同學來自於對技術的追求,寫極致的code並不能直接讓我感到滿足,如果我的代碼幫助了一些人提升了工作效率,如果我的產品幫助了一些人生活更美好,這是我喜歡的

我希望做些有用的事情,所以我必須走了,親愛的朋友,知道自己喜歡什麼真好

這個團隊不太冷

Leon, I think I'm kinda falling in love with you. It's the first time for me, you know?

How do you know it's love if you've never been in love before?

Cause I feel it.

Where?

In my stomach. It's all warm. I always had a knot there, and now it's gone.

能來阿裡巴巴做前端是個美麗的意外,因為工作的前兩年我一直是後端,寫Linq的時候我想過將來可能會做DBA,沒想過會去做前端

和之前的兩年半告別,我怯生生的走進了阿裡巴巴的大門,關於未來,我有一些憧憬

直到現在我給別人介紹我們團隊的時候都會說我們是一個活潑、有生活氣息的團隊

大家在做前端之前多半有些有意思的經歷,後端、設計師、化學、賣燒餅 。。

如果不是屏幕上的代碼,很難想象這是一個技術團隊,我以為我會在一個極客的環境氛圍中編程,然而每天接觸的都是一群嘻嘻哈哈

才來的時候在群里自我介紹

“我是XXX,今天入職,這裡拜一下各位老大碼頭”

“XX(我師兄),是不是該帶新人去看看西湖十景”

“還是東莞十景吧”

大家的熱情讓我賓至如歸呢,可惜師兄沒有帶我去

在這裡我看到自信和包容,可以各種肆無忌憚,老馬說的 “快樂工作,認真生活” 至少在這個團隊不是空話

人說有種感覺叫一見鐘情

說從前,到永遠

一周年,認識了很多有趣的人,做了一些有用的事,大部分時間過得有期待,不虛此行

我的一周年感言被好多朋友解讀成了告別 。。

現在讓我回頭看看,做前端似乎是我必然的選擇,這是離用戶最近的地方。來到阿裡巴巴終於讓我如願以償,我在做一些有用的事情了,我做的事情有些幫助了運營同學,有些幫助了使用阿裡巴巴產品的客戶,我很快樂

快樂的同時讓我思考了一些之前想不到的東西

學會思考

這聽起來是句廢話,這並不是一種方法論,而是時刻要提醒自己的一件事情

走了無數彎路,至今仍然在不停碰壁,回頭總結的時候發現多是沒有思考清楚才讓我狼狽不堪

有一個很好的例子

爸爸讓張三去打水,張三挑著水桶到了村東頭,發現沒有井,於是覺得需要挖一口井
挖井過程遇到了石頭挖不下去了,找人幫忙解決挖井遇到石頭怎麼辦
有人建議用***,有人建議用金剛鑽
張三想到個好主意,在旁邊挖
又遇到了石頭
在換到旁邊挖
如此反覆終於挖出了水
解決了問題,張三陷入了嬸嬸的思考中

很多人會啞然失笑,張三都沒有考察周圍地質就挖,甚至沒發現他家裡裝了自來水管 。。

剛入門的時候遇到問題我們很容易成為辛苦的張三,廢了很大力氣解決的問題,卻被別人輕易解決了,看看人家用的方法自己也會

一樣的道理,我們在遇到問題後太著急去解決,想到一個方案就去實施了,太快進入細節問題而沉陷,以至於都沒有看清楚問題的本質是什麼

心裡時刻繃著一根線,動手解決問題之前先問問自己是不是想清楚了,看明白了自己面對的問題是什麼,而實際要解決的是什麼,這兩件事情很多時候的關係並沒有自然到我們一眼就能看清

我是工程師不是程式員

這可能是我來阿裡第一年最大的收穫,我也在論壇里辯論過.NET好還是Java好,那天聽一個團隊內部的NodeJS分享,聽眾也有後端同學,問了個問題:使用NodeJS後端是不是沒必要了?

分享的同學說了句讓我印象很深的話,我覺得沒有前端工程師和後端工程師的區別,我們都是Web工程師,解決Web領域的問題,並不是後端就不能使用NodeJS,前端就不能接觸服務

聽人講過:你對自己的定位是什麼,就能成為什麼樣的人,我也曾反唇相譏,我想成美國總統就能成嗎?

後來才明白這句話告訴的是你的上限,而不是下限。當我們把自己定位成程式員甚至是Java程式員的時候,就只能拘泥在Java語法中不能自拔了

才來的時候我覺得應該學習最牛的技術,才能做更好的事情。一年過後回頭看看我奔著學習技術去瞭解的知識大部分都是淺嘗輒止的瞭解語法和API後就沒有後文了;至於那些我覺得什麼最近流行應該學學,或者是學會了什麼框架我就可以怎樣的,大部分都不了了之了;而我為瞭解決某些問題而學習的知識反而成了現在的代碼習慣

有些事情我們本末倒置了,我覺得這是程式員和工程師的區別。工程師在解決問題,程式員在完成任務。想把一個問題解決和想把一件事情做完,這兩種心態出來的結果判若雲泥

當然我這裡程式員是相對於工程師的叫法,相信大家理解,不會和我糾結字面意思。也許我們把自己的定位高一些再去看.NET好還是Java好這樣的問題時就釋然了

越早暴露問題越好

最早的暴露問題,是最大的善待自己

當我才來阿裡巴巴的時候心裡想的是一定要夾著尾巴寫代碼,少說多做,千萬別鬧笑話

漸漸發現了這樣做的不行,就像小孩子在你面前撒謊,你一眼就能看穿,我們的問題在招我們進公司的人眼中也是一樣的明顯,尤其是我帶了實習生之後,體會更加深切

不知道那時候師兄和主管是什麼感受,說說我帶實習生的感受,當下屬不肯暴露自己問題的時候,最讓我為難的有兩個地方

  1. 交給一個任務,我知道裡面的困難,但是不知道他對這個有沒有把握甚至瞭解,很擔心某個實施過程會出問題,只能每天跟進進度,兩人每天都是心驚肉跳,擔心會不會出問題
  2. 我渴望的不是完美的同事,是真實的同事,這樣才能更好的互相幫助,共同成長。如果把自己包裹的密不透風,無法互相信任

現在如果實習生樂於接受的話我會直言不諱的指出問題,讓他們少走彎路。他們也會說出自己的顧慮和我的問題,讓我覺得這樣的氛圍很輕鬆

有一顆開放的心態,願意承認不完美的自己,別人才能更好的幫助你

在項目中也是一樣,很多時候在需求評審的時候我們隱隱約約會覺得有些問題,但出於各種原因沒有指出,根據我的經驗,問題如果真的有,早晚會暴露出來,往往最倒霉的是前端,因為我們在Web項目的最後一環

也不用苦惱是不是太晚了,當你在糾結是不是晚了的時候,其實是最早能開始的時候

成就感很重要

倉廩實而知禮節,衣食足而知榮辱

當公司給我們的薪水滿足了生活要求的時候,我們需要些動力催促我們前行。對於大部分技術人員成就感的獲取並不難,很多時候我們都能夠自娛自樂,寫出段精彩代碼的時候內心都被自己折服

沒有成就感,很難驅使我們一天的興奮

但總有我這樣的人,對技術並沒有那麼極致的執著,成就感的獲取相對難一些。上面我也提到,我更在意的是我能做一些有用的事情,真的幫助一些人

工作的意義

我不會裝逼到認為工作的意義在於奉獻,之於我工作最基本的要求是解決生活問題,然而這不是意義,我覺得一個快樂的工作基本意義是個人價值觀的交代

回想起我來的第一年,有時候早上甚至會有迫不及待去公司的想法,有些有用的事情我還沒有做,我心裡還有萬紫千紅的色彩去繪畫。其實我的工作內容並沒有多高端,運營並不是所有前端的理想工作,很多同學戲謔的稱我們為切圖仔

但對於那時的我,這已經是天堂。我的工作給運營同學帶來了很多便利,為公司省了一些錢,可能對全球貿易都有些影響(必須有這麼高的情懷,寫麽寫的時候才會笑得得意)

我們運營團隊做了很多有意思的小嘗試,快樂的時候會情不自禁的動腦,發現處處是創造,這對技術人員的成長是巨大的

所以我始終覺得,如果工作內容你並不認同,對個人價值觀是個災難,不快樂的工作,很難去全力以赴,做出成績,提升自己

雖然我很認同我的工作,但漸漸的我需要些工作之外的成就感

寫博客

才學前端的時候我幾乎兩三天就寫一篇博客,開始大多是讀書筆記和知識理解,評論大部分是一些批評和問題指出,但是讓我成長的很快,瞭解到想說明白一個知識點,必須有一條知識線,需要大量的查資料、學習,這個過程對個人提高幫助非常大,所以有些剛開始接觸前端的同學問我學習方法的時候我無一例外的都推薦寫博客

慢慢的有些人會誇獎我,寫的清晰,幫他理解了某個知識點,或者學習到了新知識。分享讓人快樂,這種快感是東京熱給不了的

我還做了老濕

前端並不是大多數大學的授課內容,我看到了很多遇到自學過程中遇到了一些障礙,一番努力之後仍舊手足無措的同學,很多就放棄了,認為學習前端走不通。還有一些同學想法很單純,看到招聘要求MVVM框架等就急著學習AngularJS,然後就能怎樣

這些都讓我想起了那時候的自己,我很幸運遇到個耐心對我的朋友,我也希望把這種關懷傳播出去

機緣巧合我做了業餘的前端老師,給一些朋友介紹前端入門的基礎知識和遇到問題的思考方式。過程有失望,有不解,每次幫大家想通一個問題,解決了一個疑惑時更多的是幸福感,尤其是看到一些前端零基礎的同學通過半年努力,走上了職業前端的道路

那天看到一些同學做的感謝視頻,聽他們甚至叫我老師的時候,我不禁再次淚流,回味了好久,想起讓我離職的那個夢,那天我有種異樣的衝動,平靜下來後感覺那應該是自豪,我是個有用的人

還是一樣,分享讓人快樂,需要傳遞,也許這些人一兩年後也會一樣去幫助其它困惑的小伙伴

相信阮一峰、張鑫旭這些人在堅持寫博客的時候也有類似的心情

淪陷 & 綻放

只有一種英雄主義,那就是認清了生活的真相之後依然熱愛生活

比起第一年的志得意滿,第二年在阿裡我更多的是踽踽和膽怯。工作有了新的職責,讓我對自己有了新的要求,太想做對一件事情,而不敢動手去開始,生怕錯了怎麼辦,甚至會去市儈別人的勇敢

一定要去做對的事情,而讓我不敢去輕易嘗試任何可能,但沒有明白不去嘗試哪裡知道孰優孰劣

或許每個人到了某個階段都會有類似的問題,看看這半年的自己,多少讓我有些遺憾,太害怕做錯卻導致沒有做什麼可以給自己交代的事情,希望新的一年自己能夠尊重勇敢

朋友,你聽說過安利嗎

其實行文到這裡還不算軟

---------------------------------我是分隔線---------------------------------------

阿裡巴巴國際站招前端,校招視窗已關閉,所以針對的是社招

崗位描述

  1. 負責網站應用前端開發,與後臺工程師協作,完成數據交互、動態信息展現
  2. 使用JS或AS編寫封裝良好的前端交互組件,維護及優化網站前端頁面性能
  3. 研究和探索創新的開發思路和最新的前端技術
  4. 參與新人培訓和前端技術佈道

崗位要求

  1. 熟悉Web前端技術,HTML(5)/CSS(3)/JavaScript(ES6)等,能夠解決瀏覽器相容性問題
  2. 持續關註業界的新話題和新技術,研究過JQuery、React、backbone等框架中的一種或以上
  3. 重視團隊協作,願意探尋和改進目前還不成熟的前端開發流程,瞭解各種常用工具
  4. 熱愛前端技術,個性樂觀開朗,邏輯性強,善於和各種背景的人溝通合作
  5. 對前端工程領域有研究優先
  6. 如具備其他語言的開發經驗,比如NodeJS、java、php等優先考慮

其實

大家都瞭解招聘要求都是虛的,我們希望你是這樣的人

  1. 基礎知識扎實

    a. 知道JavaScript prototype、閉包、事件怎麼回事兒

    b. 多少瞭解HTTP協議和Web Server怎麼工作

    c. 知道CSS display、float、z-index、BFC

    d. 瞭解瀏覽器渲染頁面原理

    e. 模板引擎

  2. 對新技術有興趣

    a. 前端代碼模塊化與構建,gulp、webpack等

    b. NodeJS

    c. MVVM

    d. React、Vue、backbone、angular隨便說說

  3. 一定的工程能力

    a. 瞭解門後端語言,最起碼知道後端同學在說什麼

    b. 瞭解些web 安全知識

    c. 性能優化

    d. 前端代碼工作及發佈體系

  4. 隨時準備自我介紹和瀏覽器從輸入URL到渲染出頁面發生了什麼

  5. 另外我們很喜歡表達能力不錯的人,畢竟工作職責不是有個新人培訓和前端技術佈道

前端學習交流QQ群:328058344


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 程式不複雜,直接上代碼了: 運行效果如下: ...
  • 有個項目需要調用第三方SDK,而SDK獲取伺服器的已安裝的特殊印表機列表返回給調用方。 但我不想依賴這個SDK,因為這個SDK是使用.NET Framework編寫的,而我的項目是使用.NET Core編寫的,並且想要部署在Docker容器內運行。 於是反編譯了SDK,查看源代碼,看到該SDK調用了 ...
  • 如何註冊 SignalR 中間件 為了讓客戶端能夠連接到 Hub ,當程式啟動的時候你需要調用 MapSignalR 方法。 下麵代碼顯示瞭如何在 OWIN startup 類裡面定義 SignalR Hubs 路由。 The /signalr URL 預設情況下,客戶端都是通過 "/signalr ...
  • 恢復內容開始 摘要:由於應用環境的變化,需要將現存的對象放到新的環境中去,但新環境的介面是現存對象不滿足的。 意圖:將原本介面不相容的類通過轉換,使得它們能夠一起工作,復用現有的類 adapter和adaptee的關係 適配器一般分為:類適配器和組合適(對象)配器 推薦使用組合適配器,因為類適配器可 ...
  • reg = /[~#^$@%&!?%*]/gi; if (reg.test(postdata.Name.trim())) { alert("姓名不能含有特殊字元"); } else { if (isEmojiCharacter(postdata.Name.trim())) { alert("姓名不能 ...
  • $.fn.serializeObject = function () { var o = {}; var a = this.serializeArray(); $.each(a, function () { if (o[this.name]) { if (!o[this.name].push) { ...
  • 方法一:利用form的onsubmit()函數(經常使用) Html代碼 <script type="text/javascript"> function validateForm(){ if(document.reply.title.value == ""){ //通過form名來獲取form a ...
  • //重寫alert方法,去掉地址顯示window.alert = function(name){var iframe = document.createElement("IFRAME");iframe.style.display="none";iframe.setAttribute("src", ' ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...