阿里P10資深程式設計師,給新人學習java的一些建議,讓你少走彎路

軟帝學院 發佈 2020-01-04T12:29:09+00:00

其一是真正的大牛沒時間混跡在網上做人生導師,天天講道理,整天出現在你Timeline里的人要么半吊子水貨,要麼另有所圖其二相比較入門的你比就算是大牛,他的經驗對你未必有用。

每年都有無數年輕程式設計師,加入軟體行業。他們在學校里學過編程,但是對這個行業的現實一無所知,我今天介紹這個行業的一些實際情況。這幾年自己在技術博客沉澱很多技術。其他方面也算成功,至少和同齡人和自己起點一樣本科生來說,作為過來人有幾點說一下:

前面四點主要針對三年經驗以內的。後面的幾點寫給3年到8年的同行,最後一段寫給所有的同行。

一、不要迷信「大牛」

看到你問題中有什麼踩坑的,技術人唯一的不好就是對非技術盲目崇拜,尤其對非技術網紅。就放前面說說:網上的「大牛」多半不靠譜。

其一是真正的大牛沒時間混跡在網上做人生導師,天天講道理,整天出現在你Timeline里的人要么半吊子水貨,要麼另有所圖(賺錢智商稅)(我黑起人來連自己也不放過)

其二相比較入門的你比就算是大牛,他的經驗對你未必有用。大牛說我學 Python 也就翻了下基本語法,當天就上項目開幹了。(大神說我覺得沒有順手的語言,就發明了 Python)大牛說我從不看基礎知識,因為大牛天天忙著公司架構 哪來機會看基礎。

二、少說廢話,多寫代碼

廢話有很多種,程式設計師屆最多的大概就是整理哪個語言/框架/平台/技術好,准程式設計師則喜歡問,我是不是應該學Java c php……學了是不是有用之類。我學習什麼技術好?技術討論並不完全無意義,但在你打好計算機基礎、數據結構,熟練掌握至少一門語言、開發過一個能看的項目之前,這些討論對你來說就是浪費時間的廢話,而不是今天跟風學這個,明天又聽人說那個好。不要等畢業的時候說出XX技術學校沒教過,所以我不會這種話。

有這時間多寫點代碼,刷刷算法題,找點項目做做,找不到就從自己日常身邊找點需求去用代碼實現。不要說你覺得沒有什麼可寫的,如果是這樣,那你要反思下自己適不適合編程這條路。

我能告訴你的是 接下來幾年不會算法是不行的。不要說我進去公司用不到這些話 如果你拒絕學 那沒必要做程式設計師了。

三、做一個程式設計師,不是碼農

碼農的工作和搬磚沒什麼區別,就是把一些模塊拼到一起,有問題了就東修西補,程序能跑通就不錯,只會用教過的一兩種技術。做個碼農很容易,天天改改Bug 水水群 ,編程5的分鐘 扯淡兩小時。就是說的是碼農。但程式設計師是個長期的職業,你在學校學習的是編程的思想、解決問題的邏輯、持續學習的能力。重視基礎課程,深入學習一兩門語言和技術,理解透徹了,以後學習別的新技術自然觸類旁通。沒事看看就行,別去跟風湊熱鬧。你上的是大學,不是技能速成培訓班。

總結一句, 碼農喜歡說顛覆 喜歡說取代 更喜歡扯布道者。天天喊著新技術。

程式設計師專注基礎能力,談業界影響,說貢獻。

四、短期不要高估自己,長期不要低估自己

絕大多數人都會犯的錯誤就是「短期高估自己,長期低估自己」。除非你天資聰慧,否則別想著大一就搗鼓出什麼牛逼程序來一鳴驚人。學編程的過程會經歷數個瓶頸期,中間你也許會數次感到萬分絕望,甚至開始懷疑人生。

但你要相信,只要堅持寫下去,瓶頸總會突破,成為一個超越平均水準的職業程式設計師是沒有什麼大問題的。

畢業三年拿到15到20k 的人不少,不代表你牛逼,因為行業曲線就這樣。但是你想6年拿60k 確實沒幾個人,畢竟50w年薪是大部人的天花板。所以也別灰心 。

五、最後相信自己,尊重自己的職業

不要自稱「 xx 狗」,尊重自己

不要為了談戀愛而談戀愛,不要相信「程式設計師找不到女朋友」

除了計算機知識,也要學好英語 + 數學

基礎學紮實,學算髮,不要追求熱門

不要迷戀語言,不要陷入語言的戰爭

多寫有質量的代碼 別瞎折騰實踐

六、90%的編程工作來自內部軟體

計算機專業的學生,可能有一種錯覺,覺得大部分程式設計師,都在編寫公開出售的軟體或者通用軟體。

這種看法是不對的。大部分程式設計師,實際上編寫的是不公開的企業內部軟體,這就是說所謂的外包。比如追蹤費用的軟體、優化裝運成本的軟體、幫助記帳的軟體、設計新部件的軟體、計算保單價格的軟體、識別惡意訂單的軟體等等。

各種各樣的商業公司,開發內部軟體,解決它們自己的問題。市場上對程式設計師的大部分需求來源於此,只有極少數程式設計師直接編寫面向外部顧客的軟體。

內部軟體的開發,通常非常乏味,令人厭倦。因為它們的技術複雜性低、技術決策非常保守、預算很少、缺乏長遠考慮。但是,世界上大部分編程工作都是這種。你如果想入行程式設計師,你就要有心理準備去接受這樣的工作。

七、別人雇你的目的,是讓你創造利潤,不是讓你編程

商業公司最關心的(或者說唯一在乎的)事情,就是增加收入、降低成本。因此,它們實際上需要的不是程式設計師,而是能夠幫助它們增加收入、降低成本的人。

開發優美的軟體,解決技術難題,編寫沒有 bug 的代碼,這些都不是商業公司的目的。它們僱傭你,是為了讓你幫它們完成某個可以增加收入、降低成本的項目,而不是為了讓你追求個人的軟體成就。

你對於公司的唯一價值,就在於能多大程度上為它們增加收入、降低成本。

這就是為什麼阿里p8拿不到業務就是滾蛋的情況 ,在沒有業務就沒有產出,沒產出就沒有利潤,那麼技術好壞 只成為你不容易被裁的幾率。

八、好的程式設計師專注於為公司帶來價值

很多公司的開發經理不懂技術,在他們心目中,程式設計師就是一群高成本的勞動力,只會在一台複雜的機器上干一些他們難懂的事情。

如果你自稱為」碼農」,只會寫代碼。當公司需要壓縮成本的時候,某些經理首先就會想到解僱你,因為你的工資高。

有一家公司叫 Salesforce,口號是」沒有軟體」,意思就是如果經理們購買了他們的服務,就不再需要別的軟體管理銷售業務了,也就是說,不再需要自己僱傭程式設計師了。

正確的做法是,你應該把自己描述成與增加收入、降低成本有關係的人,比如」xx產品的開發者」或」改進者」。有一個 Google Adsense 程式設計師的自我介紹,是這樣寫的:」Google 公司97%的收入,與我的代碼有關。

九、不要給自己設限

年輕學生經常會問,應該選擇哪種語言或平台?Java 是不是比 .NET 容易找工作?

過分強調某一種語言或平台,都是不必要的。如果你把自己限定為 Java 程式設計師或 .NET 程式設計師,你就已經輸了,因為首先你不應該自稱為碼農(理由見上一點),其次這種限定使得你自動被排除在世界上大多數編程工作之外。

現實生活中,學會一種新語言,只需要一兩個月,然後再過半年到一年,你就會變成老手。那時,根本沒人在乎你以前用什麼語言。

天才程式設計師是很少的,可是需要天才程式設計師的工作機會卻很多很多,大多數場合都是需求遠遠大於供給。

這意味著,即使你不是天才程式設計師,只要你是一個優秀工程師,那些招聘公司也會立刻錄用你,因為它們知道招聘到天才程式設計師的機會微乎其微。(重複一遍,所謂」優秀工程師」,就是你的履歷上有一連串可以為公司增加收入、降低成本的記錄。)

某些公司的人事部門,會根據某個關鍵詞(比如 Java 或 .NET)過濾簡歷。雖然這樣的公司根本不值得去,但是如果你真的想過這一關,也很容易:投入幾個晚上和周末,在你當前的項目中設法用到這個關鍵詞,然後再把它寫進簡歷就行了。

你要知道 語言只是工具,公司為了利潤,在任何時候都可能讓你轉語言。

十、如何提高求職時的談判能力?

(1)記住你不是在求職,不是在展示編程技巧,而是在推銷某種商業問題(增加收入或降低成本)的解決方案。

(2)面試時,要有自信,要平等的對話。你要的是一個互利的錄用合同,不要每次對方提出要求,你都說Yes。

(3)僱主可能會問」你的上一份工資是多少」,他們其實在說」給我一個理由,壓低你的報酬」。你要想好如何適當地回答這個問題。

(4)要還價。這裡不僅僅指錢,還指其它你關心的方面。如果你無法要求更高的薪水,那就試著要求更多的假期。

十一、創業公司是否適合應屆畢業生?

如果你一畢業就加入創業公司,最可能的結果是,接下來幾年你都工作得非常辛苦,然後公司悲慘地失敗了,你失業了,不得不又去另一家創業公司工作。

如果你真的想去創業公司,應該首先找一家大公司幹上幾年,攢一點錢,積累一些經驗,然後精心挑選一家創業公司,再去實現自己的夢想。

在創業公司工作,一般情況下,你遇到的都是創業者。他們大多數人沒有能力在兩年後帶你;而在大公司工作,你遇到的都是其他大公司的人,他們中很多人將來有能力帶你或者幫你介紹工作。

十二、溝通技能是最重要的職業技能

前面說過,工程師被僱傭,不是因為會編程,而是因為能夠創造商業價值。所以,你得讓人們相信你能創造價值,這是幫助你找到工作的最重要的能力。這種能力與你真的能創造多少價值,實際上聯繫不是很緊密。很多情況下,你向別人展示的是對你能力的一種期望,而不是你當前的能力。

所以不要時刻說技術,因為技術只是工作的一種手段,價值才是你的武器。

最後關注技術的同時 不要忘了關注自己自身能力的提高。這一行都應該有面對時刻失業的準備,因為大部分的的危機來自於體制外的工作當成了體制內。

最後小結:

1 普通人為了達成某個目標,需要捨棄一些東西,捨得捨得,有舍才有得。

2 職業生涯早期有機會去大公司大平台,還是要去大公司見見世面。很多事情不是一蹴而就的,如果能力不夠可以採取曲線救國,只要最終能達到目的就好。

3 技術是根本,沒有技術你就沒有錢。技術又不是全部,因為你很難搞一輩子技術。

4 眼光和機遇很重要,機遇可遇不可求,但是機遇來了,眼光不夠沒有做出相對準確的預測,做錯了選擇,那也是很傷。

5 學歷和起點不是問題,其實能力和眼界才是程式設計師核心競爭力,大廠不一定就是鐵飯碗。

6 人都需要學習,並能不斷敢於挑戰自己,才能離成功幾率越大。所以還是老老實實學點技術,別YY了!

最後,開發這麼多年我也總結了一套學習Java的資料,如果你在技術上面想提升自己的話,可以關注我,私信發送領取資料或者在評論區留下自己的聯繫方式,有時間記得幫我點下轉發讓跟多的人看到哦。



關鍵字: