一名大齡獨立開發者眼中的C#與Java

我現在是一名獨立開發者,1979年,今年已經42了。

自2001年參加工作以來一直從事軟體開發行業,到今年已有20年了。軟體開發中的各種職位:程式設計師、專案組長、專案經理、部門經理、技術總監、公司副總,甚至甲方CIO都任職過;軟體開發中的各個工種:開發、測試、實施顧問、銷售也工作過。

2013年突然意識到我的打工之路已經走到了盡頭,所以下來自己寫軟體產品,到現在已經寫了6-7個軟體產品,收入比我打工的時候賺的多些,但是跟國內大廠動輒百萬年薪還是沒法比。不過咱也有自知之明:

一是學歷不如,大廠員工清一色985、211的高材生,我只是一介專科生;

二是精力不如,大廠員工可以996甚至007,我朝九晚五都覺得是束縛;

三是年齡不如,大廠底層員工過了35歲就不招了甚至直接辭退,我都42了,投的簡歷HR看都不會看;

以我目前的年齡和對打工的態度,如果再去投簡歷就是石沉大海、自取其辱,所以我基本上也死了那份心了。當然除了上面的幾點劣勢,我這種也有自己的優勢:

一是工作時間、地點相對自由

。沒有朝九晚五這些硬性的時間約束,只要有網,到哪兒都能辦公。平時基本在家,有事情了就忙一下,沒事想幹嘛就幹嘛,孩子寒暑假想去哪玩根本不用請假,什麼KPI考核見鬼去吧,自己對自己的時間負責;

二是基本實現半被動收入

。經過幾年時間的開發與完善,我現在的軟體系統基本實現了下載、試用、教程、購買、授權全自動化,正常情況不需要人工參與,基本上會上網的使用者都能自己搞定,說白了就是天天睡覺也會有收入。當然也不完全是一勞永逸,軟體系統還需要維護升級,還需要處理一些客戶諮詢,所以我把它稱為半被動收入。後面我計劃再結合軟體開發智慧客服,如果把客戶諮詢也能用軟體系統來替代,就基本可以成為被動收入了。畢竟理財、房租也都是要維護和打理的。

有人看到這裡,會問?不是說C#和Java嗎,說這麼多的你自己幹嘛呢?

我說這些,是給後面的內容做鋪墊。因為國內很多碼農,過了40歲都會面臨像我現在一樣的問題:

再找開發類工作競爭力急劇下降,可能都不只是降薪的問題,而是還有沒有人要你的問題;換行業就要從頭開始,辛苦是一定的,收入肯定不如做開發;

離退休還有20年,而且可能還得延時退休,正是上有老下有小、家庭中流砥柱、甚至揹負鉅額房貸的時候,如果失業影響的就不只是自己了;

如果到了40歲再來考慮這些,可能就有點晚了。我之前也回答過類似的問題,有網友看了說很羨慕,但是你們可曾想過:我是在35歲的時候意識到了這個問題,經過2年時間的摸索與積累選擇了正確的道路,基本達到了收支平衡;又經過了2年時間的完善改進讓整個系統實現了半自動化,我可以從繁重的客戶諮詢、授權等無腦操作中解脫出來,有時間有精力最佳化系統;再經過2年的時間最佳化與改造,讓它變得更加容易維護;後面可能還需要幾年的時間,才能讓我的系統變得更省力,更具拓展性。所以方向性的事情都需要提前謀劃與佈局,你現在的決定會影響你5年後甚至10年後的生活。

所以我覺得任何一個過了30歲的碼農,都應該提前佈局,利用空暇時間自己單幹,給自己的未來多創造一份可能。

自己單幹有兩種路徑:一是做專案,二是做產品。

做專案來錢快,但是不穩定,比較累,一個人很難接大專案,但是大專案風險也高,人多了成本就高,驗收和收款比較難;

做產品見效慢,但一旦做成就會比較穩定。

我個人建議是先從小專案做起,看看有沒有把專案產品化的可能,逐漸積累自己的經驗,最終還是要做產品。

然而如果你想做自己一個軟體產品,你會發現,Java的生態優勢立刻就沒了。

之前我有發表過一篇文章,單純就說C#與Java歷史和當下的環境和後面一個粗淺的判斷,說得比較淺,引起了很多Java粉們的吐槽,無外乎就說Java的生態如何的好,是C#無法比擬的。在當下,確實Java比較容易找工作,因為企業應用用Java比較多。比如航天資訊的稅控系統就是Java開發的,說實話,太爛了,如果不是必須用,立馬會卸了它。

但是如果你跳出企業應用,來到個人市場,你會發現個人用Java幾乎很難生存。

當你想做一款付費軟體產品時你會發現,真正能讓使用者產生付費意願的只有兩種:一是生產力工具,二是遊戲。其他像我們常用的那些社交、購物、聊天、拍照等等的,都不是個人開發者能夠玩得起的。

所謂生產力工具,就是提高工作效率,這是PC端的天下,PC端的大屏和鍵鼠是手機端那種戳來戳去的方式無可比擬的。而PC端windows系統佔據了90%的市場份額,C#開發的Winform程式又好又快,Java在windows下執行動輒就佔幾百M的記憶體,真的就是垃圾。

遊戲毫無疑問現在是Unity的天下,unity用的也是c#。

剩下的一點空間可以留給Java粉們來發揮,我個人是不大看好。

你可以繼續替Java站崗,在Java生態下吹噓它有多麼的偉大,但一旦脫離了那個環境,你會發現自己是那麼的弱小,原來你認為的強大都是別人的,它從來都不屬於你。

當你像我一樣大齡,需要獨自解決個人生活問題的時候,C#是可以給你續命的。比如說我現在想做一個自動選股軟體,採集資料、技術分析、圖形顯示、模擬盈虧等等,考慮到效能和開發效率,肯定首選C#而不是Java。個人工具C#實用,這就是它的優勢。

如果你想成為一名獨立開發者,開發自己的軟體產品,關注我可以瞭解到更多的乾貨。

一名大齡獨立開發者眼中的C#與Java