SegmentFault 技術週刊 Vol.26 - 年中覆盤 --- 程式設計師的自我修養
優質閱讀感受及更多討論,請檢視原文:
https://segmentfault.com/a/1190000009781697
不知不覺已是 6 月中旬了,掐指一算 2017 年已經過去了一半。過去的半年,也許你剛跳槽進入一家新公司,在一個全新的環境裡學習和成長;也許你還是和去年一樣,仍然奮鬥在各種各樣的專案和需求裡,每天和產品、設計、運營打交道;也許你還在無休止的加班,每天忙忙碌碌卻沒有方向;也許你正在猶豫是否辭職,彷徨著不知道下一步要怎麼走。
不管怎樣,現在就可以讓自己停下來,找一個清新的早餐,或者在某個安靜的夜晚,重新審視自己,對工作、對生活做一個全面的覆盤,重新規劃,適時調整,更好的前行。
生於憂患
相信小夥伴們都還記得前不久網傳華為辭退部分 34 歲以上員工的事。很多人不由感慨程式設計師也是青春飯,並開始思慮自己的未來,猶豫是不是要轉行,擔心自己 34 歲以後無處可去。
網際網路行業工作強度很大,而中國的網際網路從業者更忙。程式設計師更是戰場中的排頭兵,身體健康的透支導致很難長期抗戰。當你意識到自己跟不上節奏的時候,不管是出於對身體狀況的擔憂,還是對未來潛在威脅的恐懼,又怎會不感到焦慮呢?
“誰的青春不迷茫”,但其實迷茫不僅限於青春期,人生的每一個階段都可能迷茫。
回想自己這幾年的迷茫,剛畢業那會迷茫要不要進入IT行業,要。工作兩三年迷茫要不要離開家鄉去網際網路公司?去。來北京後,要不要跟著公司搞網際網路金融,搞了。去年朋友說創業去不去,思索良久,麼去;那麼現在呢,要不要繼續在北京吸霾,還是沒有想好,要不要進入一個新的領域去拼搏,也是沒想好?
如果有一天,我們終將離開現在拼搏的城市,那我們將何去何從?
我認為如果讓我說出我心中中國網際網路乃至移動網際網路發展最好的十個城市排名,我會這麼排:北京,深圳,上海,杭州,廣州,成都,武漢,南京,西安,廈門。
如果除了北上廣深,這四個一線城市外,讓我推薦程式設計師最好的歸宿和去的地方,首選應該是杭州,其次是成都,再次是武漢,然後是廈門。
PS:從關注 SF 微信公眾號的小夥伴們所在城市的分佈來看,排名前十的分別是:北京、上海、杭州、武漢、深圳、廣州、南京、成都、西安、廈門。
所謂程式設計師
要想不被淘汰,每個人都需要有自己的核心競爭力,有自己的存在的價值。而在發展變化如此之快的網際網路行業,風口浪尖上的程式設計師們尤甚。
我觀察圈子裡很多成功和不成功的技術人,提出一個觀點,那就是個人的核心競爭力是他獨特的個性知識經驗組合。這個行業裡擁擠著上百萬聰明人,彼此之間真正的不同在哪裡?不在於你學的是什麼技術,學得多深,IQ多少,而在於你身上有別人沒有的獨特的個性、背景、知識和經驗的組合。如果這種組合,1,絕無僅有;2,在實踐中有價值,3,具有可持續發展性,那你就具備核心競爭力。
定位能夠產生目標,目標會讓你聚焦在一個方向上,遠離迷茫。所以,只要你根據自身的實際情況,找好定位,就擁有了擺脫迷茫的銀彈。
部落格
和書籍一樣,部落格是知識最好的沉澱。
最後奉勸大家,如果你還沒有寫部落格,那從現在開始開通個部落格,走出第一步,如果你已經開始寫部落格了,不要去奢望靠寫部落格去賺錢,安心的寫部落格提升自己能力,總結經驗,把它看成一種投資自己的手段,別把目標搞錯了,也許有一天你會突然發現,原來你已經走了這麼遠,而且還有意外收穫!
勿忘初心,才能方得始終!
我的每一篇文章,通常需要2小時~6小時的寫作時間。有時候寫完以後,覺得特別累,都不想幹別的事情了。不過,我還是覺得這是值得的。回過頭看,我幸虧把時間花在寫作部落格上面,否則那些時間就白白過去了,沒有留下任何印記。
在2016年我主要做了兩件事情,即程式設計與寫作。在程式設計方面我主要把重點放在了JavaScript、Vue、React的學習與探究上,而在寫作方面我主要發表了20餘篇關於前端的原創技術文章。
古人云:學而不思則罔,思而不學則殆。在我看來程式設計與寫作其實並不衝突,程式設計是一個學習與探究的過程,而寫作則是一個分享與記錄的過程,只有舉一反三,方能為師矣。
書山有路
網際網路的發達幾乎可以讓我們在網上找到任何我們想要的資訊,我們也越來越習慣碎片化的閱讀和學習。但當我們想要全面、深入地去了解某一樣技術、某一門語言的時候,僅有網上的碎片化資訊是遠遠不夠的。
“優秀的程式設計書是沒有時間限制的。它們會超越語言的限制,IDE 的限制和平臺的限制。它們不是解釋 how,而是 why。”
為什麼中國的程式設計師總是在不斷學習新的開發工具、鑽研程式程式碼,而不逐步提升自己的視野、思維和經驗?
本文把程式設計師所需掌握的關鍵知識總結為三大類19個關鍵概念,然後給出了掌握每個關鍵概念所需的入門書籍,必讀書籍,以及延伸閱讀。旨在成為最好最全面的程式設計師必讀書單。
良好的程式設計能力:
- 掌握常用的資料結構和演算法(例如連結串列,棧,堆,佇列,排序和雜湊);
- 理解電腦科學的核心概念(例如計算機系統結構、作業系統、編譯原理和計算機網路);
- 熟悉至少兩門以上程式語言(例如C++,Java,C#,和Python);
專業的軟體開發素養:
- 具備良好的程式設計實踐,能夠編寫可測試(Testable),可擴充套件(Extensible),可維護(Maintainable)的程式碼;
- 把握客戶需求,按時交付客戶所需要的軟體產品;
- 理解現代軟體開發過程中的核心概念(例如物件導向程式設計,測試驅動開發,持續整合,和持續交付等等)。
整理分為四大塊:程式語言(能寫程式碼)->程式設計(能寫好程式碼)->計算機底層(能做別人做不到)->計算機理論(能做別人想不到)
不過以我的經歷,實際過程中會螺旋上升,程式語言->程式設計->計算機底層->計算機理論->程式語言->…,因為一下啃完一整塊是不現實的。
簡歷
其實很多技術人員有很強的工程能力,但是不屑於上述的一些活動,個人覺得這是一個誤區,只有有效和這個社會融合,才能獲取更多有用的知識和體驗,而具備這些能力,才能更好的為公司服務。
最後,如同寫部落格一樣,將你寫好的簡歷不斷的修改和完善,直到自己滿意,然後將簡歷投遞給心儀的公司吧。
程式設計師如何寫好簡歷 && 一份優秀的程式設計師簡歷是什麼樣的?
簡歷就是簡單的介紹一下你自己有多 NB。所以,你需要介紹以下的內容:
- 我是誰。
- 我會什麼。
- 做過什麼。
- 結果如何。
然後把這些內容放到一個模子裡,就可以了。
作為一個潛入 IT 圈五年之久、看過數萬份簡歷的 HR,在這個問題上還是有點發言權的。HR 在篩選簡歷時主要從公司需求出發,重點不一,不過還是有很多“通用”的套路,為了在 30 秒內判斷出這份簡歷是否值得跟進,我認為程式設計師寫簡歷的正確姿勢是這樣的:
相信程式設計師對 Github 都不會陌生,你的 Github 也是自己的簡歷,在 Github 的貢獻越大,對求職的幫助就越大,也能夠慢慢增加自己的影響力。
面試
- 面試過程中,應該注意哪些問題?
- 面試中遇到冷場怎麼化解?
- 如何給面試官留下好印象?
對於許多年輕的計算機或 IT 相關專業畢業生,在沒有實際專案開發經驗的情況下找到第一份全職工作可能是你在職業生涯中遇到的最大的挑戰。
我整理這篇文章的重點不在於資源的整理,上面 4 點:面試前的準備——面試題庫——大公司面試總結——面試相關的網站和書籍,我是按照先後順序整理的。
- 想要去應聘參加面試,首先當然得準備好簡歷以及自檢技能咯;
- 然後再看看你所面試領域的一些題庫,看看自己是否能夠回答上來;
- 再者去針對性看看你要應聘的公司,看看以往面試者是怎樣的一個流程以及問了一些什麼問題之類的;
- 最後,如果以上幾點都做了之後還覺得美準備好,那麼可以找一些網站和書籍看看;
英語這個硬傷
如今英語對程式設計師而言,已經不僅僅是看懂國外的開發文件和技術部落格這麼簡單了。無數的中國開發者走出國門,進入到各大世界頂級公司從事 IT 開發工作,參加各大開發者會議,和無數國外程式設計師交流合作。英語對於程式設計師來說,毫無疑問已經越來越重要了。
別讓英語成為自己進步的硬傷。
在此之前,我不併不知道原來有那麼多的同學在學習英語的道路上是一路走到黑的。 他們甚至從未想過:英語作為一門語言,學習起來應該是一件比較自然而然的事情,就像我們自然而然地學會漢語那樣。
在這份指南里,我會盡可能地綜合我主觀的看法與一定的科學依據,為大家提供一份詳盡的英語進階指南,真心希望本指南能給你帶來一點小小的幫助。
作為程式設計師,工作中不得不接觸英語。如果你對一些新的技術或開源專案感興趣,英語更是必不可少的。如果你不想花太多時間、精力和金錢去上學習班,又希望可以在日常生活和工作中去提高英語,那麼希望這篇文章可以給你帶來些幫助。
對於我們們這些高階大氣、時刻需要和國際接軌的碼農,英語的重要性自然是毋庸置疑的。尤其是那些胸懷大志的潛在大牛們,想在碼農行業闖出一片天地,秒殺身邊的小弟們,熟練掌握英語更是實現其目標最關鍵的因素之一。否則,試想在你捧著某出版社剛剛翻譯出來的《JSP 高效程式設計》苦苦學習JSP模板的時候,你旁邊的小弟卻是拿著原版的《AngularJS in Action》學習開發單頁面應用,雖然你們都同樣認真地學習了一個月,可做出來東西的效果能一樣嗎?
軟技能
程式設計師走江湖必備。
這篇文章從以下幾個方面進行了整理和推薦,對新手小白自學找資料很實用:
- 學新技術:想學新技術去哪裡找教程?
- 找專案:想要開發專案,去哪裡找點子?找教程?
- 找書籍:哪裡可以找到免費的書籍?
- 交流探討:遇到問題哪裡可以交流?
- 其他:一些程式設計師相關
GitHub 其中一個最重要的作用就是發現全世界最優秀的開源專案,你沒事的時候刷刷微博、知乎,而人家沒事的時候刷刷 GitHub ,看看最近有哪些流行的專案,久而久之,這差距就越來越大。那麼如何發現優秀的開源專案呢?
通過這些專案你可以大幅度減少不必要的開發而將精力放在更重要的地方。
16個相對來說比較小眾,但是對程式設計師來說卻有趣或者有用的網站
21個國外受歡迎的學習程式設計的網站:總有一個理由會讓你愛上它們
21個與學習程式設計有關的網站。 每個網站,我會作一些簡單的介紹。
中國程式設計師容易發音錯誤的單詞 (以美式發音為準, 非音標為字母發音)
本文定位於為使用GIT標準分支開發流程的開發團隊新人提供一份參考指南,其中的內容都是我們公司在研發團隊初創時所遵循的一些開發流程標準,經過近一年的實踐,雖說還有很多不足,但是隨著團隊經驗的豐富和人員的擴張,我會適時地更新本文,分享我們在使用GIT開發流程中遇到的問題和解決方案。
2015年底,在為華為做諮詢顧問一年多之後,我決定接受新的挑戰,加入華為公司,成為這個擁有著最大的開發者群體的世界級公司的一員。 如何有效地在大公司內進行過知識的傳遞也是一個課題,我決定將這本書的書稿開源,惠及更多的開發者。
基本口訣
- 先靠自己、再靠別人
- 排除原因、禮貌問答
- 善於總結、手留餘香
我實際上是那種總是會問出愚蠢問題或“不好”問題的大信徒。我一直在問人們一些愚蠢並且完全可以通過谷歌搜尋或搜尋程式碼庫解決的問題。大多數時候我都不願意自己去搜尋解決,但有的時候我又會無論如何都自己去搞定,而且也不會認為這如同世界末日一樣可怕。
所以本文中列舉的各個策略不是關於“在提問之前你必須要做的所有事情”,而是“一些可以幫助提出更好的問題並得到我想要的答案的要點!”。
作為一枚程式設計師,我們天生就是來解決問題的。在你不知道你的問題之前,我幫不了你,Google 也不能幫你解決問題。
積跬步,致千里
大神不是一天練成的。
成熟期是整個職業生涯中最關鍵的時期,快的可能一兩年就能走過去;慢的,可能整個職業生涯都定格在成熟期。
從上面分析中可以看到,這些問題最終都和“心”相關。要想高速成長,就得克服掉溫水中的舒適。要想提高自信,還得思考成就感獲取渠道這麼虛頭巴腦的問題。所以要想邁過去這個坎兒,必須有一顆非常強大的內心。
每個程式設計師、或者說每個工作者都應該有自己的職業規劃,如果看到這裡的朋友沒有自己的職業規劃,希望你可以思考一下自己的將來。
成為技術大牛夢想固然很美好,但是要付出很多,不管是Do more還是Do better還是Do exercise,都需要大量花費時間和精力,這個過程中可能很苦逼,也可能很枯燥。
這裡我想特別強調一下:前面所講的都是一些方法論的東西。但真正起決定作用的,其實還是我們對技術的熱情和興趣!
只有保持足夠的興趣才能在技術上走得更遠。如果做技術無法體會快樂,完全是為了養家餬口而被迫走上這條路,相信很難在漫長的職業生涯中有足夠的動力持續成長。世界很精彩,不喜歡做技術的人不一定非要做技術,如果最終一定要轉行,越早就越能在新的行業中掌握主動權。
心經
目前能想到的一些學習的技巧和陷阱,大致都列了出來。都是我個人的一些學習的經驗,如果對你有幫助,想必也是極好的,如果你覺得我寫的有不合理的地方也歡迎指出。堅持著去實施提及的一些方法,一定會對你的生活和職業帶來改變。
有的人想成為大牛,卻不曾為此努力。有的人辛苦耕耘,卻收穫寥寥。很多時候,你跟成功的差距並不是能力,也不是運氣,或許只是正確的方法?這是一篇不雞湯的成功學指南,如果你相信且願意堅持嘗試,未必幫不到你!
關於我的一些詳細資訊:我現年32歲,有10年以上紮實的工作經驗。直到最近幾年我才對自己所做的工作充滿信心。即使是現在,我也在不斷質疑自己。問題在於,這種質疑並不會消失,所以你要做的就是無視它,不斷的解決問題,不斷的積累經驗。
首先我要說明的是以下提到的只是一些幫你提升技能的小貼士。最終你還是需要找到一條最適合你自己的路。這些只是我發現對我有幫助的點。
我想說的是,本篇裡面分享的一些道理和方法,都是通俗易懂的,就和常聽到的例如101%和99%的365次方的故事、1萬小時的道理等等一樣,但真正去認真思考並實踐的屈指可數,也許,堅持才是程式設計師最大的修養,和各位共勉!
出任 CTO
程式設計師的未來在哪裡?當然是“出任CTO,迎娶白富美,走上人生巔峰!”,想想是不是有點小激動?
- 以前的我,只會一味的閱讀技術書籍,沉迷於技術。
- 以前的我,不喜歡和不熟悉的人聊天,甚至有些偏內向。
- 以前的我,只會用最快的速度完成安排下來的任務。
- 以前的我,只關注自我成長。
- 現在的我,閱讀的書籍型別有管理,心理,商業,人文。
- 現在的我,喜歡和人聊天,傾聽,討論,分享自己的想法。
- 現在的我,在接到任務之前更多的是思考是否合理,有沒有更好的解決方案。
- 現在的我,關注團隊每個人的成長。
在工作 2 年左右,我發現自己在技術深度上很難有專業造詣的時候,我開始把眼光放的更長遠,我不再把自己僅僅定位成一個前端工程師,而是會開始關心網際網路的發展趨勢與整體格局,關心產品從 0 到 1 誕生過程中的盈利模式,關心在產品迭代中工程師與運營多方參與的角度和結合的效率,關心工作流程和團隊文化,這一切其實都是我潛意識不自覺的關注,是一種不安分,過後很久才逐漸意識到自己早就在默默鋪路,有時候一個選擇早就做了,只是你還未意識到。
從 Google 回來在 Coding 做 CTO,對我來說也是人生的一個大改變。最近我在知乎看到一個好問題,“從大公司離開到小公司當 CTO 是怎樣的體驗”,我摘抄了一個好答案:“ 頂著 CTO 的名號,招聘,培訓,鼓勵程式猿,拉網線,查機房,裝系統這都是 CTO 要做的事;討論方案,推方案,定方案,確定進度,拖延進度,安撫程式猿,挨老闆罵,安撫老闆,這也是 CTO 的職務。” 不包括 Coding,而我的工作還包括 Coding,很傷心。(笑)
致程式媛
雖然程式媛們沒有程式設計師鼓勵師,但我們自己就是自己的鼓勵師。程式媛們正在創造越來越多的可能。PPS:SF 微信公眾號的關注者中有 20% 是程式媛~加油吧程式媛們,請為自己自豪!
在男性佔據技術行業統治地位的今天,人們恐怕難以想象,歷史上首位電腦程式設計師竟然是一名女性!在1842年,人稱“數字女王”的阿達-奧古斯塔(Ada Lovelace)編寫了歷史上首款電腦程式。
我覺得就是社會上的social stereotype,這種固有偏見會打消一些姑娘想要成為程式設計師的想法。她們會聽到很多聲音:你不適合,或者你做不好,或者說這個很累,堅持不下來,這會導致一件事情在還沒開始的時候,就被否定掉了。
我是那種“反著來”的型別,越是說我不行,我就越要證明自己可以。
最後
小時候,我們以為能夠改變世界的人只有極少數的科學家。然而今天,網際網路正在以幾何級的速度改變著世界,改變著我們的生活。“程式設計師是世界上少有的能改變世界的人”,而每天坐在電腦前敲程式碼的我們就是這其中的一員。
“這是最好的時代,也是最壞的時代”。我們生於這個世界,也終將改變這個世界。
(本期完)
# SegmentFault 技術週刊 #
「技術週刊」是社群特別推出的技術內容系列,一週一主題。週刊篩選的每篇內容,是作者的獨到見解,踩坑總結和經驗分享。
© 本文版權歸作者 SegmentFault 所有,文中提及所有文章版權歸原文作者所有,任何形式轉載請聯絡作者。
相關文章
- 一個野生程式設計師的自我修養程式設計師
- 我的2023年:程式設計師的自我迭代、技術覆盤與生活點滴程式設計師
- 程式設計師的自我修養-編譯連結程式設計師編譯
- 《程式設計師的自我修養》-讀書筆記程式設計師筆記
- 《程式設計師自我修養》讀書筆記程式設計師筆記
- 程式設計師的自我修養筆記之裝載程式設計師筆記
- IT技術人員的自我修養
- 很認真的談一談程式設計師的自我修養程式設計師
- 《程式設計師的自我修養》(三)——庫與執行庫程式設計師
- IT技術管理者的自我修養
- 《程式設計師的自我修養筆記之靜態連結》程式設計師筆記
- 遊戲設計師的自我修養(三):理解玩家遊戲設計師
- SegmentFault 思否技術週刊 -- JavaScript 的那些事JavaScript
- SegmentFault 思否技術週刊 -- 進擊的 ReactReact
- java從零開始系列-一個前端程式設計師的自我修養Java前端程式設計師
- 演員的自我修養:網路電影的顛覆與自我顛覆
- GitHub 熱點速覽 Vol.28:有品位程式設計師的自我修養Github程式設計師
- 《程式設計師的自我修養》筆記(二)——裝載與動態連結程式設計師筆記
- 論遊戲程式設計師的自我修養:專訪魔方工作室群技術總監、專家工程師葉勁峰遊戲程式設計師工程師
- 遊戲設計師的自我修養(一):認識玩家,理解玩家遊戲設計師
- 遊戲設計師的自我修養(一):認識玩家、理解玩家遊戲設計師
- 程式設計師的科技道德修養 - idlewords程式設計師
- 程式設計師週刊(第1期):餓了麼的技術文化是什麼?程式設計師
- 程式設計師週刊(第3期):識別未來新技術的趨勢程式設計師
- 程式設計師週刊(第4期):程式設計師的財富觀程式設計師
- SegmentFault 思否技術週刊 Vol.78 — Git 必看技術補給Git
- 如何當個優秀的文件工程師?從 TC China 看技術文件工程師的自我修養工程師
- 《前端的自我修養》前端
- SegmentFault 思否技術週刊 Vol.76 — 破解 Javascript 玩法JavaScript
- SegmentFault 思否技術週刊 -- Go 語言通關攻略Go
- SegmentFault 思否技術週刊 -- 這份 Webpack 有點料!Web
- SegmentFault 思否技術週刊 -- 掘地三尺搞定 Redis!Redis
- 切圖崽的自我修養-[ES6] 程式設計風格規範程式設計
- SegmentFault 思否技術週刊 Vol.70 — 深入 MySQL 實戰MySql
- SegmentFault 思否技術週刊 — 想玩轉 Python?簡直 So Easy!Python
- SegmentFault 思否技術週刊 -- 這份前端大殺招,接住!前端
- SegmentFault 思否技術週刊 -- 超實用 Vue 合集,請查收Vue
- SegmentFault 思否技術週刊 Vol.79 — 如何優雅的使用 Go?Go
- SegmentFault 思否技術週刊 Vol.77 — 探究關於 iOS 的特性iOS