在校生如何快速提升竞争力
一個從事技術崗位的畢業生,要想在短期內提升競爭力,獲得周邊同事,直屬leader的認可和贊揚,我覺得需要關注以下的一些方面。
一 代碼能力
無論你用什么語言,做什么項目。代碼能力就是基礎中的基礎。說實話,代碼能力無法在短時間內獲得巨大提升,需要的是日積月累。所以強烈建議,在校學生平時就要有做題刷題的習慣。特定領域的知識是可以短期內獲得的,但代碼能力這種內功只有慢慢的練,才能練出來。這個是在工作前就應該充分準備的。 再多說一點。雖然實際工作中,不會讓你去手寫平衡二叉樹什么的,但做題刷題確實可鍛煉你解決問題的思維能力和將想法變成代碼的能力,在項目中實際編碼的時候,有巨大的幫助。實際工作中,有參加過算法競賽的同學的代碼質量和產出速度確實是比較好的。搞競賽的同學在這方面是有天然優勢的,沒搞競賽的同學,我覺得日常刷題也是很好的方法。至于刷多少合適,我覺得如果是大學四年,盡量往1千題靠攏吧,當然是越多越好。
二 語言和框架
當你已經拿到確定的offer,明確要就職的公司和部門后,你接下來要進行的工作應該就比較確定了。后面會使用到的語言框架也應該是確定的。比如你的部門可能是用java做crm系統或者用c++開發分布式系統或者是ios客戶端,andriod客戶端等。語言和框架應該都是確定的,這兩部分的知識是可以在入職前就做充足準備的。你想在早期就樹立競爭力,這塊的準備是必不可少的:ide環境的搭建使用,對應語言的語法,語言特性細節,入門工作中會用到的框架。這個階段不要去摳很偏門的知識點,學習或者復習常用的知識點,提高熟練度更有意義。當跟你一起入職的同學,還在就一個框架使用或內部實現機制在請教前輩同事的時候,你已經掌握了這些,你就已經快人一步了。也更能獲得周邊同事和直屬leader對你的認可。
三 要開始熟悉特定的工作領域
當你確定入職一家公司后,具體的部門,后面要走的方向也是確定的。當這些確定后,你需要開始去了解那個領域。比如你在校的時候,可能沒接觸過分布式系統,分布式領域的東西雖然沒辦法在短時間內就能搞清楚,但你可以通過搜索引擎,書籍等來建立基本的認識和了解一些基本的概念。就是讓自己的腦子里,對這個領域有個基本的認知。這樣你在實際工作的時候,就不會連基本的概念都分不清楚,在跟其他同事交流的時候,也會更加的順暢。
四 做好第一個項目
信心是建立在成功經驗的基礎上的。需要在實際工作中去獲取。所以對于接到的前幾個任務,都要用心的去做好。我估計大部分的同學都會認知到這點,但確實不是所有人都能做好。給幾個建議
1 不要鉆牛角尖。我遇到一些畢業的學生,他們確實是想做好,但感覺走偏了,有點吹毛求疵了。工作是為了解決問題,不是學術討論,新人也不要通過這種方式來展現自己的能力,有時反而會適得其反。 我帶過一個同學,讓他幫忙給一個系統做個工具。當時的初衷是想讓他通過做這個工具,慢慢的熟悉這個系統,然后再逐步參與進去的。里面有個地方需要用到hash函數,但因為只是工具,性能要求也不高,一般的hash函數就可以的。結果他花了三天時間去研究各類的hash函數。卻沒有花時間去熟悉工具對應的系統。這么做當然不對了。還好后面及時溝通了,回到了正軌上。所以,我覺得新人尤其要注意這個問題。自己把不準的時候,最好多問問前輩同事。
2 要多交流。一般都會給新人安排導師,要多跟導師交流,看看導師怎么理解這個事情,怎么做更合適。同時也要跟導師去交流上一點提到的問題。那些點是應該重點解決的,那些點可以不用花太多精力。
五 持續保持一定強度的學習
一般工作兩三年后,同時期入職的同學間的差距會開始顯現出來。造成這種差距的主要原因,我覺得是你在學習上投入的時間。其實大家能進入到同個等級的大學,同間公司,大家的智商,其實不會相差太大。兩三年的差距,真的就是來自時間的投入了。 我所在的公司是995,但畢業的前幾年,我都維持著一定強度的學習狀態。 一般工作,我在晚上8點前便完成了。剩下的一小時,我會看些自己感興趣的知識點或者就工作中遇到的問題再深入的去了解。畢業的第一年,周六也基本去公司,雖然公司沒要求。一般去到公司,有時候是完成工作任務,有時候是重構些自己覺得寫得不好的代碼,有時候時看公司內部的技術文章(這個也是大公司的一個好處了吧,有很多外面看不到的技術文章)。積累久了,差距就自然出現了。沒有捷徑。
以上,是對在校畢業生的一些建議。第一點是大學就需要開始的積累。二三四點能幫你快速提升工作能力,提升競爭力。第五點能長期的提升你的競爭力,讓你在幾年后,跑在別人的前面。
以下是大家的提問和我的解答:
Q: 已經工作幾年的,想進大廠,有什么建議嗎?或者有內推嗎?
A: 對于工作幾年的同學,建議要開始有自身的職業規劃。 做技術也分:技術型技術和業務型技術。看看自己想往那方面發展。進大廠是個好的選擇,不過有客觀因素,不一定所有的人都可以達成,當然這個需要自身的努力。關于技術劃分這點,我的公眾號上有一篇文章,描述了這塊的區別,有興趣的可以去看看 從公司發展看技術人才需求
Q: 現在有許多教學視頻。對于學習時看視頻您怎么看待?相比書籍
A: 教學視頻的學習門檻比較低,對于開始上手一種新的技術和新的領域很有幫助。對于一個特定領域的前期,可以采用視頻教學的方式。但如果想在某個領域深耕,最后還是要回歸到書本甚至是論文。所以看書學習的能力是不能丟的。
Q: 對于畢業想要找工作的學生而言,科研重要嗎?還是說更應該注重代碼能力這些呢?
A: 這個要看具體的工作。就互聯網來說,算法類的職位: 例如機器學習,數據分析,對學歷要求是比較高的,有科研經驗的會很有優勢,因為理論研究偏多。 對工程類的,例如前端開發,后臺開發,實際經驗就更加重要了。至于代碼能力,如果你是純搞理論研究,要求可以不用太高,不過工程類要求就要比較高了。
Q: 想請教下前輩,技術人員和什么類型的pm合作比較愉快呢對產品經理有什么訴求~有沒有您認為好的溝通方式和合作方式 ,pm可以借鑒下
A: 溝通這個事情,不但是技術和pm,所有領域都一樣的,做事先做人嘛。 我喜歡真誠的溝通,不要老是忽悠。 對于互聯網的pm,如果有技術背景,會比較好,跟技術人員的溝通會更加的順暢,而且不會提些無厘頭的需求。
Q: 老師好!我是情報學的學生,編程非專業自學,現在的代碼學習給我的感覺是毫無頭緒,需要用到什么就去看什么,沒有體系,很多東西聯系不起來;另外就是不確定把什么語言當做主攻方向。想知道這種情況該怎么辦。謝謝老師~
A: 對于這種情況,一個是你可以找下一些大學計算機專業的課程結構體系, 他們的設計,肯定是科學合理的。如果是專為了找工作的話,就需要看具體的工作崗位而定了。不過一般來說,計算機有基礎課程,對于所有方向都是適用的。比如算法,操作系統,網絡等。這塊,也可以看看我公眾號寫的一些文章,有提過這部分。說說后臺開發的一些事
Q: 請教前輩,我是網絡與新媒體的學生。我們學校的課程設置是在大三的時候教授C++語言,但是我們師兄師姐反映都說大三學很趕太遲了。如果我們自己提前學的話有什么建議嗎。(比如JSBox這個app入手)
A: 我是提倡提前學的, 我自己高中就開始接觸編程。 大一的時候,我們C語言的課程,我已經自學完了。 到大二,專業課程,我幾乎都自學完了。 這塊沒有特別的建議,學就是了。學的過程中,再慢慢調整,改進。
Q: 感覺現在算法(計算機編程算法)很流行,所以如果從事技術方向,都應該打好算法基礎嗎?因為感覺算法用心學還是需要大塊時間的
A: 計算機編程方面的算法能力是很核心的內功,付出的時間,是有實際意義的。有過一定時間的算法鍛煉,代碼能力和思維能力會好過沒有鍛煉的同學,實際工作中會特別有優勢。
Q: 前輩好~我是今年要畢業的學生想問一下求職的時候如果不是特別滿足意向的工作崗位的技術要求 公司會招這樣的人嗎?比如說想做安卓開發,但是之前沒有做過,公司會考慮其他方面的的經驗或者基本能力嗎
A: 對于畢業生,其實比較松,對特定經驗不會有很強的要求。 更看重的是潛力和基礎。所以基礎好,問題就不大。
Q: 對于工作一兩年近期沒有找工作需求的人,需要保持刷題能力嗎?如果要的話能拿LeetCode的難度舉例嗎?
A: 看你個人時間,如果時間能規劃,建議保持刷題的狀態。 難度方面,leetcode 中等半小時解出,國內互聯網算法面試基本沒問題。
Q1: 感謝分享哈。 我請教一個問題,工作幾年的技術人員,在職業發展上有什么建議嗎? 一般從事一個發展比較快的行業,比如前端,分布式,云計算。 這幾年技術都是非常快的發展,也許設計和方法論可以積累,但是不可避免出現技能和工具的迭代過時。 如何面對技術的知識焦慮呢?或者換句話說,年輕的時候,技術人員可以靠時間和技術更替有比較好的發展,但到一定年齡后如何規劃職業發展有更縱深的積累,有什么建議嗎?
Q2: 請問前輩,您覺得互聯網行業技術方向,相對于其他行業而言,對于年齡是不是要求更加年輕化?是因為技術更新迭代,相對于其他行業更快,所以經驗的積累顯得不那么重要的緣故嗎?對于工作很多年的工程師是不是大多都往管理崗轉了?
A1&2: 這個問題其實比較難,客觀來說,程序員確實是個吃青春飯的職業。如果非要有建議的話。一個是往技術專家發展。一個可以往業務或產品方向遷移。都是有難度的事情。 有想法,有條件的可以考慮創業。
我個人覺得,管理崗這個理解是不對的。 技術管理其實不是特別有保障的事情,一旦你換一間公司,你就不一定還有的管理。 我個人覺得技術能力,產品能力,業務能力是核心競爭力,管理能力是依附于此的,不能脫離。
Q:我有個疑問,在寫代碼的時候是只要知其形就可以了,還是也得會其意呢?比如用到某些函數的時候,只去看如何使用它,或者去搞清這個函數內部是怎么定義的。這兩種更推薦哪種呢?不只是寫代碼,很多事情都會想要一切都準備好了再開始做,感覺這個有點像前輩講的“不要鉆牛角尖”那部分。
A: 當然理解的深入更好啦。計算機編程是很講求實際操作的。不用想太多,動手做就是了。
總結
以上是生活随笔為你收集整理的在校生如何快速提升竞争力的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你是什么类型的程序员?
- 下一篇: 一名 40 岁“老”程序员的反思~