1. 程式人生 > >前端程式設計師成長的記錄及被某IT外包公司套路的經歷

前端程式設計師成長的記錄及被某IT外包公司套路的經歷

           親身經歷,記錄下來,也敬告各位剛出社會的畢業生們,面試的時候千萬擦亮眼睛。說一下事情的前因後果吧,本人座標深圳,本科畢業三年,兩年多的專職前端開發的經驗。上個月8號從上家公司離職,休息加上看java的學習視訊,大概這樣過了十五天,準備用java,Vue搭一個自己的個人部落格。因為上家公司的後臺是用java寫的,有的老專案前端是用jsp加jquery寫的,工作中也經常接觸,所以對java相對來說比較瞭解。但是搭著個東西可能也沒有想象中的那麼容易。前端頁面倒是寫得差不多了,本來想設計一個酷炫的,獨一無二的介面效果加上佈局什麼的,其實這個東西如果你不抄襲,不模仿還是挺頭疼的。寫出來之後發現跟我想象的不是同一個東西,感覺有點迷。

    後來就在某憂上更新了簡歷,然後在拉鉤上也更新了簡歷,但是我沒投過簡歷,後面在外包的刺激下就給騰訊,順豐,華為的前端崗位投了簡歷,但是沒有迴應,其實我也有自知之明。github上面沒有拿的出手的輪子,沒有對某一個方面瞭解的比較深入,根本沒有機會。

      說一下我的經歷吧,我的前端所有東西全部是我自學的,從剛開始在某寶上買的廉價視訊教程,對照著上面樂此不疲的寫靜態HTML,CSS,學習JS基礎,學習Jquery,看阮一峰大神寫的部落格,雖然當時可能還不知道那部落格精髓在哪裡,真的是通俗易懂,大道至簡,推薦大家去看看,每天學習10多個小時,模仿各大網站,在找不到工作的煩惱下煎熬了幾個月,錢也快要花完了。最終在朋友的幫助下找到第一份開發工作,剛開始工作的時候很懵逼,但是工作中用Jquery寫靜態頁面,調ajax其實也沒有想象中的那麼難,後來公司要搞混合App,不太會,依然是網上去找資料,從此接觸了ng1,Ionic,但是我還是主要做的是網站,接近一年的時間。因為某種原因離職來到深圳,本來當時在學angular1做混合app,但是我簡歷上也沒有什麼像樣的專案,就模仿著做了個個人web簡歷,電梯樓層的一個單頁的展示頁面,自適應,還模仿了一個PC網站,沒加meta標籤,手機上依然可以看到全部視口,但是按鈕什麼的比較小,用jquery做的,大概有四十多個html,總共大概寫了1個多月的靜態的頁面。放在github上,有一個很長的連結,可以在手機上直接訪問,訪問的速度很慢,甚至載入Css都要好幾秒,一般我都是先開啟,然後給面試官看,面試了幾家,雖然是有點取巧,我記得有一個面試官對我做的東西不屑一顧,給他看那個沒加meta頁面,他說這是PC端的,他要移動端的。然後給他看電梯樓層的個人簡歷頁面,他說這也叫移動端頁面?其實我至今也不太明白他所說的移動端頁面到底什麼意思。然後他給我發了一個psd,看看我能不能做出來,我花了一晚上給他做好了發過去,沒有任何迴音。後來我面試了我的上家公司,公司做UPS的,面試的時候我把這兩個頁面給我當時的上司看,表示我們公司的前端可能做得不好,但是後臺java寫的比較好,可以來學習一下,我問他做不做APP什麼的,他說後期會做。沒多想就體檢進了這家公司,挺正規的。技術上面前端是用jsp加jquery做的,裡面很多<s:text name="">,<s:iterator .....>,<s:if .....>,剛進去的時候還有點懵,後來發現也就是java裡面的變數,遍歷的是java裡面的list而已,做專案當時的老大也會給合理的時間給你。在那家公司我啃完了javascript高階程式設計,加了不少公眾號,每天看一些文章,花錢買了angualr4.0 ionic3的視訊教程,跟著寫了一遍,看完jquery原始碼解析,雖然有些地方現在也不太懂,比如那種很長的正則。在公司偶爾也會寫一下java的介面,大概接近一年,公司裡面的東西感覺越寫越輕鬆,似乎對每一個頁面,每一個button瞭若指掌,當然頁面也不多,也就幾十頁面,但是頁面上面哪個地方報錯,看一眼就知道哪個地方的問題,學到了不少,那種感覺真的很舒服。但是待久就感覺東西比較簡單,進入了死迴圈,想挑戰一下有點難度的東西。找了個理由辭職,經理挽留但是還是走了。

     life==1&&life==2&&life==3可以實現嗎?現實生活中或許不可以,在js中也許可以 

       function Life(){         return{               i:1,           toString:function(){                return this.i++;            }         }     }    var life = new Life();

    上面說到開始投簡歷,某憂上更新簡歷的效果真的讓人驚歎,可能老程式設計師們有過親身體會,但是這種狀況我還是第一次遇到。以前都沒人理我,一天接到很多個電話,基本上都是外包。人力外包,專案外包什麼的。剛開始還跟他們聊一下,還去面試過一次,後來的電話就問一下是不是外包,如果是就直接拒絕(之前找工作可能也是運氣比較好,做的都是自己公司運營的專案),拒絕的時候,有個別的HR確實牛X的不行,可能我說話也比較委婉,並不想用太強硬的詞,動不動你找不找工作撒,什麼某安,某為的區塊鏈,微服務專案,什麼我給你打電話是看你現在比較年輕,你學校又不行什麼的(這個確實是我一直以來的痛點),什麼再過幾年你這簡歷我看都不想看。多的我也不想再說了,各位看官自己聯想一下。

                後來直到某公司打電話過來,我問她是不是做外包的,他說不是,然後就讓她發地址。第二天忘了沒去,又接到電話,就去面了個試,面試通常首先介紹我自己,然後我介紹了我做過的專案,然後這個面試我的人就開始講了,說公司是做停車這一方面的東西,隻字沒提他們是做外包的,而且這個人對前端基本不懂,然後他說了最誤導我的話,公司之前有人用C++寫了Android,IOS的一個跨平臺的框架,頁面用html,然後巴拉巴拉一堆。我就問到有混合App的解決方案為什麼不用,他說導航的問題,巴拉巴拉一堆,我說效能滿足不嗎,他接著我的話說是,我問他公司有沒有UI,他說沒有,但是都是參照同行的頁面做的,然後他當場表示要我,讓我立馬來上班,公司急著要人,我說我考慮一下。其實他說完之後我知道他是在吹牛,但是沒有當場戳穿他,倒是覺得即使沒有寫這個框架但多少應該還是有點東西吧。可能太年輕,就是這個錯誤的想法讓我浪費了一週時間。

                 後來又面試了其他兩家公司,都是一些小公司並且拿到Offer。除了在拉鉤上給騰訊那些公司投過簡歷,沒有主動投過簡歷,只面試過三家公司,而且覺得那個領導挺傻的又不懂前端,這可能就是我被忽悠的主要原因。其實更傻的可能是我,太年輕。

      週一去了那家忽悠我的公司,把我的畢業證影印件,學位證影印件,離職證明都給一個做人事的女的。然後那個公司的老闆找我聊了一下,大概的意思程式碼寫得好不好無所謂,出產品,使用者看得懂就可以,當然立場不同,而且他又是老闆,我就附和說這個當然,當時還不知道他們是外包公司,公司20幾個人,當時填寫個人履歷的時候我看到了他們公司有一份檔案寫著未乾滿30天不發工資,然後有一個做人事的女的跟我說試用期不交公積金和五險,工資發放80%,我問她你們公司社保基數繳納多少,她說3000,然後快速的拉我進群,我問她籤不籤合同,她說暫時不籤,我頓時一陣心悸,當場我就有點想走人。但是一想來都來了,先看看。

    然後有一個跟我差不多大的人,暫時稱呼他為甲,甲自己用的自己的筆記本,甲開啟一個桌上型電腦的後臺管理系統頁面,然後還有一個移動端的介面,移動端的介面用JQ做的,我就沒怎麼看。我問甲後臺系統是用什麼框架,甲說ng2。然後我一看原始碼,程式碼上有ng-controller,$scope這種東西,一眼就看出來是ng1,然後我去問這個人,然後這個人指著一個類似package.json的東西,指著Angularxxxx:2.0.1跟我說是2,然後我指著Angular:1.x.x說這是1,那時候就感覺有點不對勁 。我大概的看了一下他們的程式碼,整體是用ng1+gulp+一個類似Emmet的模板做的,然後那個面試我的人給我發一大堆圖片,當時我問他這邊不用svn或者git嗎,他表示用git,然後我到他們git上面去看了一下基本沒有程式碼,那個面試我的人讓我下午看一下easyui。後來下午我加了甲的微信,聊了一下,才發現我是來接他班的,跟我說什麼這個公司還可以,但是他要離職。當天晚上我就在想第二天要不要去,實際上拿的錢比之前還要少,而且這個公司明顯哪有問題,但是善良的我還是覺得不辭而別不太好。

    第二天,有一個專案群裡面的人加我,這裡稱呼他為乙,問我是不是做前端的,然後他問我XXX的專案頁面有沒有做好,我說我昨天剛來,然後乙發了一個他們的專案簡介給我看。那個專案頁面還沒開始動,當時微信群裡面就在討論用C++的poco搭一個web伺服器的問題,後來微信群裡面又有個人,稱他為丙,讓我丟html到伺服器上面去測試,我通過webstorm的Browse Remote Host把東西丟上去。一看返回來的html的程式碼顯示在上面,這肯定不對。丙又要我丟一個html到一個nginx伺服器上面去,正常顯示。後來他們就在修改,然後我就看他們那個用ng1做的專案原始碼,有一個改變頁面顏色樣式的元件明顯有BUG,改了顏色改不回來,還有個鎖屏的功能,用JS做的,也是個雞肋,後臺沒有做任何處理,把那個鎖屏display:none之後照樣操作,很多CSS的廢程式碼,樣式無用。後面乙在微信群裡面說那個伺服器的東西改好了,然後給了我一些介面,讓我在伺服器上試一下。是給了我一個ip:8080的東西,但是那個Web伺服器的埠是9088,一看這個東西就知道涉及跨域了。但還是用JQ寫了個ajax,丟上去瀏覽器顯示跨域報錯。跟甲說了一下,他們在微信群裡討論。然後我就下了vue-cli,配置resource,資料返回的是字串:介面未實現。然後他們說又改好了,埠改成一致了。然後我就把vue的預設專案的首頁打了個包,丟上去。又出現一個很奇怪的問題,丟上去的html裡面引用的JS檔案報錯,有一段JS亂碼了。一開始我以為是我打包的問題,反覆建立專案打包幾次,還是亂碼報錯。我就把專案丟到那個nginx伺服器上面,正常顯示,我知道應該就是那個伺服器的問題。我就把截圖發到群裡面,乙開始質疑我,說路徑有沒有問題?,檔案確定是同一個麼?我說是。

    晚上下班,丙一直給我發截圖,說這個html為什麼沒有換行符,被壓縮了。我說這個不影響,然後在看webpack和gulp的一些東西,這個問題被丙改到了晚上十二點多,在群裡發截圖,vue的那個預設首頁可以正常訪問。我問他什麼問題,他說壓根沒有給我返回檔案,我說瀏覽器裡面可以看到JS報錯了呀,他沒有回答。

    第三天,早上九點。那個面試我的人在群裡說進度跟不上了,你們那邊的進度有點慢,我們是總包,巴拉巴拉的一堆。昨天晚上丙剛加班到十二點,他懟一句談何進度有點慢,如果是工作量大的話我們會加班完成。當然加班是沒有錢的。至此我完全搞明白了,原來不對的地方是他們公司是外包公司,從我接到那個面試電話,就開始忽悠我了。一整天我都在想這個事情。上午他們在群裡發了兩個系統的介面照片。讓我照著這個做,一個BS的照片,一個居然還是CS的照片。頁面奇醜無比。我問怎麼還有CS的,這個怎麼對照,那個面試我的人說根據BS的使用習慣讓我看著調。然後給我發了幾個CSS的檔案,我打開了一個,一堆class,有點無語,然後我問有什麼其他要求沒有比如相容性什麼的,丙回答谷歌必須要相容,360最好也相容一下。下午,那個面試我的人在公司碰到我的時候問我怎麼樣,他說他看我用的VUE,我說我不準備用Jquery和easyui,準備用Vue和Elementui,他說要跟其他小組做成一致,要像同一個團隊做出來的東西。我說這個樣式改成一致的也可以啊。他說這個比較慢吧,我說差不多吧,後面丙開始在微信群裡催頁面,問我能不能出差去那邊開發,我沒有理他。晚上九點,那個面試我的人開始在群裡面問進度,問有一個攝像頭的監控準備怎麼做,面試我的人和乙開始討論,乙說用VLC,但是我看了一下,谷歌最新版本已經不相容VLC了,他說攝像頭是網路攝像頭什麼的,我說如果是網路攝像頭的話也許可以把攝像頭的頁面嵌進來,但是這種需求我沒有處理過,覺得還有點意思。討論到晚上10點多

    第四天,早上九點,乙就開始讓我給程式碼他。我寫了一行iframe,給他測試一下不行,那個網路攝像頭監控頁面使用flash寫的。其實flash的話應該也可以嵌,他開始問還有什麼方案,沒人回答。微信群裡面乙又開始提VLC,併發給了我一個demo,我說谷歌已經不相容了,強制不用還是怎麼樣?他說立馬就說你沒有下載外掛,我說並不是我沒有下載,是已經不再支援了。讓他去下載個谷歌試一下。丙在微信群裡面說必須支援谷歌。乙問還有什麼方案,然後我沒有理他,開始寫我的頁面,看了一下文件並沒有仔細的去看,那個參照頁面是用easyui寫的一個多視窗一個東西,Elementui中並沒有這樣的元件,我用的vue路由實現,用watch監聽路由變化的時候push到一個數組裡面,在模板中迴圈出來那個陣列,給元素繫結一個跳轉路由的事件。

    下午群裡面又開始催,頁面有沒有寫好。我問他要參照頁面,或者頁面的邏輯,他給我發了一個後臺業務邏輯的文件,裡面寫著資料庫裡面儲存的欄位型別。我說你把這個發給我幹什麼,乙說這個你看懂了沒有,我有點不爽,不就是增刪改查麼,乙說還有把資料繫結到頁面上去,我有點無語,說,好。

              第五天,中午那個面試我的人又在問我怎麼樣,我說還好吧,沒有什麼難點。他說20多號能不能做完,我在想CSS上面沒有UI,沒有對照的東西,甚至具體的頁面中顯示什麼東西我都不知道。我說那個後臺頁面差不多吧!他立馬說還有那個前臺的頁面也要做完(一個是系統介面,還有一個是售票的介面),他說沒什麼複雜的吧,就是一些視窗切換display的東西,我們是總包,20多號就要上線。我說確實沒有什麼複雜的,但是沒有UI,沒有具體頁面參照,這些細節東西也很花時間。他說那就不寫樣式,把JS寫完,介面的話先用假資料,到時候把介面調通就可以。我又問他具體是20幾號,他說22號。

    當天是7號,我剛來第五天,還沒有籤合同,除去兩個週末一共十一天時間。後面我又認真的看一下需求,功能選單上一共近60個功能,也就是說VUE要配置60個路由,加上頁面一些邏輯,調通介面。即使大多數是增刪改查,但是想要封裝是不可能的,因為頁面邏輯未知,UI未知,即使做出來了也是一堆垃圾,後期BUG無數,都是複製貼上的,報錯了你都不知道什麼問題。當時我真的很深刻的體會到為什麼大多數程式設計師不願意進外包公司,因為模式,你就是他的一個賺錢工具,就是擰螺絲的一個人,接近深圳市最低的社保,試用期沒有五險一金,入職不籤合同,沒幹滿30天不發工資,完全沒風險,為什麼外包公司要把前端後端分清楚呢?因為你離職了好招人,為什麼會有這麼多人跟你主動打電話問你找不找工作?不是因為你優秀,因為多招一個人,他們又可以早點多做完一個專案,那就意味著老闆又多賺一筆錢。週末雙休?那是搞笑的,因為實質上專案時間週末已經算在裡面了,你的能力在他看來是沒有意義的,會框架會複製貼上就可以了。

                我想起我面試時候他跟我說公司裡面之前有個人用C++寫跨IOS,Android的框架,之前我還以為他只是在吹牛,可能有寫點什麼東西出來,最起碼不會像外包一樣沒有時間自己提升,瘋狂趕進度,但是我錯了。我現在知道他完全是在騙我,他就是外包。甲週五已經跟我交接,告訴我要悠著點,說頁面就複製成一模一樣的就可以了,本來是面試我的那個人要簽字的地方,但是他讓我籤。讓我籤就讓我籤唄,反正我沒簽合同。下週一把我的離職報告拿回來,這個地方不是我想呆的地方,肯定要走人的。

                晚上面試我的那個人在群裡面發進度報告,晚上我就表示這個東西時間太短,程式碼會太爛,那個面試我的人表示後面可以慢慢改,丙說先把東西做出來再說,那邊一直在催。當時我在想好啊,我給你做出來,做出來然後走人,正好VUE也練練手。把打包好的給你,想跟我要原始碼,你的臉怕是比城牆還厚?晚上去喝了點酒,真的很不爽。

     週六的晚上稍微寫了一點,然後睡覺。

    星期天調整了下心情。我體驗了一下趕進度到底是個什麼樣的感覺,開始瘋狂的複製貼上,自己大概寫了三十行程式碼。複製了一天,把我之前原生JS封裝的一些東西,還有百度的大部分東西瘋狂複製,在此感謝各位把程式碼寫到部落格上面的同志。配置33個路由,封裝了一下http請求。後來打包的時候發現vue中路由的history模式,程式碼丟到tomcat伺服器上面,重新整理頁面後JS的虛擬路由不存在會報404。把history模式刪掉,路由中有一個#號很難看。還是要了解一下,要在伺服器上修改一些東西。這是我用VUE寫的第二個東西。

    當晚七點那個面試我的人又在發截圖,丙說一直在催頁面要我出差,我都不想理他,我就對面試我的人說明天我們聊聊。

    當晚思考了一晚上。

               第二週星期一,以前公司沒結清工資的理由要回了我離職證明,把打包好的專案放到他們伺服器上,找面試我的那個人聊了兩個小時,中間的對話有點顛覆我的想象力。我質問他那個寫框架的事情是不是在騙我,他不承認是在騙我,巴巴拉拉的一堆,一頓胡說八道,我問他要原始碼看一下,他說沒有。我問他你寫了多久的程式,他說8年,我問他要他的github,他說沒怎麼用過github。我都懷疑他是個假的程式設計師,臉皮真的厚的可以。話不投機我就直接走了,畢竟沒簽合同,欺騙我,還耽誤我一週的時間。

     此文敬告那些正在找工作的程式設計師朋友們,以及正在努力的朋友們,找工作需謹慎。當一條鹹魚也要做一條有夢想的鹹魚。下面導航欄的明細。