一、專業技能學習捷徑
1、愛上你的編碼神器
眾所周知,軟件工程師要做的工作就是寫代碼,準確地說,你的目標應該是寫出滿足業務需求并且無法找出 Bug 的代碼,而不是寫一大堆沒用的文字。既然你的任務是寫出高質量的代碼,那么你首先應該訓練的就是打字速度,你需要掌握鍵盤盲打技能,甚至還要愛上你的“編碼神器”,并做到將此工具的用法爛熟于心,閉上眼睛都能正確敲中你想要的快捷鍵。
2、熟悉底層技術原理
當你完全駕馭了計算機的輸入設備以后,你需要進一步了解計算機的內部工作原理,不是讓你把機器大卸八塊,而是你需要全面了解計算機的組成結構與工作原理。如果你不是計算機科班出生也沒關系,在網上買一本關于計算機組成原理的書自學即可。你無需做到精通,能全面了解即可,因為接下來你需要在編程的世界中,慢慢去體會計算機的工作感受,你就是計算機的管理者。
3、深入一門編程語言
好了,現在是時候學習一門編程語言了,最好的選擇是 Java,為什么呢?原因很簡單,因為市場需求量最大,我敢保證,你學 Java 肯定比學 PHP 更容易找到工作(希望 PHP 程序員們淡定一些,其實我始終認為 PHP 是世界上最好的編程語言)。當你在學習 Java 時,首先需要掌握它啰里吧嗦的編程語法,此時沒有什么比寫一個“Hello World”來得更爽快一些。隨后你需要深刻理解的是 Java 的面向對象概念(每次我說到面向對象,總會被一些單身漢吐槽,其實我想說,對象是可以 new 出來的),這些概念看上去比較虛,但是它們卻能撐起一個強大的軟件架構。所以,在面向對象技術上面花再多功夫都不為過,因為它能訓練我們對業務的抽象能力,就像當初我們學習數學一樣,它能訓練我們的邏輯思維能力。
4、選擇一位對的老師
看書、看視頻、看源碼、看技術文檔,其實這些都是較為低效的學習方法,掌握編程技能的捷徑就是拜一位資深的程序員為師,你可以尊稱他為“碼神”,記得一定要把他伺候好,讓他愿意傳授一些編程技能給你,其實也就是一個微笑外加一頓小龍蝦的事情,他就能被你征服。一定要看他寫的代碼,思考為什么他會這樣寫,一定要將你不理解的地方記錄下來,并且在下班之前緊緊地抓住他,讓他一次給你講個夠,此時你一定會有一種打通任督二脈的暢快之感。所謂“師傅領進門,修行在個人”,你需要比你師傅更加努力,甚至十倍于他人的付出,才能在編程之路上嘗到甜頭。此時你需要學習更加高深的武功,研究更加優秀的源碼,實踐更有挑戰的項目,還需要花整塊時間,系統地看技術文檔以及技術參考書。假如你想成為架構師,不妨看看我所著的《架構探險》這本書,也許它會對你的專業技能有所幫助。
5、樂于分享你的技能
你最好要讓自己變成一位豁達開朗之人,千萬不要吝嗇,一定要懂得分享你所學的專業技能。可以嘗試做點自己的開源項目,并讓這個開源項目變得更加開放,不妨結合開源,寫點技術博客,并厚著臉皮給你身邊的朋友閱讀。這件事情一定要持之以恒,不要擔心有人吐槽你,你肯定會被吐槽,那是因為大家在關注你,此時你需要更加努力,讓自己變得足夠專業。當你成為真正的“大神”時,就不會有人再吐槽你了,他們只會吐槽自己的技術不如你,此時你將得到的是無限的膜拜和稱贊。相信我,這絕不是奇跡。在學習專業技能之路上,多一點自信,多一點勤奮,多一點思考,再爭取一點機會,你就會成功。
二、不可或缺的軟技能
1、軟技能 ≠ 務虛
如果將專業技能比喻為“硬技能”,那么在我們的職場中,與專業性無關的技能就可以歸納為“軟技能”了。但每當我提到軟技能時,難免會讓人誤解為這是“務虛”的一種功夫,我們雖然是“吃軟飯的”(做軟件開發的),但我們卻十分討厭虛偽。沒錯!我也很厭惡虛偽之人,尤其是在職場中遇到這樣的人物,我從心底鄙視他們,但我從來不會和他們發生任何沖突,反而還能和他們愉快地共事,這種本領靠的就是軟技能。
軟件工程師每天都在和機器打交道,機器是沒有感情的,你告訴它是0,它一定不會認為是1。但我們與人打交道卻不一樣,你告訴他是真,他卻可能認為是假。與人打交道,正是軟件工程師們最為欠缺的方面,有些軟件工程師甚至害怕與人交流,害怕在公開場合講話,害怕拋頭露面,害怕做一些組織性的工作。如果你也有以上這些心里負擔,那么恭喜你!因為你即將從本文中找到克服這些困難的靈丹妙藥,至少我希望是這樣。
需要強調的是,軟技能是一種職場必備的核心技能,我敢直言,如果缺乏這方面的技能,你的職業生涯將會變得非常糟糕。軟技能包括的方面非常廣泛,溝通、協調、組織、氣場這些都是最基本的軟技能,甚至情商也是一種軟技能,會不會講話,聽不聽得明白,這些都是軟技能。那么我們不妨先從溝通這項軟技能開始吧,因為我認為他是軟件工程師最重要的軟技能之一。
2、口語流利 ≠ 會溝通
很多人都容易將溝通理解為講話,說一個人語言很流利,很會講話,口若懸河,夸夸其談,其實并非他的溝通能力很強。我認為,溝通可以理解為兩方面,即“溝”和“通”。“溝”指的是你將心中所想很清晰地表達出來給對方聽,考驗的是你的表達能力;“通”指的是讓你確信對方是否真明白你所表達的意思,考驗的是你的傾聽能力。所以,我們很多時候都是在“溝”,往往忽略了“通”,從而形成了“溝而不通”的情況,因此,現在全世界人民都在提倡如何“有效溝通”。還是用一個示例來說話吧。
當領導交給你一項棘手的工作,但你不知道如何開始進行這項工作,此時你應該如何應對當前的挑戰呢?絕大多數人會硬著頭皮去做,他們希望通過自己的努力,可以順利完成任務,但結果往往卻無法讓領導滿意。少數人會主動向領導咨詢,以尋求領導對自己的幫助。此時應該如何與領導對話呢?似乎并非很多人都清楚。下面這段話是我的套路,僅供參考。
我:勇哥(他是我的領導),最近我遇到了一點麻煩的事情,想聽聽您的看法(勾起領導的興趣,讓他認真聽我說下去,記得一定要說“您”,而不是“你”)。
領導:哦?說來聽聽(證明領導此時不忙,他有時間讓我占用,如果他此時很忙,你應該能感受出來的)。
我:感謝您對我的信任,昨天您交給我一項任務,回到家我一直都在想這項任務,我在想……(一定要對領導表示感激,是他給了我這次鍛煉自己的機會,并強調我是“回到家”都在思考,而不是只在在公司里思考,道理你懂的)
領導:可能是我沒說清楚,你把這項任務想復雜了,其實……(可見這是一位 nice 的領導,跟著他,你能學到很多東西)
我:我還想再清楚一下,您期待這項工作的結果是怎樣的?(一定要明確領導想要的結果,他只會為結果買單)
領導:我希望……(領導娓娓道來,此處省略1萬字,你千萬不要打斷領導的講話,他講累了自然就會停,你只需要認真聽他怎么講)
我:好的,我明白了,您希望我……(一定要學會復述領導講過的話,而且要用自己的理解來表達,不要當復讀機)
領導:沒錯,就是這樣。(領導表示認可了,此時你應該表示給領導一個微笑,讓他感到欣慰)
我:感謝勇哥!如果我在執行過程中遇到問題,可以再向您請教嗎?(一定要感謝,而且要表現出虛心向領導請教,為下一次求救做好準備)
領導:當然,隨時交流。(你真心拿他當領導,他才會無條件幫助你,你不懂得用好這位領導,那是你自己的損失)
溝通是不是很有趣?其實溝通是一門學問,我們花一輩子時間都在學習,都在改進自己的溝通方式,目的僅為愉快地和身邊的人一起“玩耍”,讓此生感到愉悅。
當你已經掌握了必備的專業技能,也具備了讓你脫穎而出的軟技能,那么接下來你將思考的是自己該走那條路了,繼續做軟件工程師,還是做軟件工程師的 leader?下面這段話將告訴你答案。
三、正確制定職業路線
1、給自己提幾個問題
首先要澄清的是:我并非職業導師,更不是人生教父,所有的路都由你自己選擇,我的責任是告訴你,我認為行之有效的方法。
當你正走在職場的十字路口徘徊,思考走技術,還是走管理?我的答案只有一個:根據你自己的優勢來決定。合理利用好自己的優勢,會讓自己走的更加順暢,讓自己無怨無悔。還是舉一個例子來說明吧。
前段時間有位朋友在微信上私聊我,他也遇到了這個問題,繼續做技術,還是轉管理?我當時是這樣問他的,但我希望你可以用這樣的方式來問自己。
我:你工作多久了?
朋友:時間不長,寫了10年的代碼。
我:那相當資深啊,現在還對寫代碼有激情嗎?
朋友:喜歡寫,周末有時都會宅在家里寫。
我:那你還在糾結什么呢?
朋友:我都工作10年了,身邊的人要么當 CTO,要么做總監,自己卻還在擼代碼,我現在到底該不該轉管理?
我:你為什么會考慮轉管理?說說你在管理上的優勢吧。
朋友:我覺得自己對技術有一定深度,可以幫助團隊解決一些技術難題。
我:如果你團隊中有位小伙伴遇到一個很棘手的技術問題,沒轍了,你會做些什么?
朋友:擼起袖子,就地幫他解決掉。
我:建議你走技術專家路線,這條路也許更加適合你。
朋友:……
2、轉管理之前,先理解管理
當我們在糾結是否應該轉管理時,不妨首先理解一下什么是管理?以及什么是管理者?只有當我們正確理解了這些概念以后,再來思考自己是否具備這樣的特征,才能順利幫助自己轉型。
管理(management)是協調和監督他人的工作,從而使他人的工作可以有效率且有成效地完成。效率(efficiency)指的是以盡可能少的投入,以獲得盡可能多的產出,效率常常被說成“正確地做事”,即不浪費資源。成效(effectiveness)常常被稱為“做正確的事”,即做那些可以實現目標的工作活動。管理者(manager)就是完成所有管理工作,并使組織目標能夠實現的人。管理者的工作包括計劃(planning)、組織(organizing)、領導(leading)和控制(controlling)四種職能。
以上都是管理學告訴我們的知識,如果你想成為一名管理者,那么你必須首先正確理解這些概念的真實含義,才能完全駕馭管理者的崗位,否則你會從管理崗位上摔下來,自己一定傷得不輕。
如果你想成為一名優秀的管理者,那么你需要做些什么呢?
親自且專業地給團隊激勵。
激勵團隊完成你無法獨立完成的任務。
對問題提供指導和指引。
對團隊的表現給予反饋。
幫助團隊改善績效。
使團隊對組織的改變知情。
改善團隊小伙伴們的生活。
如果團隊和你共事過,那么團隊應該覺得他們是幸運的,因為你能夠讓他們更加愉快和高效地工作。
寫在最后
不論選擇技術還是管理,在任何時候都不要放棄你的硬技能,因為它是你的“生存之本”,同時你也需要具備強大的軟技能,因為它是你的“發展之源”。
學習硬技能其實是有捷徑的,你無需一味地學習這些知識點,更多的其實是與人交流以及加以應用。軟技能其實是可以訓練的,你只需抓住一切可以抓住的機會,有意識地加以訓練和反思,你就能悟出很多寶貴的經驗。軟件開發是一門藝術,你需要能夠靜得下心,不斷地優化和雕琢你的作品,因此你需要具備工匠精神。如果你想成為一名工匠領袖,那么你就應該比他人思考得更多、更高、更深、更全面,你需要更多的軟技能。你只有認識到自己的優勢,才能正確地選擇自己的職業路線。
祝你成功!
-
編程
+關注
關注
88文章
3615瀏覽量
93710 -
軟件工程師
+關注
關注
8文章
218瀏覽量
21136
發布評論請先 登錄
相關推薦
評論