在小公司編程是一種什麼樣的體驗?
好像在知乎上都是一大票牛人,在大公司其樂融融的開發體驗。。那麼,有沒有普通的程序猿,在普通的小公司,分享一些普通的故事呢??
- 生產機上調代碼,調通了再進SVN。
- 做了一個噩夢是誤刪了資料庫,醒來發現是真的。
- 切圖、代碼、資料庫、前端、後端、運維、API、微信、支付寶……看晶元Data Sheet查信號時序、看原理圖板圖找引腳…、給安卓客戶端Debug解決耗電問題、……反向工程j2ee項目提取資料庫賬號、……給友商報Bug……、去生產工廠教工人刷測試代碼看測試結果…直到教用戶如何輸入手機驗證碼、給客戶門店台式機選配置單,都是一個人啊。
- 經常擔心自己要是生病了,這些個項目可怎麼辦
5. 猶豫要不要匿名
6. 看見這個問題就想進來找找共鳴,點個贊,點個贊,點個贊。會被逼成全棧工程師
體驗就是,沒有啥流程,每天除了寫代碼還是寫代碼,所以下班也不會太晚。工作氛圍比較開心,都是年紀差不多的,沒有多少職級的觀念。
當然壞處也不少。正因為沒有規範的流程,導致任務分配不明確,每個人負責哪一塊很模糊。產品改需求,程序員改代碼都太隨意,缺少相應的監督。項目代碼更是缺少code review,團隊的技術水平參差不齊,導致好的代碼和差的代碼混雜在一起很壯觀。去過 2 家創業公司。2 家都是和遊戲相關,一家是做手機遊戲,另一家做的是雲遊戲平台。
第一家的確像前面說的,技術選擇比較自由,能夠自由發揮,沒有上下級關係並且公司也願意嘗試一些新的技術手段實現產品功能。有牛人帶著。因為產品上線所以能看到自己的設計可行,可以達到負載要求並且打聽下來還是屬於行業比較先進的方案。在這家公司是我技術長進最多的那段時間,我學到很多東西並且也驗證並測試了自己開發分散式系統的能力。開發模式接近 DevOps,開發和協作效率極高,服務端把最新的代碼推到辦公室一台伺服器上讓大家測(客戶端、策劃、數值),因為也有比較完善和智能的後台系統所以不用文檔也能讓客戶端互動式調試協議。後來因為一些個人原因和平離職並且沒拿到項目提成。
第二家更像是一種靠騙投資過活的公司,整天做的不是產品而是demo,產品周期長(3年),餅畫的很大但是技術可行性沒有保障(demo所採用的技術無法橫向擴展)。更加無法忍受的是這家公司還分上下級關係,而劃分級靠的是年齡而不是項目經驗,而 leader 是一個做前端不會用框架,做後台不懂架構,還特別喜歡對別人做的事情指手畫腳的人。另外 CEO 雖然技術出生但是有很強的技術潔癖,不接受任何不直接編譯到機器碼的語言,並且對自己不熟悉的領域相關的技術有極強的控制欲。這家公司的開發方式比較接近大公司,喜歡定規則,手寫協議文檔。辦公室沒有統一測試環境,代碼庫用SVN並且有嚴格的許可權控制。還有就是公司的技術信息不透明,完全不願意向你透露核心技術的進展。這家公司還有法律風險,註冊資產有一千萬人民幣卻死活不肯和員工簽正式勞動合同並且繳納四金,工資發稅後工資卻不交稅。在這家公司每到月底都提心掉膽擔心不發工資,而且即使發到工資也沒有成就感,因為大部分重要工作都是我自己在唱獨角戲,得不到重視還被百般阻撓,所以第二個月拿到工資就直接走人了。
我直到現在還是比較傾向在創業公司工作,能發揮個人的作用並且可以更快地學到東西。不過千萬要注意那些騙投資的公司。如果業務屬於有技術壁壘的一定要在招聘的時候確認這項技術的確已經被實現,被這家公司掌握並且在短期內是可以隨業務擴展的。至於那些 CEO 為了畫餅講出來的話,聽著開心就好。一本正經的答題。
先介紹我的職業和以前所在的公司:
所學的是.net開發,但是畢業後的工作是web前端開發。(為啥?因為後台的邏輯對於我這種懶人來說好複雜~~)公司呢,創業公司,類似於外包公司,有在做自己的品牌產品,但是,還沒具體實現。(接的單子都忙不過來) 公司的同事也是剛畢業,或者在校的大學生,也比較聊得來,我們的項目組成員:設計*2個,前端*2個,後台(後台人員經常變動,有些是做了幾天就走了) 然而我們老闆也算是後台一個。體驗呢,就是全棧工程師。
當然,還好我們公司有設計師,後台,我不用全包,我只負責前端,但是我們老闆招人真的是要求不高,真的是好老闆(。⌒?⌒),招的後台都是有一丟丟經驗的在校大學生,半懂不懂的。我想,當時我面試的時候跟老闆說我學的是.net,會一點c++,php,我不知道老闆的眼睛是不是亮了(☆▽☆)
?(? ? ??)。因為後台人員變動大,所以我也要兼職一丟丟的後台。經常是 "xx,這個頁面的樣式亂了,你幫我改一下",「這個頁面有問題」,然後丟伺服器賬號密碼過來,讓我在線改了然後上傳。講真,老闆跟那幾個在校大學的後台做的真的一般般,而且那些在校大學生做的真的是亂七八糟,還有些就是做了幾天就甩手走人了。有一個項目,從我進公司開始就負責前端,項目的後台經常換人,期間光後台就換了3個人來寫,每個人的編程方法又不同,開發起來更麻煩,最後還是老闆一個人做,直到我離職,那個項目還有很多功能模塊都沒有實現。其實在小公司你真的可以學到很多東西,比如,老闆需要用響應式實現這個頁面,然後你就去學響應式布局,Bootstrap。做手機端頁面,你不會的話就要去學html5+css3,自適應布局。需要做很炫的頁面,還要學javascript,還要一些js庫、插件:jquery,swipper.js,angular.js,等等。跟那些有大神帶的同學比,我真的不傷心,o( ̄▽ ̄)d 我感覺自己好牛,︿( ̄︶ ̄)︿ 我獨立自主,我自豪。
大公司有好的,也有差的,小公司有好的,也有差的,但是差的比較多,IT這個行業,基本是幾個技術人員就可以合夥開公司了。這些創業公司的特點是:公司人少,你起碼得身兼數職,工資不保障按時發,福利待遇沒那麼好,沒有那麼多的活動,經常性的加班,基本沒有雙休,上班自由,基本不用打卡,沒有師父帶,完全靠自己,能自學到很多東西,獨立自主性強,動手查bug能力也增強了。
總的來說在小公司還是很歡快的,都是年輕人,經常開玩笑,聊天,老闆也不錯,脾氣很好,不會罵人,經常買下午茶請我們吃,偶爾也一起去聚餐。
最後,我真的不推薦去創業公司,我一個朋友說得很對,不要當了創業青年的炮灰!不過,創業公司的確可以鍛煉一個人,可以學到很多東西,但是你真的要擦亮眼睛選擇,多看下公司的薪資,介紹,建立時間,員工人數,發展方向,發展前景,所在地址,公司周圍的環境,公司官網,面試時候,面試官的言行舉止、態度問題等等,都能反映出公司的具體情況,是否值得你進。
如果你想要了解一些小公司的情況,或者剛畢業的同學不知道怎麼選擇靠譜的公司,可以私信我,我可以幫你規避一些很明顯的渣公司。╰( ̄▽ ̄)╭這裡單獨寫了一篇文章,具體怎麼規避一些渣公司的,感興趣的可以看下:https://zhuanlan.zhihu.com/p/22135861
最最後,再吐槽一下,前段時間我求職的時候,遇到的一些公司認為前端=設計=美工,這是有多不了解前端工程師這個職業,你在發布招聘的時候沒了解這一職業嗎?還有的公司叫我前端+設計一起做,我直接叫他滾蛋,叫我做兩份工作,不給我雙倍工資的都是耍流氓。
還有些沒有想到的事以後補充,就這樣!人人都是產品經理。
很亂,應該是創業公司工作流程中最大問題吧
但是,其實也不會全是那麼的糟糕------------------首先,- 我在一家創業公司(目前人數20+)
- 我是以技術合伙人的身份加入的,目前的技術團隊8個人,還在持續擴充中。
- 還沒畢業就參與創業了(今天6月畢業),所以也沒體驗過大公司比較規範的流程和管理制度,不太好做對比
創業一年多,有些東西還是挺有感悟和算一點點經驗之談吧,如果一家創業公司的沒有出現過很亂的情況,那可能產品線發展不夠快吧。如果一家創業公司一直是很亂的情況,而不嘗試並努力做出一些改變和優化,那勸你換一個環境。
從去年4月份公司成立,產品開發也是經歷了很多個階段,也一直在嘗試並努力優化因為經驗不足而導致的一些問題比如
- 代碼部署都是靠把本地編譯出來的class通過sftp上傳到生產伺服器再重啟tomcat的
- 產品經理是CEO和我和設計師各擔任1/3,開發過程是沒有產品原型的邏輯說明的
- 文檔極少或者是沒有
- 前端只需要寫好html和css,然後讓後台整合的
- 沒有資料庫備份,沒有許可權管理,沒有負載均衡,沒有https
- 沒有測試工程師,沒有跟生產環境等同的開發環境和測試環境,沒有code review
- 前端沒有代碼壓縮,沒有cdn
- 開發語言單一
- ...
在這樣的生產流水線上,我們大大小小的產品和活動也上線了很多,坑也踩了一些。
比如伺服器磁碟突然滿了沒有提前報警,持續同時在線800人的活動報名系統宕機1小時才恢復正常;從svn換到git後,前端代碼總是被強制覆蓋而丟失;沒有文檔,系統的維護成本大於重新寫;...;...
但是,我們團隊雖小,但是一直在努力。也算是從遇到的形形色色的坑裡面爬起來並成長了吧- 利用vagrant管理本地開發環境和生產環境完成相同
- 鏡像管理生產環境並構建等同的測試環境
- 用coding和jenkins做持續集成,多分支管理不同的業務模塊。每位開發從master遷分支編寫業務模塊代碼,完成後利用coding私有項目的merge request請求合併到test,測試人員接受合併(測試環境完成自動部署分支代碼)進行測試。測試通過,merge request 到master 分支,我進行code review 。沒有問題,接受合併 ,jenkins+腳本 完成自動部署到生產環境8台ecs伺服器(負載均衡)
- 大量用戶投訴有色情廣告(運營商DNS挾持) 購買了ca證書換到https
- 利用阿里雲RDS做資料庫讀寫分離並自動備份
- 利用阿里雲的訪問控制做許可權管理
- 招聘有經驗的產品經理出原型寫文檔並組織評審會
- 利用apidoc編寫介面文檔
- 採用前後端分離架構
- 前端工程化,使用gulp、webpack、node
- 多開發語言實現產品需求,php完成主線web業務和api介面,java或golang做計算和多線程業務和隊列消息中間件
- 利用daocloud 在 docker容器中部署java和goland應用
- 各部門間使用文檔對接工作,杜絕溝通基本靠吼
- 搭建composer 和 maven 倉庫管理私有類庫
- 新的需求開始採用微服務架構來解耦
- ...
2015 年 8 月(高考後假期)我加入現在的公司,負責 iOS Dev 工作。
話說在前,能不去小公司千萬別去小公司,缺乏經驗的千萬別創業。在小公司的生活是別開生面的體驗呢,真的。
總體來說,步履維艱。
我們的成員 7 人都是大一大二(即將大二大三)的大學本科生,都是軟工專業。最開始的時候摸爬滾打。公司成立之前我們之中從來沒有人有過創業、帶領開發團隊、架構設計的經驗,起步極其艱難。
我的 Job Title 叫做「iOS 開發經理」,與其說是「經理」不如說整個團隊只有我一個人寫 iOS,而且僅僅學習了兩周就開始上工了。(感謝那一點點天賦2015 年的 8 月,那個炎熱的夏天,獨自一人在家中寫出了 VSpace(東大小助手)。當時整個團隊對於 VSpace 有很高期望,希望這款產品可以一炮打響,讓整個東北大學所有的人認識我們。但是我們敗在了無知上面。最初我們對於一些技術細節根本不了解……甚至連 HTTP POST 都會將查詢字元串直接附在 URL 後面而不是放在 HTTP Body 裡面,我想這個就已經足夠讓所有的技術同行笑掉大牙……而且我們對域名與備案政策也一知半解,阿里雲的域名不備案是被屏蔽的,當時備案遲遲搞不定,結果「發布」的時候 HTTP 通信 API 都是用 IP 地址的。當時自己連純代碼布局都不太會,UI 都是在 Interface Builder 拖進 Storyboard 再加上遍地的 @IBAction 完成的…………發布就更讓人嘲笑了,我們連 Apple Development Program 的錢都付不起(這可是一個公司呀,你能想像嗎),最後發到了 http://fir.im 上面去,然而證書問題最終也沒有搞定。第一個 App 就這樣被擱淺了。
(如果你對我們的爛代碼有興趣可以在 http://github.com/Obisoft2017 找到我們所有的項目
之後我報到入學了。這一年,GPA 不理想,但是講真學到了很多東西,而且還是在沒有大神帶路的情況下。開學初,印象最深的是在 11 月中旬在東北大學創新創業中心借會議室和另外一個瀋陽大學的團隊開過 7 個小時的產品需求討論,這一次像來回拉鋸一樣的會之後終於自己摸清了產品需求分析的套路。
而且我們有一段時間(一直到現在)為了生計大量接外包,雖然 leader 一直和我們說我們不是外包公司,但是不幹這個就活不下去,因為沒有收入,還要交高額的會計代賬費(每月 300,哈哈,你們都不信這對我們真的是高額),有從外包中介得到的,有從老師那裡得到的。真的是滿滿的套路:很多的工作量,我們完全可以賺到更多的錢,但是很無奈我們身處底層。然後大學生活中的第一個寒假來了。最初我們和 SYU 的團隊合作,但是因為不願承擔風險(合作方和我們一樣資金短缺,只能給我們股份),合作終止,短暫的產品開發也這樣結束了。寒假即將結束的時候我和 leader 帶著我們的一個想法第一次見了某投資人,但是最終投資失敗,我們仍然在艱難度日。很多人看到的只是投資上市,但是沒人投的公司更多。
又一次開學之後我們憑藉這個 idea 在東北大學一次校級的創新創業大賽獲獎(並不值錢)。之後我們開發,當時立了 flag 說是 2016 年 6 月上 App Store,但是因為我們還是本科生,我校軟工培養計劃中大一下、大二下課程都很多,所以開發也是一再停滯,現在還在進行。這個時候我們的開發逐漸脫離了野路子,從需求分析、原型設計、UI 繪製(我)到開發,這個過程還算井井有條,後來還上了 Scrum(敏捷),成效比較顯著。leader(後端、前端)和我(iOS)都有了基本的設計模式運用和架構方面的思想、以及我自己對於諸如 UI 布局(現在我是純代碼 + Auto Layout)、網路通信二次封裝(便於靈活性)、模塊化與代碼復用,比較慶幸的是算是完全的自學、自己摸道路。小公司的日子仍然在艱難的過著。不知道什麼時候我們會走到頭呢。leader 說,中國 90% 的創業公司都倒在了第一年。我們還算幸運?不過估計死期也不遠。
====
2017.1.23 更去年年底解散了。創業公司,我們iOS 2人。經常就是老大想到什麼就說,就這麼做。做好了,會被推翻。需要某個圖片資源了,好吧打開PS自己做。隔壁同事需要裝系統了,好吧我上。為了測試APNS,公司沒有開發者帳號,好吧用我的。iPhone,Mac都用自己的。
月工資低的可憐,還並不包括你自己帶的任何東西。
沒有規章制度,對,完全沒有。只要你來幹活兒就行了。不打卡,早九晚六,午休你自己看著來。基本上6點之後大家都自願到七八點才走。用很不靠譜的邏輯做一個iOS app。你想提意見但是並不好用。老大技術其實挺好的,但是不了解iOS的技術路線。這就導致只能聽指揮做自己覺得很荒謬的東西。作為一個剛畢業的應屆生,我的確有很多我自己的問題。可是這不是自己可以每天都思考人生的理由。
工作不開心,為何不換一換呢。奉勸諸位,小公司請慎重選擇。會有一種:離開我公司會黃的錯覺。
我們公司從事電子商務,技術全職一共5個人,加一經理,兼職3個人。。。所有需求都是一句話的事情,比如技術經理髮話,給我寫個程序把重複的圖片去掉,給我寫個程序檢查一下代理的可用性。。。沒有設計,不講工作流,直接動手寫代碼,邊寫邊改,邊改邊測,不處理異常,不測試反例,正例能跑通直接拿去用,這個時候使用者(一般是提供數據的或者客服)開始口頭提需求:能不能把圖片分個組?我:好……改完,再交付使用,客服妹子:能不能刪除圖片的同時把excel中的數據也一起刪除了,我:好……改完,再交付使用,客服妹子:圖片分組顯得有點不協調,能不能再改回去…… 我:忙著呢,日後再說……幾乎沒人要求我寫文檔和注釋,出了問題,解決問題……就醬。。。
自己管自己的代碼自己吃自己的狗糧系統壞了半夜來修修不好就自己混蛋,,,,非常「標準」的DevOps!!!
一個朋友系列,就叫A吧
A剛畢業就進入現在的公司,公司是小公司,到目前工作了一年,他說公司就他一個做java,從一開始就單抗的現在。
前幾天他打算辭職,原因是他剛發現,所有他自己一個人做的項目,項目書上面基本上沒有他的名字,偶爾出現,也是出現在無關緊要的模塊,項目書上都是項目經理、公司副總之類的,最搞笑的是銷售部門的經理,完全不懂開發,項目書上竟然出現他的名字。
這個朋友當時氣炸了。不是在小公司,但是情況也差不多,大部分時間,產品都只有我一個人在做。
一個產品,做了5年,賣到了三個大型單位。帶我入坑的前輩帶了我一個月就跑路了,於是我開始了一個人支撐一個產品的歷程。全棧算什麼,呵呵。。。我能跑市場,我一個人跑,市場老總帶著我跑,我帶著市場跑。
還要投標,各種對口標書,各種講標。需求不在話下,跟客戶扯皮,需求清單來回過,扯皮,拉關係。項目前期各類設計文檔,需求、高層、詳細設計、DB設計、設計規範等等。項目環境搭建,硬體和軟體,我去收伺服器,和提供商的工程師一起安OS,安各種需要的軟體。SVN是什麼?只是代碼備份庫而已。來到了本職工作,碼代碼。恩,前端後端一筒包,界面自己畫,css自己寫,圖片自己找,我們的美工忙碌到只能給我P圖。(PS我的確不會,用不好)測試、部署上線,項目運維,最忙的一個月一天二十幾個電話。詳細設計文檔、驗收文檔、測試文檔、使用記錄表、幫客戶寫使用評測等等。去給客戶培訓,培訓過的人次數大概跟本次奧運會參賽人數差不多,跑過的路就不提了。參加驗收,市場收錢,我送發票。開始下一輪循環。做到第二個客戶的時候,他們良心發現,安排了一個運維人員來接我第一個版本的運維。然後給我找了個新人做AB角備份,於是我的職責又加了一項,帶新人。全棧真的還好了。。。
公司五六百個開發,對外宣傳渠道里,十二套主售產品,有我這份。左邊我師傅做客戶端的 右邊我拜的師傅做c++ server的
一年成全棧,就是這麼自信。
c++坑兒,我會跟你說成員變數寫成private會被後人罵嗎
1.項目管理比較混亂,經常是開發初期一票人做,中後期就全扔給其中一兩個去維護(因為其他人去干別的項目了),中間的需求變更可能很奇葩,什麼坑都得幫別人填上。2.團隊成員水平參差不齊,代碼質量也是,大量書寫不工整和0注釋代碼在磨練你的心智,因為第一條所以每天都在重構這部分代碼,雖然我也不是什麼牛人。3.工資低,老闆也不怎麼捨得花錢,幹了數年工資也就漲一丟丟,團隊里最牛的人身兼n職,所以也沒啥時間做code review和技術研討。4.氛圍較輕鬆,加班不算多。
一個小時之內,Python,PHP,js,html,css可以都用一邊,有時候還要順帶自己翻譯一下文檔。
就差發工資沒有自己上了
推薦閱讀: