我2003年畢業(yè)于湖北大學(xué)(統(tǒng)招一本)教育技術(shù)學(xué)專業(yè),教師轉(zhuǎn)碼。讀大學(xué)的時(shí)候CSDN傳言:“程序員干不過30歲”,后來又傳言“程序員干不37歲”,我感覺“本科37歲是小坎,專科30歲是小坎。45歲是大坎”。我2014考了軟件的軟件架構(gòu)師,輕松過了小坎,我快40歲時(shí),舊同事至少一半已經(jīng)轉(zhuǎn)行。現(xiàn)在我已經(jīng)45歲了,大坎已經(jīng)來臨,不知道如何應(yīng)對(duì)?
一,技術(shù)還是業(yè)務(wù)
工作后是選擇技術(shù),還是業(yè)務(wù)?不同的人有不同的選擇,選擇無所謂對(duì)錯(cuò),只有合適不合適。絕大部人選擇的是業(yè)務(wù),見效快。缺點(diǎn)是過于依賴某個(gè)行業(yè)或公司。我選擇的是技術(shù),非常的艱辛。大致過過程如下:
一,6個(gè)月出可以運(yùn)行的產(chǎn)品,所有功能基本完成。
二,又6個(gè)月根據(jù)上司、測(cè)試部門、售后部門的要求反復(fù)修改。這個(gè)階段,我期望盡可能短,以降低市場(chǎng)風(fēng)險(xiǎn),但公司往往不讓。
三,又6個(gè)月上線第一個(gè)項(xiàng)目,摸著石頭過河。
四,又6個(gè)月上線第二三項(xiàng)目,驗(yàn)證可能遇到的問題。
五,上線大量項(xiàng)目,這時(shí)有沒有我,都無所謂。
除創(chuàng)業(yè)的4年外,我的工作經(jīng)歷可以分為如下幾類:
| 只工作半年 | 是把問題搞砸了或者問題沒解決了。把人治死了和治療無效,病人自然死亡本質(zhì)是一樣。 |
| 工作一年 | 是軟件已經(jīng)完成,可供用戶試用。但市場(chǎng)的原因產(chǎn)品失敗了。 |
| 工作兩年 | 是問題基本解決,但公司的經(jīng)濟(jì)壓力變大。 |
| 工作三年 | 是問題基本解決,公司的資金充足。我自己無聊。 |
| 工作七年 | 是因?yàn)槲覠o關(guān)緊要。 |
感覺:社保交得越高,越容易干得久。
二,個(gè)人技能
核心能力
預(yù)知開發(fā)風(fēng)險(xiǎn)的能力明顯強(qiáng)于同行:一,入職的公司多,主導(dǎo)、參與、協(xié)助更多成功及失敗的案例。周泰滿身是傷,是歷史;趙云全身無傷,是演義。二,勇于挑戰(zhàn)。
精通架構(gòu)設(shè)計(jì):2014年考取軟件的《軟件架構(gòu)師》并實(shí)踐多年。
通用算法:最近力扣周賽62名。
編程語言:精通C++,熟練C#。
halcon:4.6年的工作經(jīng)驗(yàn),opcv,學(xué)習(xí)了3個(gè)月。
CAD二次開發(fā)(ObjectArx):5年多。
CSDN網(wǎng)KOL,3萬粉絲。
雪球KOC(關(guān)鍵消費(fèi)者),國家對(duì)股民的定位是金融消費(fèi)者。
拙作《深入淺出 Visual C 入門 進(jìn)階與應(yīng)用實(shí)例》郵電出版社,首印5000本,第二次印刷2000本。
工作經(jīng)歷
20年來,中山極點(diǎn)三維在我入職前被索菲亞收購?fù)猓渌径际切氯寮?jí)別。獨(dú)立核算的公司、分公司、事業(yè)部不超過200人。往往一百人以內(nèi)。從考上架構(gòu)師起,工作經(jīng)歷分為兩部分:
一, 2016年6到2021年9月。我獨(dú)立負(fù)責(zé)一個(gè)產(chǎn)品的軟件部分,不斷提高軟件質(zhì)量,和其他程序員幾乎沒交集。
二,2021年9月至今。先通用產(chǎn)品,再群策群力,集思廣益,迭代產(chǎn)品。然后在一個(gè)項(xiàng)目謹(jǐn)慎上線。另外兩個(gè)項(xiàng)目,正常上線。注意:迭代的單位不一定是一個(gè)產(chǎn)品,也可以是包、模塊、類。比如:那個(gè)定位C++崩潰的小模塊,只有幾個(gè)類。開發(fā)只用了2天,迭代了小半年。
在超音速驗(yàn)證了如下技術(shù):
一,C#,C++混合編程是可行的。只會(huì)C#不會(huì)halcon的畢業(yè)生是可以完成界面層和數(shù)據(jù)層的任務(wù)的。這兩點(diǎn)使得如下戰(zhàn)術(shù)可行:找熟悉C#畢業(yè)生,磨合一年后才讓接觸部分易懂的算法。一年未離職,說明公司和員工性情相合,一年也有足夠的時(shí)間建立了一定的感情。大幅減少帶公司的技術(shù)或業(yè)務(wù)離職的可能性。
二,“看門狗”技術(shù),大幅增強(qiáng)軟件健壯性。避免崩潰,且能獲取引起崩潰的圖片及參數(shù)配置。容易崩潰的代碼封裝到核心exe,主exe啟動(dòng)3個(gè)核心exe,核心exe超時(shí)或崩潰后,主exe殺死殘存進(jìn)場(chǎng),并啟動(dòng)一個(gè)核心exe。主exe和核心exe通過內(nèi)存映射文件和管道通信。
三,利用內(nèi)存映射文件共享圖像,新舊版本同時(shí)運(yùn)行比對(duì)效果,等新軟件的效果明顯好于舊版后,拋棄舊版。此技術(shù),同事負(fù)責(zé),我協(xié)助與跟進(jìn)。
在威華驗(yàn)證了如下技術(shù):
一,算法可視化編輯器,競(jìng)爭不過VS。故對(duì)售后的要求遠(yuǎn)高于對(duì)程序員的要求,市面上根本沒有這么厲害的售后。
二,驗(yàn)證了合理的框架支援下,制定后協(xié)議后,算法工程師、項(xiàng)目程序員、售后可以同步工作,互相不影響。
三,驗(yàn)證了售后在算法工程師的基礎(chǔ)上工作,可以大幅減輕售后的工作量。
現(xiàn)在就業(yè)行情很差
一,之前微信加了很多獵頭,前幾天溝通發(fā)現(xiàn)他們很多都轉(zhuǎn)行了。二,新獵頭對(duì)加微信的熱情降低了很多。馬上45歲,不知道今年的坎能過否?
三,45歲的坎
以下全部是我的想法,還在摸索中,很可能是錯(cuò)誤的,歡迎大家斧正。
以下方法很可能能過45歲的坎
一,在45歲前存錢,同時(shí)摸索出保值甚至增值的手段。只適合未婚未育。結(jié)婚后就很難存錢,你可以節(jié)約,但你老婆和小孩不會(huì)。
二,自己創(chuàng)業(yè),或加入創(chuàng)業(yè)團(tuán)隊(duì)獲取期權(quán)。這個(gè)勝率太低,風(fēng)險(xiǎn)太大。自己開公司,不會(huì)丟工作,但公司會(huì)倒閉。皮之不存,毛將焉附。
三,技術(shù)合伙人,商務(wù)合伙人,每人帶一兩個(gè)助手,公司總員工數(shù)$\le 5$,利用低溝通成本賺點(diǎn)辛苦錢。
四,自帶資源且是老板的硬需求。同樣是網(wǎng)紅,有利于招聘,一定劣于有利于融資。行情好的時(shí)候更需要招人;行情差的時(shí)候,更需要融資。辭退往往發(fā)生在行情差的時(shí)候。
以下方法很可能過不了45歲的坎
一,轉(zhuǎn)管理層。現(xiàn)代智人的鄧巴數(shù)是150,故百人團(tuán)隊(duì)只有老大是必須的。其他CTO、副總、總監(jiān)、經(jīng)理等只是用起來順手,不是必須的。那些很穩(wěn)定的管理層,往往是小股東。如果有10%的股東,你就是當(dāng)保安,也不會(huì)被辭退。
二,士官(干活的主力、組長)同時(shí)擁有1%的股份。不會(huì)被辭退,但大股東會(huì)說:"公司目前有困難,股東不發(fā)工資,發(fā)點(diǎn)生活費(fèi)。我也是如此。“如果你拳頭沒有大股東硬,這不是好選擇。
年齡大,意味著先天不足
一,我轉(zhuǎn)到鎮(zhèn)小時(shí),8:30開始上課,當(dāng)時(shí)感覺非常早,也就是村小很可能9:30開始上課。
二,上大學(xué)前,沒接觸過電腦和網(wǎng)絡(luò)。這個(gè)十分影響效率。
三,畢業(yè)后,移動(dòng)網(wǎng)絡(luò)才普及。所以家長和老師無法實(shí)時(shí)溝通。
退居二線,收入銳減
到二線城市再茍五年。
網(wǎng)上上課。
平時(shí):寫些小軟件賺錢或接小活賺錢或入職外包公司。行情好的時(shí)候,去上班。MSMVP魏總給我講過一件事:他有個(gè)哥們是東北人,900畝地,收割的時(shí)候,全家老小跟著機(jī)器撿土豆,能撿多少撿多少。這充分說明行情好的時(shí)候,老人也有價(jià)值。春運(yùn)的時(shí)候,經(jīng)常看到年齡很大或很小的列車員,估計(jì)是退休返聘人員和未畢業(yè)學(xué)生。之前很反感外包公司,現(xiàn)在不了。據(jù)說華為od招了很多985本。
非權(quán)貴能進(jìn)的行業(yè),程序員已經(jīng)很好了。就算退居二線,收入也不一定低于其它行業(yè)的一線,所以好好珍惜吧。
一代人有一代人的宿命,老了就退居二線,再來就退休。歲月不饒人。
《駱駝祥子》
《駱駝祥子》中北平的人力車夫,40歲就退居二線了。“到瓜市,果市,菜市,去拉貨物,都是他們;錢少,可是無須快跑呢。”
四,一點(diǎn)想法
機(jī)器視覺架構(gòu)師的價(jià)值
一個(gè)軟件架構(gòu)師只研究軟件技術(shù),不投入精力到業(yè)務(wù)、硬件上,幾乎不投入精力到管理上。那他在軟件上的投入是一般機(jī)器視覺工程師的3到4倍。復(fù)讀9年的人,高中12年;不復(fù)讀的人,高中3年。某考生,首次高考,不到本科線;復(fù)讀9年后,考上985大學(xué)。
那能否讓機(jī)器視覺工程師的軟件水平接近純軟件的軟件工程師呢?我努力多年,發(fā)現(xiàn)這是行不通的。要想讓機(jī)器視覺工程師的軟件水平接近軟件工程師,需要機(jī)器視覺工程師從“項(xiàng)目思維”轉(zhuǎn)為“產(chǎn)品思維”。這將帶來嚴(yán)重后果:測(cè)試、市場(chǎng)、領(lǐng)導(dǎo)的思維仍然是項(xiàng)目思維,溝通成本劇增,得不嘗試。如果付出慘重代價(jià)將公司文化、制度轉(zhuǎn)成產(chǎn)品文化、制度,則因?yàn)楹涂蛻粑幕黄ヅ洌皇袌?chǎng)淘汰。
機(jī)器視覺產(chǎn)品化的難點(diǎn),幾乎都在外部,故很難解決:一,機(jī)器視覺是按項(xiàng)目付費(fèi),不是按產(chǎn)品付費(fèi)。所以用戶基本上會(huì)提各類個(gè)性化需求。這大大提高了產(chǎn)品化的難度。“聰明的”食客為了避免餐館用預(yù)制菜,要求不加鹽。客戶往往也有程序員,所以不缺聰明人。二,客戶大部分是工廠,正式上線后更新要走流程。如果下面的人不通融,一個(gè)流程基本一周。你的更新,必須有利于客戶一線人員,他們才會(huì)通融。三,正式生產(chǎn)后,如果引起客戶停工。客戶會(huì)開罰單的,雖然絕大部分情況最終是道歉,但大幅消耗了客戶的耐心。為了避免類似情況,最終決定權(quán)一定給一線程序員。產(chǎn)品化大大增加了這個(gè)風(fēng)險(xiǎn)。所以一線程序員很抵觸。
實(shí)踐可行的解決方案:一,能產(chǎn)品化的部分子系統(tǒng)、組件、模塊產(chǎn)品化。二,不能產(chǎn)品化但相似的軟件單位,提供多個(gè)“零件”供項(xiàng)目程序員選擇。三,每個(gè)經(jīng)濟(jì)周期(5到7年),將主要項(xiàng)目重構(gòu)一遍,反復(fù)修改直到接收的項(xiàng)目程序員能理解,并在此基礎(chǔ)上根據(jù)項(xiàng)目調(diào)整。這樣可以保證軟件水平和較優(yōu)秀的軟件公司軟件水平差距在5年內(nèi)。
用戶的欲望是無限
滿足用戶一個(gè)付費(fèi)需求后,一定會(huì)有更多的付費(fèi)需求。所以更高的效率可以滿足更多的付費(fèi)需求,同時(shí)激活更多的潛在的需求。C++的經(jīng)典類庫boost就是反面例子,功能強(qiáng)大,但可理解性差。光我知道的例子,就有兩個(gè)。一,十余年前,有個(gè)小公司主力程序員離職,他在csdn的bbs發(fā)帖,他走后公司會(huì)倒。小公司的薪資,很難找到熟悉boost得人員。二,我本科同學(xué)接手了一個(gè)項(xiàng)目,前任使用了大量的boost。他費(fèi)勁腦汁花了三個(gè)月,理請(qǐng)脈絡(luò),準(zhǔn)備大干一場(chǎng)。項(xiàng)目被砍,他被裁員,用戶很少有耐心等3個(gè)月。
老板不需要知道什么是硬件,什么是軟件,什么是C++、c#、混合編程。一定知道那些團(tuán)隊(duì)賺錢,那些團(tuán)隊(duì)虧錢? 擴(kuò)大賺錢的團(tuán)隊(duì),消減甚至裁掉虧錢的團(tuán)隊(duì),天理使然。拖延進(jìn)度也許能多拿幾個(gè)月的飯碗,但對(duì)整個(gè)行業(yè)的利益是大的損害。
關(guān)于發(fā)論文
共識(shí):發(fā)論文遠(yuǎn)優(yōu)于刷題。但我們沒有導(dǎo)師,發(fā)論文成本高得可怕。導(dǎo)師是有傳承的,他不但有自己摸索的知識(shí),發(fā)文技巧,圈子。還有從他的導(dǎo)師那繼承的知識(shí)、技巧、圈子。
打孔紙帶與匯編
很早以前,程序員靠打卡紙帶輸入,運(yùn)行程序要排隊(duì)等待。經(jīng)常等待一天后,得到“編譯錯(cuò)誤”的反饋。我讀書的時(shí)候需要學(xué)匯編語言,考高級(jí)程序員(現(xiàn)在軟考的軟件設(shè)計(jì)師)有一道大題是匯編。高級(jí)語言代替匯編的優(yōu)勢(shì)沒AI編程的優(yōu)勢(shì)大,瞬時(shí)編譯相對(duì)等待一天的優(yōu)勢(shì)一定大于AI編程的優(yōu)勢(shì)。這兩個(gè)變革大大增加程序員的實(shí)力和數(shù)量。AI可能會(huì)淘汰IDE(集成開發(fā)環(huán)境),但不會(huì)淘汰程序員,反而需要更多程序員。IDE被淘汰是微軟的事,和程序員沒關(guān)系。
技術(shù)好不一定好找工作
有一篇論文總結(jié)過這樣一種現(xiàn)象,智商超過130的人,只能和智商100以上的人交流。對(duì)他們而言,有一半的人將溝通不暢。
如果面試官是士官和管理層。如果面試官和求職者的技術(shù)能力相差兩個(gè)檔次,也很難溝通。隨便舉幾個(gè)例子:一,下面兩個(gè)方案誰優(yōu)誰劣?盡可能暴露問題好早解決,盡量隱藏問題避免用戶發(fā)現(xiàn)。二,我寫某谷等級(jí)4(普及+)的題解,盡可能的詳細(xì),等級(jí)3的題解則簡單得多,等級(jí)二得題目則一句話帶過。等級(jí)二水平的網(wǎng)友,無法憑我一句話知道我是真會(huì),還是瞎蒙。
如果面試官是協(xié)調(diào)者或老板(包括獨(dú)立核算的老大)。他不懂技術(shù)細(xì)節(jié),所以更看重學(xué)歷、證書、排名、同行背書、第三方背書。三,看問題的層次不同,關(guān)注點(diǎn)完全不同。保險(xiǎn)絲總燒,是機(jī)器啟動(dòng)、關(guān)閉時(shí)電壓不穩(wěn),電壓不穩(wěn)是因?yàn)闄C(jī)器缺少潤滑油。至少有三個(gè)方法:a,勤換保險(xiǎn)絲。b,增加穩(wěn)壓器。c,給機(jī)器潤滑油。
IT業(yè)是一個(gè)好行業(yè)
我剛上班時(shí),聽老同事說以前的事情:“軟件公司幾個(gè)人幾臺(tái)電腦,就可以賺錢,太爽了,應(yīng)該交高稅”。我工作時(shí),國家對(duì)軟件業(yè)有大量補(bǔ)貼,因?yàn)檐浖I(yè)太容易轉(zhuǎn)移到國外。
網(wǎng)上遍地年薪50萬:我深表懷疑
我在公司招人的時(shí)候,順便看了看月薪2.5萬的簡歷中是否有5年工作經(jīng)驗(yàn)的985本科,發(fā)現(xiàn)很多。篩選條件改成月薪四萬,發(fā)現(xiàn)一個(gè)牛人,清北本碩,在阿里巴巴搞了十余年人工智能,管理層至少5年。
五,最后悔的兩件事
沒讀碩
十年前,我考慮過讀碩。當(dāng)時(shí)年薪30余萬,讀三年碩的機(jī)會(huì)成本是100萬,遂作罷。我可以不存錢,但不能不負(fù)責(zé)家庭費(fèi)用。現(xiàn)在看來,讀碩可以大幅延長職業(yè)壽命,很劃算。和讀碩的同學(xué)聊過,他們要么本科畢業(yè)就讀碩,要么本科畢業(yè)幾年內(nèi)讀碩。鄭教授告訴我,他們基本上不會(huì)招收40歲以上的碩士。我經(jīng)常建議年輕的本科生讀碩。讀碩沒多大用,但不讀碩就被淘汰。時(shí)代拋棄你時(shí),連一聲招呼都不會(huì)打。
我采取的補(bǔ)救措施是瘋狂刷力扣、洛谷三年。2023年,上半年,刷力扣中等難度的題;下半年復(fù)習(xí)。2024年,上半年刷力扣難度分2400及以下困難題;下半年復(fù)習(xí)已刷的困難題。2025年,上半年,刷了洛谷普及加及以上難度的題500;下半年除了復(fù)習(xí),還將力扣2400到2600困難題刷一遍。計(jì)劃2025年,刷500道省選減及更難的題目,并復(fù)習(xí)已做題目,查看未做題目。
目標(biāo)一:2026年初,能根據(jù)halcon項(xiàng)目的實(shí)際情況對(duì)核心算子進(jìn)行性能優(yōu)化。
目標(biāo)二:2027年中(末),能夠開始批量刷省選的題目。這意味著可以進(jìn)入比較厲害的碩士圈子。省選題,可以過濾掉絕大部分本科生。本科生不經(jīng)過大量刻意練習(xí),連題目都看不懂。
我1999年讀的大學(xué),1998年畢業(yè)的中專生包分配工作。現(xiàn)在的985本科也不包分配。不到10年中專生就被大學(xué)生淘汰了。非全日制碩似乎沒用。
沒進(jìn)大公司
環(huán)境決定收入上限,李斯2000年就明白了,我3年前才明白。現(xiàn)在年齡大了,更難進(jìn)入大廠了。我瘋狂刷題,試圖擠進(jìn)牛人圈,是為了“撿垃圾”。牛人看不上的小收益,會(huì)撐死我的。
六,結(jié)言
歡迎推薦職位。

完成于:2025年9月

浙公網(wǎng)安備 33010602011771號(hào)