回覆列表
  • 1 # Geek極客

    一、學習過程

    1、比較仔細的學習了《c++primer》,並對每個習題都自己寫程式碼實現了一遍,包括稍微複雜一點的例子。

    2、認真讀完了《effective c++》,《effective stl》。

    2、比較仔細的學完了《資料結構與演算法分析》,並把其中的每種資料結構和演算法都用c++實現了一遍。包括各種線性表,樹(二叉樹、AVL樹、RB樹的各種操作),圖(BFS、DFS、prim、kruskal、djkstra、floyd、拓撲排序、關鍵路徑等)查詢演算法,排序演算法。

    4、2-3個月認真學完《csapp》並做完書上的課後習題(由於時間的關係,沒有在做家庭作業),順帶學習了一些gcc的嵌入彙編的用法。

    5、讀完了《深度探索C++物件模型》,物件C++底層實現機制有了一定的瞭解。

    6、讀完了《TCP IP詳解卷一》

    7、讀了《APUE》的大部分內容以及《UNP卷一》有關TCP/UDP的部分,略過了SCTP的部分。

    8、研究學習陳碩的muduo網路庫原始碼,受益良多,在期間發現過其中的一兩個小問題,提了幾個pull request,研究完了muduo原始碼後又看了其相關的書《Linux多執行緒服務端程式設計 》

    9、學習了雲風的skynet網路庫的小部分原始碼,主要為了瞭解actor模式和reactor的異同。

    10、學習了google test框架的部分原始碼,弄懂了內部的的執行原理。

    11、刷《劍指offer》的所有習題。

    12、刷leetcode,程式碼在liyuan989/leetcode · GitHub,由於時間的關係大約刷了130道就開始找工作了。

    二、關於練手專案

    寫了簡易STL,C++協程庫,以及一些http server,rpc之類的。

    三、關於找工作

    由於基本都是同學朋友內推,不存在簡歷被HR篩掉了。

    其實自己都驚訝在找工作的時候有些異常順利,因為面試官問的問題很少有答不上來的。絕大多數問題個人感覺不難,大多都是問的一些比較基礎、底層的東西,比如互斥鎖底層是怎麼實現的?如何用C語言實現C++的異常,說說基本思路這樣的問題。然後就是根據簡歷上寫的東西來問。

    另外一個要說的就是紙上手寫演算法題了,手寫程式碼和機器上寫程式碼的感覺不一樣,我個人是沒事自己在紙上寫寫一些基本的演算法來熟悉,比如快排、堆排序之類的。

    然後面試要問的演算法題一般都不難,多數都是翻轉連結串列,判斷連結串列是否有環,迴文數,找出連結串列倒數第k個數這樣的題目。

    很少遇到問二叉樹的問題,沒有遇到過問圖的相關問題。唯一碰到一個動態規劃的問題,就是最典型的最長公共子序列問題,難點的就是百度第一面最後問了一個leetcode上hard難度的原題,總的來說刷一些題還是很有必要的。

    四、驅動力是什麼

    對於我來說驅動力就是興趣和堅持吧,再一個就是有一種「做一件事就要把它做好的信念」。

    講一下我個人的兩個經歷。

    在我中學的時候對籃球很有興趣,但是剛開始的時候運球都運不穩,更別說上籃、突破、三威脅之類的高階動作了。然後我就在網上找到了張衛平老師的籃球教學系列影片,學基本的運球動作,投籃動作以及基本步法,在家裡沒事都會練練步法。每天晚上傍晚看不太清的時候都去練投籃找投籃感覺,然後看NBA學一兩個實用的晃人、假動作技巧,再慢慢練習。最終在高中的時候進了當時的校籃球隊,拿了當時市高中比賽的冠軍。

    另一個就是關於WOW了。高中畢業的時候被一幫從地球年代就開始玩的同學拉去玩WOW了,由於之前沒有玩過類似WOW的網遊,什麼都不懂,完完全全的一個小白,一下副本就被隊友、同學罵。然後呢,我就去NGA看各種攻略貼、精華帖、影片。仔細研究每一個技能的描述,冷卻時間。慢慢的,下各種副本團隊時候DPS都超過了我的同學,再到後來加入了伺服器FD團隊,拿過幾個伺服器首殺,單個BOSS的DPS排行也進過WOL全球前10。PVP方面也是的,開始在奧格門口是個人都能虐我,然後我每天觀摩那些高手怎麼放技能,怎麼銜接,然後每天泡在奧格門口決鬥練習,看NGA刀鋒山的各種精華帖,看各種PVP影片,慢慢的在奧格門口幾乎沒有對手了,成為了所謂的門神。後來覺得決鬥沒意思,就開始玩競技場,也是這樣的一個學習過程,最後也打到了角鬥士龍。

    最後,我很喜歡劉未鵬先生說過的一句話,送給大家:

    興趣遍地都是,專注和持之以恆才是真正稀缺的。

  • 2 # coderDonkey

    c/c++都是經典的語言。也是很多現代語言的鼻祖,雖然,現在流行vm語言,流行函數語言程式設計語言。但是,他們是祖師爺,而且,永遠不過時,

    最近,開源的TDengine也是c寫的面向物聯網的實時資料庫系統。

    不用怕,前途是光明的,但是,道路是艱難的,畢竟要想用好它,比起,現在流行的java,等還是要難的門檻也高些。

    希望對您有幫助

  • 3 # 土味大哥

    比較難,因為目前來說C語言是一個做底層的活的,而且C語言很難精通,找工作也比較麻煩,所以說你要是能選擇一個比較好就業的語言,那麼你就選擇Java或者是web前段吧

  • 4 # 開心交友記

    可以,做網際網路會有比較大的好處。但是,往這個方向發展的不太可能只會一門語言。C,C++,Python,java,SQL也要根據要求多多少少會一點,找工作比較佔優勢,對後期發現也有好處。

  • 5 # 小可愛日語韓語

    c語言大致工作方向及其職業生涯發展

    1.遊戲伺服器開發--->後端--->linux伺服器構架師--->企業技術CTO

    2.網路攻防方向--->滲透測試工程師--->網路安全研發--->攻防安全專家

    3.windows企業專案方向--->windows桌面應用開發--->大型傳統企業構架--->系統設計專家

    至於學習的話,C語言相對來說不是很簡單。前期自學可以接受的話,基礎可以先自學。

    後期可能會有些吃力,還是建議去培訓,或者線上系統的學習。

    自學能力很強的話,隨意。開心。

  • 6 # 岸上哥哥

    不論是C/C++、java,只要你熟練掌握,在目前網際網路時代,找個工作,並且是薪資不低的工作,可以說相對比較容易。隨著時間和實踐的推移,你的薪資待遇肯定是水漲船高,經驗越多、沉澱越多,你的身價就越高。

    隨著網際網路及網際網路+深入蓬勃的發展,經過40餘年的時間洗禮,C/C++儼然已成為一門重要語言,出色的效能使之成為高階語言中的效能王者。

    1、職位需求多。你可以透過相關的招聘網站搜尋下,特別是大城市,對c++的職位需求是比較大的。

    2、適應領域廣。C++在遊戲、伺服器端開發、數字影象處理、編譯器、金融等領域中都是可以被用到。

    當然,前提是你必須掌握熟練的知識,不管你是科班出身還是自學成才,網際網路時代從來不會因為你的求學經歷而對你進行標籤化處理,拿出你的實力和水平,才是王道。

  • 中秋節和大豐收的關聯?
  • 大家有沒有類似《新世界》的電影推薦?