了解最新公司動態及行業資訊
本文作者站在一個IT老手的角度,談談他對IT行業技術人員核心競爭力的看法。這里提到的IT技術人員是(以開發為例)。這個想法是針對普通員工的。是作者根據自己的經驗,總結出如何在這個行業長期保持一份工作。如果讀者的志向是成為高管,成為行業內的頂級專家,恐怕這篇文章所能提供的信息與此相差甚遠。
A.核心競爭力
從前,有位長輩很關心我的工作,他特意囑咐:“你要小心,你知道的千萬不要教別人。俗話說,教徒餓死師傅。” 。”
我知道這位長老真的是為我好。在很多傳統行業,也是如此。而且,在抽象的層面上,這句話的意思其實是:你必須保持你在行業中的核心競爭力,才能保住你的工作。我完全同意這一點。可惜前輩提供的具體招數在IT行業無效——IT行業是一個強調分享的行業,業內有句俗語:做不到就得不到.
這句話有點意思,但換一種說法也沒什么不同。在教育和網絡資源空前發展的今天,在一個依靠軟件編碼來創造價值的行業里,真的沒有一個具備基本素質和上網能力的年輕人無法獲得的“核心技術”。其他行業的從業者經過十多年的努力,摸索掌握了IT對應的竅門,多寫了幾個查詢,從理論論文到工業實現再到最好的代碼,瞬間完成。
那么IT行業技術人員的核心競爭力是什么?我認為包括以下四點:
我。溝通技巧不用多說:與同行溝通、與leads溝通、與PM溝通、與客戶溝通……就IT領域而言,除了雙向理解和溝通外,還應注意付出代價使溝通盡可能高效,以節省他人和您自己的時間。具體到細節,比如:不要問別人能不能從百度得到知識信息。溝通技巧還包括講道/演講和指導他人的能力,這對高級員工的要求更高。
二。學習能力不僅包括字面意義,還包括通過閱讀和聽力獲得新知識和新技術的能力。它還包括(更重要的是)從實際工作中總結和提煉的能力,即將現實世界的問題轉化為經驗并類推概括的能力。
IT 行業是當今世界上最繁榮的行業之一。創新的旗幟匯聚了一群世界上最聰明、最有活力的人,共同開發各種新技術。發明一些可以讓一群人失業的東西。在這樣的行業,靠著幾年的大學課程和最初幾年的工作經驗,高枕無憂是一種夢想。行業在變,身為其中的一員,如果還想吃這碗飯,只能順勢而為。在IT界,拒絕學習=找死。
溝通能力和學習能力這兩點,是入門級的核心能力。換句話說,它是任何學位或級別的必修課。
三。全球視野和行業洞察力。即對行業領域前沿研究和行業實踐的理解,以及在此基礎上進行理性分析得到的對行業發展的前瞻性預測。
這也是區分 IT 新手與老手的試金石。一方面,形成這樣一個行業需要時間,另一方面,在一個日新月異的行業中,年輕人仍然可以依靠青春,沒有家庭拖累,天生可塑性等,直到發生變化。出變化。然而,當老年人失去年齡優勢與后來者競爭時,他們必須依靠之前的積累。
與 I 和 II 相比; III是高了一級,應該算是中級核心能力。
四。創新能力是高層次的核心能力。
一提到“創新”這個詞,人們可能會想到獨創性。的確,無論哪個時代,這個世界的原創者都是那個時代最聰明的一群人。
人類童年時期的東西方圣賢造就了人類的思維體系;結束愚昧時代的科學家們了解宇宙的規律,創造了一套人類符號系統和對自然規律的描述方法;文學與藝術 歷史上著名的文學大師創造了美,對美的欣賞……在這個行業中,那些著名算法、數據結構、開創性技術方向的發明者,堪稱原創者。有兩個例子觸手可及: e.g1:微信上有一篇文章瘋了:“世界上最美麗的女科學家”的主人公,發明了“擴頻通信技術”的好萊塢色情明星海蒂·拉瑪。 e.g2:Geoff、DNN、DL 概念提出者和關鍵技術突破。他的分布式表示技術概念在工業上才剛剛開始使用,這個理論是他在1986年提出的。
他們中的大多數人不這樣做。如果不是追求成為頂級高手,而只是追求中老年人能在IT行業吃到技術大餐。事實上,它不一定是原創的。但是,創新至少要具備引起行業專家共鳴的能力,也就是能夠順利理解和跟進。
將別人的原創作品應用到特定領域,以最快的速度實踐特定業務,是一種后續創新。比如,用現有工具做已經形成的事情,只能稱為學習;通過閱讀論文將新興的算法和方法應用到當前的業務中,可以說是一種微創新。
B.職業發展
以上是IT技術人員核心競爭力的摘要列表。再說說IT技術人員的職業發展路徑。由于筆者一直在國外公司工作,所以以國外軟件公司為例。不過,據間接了解,很多本土公司都差不多。
一般來說,在軟件企業內部,技術人員在積累了一定的工作經驗后,可以走兩條路:技術和技術管理。如果你是技術,你應該繼續深入學習,如果你是管理,你將轉型為項目經理,然后走上管理路線。做了一段時間的管理后,大部分都會脫離技術,逐漸遠離技術。但是,有些公司就不一樣了。比如微軟,更是技術管理不分離。即使你獲得了高級管理職位,你仍然必須每天編寫代碼。
一般來說,技術相對比較獨立,所謂的r。這并不是說一個人每天都要工作,溝通是必須的。不過日常工作中“硬”的技術成分比較多,掌握的能力也比較一般。管理層與公司的聯系相對更緊密,當然這些都是相對而言的。
C.面試經歷
讓我們談談采訪的內容。根據作者自己被采訪和采訪他人的經歷,指的是雇傭(社會招聘)。
大部分面試分為電話和電話兩部分it技術人員,有的只有后者。就是去公司辦公室面試,一般是多輪面試。最常見的是,每一輪都是一對一的。但偶爾也會有幾個人一次見面的情況。
具體形式是口頭提問和寫代碼。寫代碼的時候,大部分情況下,求職者會被要求在紙上或白板上寫字來模擬推演,有的求職者是直接在電腦上編程的。但即使在機器上,都是沒有聯網的機器。
具體面試問題各不相同,但大致可以分為兩類:項目經驗和一般技術問題。
項目經歷是對求職者之前做過的項目進行提問,大概會涉及到項目的目的、內容、求職者的具體工作、技術的應用以及遇到的任何問題。有些會讓你選擇最令人印象深刻的項目來談論。這個檢查可能是為了檢查以前的經驗和以后的工作的匹配程度;可能是為了了解原團隊的狀態和具體價值;也可以以項目為例,了解求職者的技術能力;也可能是了解求職者解決問題的能力。
技術問題可能非常廣泛,一般來說,每個求職者都會在簡歷上寫下他們知道可以被問到的問題。但也可以大致分為兩種:具體的技術細節和算法。
具體的技術細節可能非常基礎。以Java語言為例進行簡單說明。
Java 技術細節,舉個最簡單的例子: 和 有什么區別?內部類和非類有什么區別?最后,有什么區別?還有很多。這些是關于語言本身的,屬于最基本的水平。再深入一點,我們通常會問有關線程同步的問題。比如線程同步有幾種方法,如何應用,各有什么優缺點?此外,幾乎每次都使用它。這些都是方便的例子。
與 Java 相關的另一類問題是 .這其實不是語言問題,而是因為java特別適合寫,所以很容易測試。
還有一個類,就是JVM相關的,也是java相關的。一般需要GC。或者他們會問一些優化參數,或者做什么。
這類題屬于“死”知識,熟記就好。沒有經驗的JVM調優雖然不好處理,但一般都可以通過熟記來完成。
與此類問題相反的是算法問題——要求候選人當場實施算法。這類問題是“現場”測試。
算法題可分為固定形式題和模擬題。固定形式的問題是指具有一般固定解決方案的問題。比如這道題需要特定的數據結構(平衡二叉樹、堆等);或者這個問題可以對應一個經典的排序和查詢算法;還是這個問題 是的,原標題。仿真問題是指沒有上述固定解決方案的問題,一般是有一個具體的問題,然后針對這個問題寫一個具體的算法。現在大部分求職者都會提前準備,也有部分應聘者會提前很久去刷題。這樣的話,模擬問題就可以看到效果了。
算法題要注意:1.功能齊全,無bug;2.時間和空間復雜度。所有算法問題都必須關注時間復雜度,有些會關注空間。完成一個程序后,一定要確定,再看時間復雜度。如果復雜度在O(N2)或以上,一般沒有意義。算法問題應該至少在O(NLogN)級別。一般需要O(N)或者O(LogN),而O(1)最好。另外,算法題一般不限制語言,使用最熟悉的語言即可。
從個人經驗來看,大部分公司面試的知識題相對較多,算法題相對較少。但也有一些公司,面試基本都是算法題。知識問題側重于經驗,主要考察受訪者是否使用過該技術以及熟練程度。算法題基本上是對基礎理論和智商的考驗。
從這個角度來說,知識測試很容易,因為題目都是自己做的,只要提前記住答案就行了。算法也是一個挑戰。因為要快速查看寫出來的程序是否有bug,時間和空間復雜度是否滿足要求。如果遇到不熟悉的語言,會有點緊張。
另外,對于更高級的人員,一般會考察架構設計能力。可以通過以前的項目問你有沒有架構經驗,如果有,怎么做,問比較實際;如果沒有,你可以創建一個系統,讓面試官當場設計架構。架構能力是在總結項目經驗和學習行業先進實踐的過程中學到的。對應二級學習能力。
D.從新手到老手
前幾天聽到有人抱怨說自己工作多年,忘記了如何測試算法,忘記了時間復雜度是什么。但實際上,算法考察的目標是我剛才列出的第二個核心競爭力:學習能力。時間和空間復雜度是所有??程序的基礎,真正被用戶使用的應用程序肯定會注重性能。時間和空間的復雜性是所有性能的基礎。工作多年,有家庭的人,不可能長期寫題。當他們遇到可以搜索的定式題和模擬題時,可能不像應屆畢業生和新手那么熟悉。這是客觀事實。但在算法中,達到及格水平是任何年齡的任何人從事技術工作的基本要求。你可以忘記 B-tree 的構建,但你甚至不能忘記 quick。只要知道原理,所有算法的時空復雜度都可以當場推導出來。用遺忘來解釋你不知道時間和空間的復雜性是沒有道理的。
這也引出了 IT 技術人員的一個常見問題:與學生相比,擁有工作經驗的優勢是什么?換句話說,老員工比新手有什么優勢?
其實很簡單。優勢在于:核心能力I和II的高層次部分(講道/輔導能力、溝通能力、總結提煉能力、學習能力和結構能力),以及兩點三和四。
這里我要強調第三點:全球視野和行業洞察力(對應的英文詞匯是)——雖然年輕人的學習能力很強,但畢竟進入行業的時間段,對于行業來說整體來說,是需要時間修煉的。由老員工建立,可以指導自己的學習,知道接下來要學什么。而且你還應該知道自己的弱點在哪里以及要彌補什么。年輕人容易學一些中小學,但學不到要領。然后,作為一個有經驗的人,你應該專注于關鍵點。雖然你學習的時間比年輕人少,但你應該更有效地利用你的時間。另一方面,由于具體的技術工作總是在變化it技術人員,總是需要新的方法和工具,合格的員工也可以為團隊的技術方向和工具平臺的選擇做出貢獻。
E.個人成長
如果作者可以時光倒流回到十多年前的大學時光,我會給那個時候的自己什么建議?我會這樣說:
本科期間一定要打好理論基礎,一定要學習數學和計算機科學理論的基礎課程和經典書籍。數學分析、概率和統計、線性代數和數理邏輯在書籍方面確實很少。
在那個年代,一堆看似毫無意義的扭曲方程和矩陣公式,最初是從解決具體實際問題的提取和結論中衍生出來的,也是現在解決實際問題的基本指導。之所以如此枯燥難學,是因為那個時期的解題過程跨越了數百年甚至數千年。我們有幸直接得到了前幾代天才畢生研究成果的結論。 ,或者算了吧,這不僅僅是一場戰斗!
計算機課程應側重于數據結構、編譯原理和操作系統等理論課程。當時語言不是重點。電腦書應該讀《》、《藝術》等經典,而不是把時間浪費在XX天掌握XX之類的速成書上。結合經典書籍練習算法,遠比制作酷炫的網頁和動畫更有意義。
在研究生期間,您應該在練習編程的同時專注于發展自己的研究能力。雖然我沒有攻讀博士學位,但在研究生學習期間,我也有機會接觸到學術和理論。至少應該多閱讀該領域的前沿論文,并通過項目實踐理論論文中描述的方法或技術。
在工作初期,專注于自己。前兩年達到3萬行以上有效代碼是IT技術人員的第一道門檻。只有這樣,才能將重心逐漸向上提升,指向架構層,同時不斷總結個人經驗,兼顧行業前沿技術和發展趨勢。
F。 IT 的財富和 IT 的悲哀
說到底,IT技術人員其實是產業工人,與傳統制造業的一線工人沒有本質區別。不同之處在于,我們處于一個新興行業,新技術仍在不斷涌現。行業現狀讓我們在同等學歷和能力的情況下,普遍比其他理工科畢業的學生工資高很多,但同時也承擔著更多被淘汰的可能。
任何行業都有類似的發展模式。前期急需大量人才,讓很多學習能力強的年輕人跨過一個非常低的門檻進來。而由于行業本身就是社會熱點,為行業從業者披上了一層“專業”和“高薪”的光環。
隨著行業的成熟,創新空間越來越窄,行業壁壘逐漸穩定,整體勞動力的自動化率將大大提升。產業成熟的過程,就是大量低層次勞動者被擠壓的過程。此時此刻,不求進步的結果不言而喻。