廣州.NET微軟技術俱樂部,各路大神的彙集地;日前,引起了一場小小的討論,一位新人(新入羣的朋友)在羣裏提出了本身的疑問,但願能夠獲得你們都幫助答疑。程序員
*(本圖已得到發言者本人受權發佈)面試
整理了一下他的發言,他本人思路比較清晰,也明確知道本身的想要的東西和遇到的問題,描述仍是很是細緻的,這裏給他點贊!不少人都會在提問題的時候因爲描述不夠詳細而沒法獲得有效的幫助,他在這一點上作得很是好。針對他提出的問題,羣裏馬上就熱鬧起來,俱樂部葉主席提出了很是有意義的參考,羣裏的朋友大神紛紛表示,和本身的經歷很是的類似,好比下面這位朋友數據庫
*(本圖已得到發言者本人受權發佈)編程
氣氛空前的活躍,也勾起了個人回憶。下面結合本身的經歷,嘗試給這位朋友一些解答。設計模式
在多平臺的大環境下,語言選擇意味着生態的選擇,進而影響到你的朋友圈,最終,影響到的,是你的收入和發展。我從06年開始接觸編程,以前真的是隻會玩遊戲,當我真正進入編程的世界後,我也沒有時間去思考我到底要學習什麼語言,在那個時代,Java 和 .Net 勢均力敵,開發一個 Web 應用,基本要求是全棧,.Net 使用 Asp.Net,Java 使用 Jsp+Javabean+Servlet,這是最基礎的, Asp時代不表。桌面應用程序基本就是 Winform 的天下,Java 雖然也有 Swing,可是在 Windows 橫行的中國,Swing 猶如滄海一粟。緩存
可是,彼時 Java 已在移動開發領域嶄露頭角,相信30+的朋友對手機遊戲在啓動畫面的時候,都會出現 Java Logo 的事情記憶猶新,企業級應用 Java 也已經佔領了大部分市場份額,從政府到企事業單位,PHP+Java+Oracle 是標配;即便在服務器以及數據庫市場上,Windows Server 和 MSSQL 的價格也無形中增長了企業的成本;社區的生態也在快速的拉開了差距,各類開源的論壇和企業網站幾乎都是PHP爲主流。安全
可是從 .Net 1.0 開始,微軟憑藉其快速開發的優點和強大的IDE工具征服了一大批粉絲,桌面應用也一直佔據着統治地位,從2008 年開始,我開始看到一絲曙光,這一年,微軟發佈重磅發佈了 WWF+WCF+WPF 三大重要功能,做爲微軟的忠實粉絲,我義無反顧的投入了進去,在博客園建立了 WF小組,目前 WF 小組已經好幾年沒有人發言了,在項目中應用了 WCF 進行通信,桌面應用使用了 WPF,彷彿一切看起來都很是美好,可是我內心清楚,這三個組件都有一個共同的問題:過重了,最重要的是沒法跨平臺,在企業內部,自我感受一直處於二等公民的狀態,使用 Windows 給公司帶來了太多成本上的開銷,包括硬件和軟件的開銷。服務器
這一晃,10年過去了,我我的認爲,這是微軟失去的 10 年。網絡
在這 10 年間,我也未放棄過對其餘語言的探索,PHP,Python,Java,NodeJs,等等,看到了這些語言的發展,也看到了許多的不足,總體來講,語言使用沒有侷限性,若是有,那就是語言限制了本身的想象力。在許多年之前,你沒法想象 Javascript 也能夠用來編寫高性能的服務器程序,可是今天,各類應用比比皆是。架構
在今天,微軟推出了 .NetCore ,我仍是會義無反顧的投入了進去,從個人博客就能夠看出來,我寫了 Asp.Net Core 輕鬆學系列,從內心,我但願這個產品愈來愈好,也堅信個人選擇。
對於語言的選擇,個人建議是,當你須要時,就去學習!
對於選擇公司,是不少人都會遇到的難題,這就是一道單選題,並且你還不能選錯,對於新人,能進大公司,不進小公司,爲何呢,從容錯率上面來講,大公司的容錯率會高不少,在大型的互聯網公司裏面,你更容易遇到大神,事實也是如此,大神一般都被大公司收編了;大公司有整套的規範化的流程,在這裏,你能夠學習到更多。
從大公司出來的人,和一直在小公司作全棧工程師不一樣,大公司給你的鍛鍊是小公司所不具有的能力,流程管理、團隊協做、代碼規範,由於這都是一羣站在食物鏈頂端的人,技術趨勢也幾乎都由他們帶領,不是說小公司就能學習到這些東西,只是會比較困難和緩慢,固然,像上面這位兄弟後來遇到了貴人,那是要另外說法的,畢竟千里馬常有而伯樂不常在。而另外一個收益是,你的工資水平在大公司裏必將處於行業中上水平。
橫向比較的話,好比之前個人老東家多益網絡(此處應該給我廣告費),其招聘應屆畢業生的程序員入門薪資標準是15k/月,大公司裏面還有各類福利待遇,好比旅遊、包餐、接送、員工宿舍、各類團建活動、圖書館、健身房、每一年免費體檢、有的甚至父母小孩都免費,圖書館就是你加班時間提高的好機會,若是你有幸進入比較知名的公司,說不定你還能夠直接向開源框架的做者發IM消息進行請教,無論怎麼樣,全部人都應該到大公司走一趟,而後再作打算,由大公司帶出來的技術和流程,在小公司中應用起來,也帶來更規範和高效的收益,這是一個正向的過程。
輪子哥前幾天在羣裏面說:在美國,若是你有幸取了一個作技術的老婆,那你幾乎就是全國收入 10%。固然,輪子哥確實作到了。在大公司裏面,意味着更多的人力和資源,不誇張的說,大公司的前臺妹子質量是很是高的,固然,作技術的妹子也不知少數了,這些都看我的際遇,我一個朋友的老婆也是作技術的,Java工程師。
相對上面說的這幾點,這裏說的技術積累尤爲重要;在你我的的技術生涯中,必定要不停的學習,特別是要注意專項的提高本身的基礎水平和思惟能力,若是基礎較差或者半路出家,必定要學習計算機原理,瞭解內存、CPU、高速緩存、字節佔位、IO讀寫、網絡傳輸、安全認證等等,像我就是半路出家,從一個對計算機徹底不懂的人變成一個標準的程序員,付出了常人於幾倍的努力,別人在玩遊戲逛街的時候,我在背單詞(開發語言關鍵字),對着一個示例一遍又一遍的模擬,直到本身無需看 Demo 也能寫出來這個程序,纔算結束,對於設計模式,須要真實的去思考和使用,設計模式是很是抽象的東西,若是你不去使用,你就不能徹底掌握它;程序員這個行業,是很是講究動手能力的;說白了,咱們是靠技術吃飯的。
市場上的開發語言,都很是具備互通性質,因此,你會發現,大牛學什麼都快,這是思惟模式決定的,真正頂端的人,是創造技術,而咱們普通程序員,致力學習好技術,而後天然的去應用到業務中,這就是自個人成功。關於架構,始終相信,好的架構都不是一蹴而就,歷來都是隨着業務的發展慢慢進行演進,沒有銀彈,只有適用!對於咱們我的也是同樣,一步一個腳印,堅持學習2年,後面幾乎就是適應,把難掌握的內容進行一遍又一遍地模擬,直到掌握,而後這些經驗和教訓就像鞭痕同樣印在你的腦子裏,當須要使用的時候,很天然的,他們就出現了,好的架構師,老是有解決方案就是這個道理。
多參與開源項目,多看優秀開源項目的源代碼,學習他們的架構,學習他們的代碼書寫風格,學習他們高效和精煉的設計,經過閱讀源碼,提高本身,若是可能,參與維護社區開源項目,既貢獻了代碼幫助別人,又經過開源項目提高了本身的技術水平,還爲社區生態的進一步擴大作出了本身應有的貢獻,這是咱們的義務,也是一個程序員的應有的擔當;經過參與開源社區互動,結交到更多良師益友。像廣州.NET微軟技術俱樂部裏面大神雲集,輪子哥、張隊、葉主席、還有不少MVP,還有不少開源框架的做者,咱們甚至直接向做者諮詢問題,這些體檢和機會,大概在一我的的世界中很難遇到。
對於我的成長,這裏多說兩句,若是工做中遇到了問題,要學會適當的提出問題,而後再向別人提出問題以前,先想好解決方案,這樣,在你提問的時候,別人會比較重視,以爲你也是通過了思考的,切忌提問的時候上來就噴,無助於問題的解決,還有的人開局一張圖,描述全靠猜,這類人,歷史終將把他們淘汰在長河裏。要善於總結經驗教訓,不管是技術仍是人際關係上的,實際上就是要多思考,這也是預防阿爾茨海默症的好辦法。
我我的參加過大大小小應該有不下100場招聘,包括校園招聘和社會招聘,總的來講,對於3年內跳槽超過超過2次的人來講,我是會特別留意爲何會如此頻繁的跳槽,根據勞動法規定,合同3年試用期爲3-6個月,合同1年的試用期不得超過1個月,因此,從合規性上面來講,頻繁的跳槽意味着可能在團隊協做方面會有一些問題,或者其它方面的緣由,可是除非碰到特別出色的、聊得來、技術不錯,我會下降要求,團隊協做我始終擺在第一位,因此,建議不要頻繁的跳槽,特別是不要進行大跨度的跳槽,好比一個程序員今年在幹開發,明年跳槽作項目管理,後年作售前支持,而後面試崗位爲:架構師,這就讓人比較懷疑其崗位適配性。固然了,跳槽是走向高薪的很是好的手段,但願你們都被獵人盯上,哈哈。