一個“碼農”自述的血淚史:當了35年程式設計師,我最大的遺憾就是沒抓住機遇轉行

注: 這是一個“一子錯,滿盤皆落索”的故事。兢兢業業幹了35年的程式員,最後卻認識到,程式設計師的力量太過微小。無論你寫程式有多厲害,你都很難有權力真正改變一些失敗的產品、失敗的專案。
尤其是當他看到,當年跟自己同上節目展示開發軟體的Mike Slade,最後走上管理層,創立了包括ESPN在內的一大批公司,成了喬布斯的好朋友,那種失落更是莫名的強烈。至今都對自己當初貪圖安逸、沒有走上管理層而懊惱,走技術管理還是繼續當程式設計師,這是個問題?
約摸20多年前的時候,我面臨著一個人生的交叉路口。當時我的第二家公司正在走下坡路,我們給一家出版商客戶開發了五年的Deltagraph軟體專案終止了,因為對方想要轉移到方興未艾的網際網路世界。當時的我當了13年的程式設計師,其中有9年左右也身為管理層參與經營公司。
我不想再兼顧這兩種工作了。此前在85年到87年期間,我的第一家公司不僅開發了一款新的電子報表製作軟體,還自己搞定了軟體的發行工作。我領導公司,接受媒體採訪,維護和投資人的關係,基本的公司事務都是我在做,同時我還是全公司的3個程式設計師和UI設計師之一。到了87年初終於成功釋出產品的時候,我緊張興奮得最終進了醫院。想要同時幹好領導和程式設計,實在是超負荷的工作。
到了1994年,當時我有機會選擇職業方向,可以進行技術管理也可以繼續當程式設計師。我選擇了當程式設計師,因為工作更簡單。今天我才明白,自己的選擇有多麼地錯誤,儘管我在當程式設計師的20年間也參與了許多很棒的專案。如果當初選擇了首席技術官、資訊長、工程副總裁這樣的路線,那將是好得多的決定。
如果你依然在程式設計的世界裡迷茫,不知道自己的未來規劃,可以加入JAVA架構學習交流群:614478470 裡面可以與大神一起交流並走出迷茫。進群免費領取學習資料,看看前輩們是如何在程式設計的世界裡傲然前行!群裡不停更新最新的教程和學習方法(進群送JAVA架構視訊資料),有想學習JAVA的,或是轉行,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入學習
1995年前後,我在舊金山灣區工作了一年,其中後半年是在蘋果公司。蘋果公司當時看起來快要倒閉了,我不想看著自己最愛的公司分崩離析,於是就離職回了德州。
那時的我太年輕太天真,乃至大錯特錯。蘋果公司在一年後喬布斯迴歸之後東山再起,網際網路風暴也在那時開始席捲全球。
作為一個經驗豐富的程式設計師和領導者,我完全明白開發一款產品是怎樣的一個過程。我們曾經做過九次應用的重大發布(major release),所有軟體的核心都是我寫的,都不需要後續加修正程式——反正當時補丁也很難寫。我摩拳擦掌,心想那些公司是多麼需要我這樣的人才。一旦有機會坐到高位,我就可以平步青雲了。
我的姐姐也在30年前開始了她的程式設計師生涯,但她在工作的第一年就跳到了管理職位,此後在一個大公司當副總裁,一干就是15年。我幾年前在一家旅行社工作,其母公司的CEO就是15年前幹程式設計師起家的。當然這類管理工作可能很困難也沒啥意思,但他們的報酬要好得多。我姐姐的資產大概是我的10倍。
這些年來,我認識到程式設計師的力量太過微小。無論你寫程式有多厲害,你都很難有權力真正改變一些失敗的產品、失敗的專案。 我當時就是沒看明白,作為一個程式設計師(乃至建築師這樣的崗位)的晉升空間有多麼小。在這樣一個幹苦力的崗位上,你改變事情的力量註定是微乎其微的。再算上管理層在財務上的福利、更有可能深入參與公司IPO以及其它種種可能得到的機會,選擇當程式設計師,就意味著你必須滿足於開發好產品,其他就別想太多了。
這些年來,我工作過或作為顧問諮詢過的那些最差勁的企業,基本上都是因為他們的技術管理層的不稱職,甚至是徹頭徹尾的技術白痴。這類公司簡直多到寫不完。
舉個例子,一家銀行的工程副總裁曾聲稱,作為一個管理者的他不需要懂得那些技術細節,因為他管理的是人,而且仍然認為自己可以做技術方面的決策。同一家銀行的資訊長從來不相信他手下跟他說的話,反而把賣方的話全盤兼收。我們當然都知道他從中獲得了提成,雖然我們買的都是根本用不到的東西,他卻總是寫文章稱讚那些產品對我們來說有多大用處。我離開那家公司一段時間後,他也被開除了,但轉頭就又找到了另一家公司裡類似的職位。
我做過最差勁的一份工作,恰恰是我本以為會是最好的一份。當時一個已創業一段時間的企業在他們的領域裡取得了一定的地位,他們和定位不同的競爭對手都想佔領更大的市場,於是競爭開始白熱化。
我被僱傭為第二程式設計師。原來的一個程式設計師和經理的職責是開發一個新的線上商店, 因為原來的商店網站太不靈活,而且訪問量一上去速度就變慢。整個公司沒有其他技術方面的領導,CEO和另兩個創始人在技術方面沒有任何經驗和知識。另一個程式設計師一直在吹捧自己的後臺程式碼寫得多好,管理層也支援他。
我開發了一個前端,架設測試,每天簽入程式碼。當我覺得是時候把我的程式碼整合到系統中時,我發現另一個程式設計師在10個月裡啥也沒幹。我把這件事告訴經理,他卻對我說,“他在做到完美之前從不會簽入程式碼。”。然而,其他人都不覺得這種做法很愚蠢。在接下來的兩個月裡,我一直努力讓三個創始人聘請真正能做事的程式設計師(我認識幾個合適的人),但他們很害怕做出改變,也不肯承認聘請那兩個人從一開始就是錯誤的選擇。最終我選擇放棄,離開了那家公司。
一年後,那家公司在仍然沒有從那兩個員工那裡看到一點進展,於是終於決定開除他們。他們嘗試去找一個諮詢公司,但仍然一無所獲,當時已經為時已晚。他們的競爭對手已經成了估值十億美元的上市公司,我還在電視上看到過他們的廣告。而每次在電視上看到他們的廣告,我都想拿一隻鞋子砸過去。那時候的我們萬事俱備,就差一個線上商店,和一個真正的技術領導人。如果當時的我身處管理層而不是一名小小的程式設計師,我肯定會讓整個公司走上另一條路。但我只是一個程式設計師。
這樣的事還有很多, 但在技術上,你並不能改變人們做事情的方式,除非你有那個能力、權力和機會。有了這些條件,並且找到正確的位置來發展,你才有可能摘星攬月。
1987年年初,我在電視節目中展示自己開發的Trapeze軟體,上節目的另一個展示人是Mike Slade,他是Excel 的產品經理。當時的我還太年輕,以為他也不過是一個無名小卒。然而他後來創立了一大批包括ESPN在內的公司,曾在蘋果公司擔任許多領導角色,成了喬布斯的好朋友,並創立了自己的風投公司。
但是,今日的我還是一個程式設計師,籍籍無名的技術工。我甚至覺得,我永遠都不會有真正退休的一天。還好我技術不差,現在的這份工作就是以前的一個經理招我進來的,因為他了解我的能力。但在我老到做不動之前,我仍然只是一個小小的程式設計師。
幹了35年的程式設計師,保證按時完成任務,我也依然覺得推出新產品是很有趣的工作,這些年我也有機會開發了許多不錯的產品。但是,我仍然能夠感受到對當初貪圖安逸、沒有走上管理層的懊惱。
在某種程度上,當程式設計師是一份簡單的工作。然而,一想到我曾經距離網際網路風暴的中心那麼近,離喬布斯迴歸那麼近,我也有一定的領導經驗,我就無法不懊惱,我完全可能是另一幅模樣。
所以,我真的很後悔沒有直面挑戰。當然,如果走的是另一套路,我就會失去寫程式碼的樂趣,也無法感受寫不出來的絕望感。但是在人生的分岔路,我選擇了行人稀少的那一條,它改變了我的一生。現在我大概明白了。
這裡推薦一下我的JAVA架構學習交流群:614478470 ,想要學習Java高架構、分散式架構、高可擴充套件、高效能、高併發、效能優化、Spring boot、Redis、ActiveMQ、Nginx、Mycat、Netty、Jvm大型分散式專案實戰學習架構師視訊都有整理,送給每一位JAVA小夥伴,有想學習JAVA架構的,或是轉行,還有工作中想提升自己能力的,正在學習的小夥伴歡迎加入學習。
ofollow,noindex">點選連結加入群聊【JAVA高階架構】:https://jq.qq.com/?_wv=1027&k=5gMDouY