當前位置: 華文問答 > 數碼

學電腦類,當程式設計師,真的是吃青春飯,存在中年危機嗎?

2024-01-15數碼

不只是存在中年危機,還可能連青春的飯都吃不了!

你這讓我想起了每年高考季結束後,雖遲但到的那個問題:「電腦專業為什麽那麽多人勸退,是不是真的前景很差」。

本質上和你的問題沒什麽差別。

說真的,這種話看看就得了,還真往心裏去啊?

如果你願意動動手查查隨便一個別的專業,你就會發現:「 每個專業每個行業每個工作,都在勸退 」!

也是年年都有,可以說一波接一波,前赴後繼,生生不息。

你會覺得他們每個人說的是那麽的情真意切,就好像心肝肺都要掏出來給你看,每個人都說很像那麽回事。

為什麽會出現這種情況?

咱祖國實在是太大了,拿電腦專業來說,每年的畢業生加上在校生這麽也得個幾百萬,一個班三四十號人,就算一個班只有一個覺得電腦是青春飯的,那在全國也得有大幾萬人!

這就叫「 再小的概率事件也怕碰上大基數 」。

當然了,程式設計師的青春飯,中年危機存在嗎?這也確實是存在的,但是你不能直接是說程式設計師的整個群體,而是前面加個「絕大數」。

造成這種情況出現的成因也很簡單,兩個方面:「行業因素」和「個人因素」

第一個,行業因素。

程式設計師是一個「團隊作戰」的工種。專案全部由團隊來完成,每個人只需要完成其中的一小部份。

領導者將專案的技術架構和工作規範都規定好,程式設計師們在這個框架下完成自己的工作,用的技術用的工具全部是高度封裝 和元件化的。

再加上絕大多數公司做的其實都是外包專案。你在一個普通的開發崗位上,一年又一年的完成同樣技術水平的工作。

呆在這樣的崗位上一年又一年的重復,工作內容和你幾年前剛入職的時候差不多,但是薪金隨著工齡在變多,反而體能在下降,工作以外的牽扯太多,相比於同樣能做你工作的,薪資低又能幹的年輕程式設計師,年紀大的程式設計師的性價比太低了。

第二個,個人因素

程式設計師這個職業,大多數人入行的水平其實差不了多少,但是 工作個兩三年以後,其實是會有不同的走向的

我就拿「寫程式碼」來說,這是一個嚴肅且綜合性高的動作,既需要邏輯思維能力,又需要動手能力,稍微馬虎就會出問題。

隨著編程能力的提高,適合做技術的程式設計師因為掌握了更高效的編程技巧,養成了更好的編程素養,開始逐漸找到感覺,邁向更高的技術層面。

但大多數程式設計師還是在停留在初級程式設計師 的境地,坐著剛入行的時候就在做的事,bug 就在眼前就是找不出來,所以就會覺得寫程式碼就是枯燥的搬磚,然後拼命的熬夜找 bug,拼的是體力。

這就把程式設計師這個職業硬生生的變成了一門「青春飯 」。

走到程式設計師能吃上青春飯的還算好的,還有些在大學沒有好好學習沒有好好規劃自己大學生涯,畢業即失業的不也比比皆是嗎?

所以,選專業固然是一件很重要的事,也不要一昧的陷入「比較未來」的怪圈,任何專業都有好就業的人存在,那也就存在不好就業的。

其實不管對於什麽專業,以後從事什麽職業,對於任意的職業來說,有一個算一個, 對於身處其中的絕大多數人來說,工作經驗越久,價值都是在持續走低的。

所以, 上大學並不是說你在填報完誌願以後就完全把自己的命運交給了學校或者專業 ,不管是什麽好的專業或者是壞的專業,這都不能成為你一勞永逸或者躺平的理由。

如果看到這,你已經被我「忽悠」的還想繼續學電腦專業,或者以後從事電腦相關行業,那你可以繼續往下看。

下面的內容我會具體從 3 個方面來講:

  • 第一,電腦專業的同學應該如何規劃自己的大學四年
  • 第二,電腦專業畢業的同學如何提前準備找工作
  • 第三,初入職場,要怎麽做才能避免「青春飯」和「中年危機」?
  • 內容應該會很長,建議瞅準 @Rocky0429 , 分批次食用。

    第一,電腦專業的同學應該如何規劃自己的大學四年?

    作為現在這個環境下的同學,我希望你清醒的認識到:

    電腦專業學習的難度和需要掌握的內容也在上升,市場上對於電腦畢業的同學也會要求越來越高。

    在懷有敬畏的基礎上,你也可以放寬:

    電腦專業 是個只要你努力,就會給你正反饋 的專業,而且網上的學習資料是那麽的多那麽的全面,學習路線是那麽的明確。

    這裏有 12 條我自己的總結,都是實打實總結的經驗!一定會對你未來 4 年產生巨大的影響!

    0、擺正自己的心態

    你要清醒且堅定的認識到:大學,和你之前上的那十幾年學完全是兩碼事!

    你還拿之前十幾年的學習經驗照搬照套進大學,會吃大虧的!

    我記得當時大一的時候,我們宿舍有個高考成績比我高不少的同學,從進大學的第一天我晚上就沒見過他人,白天睡不醒晚上蹲網吧,大學四年除了拿了十幾個掛科,結果啥也沒剩下。

    很多同學在上了大學以後在很長一段時間內會很不適應,主要還是因為他們把觀念還停留在自己是一個「學生」,而不是一個「大學生」的身份上。

    這是絕大多數剛上大學的同學們的「通病」。

    1、沒有電腦編程經驗照樣能學好電腦!

    大家對於自己是編程零基礎這件事不要過度擔心 ,每個人都是從編程零基礎開始學的自己第一門程式語言。

    唯一的區別是有的人接觸的早,可能初中就開始接觸,有的人接觸的晚,可能到了大學因為選了電腦專業才開始學。

    我就是後者,上了大學才開始接觸的第一門程式語言,你只要後天多努力,多向別人請教,絕對沒問題!

    2、學會自學。對於電腦科班的學生來說,大學電腦 主要靠自學。

    我們從小學初中到高中,絕大多數情況下都是處於一個被動學習的狀況,老師說學啥我們學啥,說做啥我們做啥,時時刻刻拿著小鞭子 在後面抽著,時間都是被上課和自習填滿。

    這一套照搬到大學來,是遠遠不夠的。

    大學的自由時間太多了,上課只是占大學四年極少數的時間,平均一天能有個三四節課撐死,不會有人幹預你幾點起床,幾點回宿舍,老師也不會過度逼著你學習,愛學就學不愛學拉倒。

    大學的自學時間太多了,僅僅是靠上課聽一下肯定是不夠的,而且上課你不睡覺我都算你是條好漢!

    當然對於自學這件事,需要能耐得住寂寞,需要長久的堅持, 這個堅持不是一天兩天 ,不是一個月兩個月,而是以年為單位

    如果看到這個回答的你,是還沒有進入大學的準大一新同學,那你可以從現在開始就培養一下自己的自學能力。

    不要把這麽長的兩個月暑假給浪費了,電腦專業這麽熱門,卷的厲害,要提早卷起來。

    至於要學啥,不太清楚的同學們可以看我下面這篇回答:

    3、認真思考未來。大學所有的努力都是為你所想的未來服務的。

    不要像我一樣到了大三才給想好自己後面要幹啥,結果前面兩年沒有側重點的學習,導致後期要多花時間補上來。

    首先要明白,其實你大學所有的努力,是為你所想的未來服務的。

    大學生涯和中學生涯不同,要多思考。

    所以,在上大學之初,應該立馬先思考一件事,在上大學的初期,想明白自己之後想要幹啥。

    認真思考未來,這個動作越早做越好,畢竟目標導向。

    最好及早決定自己是要畢業直接工作還是要考研 ,因為雖然在學習內容上相差不大,但是重點努力的方向 還是不同的!

    4、多讀點書。沒有人會對程式碼本身感興趣,有趣的是程式碼背後的故事。

    剛進入電腦懵懵懂懂的時候,需要建立起對電腦的概念,這個時候可以讀一些【邏輯的引擎】【黑客與畫家 】【編碼】這種電腦的科普書 ,提升興趣,電腦背後還有很多的有趣的東西,這些被遺忘的歷史,還在訴說著它們的故事。

    基礎不牢地動山搖,任何的學習都要把基礎打牢,大一大二要多去讀一些電腦基礎的書,打好地基,後面事半功倍。

    再往後,我們就要對培養良好的編程思想和素養,比如編程的素養,良好的程式碼風格等等,就如一個人的價值觀有問題,那這個人肯定會有問題,同樣 編程思想和素養有問題,你學再多的東西也白搭。

    根據這些,下面我給大家推薦一些各個階段我覺得不錯的書籍,大家可以根據自己的興趣和需求選擇。

    5、學會 Google 搜尋。程式設計師必備,誰用誰知道!

    有問題找 Google,查資料找 Google,你會發現 Google 出來的才是你想要的,至於某度啥的,那都是廣告!

    當然如果你實在上不去 Google,嘗試一下 bing 也不錯。

    6、多參加電腦競賽!

    多參加 ACM、CCPC、藍橋杯、Kaggle、阿裏天池這種電腦競賽,這是大學期間含金量比較高的。

    一方面可以鍛煉自己的編程能力,重要的是可以拿獎,這個不管是你保研考研或者是找工作都是超級加分項,非常香!我就是 ACM 出來後來進入 985 讀研的!

    7、 學好數據結構與演算法 、電腦組成原理 、作業系統、電腦網絡 、數據庫這幾門電腦核心基礎課。

    基礎不牢,真的地動山搖,我就是個很好的反面教材 ...

    電腦基礎一定要好好學,不管以後面試找工作還是保研、考研都很有用。

    我寫過關於電腦基礎得學習路線,跟著整沒問題!

    8、熟練掌握一門程式語言 !

    這個是必須的,根據自己的規劃,無論是 C++、Java 還是 Python 都行,無論你以後是不是用這門語言,這都是你找工作的敲門磚!

    我當時選的是 Python,因為考上研究生準備搞資料探勘 ,提早準備。

    其實最後就是一邊看書看影片補充理論知識 ,一邊練習加強編程能力。

    當然很多同學就會有一個疑惑:程式語言這麽多,我應該學習哪一個?

    我在大一的時候學習的 C 語言,相信到現在絕大多數學校給學生準備的第一門程式語言依然是 C 語言。

    這個時候可能又有疑惑出來,為什麽是 C 語言?C 語言工作這麽少,我為什麽不去學更流行的 Python,Java?

    我不想說一些長篇大論去列舉 C 語言入門的好處,畢竟我列一條,可能會有人拿起鍵盤回我一百條,但凡是觀點,都會帶有自己的主觀。

    我想告訴大家的是, 大家不要被程式語言框住

    我們在後期當然是要有一門比較擅長的程式語言,但並不是我們在做任何事情的時候都只是用一種程式語言來做,比如我搞資料探勘用 Python 舒服的一批,搞硬件用 C 語言 YYDS!

    我們學習程式語言不是為了學它而學它,而是 透過程式語言的學習,打好基礎,使我們具備編程的基本思想和理念

    基礎打好了,以後學什麽別的程式語言都快。

    不管你選擇了哪門程式語言,都是先去學習它的基礎語法 。

    對於剛開始接觸程式語言的初學者來說,就是影片搭配著對應的程式語言書來學,在這個過程中肯定會有看不懂理解不了的地方,在這裏就不需要拿出死磕的精神了,看不懂記不住先過。

    先看會能看會的,至於看不會的,在之後的實踐中再去慢慢理解,至於如何實踐,我在下面會講到。

    我寫過一些程式語言學習路線的推薦,大家在學習的時候可以看看:

    Rocky0429:這才是你最想要的 C 語言學習路線!

    Rocky0429:這才是你最想要的 C++ 學習路線

    Rocky0429:這才是你最想要的 SQL 學習路線!

    9、多練習編程!

    編程能力是我們吃飯的家夥什,沒事的時候多敲點程式碼,當個熟練工,才能顯得你牛x!

    其實不論在什麽時候,去提高自己,無論是編程能力或者是其它的什麽能力,都是有路線可循,難的是 你有提高的想法,以及為了達成這個目標你會努力到什麽程度

    具體如何去做,下面這篇回答寫的很清楚了:

    10、多做專案!

    有機會跟著學校的老師或者進入到實驗室做專案,一定要堅決跪舔,一定不要錯過這樣的機會,如果沒機會,學會上 GitHub 找專案,盡可能多折騰,積累專案和實戰經驗,為將來找工作打好基礎!

    當然剛開始的時候可能有點不太適應,不知道專案怎麽去搭建,怎麽去規劃,這個時候你也要嘗試和有意識地多去讀一些優秀專案的原始碼 。

    看看人家 是怎麽寫出高質素的程式碼,這個過程很重要,這是一個拔高的過程,區分普通程式設計師和高級程式設計師 的界線。

    11、英語要好好學。

    當回事,以後要學會多看國外的資料和文獻,一手的新鮮資料一般都是英文的!如果不想當回事,最好大一就把英語四六級過了,因為大一可能就是你這輩子英語能力的巔峰了!

    很多程式設計師被英語搞的死去活來。

    可能你在詢問別人的時候,有人會告訴你學個毛的英語,且舉例「我的 xx 同學四級都沒過,你看現在在 xx 大廠月薪 xx 萬」等諸如此類,真的, 碰到這種不擺數據不講客觀就想當然拿個例來擴散到整個整體的人就是在耍流氓,趁早離他遠遠的,這種人就是壞…

    如果你看完上面的內容覺得有了方向,但是具體的順序又不太清楚,我結合上面的內容,也有一個路線的回答,想再加深印象的可以一看:

    第二,電腦專業畢業的同學如何提前準備找工作?

    找工作需要提前做的準備工作有很多,尤其在當前的環境下,更是如此。

    充足的準備可以大大提高找到一份合適工作的概率,作為過來人,我會盡可能多的告訴你需要提前做好的準備。

    主要從下面幾個方面來準備:

    至於每一部份具體的方式方法,限於篇幅原因,可以看這裏:

    第三,初入職場,要怎麽做才能避免「青春飯」和「中年危機」?

    作為一名以「程式設計師」身份踏入職場的過來者,我回想了一下幾年前我以應屆生身份入職的點點滴滴,不得不說,遺憾還蠻多的。

    我甚至偶爾還會回想「 如果當初我 xxx,現在是不是就不同了呢 」?

    可惜沒有後悔藥可以吃。

    這裏有我總結的 10 條經驗,相信對你會很有啟發:

    這裏我想再多補充一點:那就是「副業」。

    大家在當前的環境下,在本職工作以外,去探索可以多增加收入的可能性,這個無可厚非,而且還值得誇獎,這能提高自己抗風險的等級。

    而且程式設計師經常和互聯網打交道,更容易發現一些值得做的東西。

    但是一定要分得清主次!

    你要明白,副業不是一件好做的事,你看到的所謂那些做副業成功的,你也不知道他們在之前到底是怎麽痛苦的熬著才熬到現在。

    不管是主業和副業,本質的核心是賺錢。

    當前的副業對你來說是一件虛無縹緲,存在概念裏的事,而你本身事有一份本職工作,這份本職工作能保證你現在能吃飽飯,那你就要先把這份工作牢牢穩定住。

    幹好你該做的,然後在這個基礎上去拓展你工作所需要的更泛化的技術。技術在手,哪裏都能去。

    作為程式設計師,技術應該學,這是我們安身立命之本,但是技術的學習不需要特別卷,就是自己非得到達這樣那樣的高度,怎麽說呢,不現實。

    對於大多數人,他的技術天花板是肉眼可見的,我們要接受這個事實。

    副業肯定不是不去搞,而是在保證本職工作的基礎上,最好是根據自身的喜好,或者是自己的職業,去探尋可能副業的線索。

    平常心去看待這件事情,反而最後能有意想不到的收獲。

    不知不覺的寫了這麽多,希望大家沒有嫌我啰嗦。

    最後我想分享一句我最喜歡的話給你:

    人這一輩子,就那麽些事,哪個你自己能決定的了?出生在哪,爹媽是誰,長的好看不好看,智商多高,機會好不好,通通決定不了,就能決定兩件事:
    第一,你此刻的心情;
    第二,就是你為了什麽事情能拼盡全力。
    僅此而已。

    祝你一切順利。

    我是 @Rocky0429 ,生活從來不是選擇,是熱愛!