<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          那年校招,我去霸筆了!

          共 5575字,需瀏覽 12分鐘

           ·

          2021-08-15 12:31

          知乎上的這個問題相當熱門,不少大佬都回答過了,今天我也來聊聊。

          編程不是坐火箭,可以一飛沖天。

          但確實積累到一定階段,會隱約覺得自己好像有了渦輪增壓,開始突飛猛進了。

          這個渦輪,來自不斷涉獵積累起來的知識廣度,來自大量Coding錘煉出來的編程經(jīng)驗,來自長期學習總結下來的方法與思想。

          當你經(jīng)歷和擁有了這些,即便你仍然有很多未曾涉獵的計算機領域,許多不曾掌握的計算機知識,但你也不再迷茫和恐懼,因為在你的大腦里,已經(jīng)構建起強大的學習能力和知識體系,在未來的學習道路上,你要做的只是添磚加瓦,不斷完善而已。

          下面說說我自己的經(jīng)歷。

          先提醒下,篇幅很長,知識很硬,建議先收藏再慢慢看。

          高中在四川下面一個普通的不能再普通的縣城,從小身邊人給我灌輸?shù)乃枷刖褪牵弘娔X、上網(wǎng)這些詞,和黃賭毒是并列的,一旦接觸就戒不掉,無數(shù)孩子都是因為上網(wǎng)前途盡毀,輟學打工。你知道的,這種思想在廣大的農(nóng)村地區(qū)應該非常有市場的。

          所以,一直以來,我跟計算機這個東西就沒什么交集。高考完在選擇專業(yè)的時候,曾經(jīng)想報考計算機,但同村唯一的一個大學生告訴我:計算機專業(yè)滿大街都是,你沒看到電視里什么新東方、五月花、藍翔、北大青鳥都在招計算機的人嗎,出來競爭大,根本找不到工作。

          年輕的我居然信了?。?!

          最后報考了一個偏硬件的通信工程專業(yè),當年手里的那本報考指南,把這專業(yè)都夸上了天了。

          大一:迷茫中摸索

          后來入學以后,我很快發(fā)現(xiàn),就我們學校的師資力量平臺以及當下的就業(yè)行情,搞硬件這條路太難了。

          經(jīng)過一個學期的折騰,我自己下了決心:走軟件這條路。

          大學那幾年,都流行考證,也不管這個證考來有沒有用,考來干嘛,反正別人考,跟著考就對了!

          大一的第一個學期,我們非計算機專業(yè)的同學流行考計算機二級證書,說是以后畢業(yè)找工作加分項,我也沒有免俗,跟著交錢去學吧。

          那時候也不知道計算機二級證書是什么,要學哪些東西,沒想到學校統(tǒng)一報名學的竟然是個早已作古了的數(shù)據(jù)庫編程語言:Visual FoxPro。

          不過,第一次接觸計算機編程,還是很興奮的,從表的字段、結構、索引、視圖到SQL語言,然后到程序設計的循環(huán)、分支、函數(shù)等等基礎概念的第一次接觸,都在當時一張白紙的我腦子里留下了深深的印象,我學的也特別認真,這一點從當時做的學習筆記就能看得出來:

          通過這個計算機二級的考試,算是正式點燃了我對計算機和編程的興趣??纪炅擞嬎銠C二級之后,我沒有停下,繼續(xù)用這個VFP自己做了一些程序,各種XX管理系統(tǒng)。

          那時候剛剛進入大一下學期,開始教授C語言了,我卻沒有意識到這門課的重要性,還在研究VFP的高級用法。直到當我拿著寫出來的軟件給網(wǎng)友曬的時候,卻被潑了一盆冷水:這年頭誰還用這語言啊,連C語言都不會嗎?就這?

          那時候開始,我調(diào)整精力,開始全面學習C語言。

          但老師拿著上個世紀流傳至今的PPT,像個PPT閱讀機器人一樣的教學方式讓我意識到靠上課學習C語言不現(xiàn)實。

          我開始嘗試自學,很多跟計算機關系不大的課程,能不去就不去,自己看書學習,期末考試確保不掛科就行。

          但是編程這東西,三分靠看書,七分靠實踐,得要上機練習才行!實驗課每周次數(shù)有限,不能做到隨時想練就練。于是自己淘寶淘了一個二手筆記本電腦,就在那臺1G內(nèi)存,慢如牛的筆記本上,使用TurboC2.0這樣古老的IDE開啟了我的C語言編程之旅。

          當時的教材是著名的清華大學譚浩強的《C程序設計》,這本書你懂得,一個多月學完后,我的E盤里塞滿了練習編程的程序,有一兩百多個吧,但感覺這東西好像沒啥用,都是在一些黑乎乎的窗口寫一點數(shù)學運算之類的題目,什么九九乘法表,最大公約數(shù),質(zhì)數(shù),水仙花數(shù),階乘,橢圓等等,感覺實用性不高啊。

          兩個月后,我加入了一個信息安全協(xié)會,里面有很多喜歡計算機、編程、網(wǎng)絡安全的同學,而且一進去發(fā)現(xiàn),大家的段位明顯高出了我不少,這使得我一下有了緊迫感,自己只會的那點C語言菜鳥級功底根本不夠看。

          協(xié)會里會定期舉辦編程比賽,看著別人展示出來的作品,我開始更加努力,也在那時,知道了C語言后面還有個C++,知道了除了黑乎乎的控制臺程序,還能開發(fā)好看的有界面的Windows程序出來。

          經(jīng)過一段時間的瘋狂學習,提前一個學期把C++給啃下來了,還學會了VC++開發(fā),寫了一些稍微復雜的程序,像是socket聊天程序,五子棋程序,貪吃蛇游戲等等,這個時候,感覺自己對語言的掌握基本到位了,能熟練使用C和C++實現(xiàn)自己想要的功能邏輯。

          大二:打基礎

          進入大二,加入了學校的網(wǎng)絡安全研究所,進入研究所的第一份工作,就是一個跟網(wǎng)絡數(shù)據(jù)包打交道的項目:將網(wǎng)絡數(shù)據(jù)包實時抓取下來并進行數(shù)據(jù)還原,我負責HTTP協(xié)議部分,這難度對當時的我來說算是陡增。

          印象最深的是,第一次看到了網(wǎng)絡數(shù)據(jù)包長的是什么樣的。之前學計算機網(wǎng)絡時,總把數(shù)據(jù)包掛在嘴邊,什么TCP/IP幾層協(xié)議,張口就來,卻連真正的數(shù)據(jù)包都沒見過。

          學習計算機網(wǎng)絡,一定得抓個包來看看,看看課本里的一層層協(xié)議,一個個字段,在網(wǎng)絡中真實的樣子。我們當時沒有使用wireshark,而是一個非常不錯的國產(chǎn)軟件——科來網(wǎng)絡分析系統(tǒng):

          通過這個項目,算是真正把計算機網(wǎng)絡學到肚子里去了,要做到網(wǎng)絡數(shù)據(jù)還原,涉及到數(shù)據(jù)捕獲、文件處理、協(xié)議識別、TCP會話重組、應用層協(xié)議識別、數(shù)據(jù)提取并還原等等一系列工作,無論是對于計算機網(wǎng)絡的學習還是對于編程能力的錘煉都是非常好的機會。

          也正是在這個時候,我明顯感覺到自己的知識不夠用了。

          一方面,我開始接觸幾萬行,十幾萬行代碼的項目工程,怎么設計和架構,完全抓瞎,設計模式、數(shù)據(jù)結構與算法的短板開始暴露。

          另一方面,C/C++底層軟件開發(fā),需要非常扎實的系統(tǒng)編程能力和操作系統(tǒng)知識,進程線程原理,堆棧原理,進程間通信,多線程同步,內(nèi)存映射,內(nèi)存對齊,虛擬內(nèi)存等等基礎知識的缺乏,也暴露了這方面的弱勢。

          光會一個C/C++哪里夠啊,開始一邊做項目,一邊惡補學習這些知識,沒辦法,咱們專業(yè)他不講這些啊,那時候看了許多開發(fā)的書,一邊看書一邊項目中編程實踐,消化的特別快。

          • 《Windows核心編程》
          • 《數(shù)據(jù)結構與算法》
          • 《大話設計模式》
          • 《Linux服務器開發(fā)實戰(zhàn)》
          • 《TCP/IP詳解·協(xié)議》
          • 《STL源碼剖析》
          • 《Effective C++》
          • 《深度探索C++對象模型》

          學一個知識點,就建一個工程項目,實際去寫點代碼驗證,后來的經(jīng)歷告訴我,只有一行行敲入編譯器進行驗證過的知識,面試筆試的時候才會回答的更有底氣,光從書本上看來的東西都不會牢靠。

          這段日子,是編程能力快速提升的時期,之前都是自己跟著書瞎練習,現(xiàn)在有了實驗室?guī)熜謧冞^來人指導,跟著項目走,避免了很多彎路。

          記得研究所老師說過一句話:什么時候覺得自己編程能力入門了?就是當你能夠獨自編寫超過1萬行代碼軟件的時候。

          進入研究所之前,自己寫的軟件,每個工程也就一兩千行代碼的水平。而接觸真實的項目后,一下就被十幾萬行代碼的巨大工程震撼到了,由衷的佩服師兄們是怎么完成這么浩大的工程的。

          除了上面的網(wǎng)絡數(shù)據(jù)還原項目,還做了一個Windows日志擦除項目,可以將網(wǎng)絡入侵后在系統(tǒng)事件中記錄的痕跡給抹掉:

          在學校舉辦的信息安全比賽上,我還開發(fā)了一個監(jiān)控軟件,用于同時監(jiān)控多個人的電腦桌面,投在大屏上進行比賽實況轉播。

          這一年,還參加省網(wǎng)絡安全大賽,拿了個二等獎。

          檢驗知識是否掌握到位最好的方法就是輸出。 這期間,我開始擔任協(xié)會里面的技術部長,進行一些輸出,給新會員做技術培訓,講過C語言,講過計算機網(wǎng)絡,講過網(wǎng)絡安全。

          甚至,我還通過QQ語音+遠程桌面共享的方式,給一個學習經(jīng)濟學專業(yè)的同學遠程上課,幫助他考過了C語言的計算機二級考試,拿到了證書。

          這段故事,有興趣的可以看看這個:那年,我用QQ幫他考過了計算機二級

          碼字不易,午覺都沒睡,大家覺得有幫助的話,幫忙給個贊哦~

          因為是網(wǎng)絡安全研究所,除了軟件開發(fā)、編程這些東西,還會學習接觸很多網(wǎng)絡安全技術。

          那時候看了一本神書:《0day安全·軟件漏洞分析技術》

          通過這本書,我才透過C/C++高級語言的表象,看到了計算機執(zhí)行代碼的本質(zhì),CPU是如何執(zhí)行指令,函數(shù)棧幀里的布局,函數(shù)的調(diào)用是如何進行的,用戶態(tài)與內(nèi)核態(tài)又是如何切換的,進程的地址空間到底有什么,操作系統(tǒng)又是如何構建出一個虛擬的進程地址空間的。

          這本書,我強烈推薦,就算你不是做網(wǎng)絡安全的,也值得一看,尤其是面向系統(tǒng)編程的C/C++程序員,它可以幫助你理解程序的運行原理,不是假大空的概述性描述,而是那種直接落地的二進制指令級別的理解。

          大三:全面提升

          大二的這一年,是打下基礎的一年,而真正突飛猛進,則是在大三這一年。

          這一年有幾個新的變化。

          第一,技術棧的拓展。 研究所進來了新的同學,有不少是計算機專業(yè)的科班生,科班的同學果然還是會跟我們不一樣,他們的技術棧和知識面要比我們廣的多。在他們的幫助下,我開始接觸了Java、SSM、J2EE那一套開發(fā)體系,了解到不同語言適合的領域,各自的差異,開始拋棄語言的成見,不再覺得底層語言就牛逼,而是博采眾長,廣泛涉獵,除了Java,Python也是這個時期開始接觸的。

          第二,視野的開闊。 進入大三后,大四的師兄師姐們開始校招找工作了,也會給我們分享很多見聞,各種筆試面試的題目經(jīng)驗等等。那時候發(fā)現(xiàn)自己很多問題都答不上來,畢竟不是科班出身的,之前的積累更多面向開發(fā)和編程,但對計算機基礎知識體系沒有很好的構建。再加上眼光沒有跳出去,寫了兩年C++,竟然連C++11都不知道,真是沒臉見人了。

          第三,技術深度加深。 自己參與的項目技術深度越來越深,很多需要涉及操作系統(tǒng)內(nèi)核的知識,但對計算機底層原理的知識一直沒有很好的掌握。

          因為這些變化,在大三這一年,從原來的面向項目開發(fā)的學習,開始轉向系統(tǒng)化學習,向計算機科班學生看齊,把沒學的都給補上。另外,開始學習Windows、Linux源碼,剛好專業(yè)課有學微機原理和單片機,也是掌握底層知識的好機會。同時開始關注校招,對自己的知識體系查漏補缺,學習業(yè)界在使用的一些開發(fā)技術和開源組件。在算法方面,我們那時候還沒有LeetCode,更沒有??途W(wǎng),算法面試準備基本上只有三招:看書、寫代碼、看面經(jīng)。

          這一年,我又看了不少書:

          • 《Java核心技術》
          • 《Windows內(nèi)核原理與實現(xiàn)》
          • 《Linux內(nèi)核設計與實現(xiàn)》
          • 《軟件調(diào)試》
          • 《計算機組成原理》
          • 《深入解析Windows操作系統(tǒng)·第六版》
          • 《Boost程序庫完全開發(fā)指南》
          • 《劍指offer》
          • 《編程之美》
          • 《程序員面試寶典》

          伴隨著視野的開闊,知識面的豐富,再加上兩年的項目開發(fā)實戰(zhàn)經(jīng)驗,到了大三的下學期,突飛猛進的感覺真的來了,感覺編程什么的就那回事,經(jīng)常還對各種語言和技術棧指點江山。現(xiàn)在回想起來,那時候的自己多少有些年少輕狂,不知山外有山,人外有人。

          大三結束后,就開始忙著校招了,雖然做過不少項目,看了不少書,但總覺得自己不是科班的,心里欠了一些底氣,面試的時候怯場。

          為了克服這個問題,在大三的暑假,大四之前,我在成都找了五六家公司面試,我去面試不為工作,只為積累面試經(jīng)驗,鍛煉自己膽量。你還別說,這一招真好使,幾場面試下來,已經(jīng)做到臉不紅心不跳,侃侃而談了。

          8月底正式校招打響了,當時的C++開發(fā)方向,騰訊和百度都有崗位,看了下招聘要求,發(fā)現(xiàn)就是我們平時項目中搞的那么點東西,問題不大,胸有成竹。

          我先投的騰訊,但很遺憾,不知道是不是因為學校的原因,簡歷就被刷了,直接不給筆試的機會,郁悶慘了。

          心有不甘,去網(wǎng)上各個論壇貼吧打聽了一通消息,聽說可以霸筆,于是在筆試那一天,我還是去到了川大的筆試現(xiàn)場,希望能有機會進去答題。

          很無奈,那天的管理非常嚴格,筆試開場后,很多和我一樣的人都被擋在考場外面,都希望能獲得一個證明自己的機會,可那看守的死活不讓進,漸漸地,圍觀的人就三三兩兩的散了,只留了很少些人還在堅持。

          在筆試最后十幾分鐘左右,考官終于心軟了,總算同意放我們進去了,不過時間太短,無力回天,只做了第一頁的填空選擇題,收卷鈴聲就響起了,不過看了一下試題,沒有想象中難,大都是基礎知識,只要平時學習認真了,基本都能答得上來。

          騰訊之后,我又投了百度,這一次成功收到了筆試通知。

          筆試是在成都七中旁邊的一個大禮堂進行的,來了有很多人,頗有種群雄逐鹿的感覺。筆試的題目對我很簡單,都是平時項目中做過的內(nèi)容,一氣呵成,我甚至還提前交了卷。

          當天下午就通知我通過了筆試,在面試環(huán)節(jié),得益于之前的練習準備,也是對答如流,項目經(jīng)驗部分都差不多能背下來了,接下來都比較順利了,一面、二面、三面都很快通過了,并拿到了最終的Offer。

          后來我才知道,那一年,騰訊和百度總共在我們學校收了6個人,而我們學院,只有我一個。

          后來又去參加了360、新浪的校園招聘,不過筆試通過后,我就不想去面試,開始去浪了~浪完就得去實習,大學生涯也差不多結束了。

          最后,回到題主的問題上來,我的編程能力從什么時候開始突飛猛進?

          我想,是在幾百個夜晚,舍友在組隊打穿越火線,而我在玩IDE之后(其實我也有打了,但老是打不過他們,手動捂臉)。

          是在啃完了幾十本計算機編程經(jīng)典書籍之后(其實也沒全部啃完過,選擇性的啃),是在寫下了一行又一行代碼,完成一個又一個項目之后(這個是實打?qū)嵉?,沒有水分)。

          勤學+多練+刷題,只要做到這三個方面,就穩(wěn)了!

          最后的最后,我之前把C/C++自學過程線路圖和這個過程中的資料書籍都整理好了,需要的朋友點下面這個自取吧:

          C/C++后端開發(fā)學習路線

          碼字不易,如果覺得有點幫助,歡迎給我一個贊呀~

          瀏覽 75
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  亚洲的在线视频 | 日本黄色成熟视频 | 中文字幕日产A片在线看 | 在线看A片 | 日本学生妹内射视频在线观看 |