還未有感,已然歲末,猶嘆時之箭逝去如斯也,稍縱命再減一。回首望,為猿七年有余已,雖不成氣候,亦未全蹉跎。略做小結,以不惘逝去之時日,亦會大益于爾后路途。若博文能助足下之一二,孤將甚悅。
職業是無數個連接起來的馬拉松
小學時,我們很清楚的知道5年后就畢業了(孤當年是五年制,現在貌似有的地方也是),無論多么討厭老師或者同學,或者學校,都知道最多忍5年就結束了;初中高中也一樣,三四年樣子,很快就過去了,多少歡樂悲喜都會很快地過去;大學更是如此,從入學進校園那天起你就開始倒計時,知道四年后的一天要離開,再怎么珍惜,再怎么蹉跎,時間仍然以它亙古不變的速度在向著一個方向跑著。
可職場呢?過了5年,你還在工作,還得工作;過了10年,過20年,30年甚至40年后,我們仍要工作。即使離職,也還要再入職,而且新工作跟之前沒有本質的區別。明白了職場是一個40年的大周期,所以,這是一個超長的馬拉松,沒有中考沖刺,沒有高考沖刺,更沒有考個好大學,就可以隨便玩了。沒必要玩了命的沖刺,那樣也沒有好效果。更重要的是持續不斷的學習,對,持續幾十年的學習。
成為高手,或者大牛的唯一途徑是不斷的學習
不要夢想著進入大公司,進入牛逼的團隊,坐在大牛旁邊,或者多參加線下活動就可以成為大牛。這都是圖樣圖奶衣物。大公司為什么要你?牛逼的團隊為什么要你?首先你要有點本事才行;想要得到牛人的指點,是靠運氣的。可能是電視劇看多了:你掉進山谷中,然后遇到了一個白猿,肚子里藏著九陽真經?或者滾下山谷,看到一個大雕,學會獨孤九劍?蕓蕓眾生全國數以百萬計的程序猿,你覺得能遇到大神的機會有幾成?大神愿意與你交流的機會又有多大?夢想大神手把手教你?除非你是他炮友。
當然,也確實有人足夠幸運能夠得到高人指點一二。但我們相信絕大多數人,即使牛人在你身邊,你也沒有足夠的機會讓他指點。公司雇我們來,是讓我們干活的,讓我們產生價值,為公司賺錢的。牛人的任務更重,事情更多,憑什么還讓人指導你。
大公司資源和資料是多,培訓的機會也多,但是也要你自己去看,去聽去學習啊。各種線下活動,打廣告的占大多數,其他的演講也大都是提及皮毛,想要學到干貨是不可能的,幾十分鐘他能講出來多少?你又能領悟多少?所以線下活動是推廣,開拓視野(能聽到很多概念),拓寬人脈(確實能認識好多人,牛人和同水平的人)的好機會,而不是學習的機會。
一句話,想要成為高手,還是要去腳踏實地的學習,去啃書,去讀代碼,去擼代碼,別無他法。關于這方面,可以參考一位大牛的文章(鏈接:http://www.runoob.com/w3cnote/how-to-became-tech-giant.html),我覺得很在理。
選擇一個行業,或者一門技術,然后深耕
雖然,不提倡像某些人那樣做什么五年計劃,因為我們所處的行業,公司,項目,人事等變化的太快了,這些變化都是不確定因素,會打亂所有的計劃,特別是長期計劃。但是我們還是要有目標的,我相信對于大部分人,最終極的目標無非就是財務自由。如何才能財務自由,運氣確實有一定作用,但更重要的還是要硬實力。什么是硬實力?也就是你能解決別人解決不了的問題,比如老板想作某一塊的業務,你對業務規則特別熟悉,能帶隊幫老板搞定;再如,技術上遇到了問題,你能搞得定。沒有實力,光有運氣,即使你遇到了淘寶的崛起,現在也未必能財務自由。
硬實力從何而來?無非是積累。積累什么?才會越來越值錢?無非是行業或者技術。
什么是行業?汽車,是一個行業,金融是一個行業,服裝是一個行業,旅游出行是一個行業等等;什么又是技術?安全,音頻,Webkit,圖像,深度學習等都是技術。身處一個行業,可能技術并不復雜用的都是常規技術,但是你能夠對一個行業深入的了解,它有哪些游戲規則,有什么坑,有什么政策法規,有什么風險,怎么樣做才會有最大收益,這些都是只有從事行業有一定時間后才會知曉的。技術,就更好理解了,使用封裝好的技術是容易的,比如像WebView,使用起來很方便,但它的技術實現——WebKit卻是非常復雜的,沒個幾年時間是搞不清楚的。
當然,能始終在同一個領域(無論是行業還是技術)深耕是不容易的,要靠運氣的。但是要明白,只有深耕一個行業,或者一門技術才會讓自己的價值最大化。所以,當有選擇時,盡可能的向著目標靠近。
責任重于技術
程序員的工作,無論是互聯網,還是企業軟件,都是工程,都是對技術的應用。大多數情況下,大多數人在工作中不會遇到技術上無法解決的問題,或者世界級的難題。換句話說,工作中遇到的問題,即使你不會,或者不知道怎么解決,通過查閱資料,書籍,網絡和同事的幫助,很快就可以解決。再者,把代碼寫好,做足測試,加強健壯,這些事情,也并不是需要太高深,太前沿的技術。只要用心就能做的很不錯。
相反,那些工作做得糟糕的人,并不是因為技術水平很差,別人對他的評價一定是不負責任,正所謂態度決定一切,態度產生的后果就是責任。即使技術水平一般,但是態度很認真,工作很負責,這就是優秀的員工,也是對公司更有價值的員工;而一些即使技術很強,但是卻態度差,不負責任,這類人就是混吃混喝等死的人,是遲早要被撥掉的毒瘤。
成為一個專業的程序猿
這里的專業,更多的是指形式,做事的方法,解釋什么是專業前,先看一些例子,什么叫不專業:
* 電話面試時,不問對方能不能聽清楚,就blahblahblah的開講,結果講了有十分鐘,對方嘆了一口氣說,不好意思,信號不好,沒聽清。。。
* 比如電話面試時,候選人說我先找一個方便的地方,找到后,打電話過來,說找到了,然后就開始電面了,這是候選人打過來的電話啊。。。
* 比如開會遲到,比如開會時扯閑篇兒。。。
* 沒弄清楚事情原委就妄下結論,特別是脾氣急的人,甚至開始罵人。。。
我相信這類事情舉不勝舉,我也非常肯定地相信,猿媛們在日常的工作也經常遇到這樣的事情。我們針對此類事情常常會回應“不專業”,對,這就是不專業。
反過來就是專業:
電面前,先都問清楚對方是否能聽清楚,然后再blahblah;候選人告訴你,我現在方便了可以電面了,這是一個通知啊。你要掛掉,然后再打過去;開會有明確的主題,不要遲到;弄清原委后,再罵人。。。等等。
聞道有先后,術業有專攻,如是而已。
知識是無窮無盡的,總有你不知道的,總有你不會的,即使你當了幾十年的程序猿,號稱啥都會,人送外號萬事通,但想把你問倒,也不是難事兒,一個學校里的孩子也有你不知道的知識。軟件行業,分為眾多領域,都說隔行如隔山,但是不同的領域也有鴻溝,比如做客戶端,后端,前端,驅動,游戲引擎,圖形圖像,安全等等。所以,我們要保持一顆求知的心和一個謙虛的態度,即使你是前端大牛,但當你遇到驅動上的問題,你就是個白癡,就要虛心地去學習,去向別人請教。
另外,就是面試時,身為掌握生殺大權的面試官,更是要拿出對候選人的尊重,不能因為別人的出身(非科班或大專),經歷(小公司,外包公司),經驗(經驗少,項目無亮點),不是很對口(你需要客戶端,他大部分經驗是前端)等非技術原因,而在面試時故意刁難,或者“明擺著不想要你,但是為了應付領導不得不面試”,或者因為其他原因來鄙視候選人(曾遇到過,一個外企的人,鄙視國內公司的人,說國內都是抄外企的)。正所謂疑人不用,用人不疑,身為面試官,你可以pass掉這個人,這是你的權利,但是你必須尊重別人,即使這個人能力確實不咋地。誰都有低頭的時候,外企就牛么?國內的外企不也是總部的外包,竟干點雜活兒,Motorola當年多么牛逼,待遇也好,招人也挑得不行,現在不也都樹倒猢孫散!老話講不要裝逼,遲早遭雷劈!
如何停止迷茫的眼和沉降浮躁的心
每當迷茫的時候,都是對未來想太多,當下做的太少導致的;每當浮躁的時候,都是期望的太多,做到的又太少時導致的。無論將來,你怎么樣,將去向哪里,最關鍵的,是要從當前開始,你無法夢想著直接飛到那里,沒有直升機,也沒有熱氣球可以撥地而起,只能從當前開始,腳踏實地的,一步一個腳印的往前走。
這還是有點空,有點雞湯,下面來說說具體如何做:
* 首先,搞清楚你自己是做什么的?對,死寫代碼的。寫哪一層代碼的?安卓?水果?應用?Frameworks?驅動?哪一領域的?圖形圖像?Webkit?網絡?BlueTooth?金融?安全?什么,不寫代碼,只是維護解bug(有相當部分的人,比如安卓整機方案的人都是只維護解解bug),也一樣,哪一層的,哪一領域的,搞清楚。
* 然后,弄清楚自己是干啥的了,這就好辦了,把你該做的事情,做好,做熟悉,做到你只用半天時間就能完成一天該做的事情。寫代碼,要學習如何把代碼寫的又好又快,也就是能快速地完成指定需求,bug又少,升華一下,又包括把代碼寫得清爽,易懂,結構合理,命名易懂等等,這個是基本功的修煉,且一直被人忽視,因為幾乎所有公司的KPI里不會涉及到代碼的好與壞,頂多是bug的多與少,crash率,性能和穩定性,這些是軟件的指標,而非代碼,衡量代碼好與壞,最好的辦法是看接手你代碼的人的反應,看他罵你的次數。代碼的修煉可以看《代碼大全》《整潔代碼之道》這些書,更重要的是看優秀的開源代碼。
* 另一個,就是熟悉現有的代碼,爭取做到,每當一個新需求過來時,你知道要改動哪些類,要在哪里添加新代碼;改bug時,你想一想,就知道bug大概出現在什么位置,是哪個類,哪個方法導致的問題。
* 還有就是熟悉業務邏輯,任何軟件都是為了實現業務而做的,熟悉業務邏輯,先是你負責的小模塊的邏輯,然后是整個軟件的業務邏輯,這對新評估需求,解bug,都非常有好處,你會站在一個整體的角度去思考。有一些具體的指標,比如你可以整理了需求文檔,以及由此可以產生各種測試用例和場景,這對你驗證代碼的正確性很有幫助。
* 之后,就是準備好,并備份常用的測試環境,測試數據和測試用例,有新的需求,和解bug后,也都要整理并添加到測試庫中,方便自測和回歸。雖然有QA來保證軟件質量,但是我們的軟件,拿到給QA前起碼要是能work的,需求要能滿足的。總而言之,專業的程序員自己是要做足夠的測試的。而測試,有時候不是那么的方便,比如,對于客戶端而言,常發生的事情是,后端數據還沒好,你需要mock數據;有些數據是少數場景才出現的,也需要mock著來測試;上線前要在測試環境里,用測試服務器來測試;等等。這里的意思是,如果你經常需要這些東西,比如mock數據啊,代理啊,等等,就要去花點心思,整理并備份,甚至想辦法,寫代碼也好,用開源庫也好,搭建好方便使用的測試環境,這對開發來說是很有幫助的。可能你會有印象,一個bug,改起來很容易,但是驗證它卻很困難,要掛代理,mock數據,模擬特殊場景,調整網絡環境等等。
* 還要備份常用的環境配置,比如你的代碼會針對不同的場景有不同的定制,這時,最好的方式是各拷貝一份,每一份都配置好,而不是用不同的分支,即使這也能做到。原因有二:混了幾年的后,我們深知,環境配置也是開發的一部分,而這通常都很麻煩,會讓一個看起來十分鐘搞定的事情,最終變成搞了二天,可能還沒有搞定。現在的代碼都很復雜,復雜之處在于,它本身不復雜,但是依賴特別復雜。大家常折騰開源軟件,應該知道,一個庫本身可能不復雜,但想要用它,要安裝配置一坨一坨的依賴,試想一下,如果不用包管理器(apt-get,brew,pip之類)的,你自己手動去裝一個opencv試試,或者直接編譯它的源碼試試。
? ?* 代碼分支雖然可以區分不同的代碼,但是環境依賴配置往往不會在repo里,意味著你切了分支后,還是要去搞一下環境配置,弄一弄依賴;
? ?* 另外一個原因是并行的問題,假設你在A版本的分支上正在開發新功能,這時B版本(假設A與B是給不同客戶的,二個分支有差別)要修Bug,你說你是切分支方便,還是說到另外一個目錄去搞方便,我覺得還是這種物理隔離的要好。
* 上面這些做到了后,我相信份內的事情對于你來說,都不是事兒了。這時,就要去深入學習了,把你所依賴的東西搞清楚。比如你用到了網絡庫,像OkHttp,像Retrofit,它們為什么比原生的要好用?它主要的原理是什么?它的封裝思想?再如圖片加載庫UIL,Picasso等,它的原理是什么?所依賴的底層庫,封裝的都特別好,用起來很方便,越是這樣的庫,如果你只知道怎么用,那就完了。因為即使沒用過的人,花幾分鐘看下教程也都知道怎么用。只有深入了解實現細節,并學習使用高級用法,才能不惘你用過一回這些優秀的庫。
* 此外,無論是哪個領域,哪一層,性能調優都是一個高手的象征,項目的性能調優工作一般都是由高手來負責的。所以,如果你學習,并實踐過性能調優,對技能的提升絕對是一個大推力,面試時也會是一個大大的加分項。
* 最后,就是用心,認真地對待工作,認真對待每一行代碼,每一個bug。即使你不喜歡現在的工作,即使你覺得你現在就是在浪費時間,浪費生命,每天都改改bug,毫無樂趣,但你也要認真對待,把工作做好。所謂拿人錢財替人消災,你拿了公司的薪水,就要把工作做好,他日你能高就,那是另外一回事,是他日的事情,今天你在這兒,就要把該做的事情做好。如果特別浮躁,眼高手低,總是糊弄,你覺得你能高就么?老板會把更重要的事情交給你?雖然,這個世界千奇百怪,確實有人不是因為技能得到了更高的工資,更好的工作,但我相信大部分情況下,還是成正比的,待遇比你好的人還是有正面的理由的。如果你不服,那么就更要用心地去努力,他日高就時,證明給別人看:老子比你們都強!
如果你能做到上面建議的幾點,略加堅持,不出半年,肯定會有質的變化。
去他媽的職業規劃和長期計劃
職業規劃是一個方法論的東西,比他媽的設計模式還不靠譜。長期計劃更是害人的東西,超過一年的計劃,甚至超過6個月都是扯蛋。你去問那些大牛,沒幾個有他媽的明確的職業規劃和長期計劃的。他們的共同特點是:擅長深挖,能啃書,能讀代碼,思維活躍,思路清晰,解決問題時,人家的思路就比你的更優雅。
為什么說這玩意沒卵用,是因為現實生活中變化真的太快了。項目,做幾個月之后可能就不做了;人員,今天張三離職了,明天李四轉崗了;沒等你做完呢?需求改了,或者這個運營活動不做了,因為老板經費不給批。。。。
說個具體的身邊的例子吧:去年團隊來了個實習生,是按安卓客戶端招的,來了后,頭一個星期也是安排安卓的活兒,第二個星期,來了一個新的大需求,需要H5(Mobile HTML5),結果這孩子就要去做H5(要從頭學JavaScript),過了大概三個月,公司政策變化,用不了那么多實習生,結果這孩子就得回學校了。如果你是這孩子,你連一個月的學習計劃都沒法實現,因為你都不知道下周,甚至明天會發生啥事情。
想要獲得一個更好的成長學習環境就是要去大公司
去大公司還是小公司,這個可以列為與C和C++之爭,GNOME和KDE之爭以及Vim和Emacs之爭同等的一個不朽的話題。孤認為,當你處在職場初期,比如剛畢業,或者畢業二三年之內,大廠無疑是一個非常好的選擇,這里的大廠包括國內一流的公司比如BAT,網易等國內知名大廠,以及大的外企,如Intel,Microsoft,非死不可,谷哥等等。
接下來說原因:公司雇我們來是干活的,是為公司創造價值,是幫公司賺錢的,不是讓你來學習,讓你來開拓視野,讓你來接近牛人,讓你來討論問題的。大廠,因為它很大,有穩定的收入來源和盈利能力,所以,它的節奏是有規律的,是相對寬松的,它的項目要么是成熟穩定的,要么不是為了短期盈利而開展的。所以,它在人才的培養方面,是有計劃的,換句話說,能夠容忍你去學習,甚至是稍微放慢一下工作任務(我說的是稍微放慢),因為公司也期望你去學習,提升自己的技術和能力,公司也會有這樣的空間來接納更好的你,說白了,有足夠的空間讓你提高和上升,更會有時間和耐心來讓你完成這一過程。小廠能有這樣的空間嗎?能允許你說,我先學幾個月?沒準幾個月后,你學成歸來時,公司可能都倒了。
另外,大廠里人多,好人多,牛人多,壞人也有,水貨也不少,你可以認識更多的人,你可以了解大廠是如何運作的,大廠是靠什么發展成為這么大,以及大廠如何保持運轉而不衰落,大廠里,你可以有時間和空間去學習,能開闊視野,能拓展人脈,這都是小廠無法做到的。
一句話,當你處在職業的快速學習期時,大廠是最佳選擇;而當你感覺學有所成,或者遇到了新的瓶頸時,這時小廠就是你大展拳腳的好去處。所以,你看,從BAT出來的人,無論是創業還是加盟創業,都是一個非常好的歸宿,這是雙贏,對于我們,小廠里空間更大,人少事多,是你施展大好舞臺;而小廠也恰恰需要這種以一當十,即是CTO又是程序猿,即是開發又是運維的復合型人才。
溝通以及代碼可維護性取決于作者是否能為他人著想
如果一個人肯為他人著想,會換位思考,我相信,他的溝通能力一定不會差;他寫代碼的可讀性也不會太差。如果你不顧別人,只管自己說,說完拉倒,這怎么溝也不會通;如果你想不到別人會維護你的代碼,甚至想不到日后自己也得看現在寫的代碼(看,都不為自己著想),這代碼要是可維護,算孤白活。
攘外必先安內
委座這句話還是相當有水平和內涵的,也具有指導意義。我對這句話的理解是,小到個人,團隊,部門,大到公司和國家不能同時進行二個或多個大事情,只有把一個搞定了,才能去搞其他的,有點不好理解,待孤慢慢講。
所謂溫飽思淫欲,當你下個飯轍都沒有時,你還考慮什么泡妞?當你一門技術,一個編程語言,一個平臺都沒學明白的時候,想什么跨端,想什么技術的廣度?都是扯蛋。到外挖井,挖的也不深,最終一輩子也挖不到水,正所謂10個10%不等于一個100%。
再比如團隊,每次發版本都搞得雞飛狗跳的,還談什么XP,搞什么技術創新?好好地把業務需要的技術搞熟悉,搞透徹,先把份內的事情做好,輕松地做好,當你每次發版本都能輕松應對時,甚至原本10個人的活5個人就能搞定時,這時才是你去搞技術創新,搞什么UT啊,什么XP,什么技術驅動,什么工程師文化啊。
大到公司,當前的領域內,都沒有占有穩定的市場份額時,就學人家搞什么布局,人家搞金融,你也搞,人家搞汽車,你也搞,人家搞影業,你也搞,這早晚會把自己玩兒死,就比如當下的賈布斯,樂視的電視,手機,體育,哪個占有穩定的市場份額了?哪個能擔起養家的重任?這個時候你去玩布局?搞什么汽車?這就叫No zuo,No die。馬老師是擅長布局,但是都是在一個領域壟斷了時:當年搞淘寶,是因為B2B站穩了腳跟,能養家了,換句話說B2B已經做得差不多了,且占了大部分的市場份額,能賺錢,即使淘寶失敗了,賠了錢,都不是事兒。后來搞阿里云,現在的什么影業,菜鳥,雙H,這都是要持續砸錢的,為啥,因為淘寶和天貓能養得起整個阿里,即使這些都賠了,也賠得起。
大到國家也是如此,當人民還吃不飽穿不暖時,談什么精神文明建設,談什么科技創新?比如七八十年代的中國,十幾年前的東南亞(那幾個比較弱的國家,不是四小龍),搞什么環境保護,對于人類來說,當面臨人類的自身的生存和環境保護的選擇時,只能選擇前者。所以,在一個不發達國家向中等發達國家邁進的時候,經濟發展始終是第一位的,人類發展過程都一樣,都是先污染,求發展,再治理。
說到這里,我相信你已經明白孤的意思了。
提高競爭力,以增值
什么是競爭力,我覺得就是要多多培養那些不是Google一下就能解決的問題的能力。說白了,就是知識體系。Google一下能解決的問題,一定是一個點。StackOverFlow也好,博客也好,說的都是一個點的問題,不可能太大,因為大了的話一篇文章怎么能講得清楚。多個點,且經過連接就成體系,這是需要長時間多次Google,外加思考總結而形成的,這就是競爭力。也是老鳥的價值所在。
很多人都在爭論,30歲以后要不要寫代碼啊?40歲以后怎么辦啊?確實,隨著年齡的增長,人的身體,精力都會走下坡,不能再像年輕時那樣熬夜,所以30多歲的一線人員的處境非常的不容易。剛畢業的前幾年,是快速成長期,只要你肯努力學習,技能水平,收入都是直線上升的,但是接近30歲的一線碼農,再想技能水平收入直升,就相當的困難。家庭,生活和身體原因讓你沒有那么 多時間去學習了。這時,你能做的事情,剛畢業二三年的人也能做,他們精力更旺,身體更好,所以很多人要么轉管理,要么轉行,剩下的也總是在琢磨啥時候轉。
我覺得,造成這種尷尬的境遇最重要的原因還是未能持續學習,未形成足夠多的競爭力。即使你沒成為管理者,沒成為大拿級別的人物(現實生活中不可能每個30歲后都成為管理者,都成為大拿),如果你持續學習,不斷提升競爭力,你總是會增值的,即使每年公司僅給你普漲工資。
工資,我們要以單位時間來算,假設月薪2150塊,這其實是21.5x100得來的,你請一天假,是要扣掉100塊的,再換算,8x12.5=100,也就是說你的時薪是12.5大洋。二個人的月薪假設都是2150,但是一個人水平高,一天的活,2小時搞定,一個月的活一個星期搞定;跟另外一個天天還得加班才搞的完。哪個薪水高?當然,這里是做了很多簡化,現實生活要比這個復雜。雖然,都有快速成長期,公司也有快速膨脹期,但最終,都會達到穩定,所謂穩定,就是你遇到瓶頸。比如像BAT等大廠里的大部分人,拿阿里來舉例,絕大部分人,升到P7后,肯定就止步于此,不當主管升P8是很困難,而且只會越來越困難。那么這些人,每年只能被普漲工資,要想提高工資水平,只能靠提升自身工作效率來增值。
有人也許會說,這不太現實啊,活兒不一定會平均分配的,老油條可能會被分配更多的任務。其實,這個決定權在于自己,都已經是老油條了,看不到上升的希望了,為什么還要多干?這是一個屁股決定腦袋的時代,也可以理解為工資決定責任的時代,員工付出多少努力取決于給多少工資。說不好聽的,給一個應屆生的薪水,還指望著,干著架構師的活兒,擔著CTO的責任,只有處在職業初期,快速學習成長的時候才會干,并且一旦感覺學有所成,立馬高就。
總之,不斷地學習和總結,多多培養競爭力,才能做到越老越值錢。
要事不一定非優先
當有多件大事情要做時,比如一個新功能,一個是已上線版本的幾個bug,還有設計下個月的一個運營活動的技術方案,當這三個事情擺在面前時,只能先選擇最重要的事情來做。這個確實是要應用要事為先的原則。
但假如,還有一些其他小事情要做:比如,充個話費;到網上買個東西;升級一個軟件等,這些10分鐘內可以搞定的小事情,最好還是先做了。這樣你的頭腦就清靜了,不會老想著“要記得充話費啊”,這些小事情本來就容易被忘記了,所以大腦會潛意識地提醒我們。這會打擾正常的工作思維,影響思維的集中度,從而影響重要事情的效率。而且,按要事優先也會造成到晚上了這些小事情還沒有做完,而推到第二天。
區分的原則就在于:如果一件小事情可以10分鐘內搞定,那么就迅速搞定它。要明白,你的ToDo列表越短越好。那些需要半天或者一天才能搞定的事情,當然還是要按照要事優先的原則來辦。
不要努力加班做業務,而是要加班學習
軟件行業,加班是難免的,特別是互聯網行業,現在的移動互聯時代996更是一個普遍現象。也許會感覺到充實,也許會感覺到成就,也許會感覺到累?但是黃牛式的,天天加班做業務,起碼對于個人的成長來說是最致命的。現在年底了,你回頭想一下,這一年都做了什么?有哪些成長?你會發現,你做了很多事情,但是成長很少。遇到不會的東西,網上搜一搜,copy一下,就完了。業務做了那么多?你會有成就感么?程序員的成就感更多是源于自己的成長,能夠做到以前做不到的事情,而非天天搬磚。
舉個例子,你會蓋房子,但這一年,都是在蓋同樣差不多規格的房子,能有多大長進?什么時候來一個蓋漂亮城堡的活,你能接得住么?公司給我們錢,是讓我們產生價值的,對于公司來說房子就是價值,只要我們能多產出房子就值了付給我們的薪水了,等哪天你老了,病了,不能蓋房子了,他們立馬會找一個更年輕力壯的人來替你。而你如何升級為蓋城堡的人,公司根本不管。
所以,如果你感覺天天在搬磚,幾個月了,甚至半年了,毫無進步,沒學習新東西了,也沒有搞清楚遇到的問題,這時就要注意了,要減慢搬磚的速度,哪怕不要KPI了,要停下來學習學習,總結思考一下,如何做得更好。比如,有些重復的工作,是不是可以用腳本,像打包,發布之類;比如對于產品和運營過來的需求,要合理地拒絕;比如對于重復性的運營活動,是不是可以搞些配置模板等等。
天天加班做業務,是不會有進步的。要想進步,只能學習。
學會聰明地做事
考試時,最好的方法是什么?不是瞎猜,不是自己做,而是抄正確的答案。一個活分配下來了,最好的方式是什么?不是自己干,即使你早已駕輕就熟,而是讓別人替你完成。最省力,最輕松的做事方法是,讓別人來做。完成一件事情的方法有很多,我們要選擇成本最低的方式。
這里,不是說讓大家投機取巧,把本該自己做的事情推給別人,當然如果你有那個本事推給別人,別人又愿意接也可以。而是說要聰明地做事,不要把精力耗在本該別人負責的事情上。比如,現在的軟件依賴都比較復雜,問題通常都會通過上層來表現出來,如果你發現,這個是底層引起了,那就不要去查了(如果時間充實,為了學習和研究的情況除外),讓相應的負責人來查就好了,他對此更加的熟悉,可能你花一天功夫也沒弄明白的,人家一眼就搞定了。
再有就是,一些煩人的手工操作,重復性操作,要寫腳本來完成。計算機最大的優勢是能夠重復且不犯錯地完成任務,它的最大優勢在于重復,人的重復性沒有計算機好,而且會犯錯,像拼寫錯誤等。像打包,發布,等等很多事情都可以用腳本來完成。
學會利用程序員的優勢
軟件再也不是大學實驗里,讓人們琢磨不透,看起來很神秘的東西了,它已經融入了人們的生活,廣場舞的大爺大媽們都也用上了智能手機,用上了微信,淘寶。我相信,問軟件人員會修電腦的人會越來越少。這意味著我們每天都要跟軟件打交道,離不開軟件 了。身為會寫軟件的人,就要利用好自身的優勢,下面來舉例來說一說:
* 要能識別出各種釣魚短信,欺詐短信電話;如果身為一個程序員還被電信詐騙騙了的話,只能說這個猿太失敗了。
* 對于各種軟件,也要能夠識別出,哪個是真的,哪個山寨的,假的,哪個可能有病毒,哪個可能有木馬。更要有安全意識,現在手機應用和網站的個人信息泄露非常嚴重,所以,更要注意管控手機應用的權限,能少注冊網站就少注冊等。除了自身要注意信息安全,更要提醒身邊的人。
* 再比如,普通人獲取信息的方式是上網站,用搜索引擎,但是猿媛是不是可以用爬蟲呢?
* 再比如像搶紅包,搶票,秒殺(不要去秒月餅哈)刷投票,刷評論等,普通人靠人肉,靠手工,靠發朋友圈,我們身為猿媛是一定要靠技術的,寫個腳本,寫段代碼來幫我們完成這些事情,這也是我們從事的職業所帶來的一個優勢。