導讀:從事編程這個事能夠作到,徹底靠本身的手藝、不依賴任何人或公司去生活的。但道理我都懂,怎麼作纔是關鍵。本文摘自陳皓(左耳朵耗子)在極客時間 App 開設的付費專欄「左耳聽風」。程序員
程序員用本身的技術變現,實際上是一件天經地義的事兒。寫程序是一門「手藝活兒」,那麼做爲手藝人,程序員固然能夠作到靠本身的手藝和技能養活本身。shell
然而,如今不少手藝人程序員卻說本身是「碼農」,編碼的農民工,在工做上被各類使喚,各類加班,累得像個牲口。在職業發展上各類迷茫和彷徨,徹底看不到將來的但願,更別說能夠成爲一個手藝人用本身的技能變現了。編程
從大學時代幫人打字掙點零花錢,到逐漸經過本身的技能幫助別人,由此得到相對豐厚的收入,我在很早就意識到,從事編程這個事能夠作到,徹底靠本身的手藝、不依賴任何人或公司去生活的。後端
這對於程序員來講,本就應該是件天經地義的事,只是好像並非全部的程序員都能意識到本身的價值。這裏,我想結合個人一些經從來跟你聊聊。固然,個人經歷有限,也不必定全對,只但願能給你一個參考。網絡
我是 1994 年上的大學,計算機科學軟件專業。在 1996 年上大二的時候,由於五筆學得好打字很快,我應徵到教務處幫忙,把一些文檔錄入到電腦裏。打了三個月的字,學校按照每千字 10 元,給了我 1000 元錢。架構
因爲個人五筆越打越快,還會用 CCED 和 WPS 排版,因而引發了別人的注意,叫我幫忙去他的打字工做室,一個月收入 400 元錢。個人大學在昆明,這至關於當地收入的中上水平了。併發
後來,1997 年的時候,我幫一個開公司的老師寫一些 MIS 軟件,用 Delphi 和 PowerBuilder 寫一些辦公自動化和酒店管理的軟件。一年後,老師給了我 2000 元錢。app
由於動手能力比較強,當時繫上的老師要幹個什麼事都讓我幫忙。並且,由於當時的計算機人才太少太少了,因此一些社會上的人須要開發軟件或是解決技術問題也都會到大學來。基本上老師們也都推薦給我。高併發
還記得 1997 年老師推薦一我的來找我,問會不會作網頁?5 個靜態頁,10000 元錢。當時學校沒教怎樣作網頁,我去書店找書看,結果發現書店裏一本講 HTML 的書都沒有,只好回絕說「不會作」。一年後,我才發現原來這事簡單得要命。性能
到了 1998 年,我畢業參加工做,在工商銀行網絡科。因爲能夠撥號上網,因而我作了一個我的主頁,那時超級流行我的主頁或我的網站。我一邊收集網上的一些知識,一邊學着作些花哨的東西,好比網頁上的菜單什麼的。
在 2000 年時,被《電腦報》的編輯看上了,寫來郵件約我投稿。我就寫了一些如何在網頁上作菜單之類的小技術文章,每月寫個兩三篇,每月有個 300 元左右的稿費,當時個人月工資 600 元。
如今經過文章標題還能找到一兩篇,好比《抽屜式菜單的設計》,已是亂碼一堆了。大學時代被人請去作事的經歷對我影響很大,甚至在潛意識裏徹底影響了我如何規劃本身的人生。雖然當時我還說不清楚,只是一種強烈的感受——我徹底能夠靠本身的手藝、不依賴任何人或公司去生活。
我想這種感受,我如今能夠說清楚了,這種潛意識就是——我徹底沒有必要經過打工聽人安排而活着,而是反過來經過在公司工做提升本身的技能,讓本身能夠更爲獨立和自由地生活。
於是,在工做當中,對於那些沒什麼技術含量的工做,我基本上就像是在學生時代那樣交做業就行了。我想盡一切方法提升交做業的效率,好比,提升代碼的重用度,能自動化的就自動化,和需求人員談需求,簡化掉需求,這樣我就能夠少幹一些活了……
這樣一來,我就能夠有更多的時間,去研究公司裏外那些更爲核心更爲有技術含量的技術。
在工做中,我老是能被別人和領導注意到,老是有比別人更多的時間去讀書,去玩一些高技術含量的技術。固然,這種被「注意」,也不全然是一種好事。
2002 年,我被外包到銀行裏作業務開發時,由於我完成項目的速度太快,因此,沒事幹,成天在用戶那邊看書,寫別的代碼練手,而被用戶投訴「遊手好閒」。我固然對這樣的投訴置之不理,仍是我行我素,由於個人做業已交了,用戶也就是說說罷了。
同年,我到了一家新的頗有技術含量的公司,他們在用 C 語言寫一個能夠把一堆 PC 機組成一個超級計算機,進行並行計算的公司項目。
當我作完第一個項目時,有個公司裏的牛人和我說,你用 Purify 測試一下你的代碼有沒有內存問題。Purify 是之前一個叫 Rational 的公司(後來被 IBM 收購)作的一個神器,有點像 Linux 開源的 Valgrind。
用完之後,我以爲 Purify 太厲害了,因而把它的英文技術文檔通讀了一遍。經理看我很喜歡這個東西,就讓我給公司裏的人作個分享。我認真地準備了個 PPT,結果只來了一個 QA。我在一個大會議室就對着她一我的講了一個半小時。這個 QA 對我說,「你的分享作得真好,條理性很強,也很很楚,我學到了不少東西」。
有了這個正向反饋,我就把關於 Purify 的文章分享到了個人 CSDN 博客上,標題爲《C/C++ 內存問題檢查利器—Purify》(登陸極客時間 App 看外鏈)。可能由於這個軟件是收費的,用的人很少,這篇文章的讀者反響不大。
可是,2003 年的一天我很意外地接到了一個電話,是一個公司請我幫忙去給客戶培訓 Purify 這個軟件。IBM 的培訓太貴了,因此代理這個軟件的公司爲了成本問題,想找一個便宜的講師。
他們搜遍完整個中國的互聯網,只看到個人這篇文章,便經過 CSDN 找到個人聯繫方式,給我打了電話。最終,兩天的培訓價格稅後一共 10000 元錢,而我當時的月薪只有 6000 元錢,仍是稅前。這件事兒讓我在入行的時候就明白了一些道理。
如今回想一下,技術和知識變現這件事兒,在 15 年前我就明白了,哈哈!隨後,我在 CSDN 博客上發表了不少文章,有談 C 語言編程修養的文章,也有一些 makefile/gdb 手冊性的文章,還有在工做中遇到的各類坑。
由於我分享的東西比較系統,也是獨一份,因此,搜索引擎天然是最優化的(最好的 SEO 就是獨一份)。個人文章常常由於訪問量大被推到 CSDN 首頁。所以,引來了各類培訓公司和出版社,還有一些別的公司主動發來的招聘,以及其餘一些程序員想夥同創業的各類信息。瞭解到,出書做者收入過低(做者的收入有兩種:一種是稿費,一頁 30 元;一種是版稅,也就 5% 左右),而培訓公司的投入產出比明顯高不少後,我開始接一些培訓的事(頻率不高),一年有個七八次。當時需求比較強的培訓主要是在這幾個技術方面,C/C++/Java、Unix 系統編程、多層軟件架構、軟件測試、軟件工程等。
我喜歡作企業內訓,還有一個主要緣由是,能夠走到內部去了解各個企業在作的事和他們遇到的技術痛點,以及身在其中的工程師的想法。這極大地增長了我對社會的瞭解和認識,這對我來講是很是重要的。而同時,讓我這個本來不善表達的技術人員,在語言組織和表達方面有了極大的提高。
其間也有一些軟件開發的私活兒,但我基本所有拒絕了。最主要的緣由是,這些軟件開發基本上都是功能性的開發,我從中沒法獲得成長。並且後期會有不少維護工做,雖然一個小項目能夠掙十幾萬,但爲此花費的時間都是我人生中最寶貴的時光,得不償失。
25~35 歲是每一個人最寶貴的時光,應該用在刀刃上。
由於有了這些經歷,我感覺到了一我的知識和技能的價值。我開始把個人時間投在一些主流、高級和比較有挑戰性的技術上,這可讓我保持兩件事兒:一個是技術和技能的領先,二是對技術本質和趨勢的敏感度。
所以,我有強烈的意願去前沿的公司經歷和學習這些東西。好比,我在湯森路透學到了人員團隊管理上的各類知識和技巧,而亞馬遜是讓我提高最快的公司。雖然說,亞馬遜也有不少很差的東西,可是它的一些理念,的確讓個人思惟方式和思考問題的角度有了質的飛躍。
我開始對外輸出的不只僅是技術了,還有一些技術價值觀上的東西。而從亞馬遜到阿里巴巴是我在互聯網行業的工做經歷,這兩段經歷讓我對這兩家看似相似但內部徹底不一樣的成功大公司,有了更爲全面的瞭解和見解。
這兩種徹底不同甚至有些矛盾的玩法讓我時常在思考着,大腦裏就像兩個小人在扳手腕同樣,這多是我從小被灌輸的「標準答案」的思惟方式所致。其實,這個世界原本就沒什麼標準答案,或是說,一個題目原本就能夠有若干個正確答案,並且這些「正確答案」還很矛盾。
因而,在我把一些價值觀和思考記錄下來的同時,我天然又被不少人關注到了,還吸引不少不一樣的思路在其中交織討論。而從另一方面來講,這對我來講是一個很好的補充,不管別人罵我也好,仍是教育我,都對我有幫助,大大地豐富了我思考問題的角度。
這些經歷從質上改善了個人思考方式,讓我思考技術問題的角度都隨之有了一個比較大的轉變。而這個轉變讓我有了更高的思惟高度和更爲開闊的視野。
多是由於我有一些「獨特」的想法,並且經歷比較豐富,基礎也比較紮實,使得我對技術人的認識和理解會更爲透徹和深刻。因此,也有了一些小名氣。來找我作諮詢和幫助解決問題的人愈來愈多,而我也開始收費收得愈來愈貴了。這裏須要注意的是,我徹底是被動收費高的。
由於父親的身體緣由,我沒有辦法全職,因此成了一個自由人。而也正因如此,我才得以有機會能夠爲好多公司解決技術問題。2015 年,有家公司的後端系統一推廣就掛,性能不足,請我去看。
我花了兩天時間跟他們的工程師一塊兒簡單處理了一下,直接在生產線上重構,性能翻了 10 倍。雖然這麼作有點 low,但當時徹底是爲了救急。公司老闆很高興,以爲他投的幾百萬推廣費用有救了,一下給了我 10 萬元。我說不用這麼多的,1 萬元就行了,結果他說就是這麼多。我欣然接受了,當時內心有一種技術被尊重的感動。
2016 年,某個公司須要作一個高併發方案,大概須要 2000 萬 TPS,我給他們作了一個。可是他們只能實現到 1200 萬 TPS 左右,又把我請去了。
我花了兩天時間作調研,分析性能緣由,而後一天寫了 700 多行代碼。由於不想進入業務,因此我主要是優化了網絡數據傳輸,讓數據包儘可能小,確保一個請求的響應在一個 MTU 內就傳完。
測試的時候,達到了 2500 萬 TPS。因而老闆給了我 20 萬。
這樣的例子還有不少。上面的例子,我連錢都沒談就去作了,原本想着,也就最多 1 萬元左右,沒想到給個人酬勞大大超出了個人指望。
這裏,我想說的是,並非社會不尊重程序員,只要你能幫上大忙,就必定會贏得別人的尊重。
因此,我和一些人開玩笑說,咱們可能都是在寫同樣的for(int i=0; i<n; i++)
語句,可是,你寫在那個地方一文不值,而我寫在這個地方,這行代碼就值 2000 元。 不要誤會,我只是想用這種「鮮明的方式」來增強個人觀點。
我不算是聰明的人,經歷也不算特別成功,但一步一步走來,我認爲,我能作到的,你必定也能作到,並且應該還能作得比我更好。
仍是那句話,本質上來講,程序員是手藝人,有手藝的人就能作出別人作不出來的東西,而付費也是一件很天然的事了。那麼,這個問題就成了,如何讓本身的「手藝」更爲值錢的問題了。
第一,千里之行,積於跬步。任何一件成功的大事,都是經過一個一個的小成功達到的。因此,你得確保你有一個一個的小成功。
具體說來,首先,你得讓本身身邊的人有求於你,或是向別人推薦你。這就須要你可以掌握大多數人不能掌握的技能或技術,須要你更多地學習,並要有更多的別人沒有的經驗和經歷。
一旦你身邊的人開始有求於你,或是向別人推薦你,你就會被外部的人注意到,因而其餘人就會付費來獲取你的幫助。而一旦你的幫忙有效果的話,就會產生效益,不管是經濟效益仍是社會效益,都會爲你開拓更大的空間。
你也會由於這樣的正向反饋而鼓勵本身去學習和鑽研更多的東西,從而獲得一個正向的循環。並且這個正向循環,一旦開始就停不下來了。
第二,關注有價值的東西。什麼是有價值的東西?價值實際上是受供需關係影響的,供大於求,就沒什麼價值,供不該求,就有價值。這意味着你不只要看到市場,還要看到技術的趨勢,可以分辨出什麼是主流技術,什麼是過渡式的技術。當你比別人有更好的嗅覺時,你就能起動得更快,也就比別人有先發優點。
關於市場需求。要看清市場,就須要看看各個公司在作什麼,他們的難題是什麼。簡單來講,如今的每家公司不管大小都缺人。是真的缺人嗎?中國是人口大國,不缺寫代碼搬磚的,真正缺的是有能力可以解決技術難題的人,可以提升團隊人效的人。因此,從這些方面思考,你會知道哪些技能纔是真正的「供不該求」,這樣可讓你更有價值。
關於技術趨勢。要看清技術趨勢,你須要瞭解歷史,就像一個球運動同樣,你要知道這個球將來運動的地方,是須要觀察球的已經完成運動的軌跡才知道的。所以,瞭解技術發展軌跡是一件很重要的事。要看一個新的技術是否順應技術發展趨勢,你須要將一些老技術的本質吃得很透。
所以,在學習技術的過程必定要多問本身兩個問題:「1. 這個技術解決什麼問題?爲何別的同類技術作不到?2. 爲何是這樣解決的?有沒有更好的方式?」另外,還有一個簡單的判斷方法,若是一個新的技術順應技術發展趨勢,那麼在這個新的技術出現時,後面必定會有大型的商業公司支持,這類公司支持得越多,就說明你越須要關注。
第三,找到能體現價值的地方。在一家高速發展的公司中,技術人員的價值能夠達到最大化。
試想,在一家大公司中,技術架構和業務已經定型,基本上沒有什麼太多的事能夠作的。並且對於已經發展起來的大公司來講,每每穩定的重要性超過了創新。此外,大公司的高級技術人員不少,多你一個很少,少你一個很多,因此你的價值很難被體現出來。
而剛起步的公司,業務尚未跑順,公司的主要精力會放在業務拓展上,這個時候也不太須要高精尖的技術,因此,技術人員的價值也體現不出來。
只有那些在高速發展的公司,技術人員的價值才能被最大化地體現出來。比較好的成長路徑是,先進入大公司學習大公司的技術和成功的經驗方法,而後找到高速成長的公司,能夠實現本身更多的價值。固然,這裏並不排除在大公司中找到高速發展的地方。
第四,動手能力很重要。成爲一個手藝人,動手能力是很重要的,由於在解決任何一個具體問題的時候,有沒有動手能力就成爲了關鍵。這也是我一直在寫代碼的緣由,代碼裏全是細節,細節是魔鬼,只有瞭解了細節,你才能提出更好或是更靠譜的並能夠落地的解決方案。而不是一些籠統和模糊的東西。這過重要了。
第五,關注技術付費點。技術付費點基本體如今兩個地方,一個是,能幫別人「掙錢」的地方;另外一個是,能幫別人「省錢」的地方。也就是說,可以幫助別人更流暢地掙錢,或是可以幫助別人提升效率,能節省更多的成本,越直接越好。並且這個技術或解決方案最好仍是大多數人作不到的。
第六,提高本身的能力和經歷。付費的前提是信任,只有你提高本身的能力和經歷後,別人纔會對你有必定的信任,纔會以爲你靠譜,纔會給你機會。而這個信任須要用你的能力和經從來填補。好比,你是一個很知名的開源軟件的核心開發人員,或是你是某知名公司核心項目的核心開發人員,等等。
第七,找到有價值的信息源。信息社會,若是你比別人有更好的信息源,那麼你就能夠比別人成長得更快。對於技術人員來講,咱們知道,幾乎全部的技術都源自西方世界,因此,你應該走到信息的源頭去。
若是你的信息來自朋友圈、微博、知乎、百度或是今日頭條,那麼你完蛋了。由於這些渠道有價值的信息很少,有養分的可能只有 1%,而爲了這 1%,你須要讀完 99% 的信息,太不划算了。
那麼如何找到這些信息源呢?用好 Google 就是一個關鍵,好比你在 Google 搜索引擎裏輸入「XXX Best Practice」,或是「Best programming resource」……你就會找到不少。而用好這個更好的信息源須要你的英文能力,所以不斷提高英文能力很關鍵。
第八,輸出觀點和價值觀。真正偉大的公司或是產品都是要輸出價值觀的。只有輸出了更先進的價值觀,纔會得到真正的影響力。可是,你要能輸出觀點和價值觀,並非一件容易的事,這須要你的積累和經歷,而不是一朝之功,須要長期積累。所以,若是想要讓你的技能變現,這本質上是一個厚積薄發的過程。
第九,朋友圈很重要。一我的的朋友圈很重要,你在什麼樣的朋友圈,就會被什麼樣的朋友圈所影響。若是你的朋友圈比較優質,那麼給你介紹過來的事兒和活兒也會好一些。優質的朋友圈基本上都有這樣的特性。
這些人都比較有想法、有觀點,經驗也比較豐富;
這些人涉獵的面比較廣;
這些人都有或多或少的成功;
這些人都是喜歡折騰喜歡搞事的人;
這些人都對現狀有些不滿,並想作一些改變;
這些人都有必定的影響力。
最後有個關鍵的問題是,物以類聚,人以羣分。若是你不作到這些,你怎麼進入到這樣的朋友圈?
總之,就一句話,會掙錢的人必定是會投資的人。我一直認爲,最寶貴的財富並非錢,而是你的時間,時間比錢更寶貴,由於錢你不用還在那裏,而時間你不用就浪費掉了。你把你的時間投資在哪些地方,就意味着你將來會走什麼樣的路。因此,利用好你的時間,投到一些有意義的地方吧!
個人經歷有限,只能看到這些,還但願你們一塊兒來討論,分享你的經驗和心得,也讓我能夠學習和提升。