一枝穿雲箭,千軍萬馬來相見——致2015屆電子科大信軟學院新生

一路走來,我是看着學姐的背影成長的,但願有一天我也能成爲別人的背影~php

雖然我成績差,智商低,又醜又懶,但我踩過的坑多啊。因此把踩過的坑分享給下一屆學弟學妹html

文章結構:前端

 

 

[注意事項] 1.兒童必須在成人監護下使用。python

2.如同時看到其餘類似文章,使用本文前請諮詢導生。git

3.服用後若產生不適,或刺激症狀或病情加劇,且持續時間超過72小時,請中止使用或嚮導生諮詢。程序員

首先歡迎各位報考電子科技大學!github

若是你在高中得到NOIP的金牌或者其餘學科競賽是省隊水平,或者你很小的時候就在小霸王上寫程序,又或者你已經爲Google寫了不少年的程序,本文的信息量以及做者自身的格局都入不了你的法眼,請儘早找到你的導生/輔導員/副院長/院長,和他們一塊兒探討。同時也但願,你不要用本身的優點去影響同窗們,說一些諸如「心比天高,命比紙薄」的話。面試

若是你對本專業並不帶感,但還想保持學霸的品質不動搖。你已經肯定了你的大學生活由刷題,績點,高分,保/考研,出國這些關鍵詞組成,那麼本文僅僅做爲你的參考。算法

不少人建議我談談互聯網行業的錢景,能夠「挑逗」起你們的興趣,雖然我一口答應下來了,但寫出來倒是下面的樣子:shell

不要替將來的你作決定,將來的你已經不是如今的你,不要把你如今的感覺強加給將來的你。

人對將來的預測是不許確的,老是會高估或低估某些情緒,以及某些事件在將來發生的機率。

無論想作什麼,去試一試,去開個頭,不要懼怕這件事投入大或者你能力不夠。不要瞎預測,覺得你作以前和作以後都是同一個感覺,不是的,大多數事情都是作着就有了感受,就喜歡上了。

因此,先別想什麼國內年薪至少12W RMB、美帝6W $起步之類的,編程試試看吧~

說給出國黨聽

     【小廣告:大信軟正在籌辦精英出國班,有興趣的同窗能夠了解下~這是比較官方的途徑啦】

       先要肯定到底想申請Master仍是PhD?二者的要求有很大的不一樣呢。大部分Master的主要目的是培養職業技能,所以通常對科研能力沒有太多要求,主要看你是否達到了入校的最低要求。知足這個要求的申請者其實不少,此時就看看GPA,TG之類的硬指標了。而PhD的話,就更要看你不一樣於別人的技能了,GPA就不是你的核心競爭力了~

       Master你們都知道,好比最近美帝的Master就在風口上,成功的話一年留學花的錢,在美國工做兩三年基本就回本了~(切記,雖然在風口上,雖然門檻低,但有過硬的技術總比沒有好)

這裏主要想強調一下PhD,不要想着PhD就真真是搞科研了,按照如今工業界的需求,不少PhD也去工業界了啊。固然,從Mentor的角度講,若是不是真心搞科研,何須讀PhD呢~我只是提供不同的視角。

       若是是申PhD的話,出國前你能夠花一年時間去MSRA實習一年(大五?),這一年的實習經歷可比你本科四年那些水獎和GPA要耀眼多了,若是你的目標是TOP10 CS名校這樣的,總得有個這經歷吧~(但我也沒說申請MSRA的實習很簡單);固然,你本科期間發了篇頂級paper也是能夠的。

不過話說回來,你要是隻把出國當跳板,當我啥都沒說。

可是呢,家裏條件若是負擔不起的話,不要太任性。(這裏的「負擔不起」是指砸鍋賣鐵那樣的負擔不起)若是不爲國外工做、定居的話,保研確定比砸鍋賣鐵出國來得划算。固然,並非說條件很差就必定出不去,不少項目、路子都能走。一樣的,我只提供不一樣的觀點,本身多瞭解吧。這裏推薦一畝三分地論壇,乾貨不少,用了都說好~還有咱們成電 清水河畔的出國留學版面。

多說最後一句,分數最好經過正考就考好,不要寄但願於到時候刷分。萬一你的申請全都被拒了呢?那時候想保研都搞不定了…你說你考研?( ̄▽ ̄)」 你看本專業清北復交的考研名額加起來有80人沒~

(學術界的不一樣階段)

說給學霸們聽

條條大路通羅馬,羅馬城裏多學霸。這條路的確表明主流的分配方式,並且機會成本低,幾乎是高中的無縫切換。堅持走下去必定沒問題。

關於考研/保研的問題,我沒有評估過,因此你們請教導生咯~

(我的以爲靠抱大腿,水論文等方式競爭保研資格的人,到底仍是沒有 正兒八經考研 或者一直很優秀的人踏實。)

噢,對了,學霸能夠,學婊不要,也不要見不得別人好,等你長大了你會發現,有個比你優秀的朋友,實際上是一件很省心的事。

最後,戀愛要趁早,學習要搞好

不對,還有一件事(大家這些學霸就是讓人操心),如今的年輕人,特別容易出現以下症狀,看了一本比較經典的書之後,就以爲本身了不起了,必定不要這樣!

最最最適合本文的讀者~

本文最適合那些對專業有點迷茫,對大學有憧憬,想折騰出一點東西,但不太想走學霸路線的同窗。這裏有不少你可能遇到的坑,以及各類不一樣「技術流」對你的誘惑~絕對乾貨滿滿!

Computer Science 與 Software Engineering的關係?、

 

顯而易見,軟件工程是計算機科學的一個二級學科,而單拎出來招生的二級學科學費都比一級學科貴(逃

 

但這只是概念上的劃分,實際的授課中,咱們可不是隻研究「需求分析、軟件設計……」這些,畢竟沒人會讓一個應屆生去直接帶一個項目,咱們又不是工商管理/財務管理/XX管理

 

因此說,咱們信軟學院學的是 計算機科學與技術 專業課程的一個子集,爲何是子集嘞?由於所選方向不一樣,可能會少幾條內容,好比:有的方向不學計算機網絡,有的方向不學計算機圖形學,具體內容等培養方案發下來了你本身去看咯…

 

不過不一樣於 計算機科學與技術 專業的同窗,除了正常的教學,咱們的大學生活有很大一部分是實習,這一點蠻實用噠,具體細節問導生咯

 

知道這些你內心是否是開心點啦 ? 百度知道和百度貼吧只能告訴你「計算機科學偏理論,軟件工程偏應用」! 然而這句話並無什麼卵用,我當時看的時候仍然分不清這倆有啥區別,而如今泥萌好歹能分得清內容上和形式上的差別了。

固然,關於本專業中更具體的方向(嵌入,軟技),個人觀點是「小孩子纔看方向,大人只看年薪」,畢竟學校的授課內容不能直接變現,工做中用到的東西,仍是獲得企業裏去學。(咱們信軟安排的實習就顯得特別給力,相信我,根據我獲取的信息,實習方面咱們作的比復旦軟院還要好)

但話雖這麼說,我以爲泥萌本身內心確定有本身的評價標準,好比認爲我電的強項偏弱電,因此跟着嵌入走比較有前途;信工有點通訊工程的色彩也是我電的王牌,巴拉巴拉這些的…那就是大家本身的事了。

關於軟件工程這一學科,習而學的軟件工程教育 這篇文章寫得仍是很中肯的,你們能夠做爲補充。

(習而學版  全部專業必修課的安排)

什麼是本科生該習得的專業能力?

咱們從此是要就業的,但只要是軟件/互聯網 這個類別(領域內HR、PM請走開…),無論是學術界仍是工業界,本科階段乾的事都差不太多,所以這裏從行業的角度談談專業能力的問題,到這裏就暫且忘掉與CS的差別吧。

 

咱們這個行業呢,大概有兩類問題,能解決其中任何一個問題的,其實都算數

 

一類是理論:算法,數據結構,複雜度,機器學習,模式識別,巴拉巴拉~。另外一類是系統:操做系統,網絡系統,分佈式系統,存儲系統,遊戲引擎,巴拉巴拉~。

      理論走的是深度,是在追問在給定的計算能力約束下如何把一個問題解決得更快更好。而系統走的是廣度,是在追問對於一個現實的需求如何在衆多的技術中設計出最多快好省的技術組合。

 

對應這倆能力,本科生該怎樣提升?

 

你看,這就開始又有差異了,有差異就會產生分歧啦啦啦。

 

爲何嘞?由於咱們這行知識多噻,你們老是不肯意去學新東西,爲了給本身的懶惰找藉口,他們就發起了不一樣程度的「聖戰」——Surface ,MacBook ,ThinkPad的設備之爭, Linux 與 Windows的平臺之爭,函數式與命令式的編程範式之爭,IDE 與文本編輯器的 開發工具之爭,Vim 與Emacs的最好編輯器之爭,PHP是否是世界上最好的語言?人生苦短,是否是要用Python ? C++好仍是Java好?開發Web是否是真的迫於生計?

 

(一下看到這麼多名詞是否是很開心?喜歡的話就一個一個去維基百科搜一下唄~

 

打不開?請學會科學上網——Chrome+紅杏出牆;VPN; ShadowSocks)

 

面對這些聖戰,千萬不要無聊地加入其中。保持一個開放的心態是很重要的,咱們但是互聯網領域哎!

 

(程序員的鄙視鏈)

 

固然啦,在你學了C++,而另外一個同窗卻在搞Java的時候,你可能會不自覺地有排斥心理,而後你的關注點都會變成: 「C++這也好,那也好;Java這也不行,那也不行」,「我學的東西是有用的,有前途的;他學的技術是過氣的,要被淘汰的」。千萬不要這樣! 這種念頭偶爾能夠想想,但別讓它在你的心裏發芽,不然直接否認另外一個領域是很吃虧的一件事,你可才只是本科生啊

 

反正未來,語言你都要會,平臺的差別你都要知道,爲何要斷送本身學習這些東西的機會呢?你真的覺得不知道垃圾收集的原理,和一些底層的、能夠經過C++的練習而獲得的操做,你真的能夠在某些關鍵時刻操縱好Java嗎?固然有些人會以爲,我估計一生不會遇到這些問題的,因此咱們仍是無論他了~

(糾結選哪一種語言?)

 

可是,可是,可是,即使你再有開放的心態,有一道坎是不能用心態解決的,由於它會有更根深蒂固的「陣營心態」——這就是前面說到的理論 系統/工程 這樣大方向之間的差別。比起用C++仍是Java,這方面的糾結纔是讓人惱火噠。由於編程語言和工具的轉換成本仍是比較低的,雖然也要花些功夫。但理論 or 系統 ? 這樣的決定,讓人感受影響就比較大了!

 

 

本着先問是否是,再問爲何的原則,我先給你們擺事實:

 

搞理論的話,本科期間顯然就是參加ACM-ICPC了。這是一個江湖,既然是江湖,就有武林高手,有按期的英雄大會(regional,finals),有各大門派(學校,如國內7大門派——THU,PKU,SJTU,FDU,ZJU,SYSU,UESTC),有武林盟主(國內的ACRush,國外的Petr和tourist),有武功派別 (數據結構流,幾何流,等等),甚至還有各類祕笈(各大學校內部題表和模版),江湖上常常流傳各類謠言和八卦,各大高手和江湖小蝦們躲在宿舍黑暗的小黑屋裏,修煉本身的絕世武功。搞好的話保研加分哦 ! 不過它的初衷是讓有興趣研究算法的大學生鍛鍊思惟能力。並且光想着保研加分的話,它的性價比是最低的…

 

固然啦,若是你天賦異稟,本科期間就發paper也不是不能夠。(你看清華就沒太把ACM-ICPC放在心上,大牛們直接去搞科研的居多)話說回來,ACM這玩意可看智商,看天賦,拼數學。因此這項比賽是我電 數學學院 引領潮流而不是 計算機學院 或 信軟學院,你要作好長期被打壓的準備。

 

搞系統的話,就是造輪子,拆輪子。本身作點小東西(iOS,Android,Web),模仿別人的設計作個東西,看看大牛們的代碼。你能夠本身搞,也能夠加入創新工坊的一個工做室,若是你水平高的話,還能搞點零花錢。但這玩意就沒有量化的標準了(其實有,就是上Github上爲開源項目共享代碼的行數,但初學者貿然接觸開源的玩意,沒啥意思),也沒有保研加分的政策了,因此若是不是真愛的話,一些人興趣磨滅之後也就放棄了。因此比爾蓋茨說,看到如今學編程的人常常都把編程看做解各類腦筋急轉彎的問題,他以爲很遺憾。

 

再詳細說說這倆部分

      這倆兄弟之間依然是有鄙視鏈的…咱們行業不是一個和諧的行業~同行之間都是赤果果的鄙視

      通常人都會認爲ACM很牛~學霸這麼想的,學校也是這麼想的,由於考智商,能拿獎,可量化。

      先給他們一悶棍 ——ACM的侷限性

 

      對於學術界,這玩意只是奇淫技巧,入門級的遊戲。我並無看到過神經網絡,機器學習的算法出如今ACM的題目中~

 

      對於工業界,工做中大部分複雜的算法都有現成的庫了, 不須要本身實現。會用到的基本都只是一些很低級別的算法, 好比二分, 簡單hash, 或者用map創建一個索引。這一點也經常做爲北大青鳥之流或者普通院校的老師的論據~

 

      再給作工程的同窗一顆糖(or 悶棍?) —— 被誤讀的工程

 

      說到工程, 不少人就以爲是查文檔, 調接口, 覺得就是體力活,因此有了「碼農」這個說法,還有一句名言「咱們不生成代碼,咱們只是Github的搬運工」。

 

      寫工程代碼確實很多時候就是查文檔, 調接口, 可是其精髓應該是隱藏在這些接口後的設計哲學, 這種東西光看文檔和接口是看不出來的, 得真正本身去挖掘, 去動手寫本身的代碼, 去認真讀別人的源碼。

 

      不要把工程這個坑看得太淺噢,工程的魅力在於對項目的不斷提煉,對代碼的不斷重構,它的設計哲學是最美的。一聽到「設計」、「哲學」的組合詞,這個坑就不會淺~ 必定要多寫。

注意!!這可不是寫完一個俄羅斯方塊之後,又完成了貪吃蛇這麼簡單的轉化。若是隻是這種程度上的「開發」,我以爲你寫一個項目和寫100個項目沒啥區別,無非是這些遊戲的邏輯知道多了一點,API熟悉一點,仍是處於入門的程度,低端碼農的程度,廉價勞動力的程度,依然會被人瞧不起的…

 

固然,你作完基本的俄羅斯方塊,加了華麗的效果,代碼量很足了,這已經值得確定啦。但你想一想,作個俄羅斯方塊的AI,是否是更厲害呢~固然,這玩意就涉及算法了。因此你也能夠開始想模塊化的問題。怎麼作一個遊戲用的GUI庫?怎麼作一個遊戲用的腳本引擎?怎麼給他們製做工具?怎麼寫一個遊戲引擎?怎麼寫一個RPG Maker? 造輪子,量要足,難度要夠

 

多造輪子,但不要重複造類似的東西,要造有含量的東西!否則你也以爲無聊不是?等你熟悉之後,那種一折騰須要大半年的那種輪子,是最好噠~好比本身寫個圖形庫,本身搞個IDE~

 

還有一句話要注意「不要從新發明輪子」,這句話不是「不要從新造輪子」。原文的目的是要你多看書,多見識,不是讓你眼高手低的!!。

 

不管如何,請你務必要相信:當你輪子造的多了,你就擁有了整個世界

 

      再給ACM的同窗一顆糖吃~

 

       ACM中的一些基礎算法技巧(好比二分, 單調棧, 單調隊列, 線段樹, 強連通等), 能讓你更加抽象和理解你作的東西的本質。並且ACM上手之後,至少不會走上邪路,也屬於康莊大道(固然,你只練ACM的話,寫出的代碼會有點醜),不像上面的工程同窗,若是你一直被看成廉價勞動力,本身卻還樂在其中,就只能成低端碼農了…

 

        舉個栗子~有一堆地圖數據, 由點和邊表示, 邊是有向的, 原本這張地圖上的點是應該是相互可以走通的, 可是數據出了問題, 須要把不能走到的點給報錯出來。(簡化了一下下)


         學過圖論話,稍微思考一下, 問題就是「一個有向圖, 求連通性及報出孤島和斷邊」。一個tarjan算法就搞定了。

      再來一個栗子:


      在一個大型項目中, 有一些小模塊。 模塊間相互依賴, 如今這些模塊出現了死鎖, 須要你安全地解除死鎖, 這裏安全的定義是若是模塊A依賴模塊B的資源, 那麼必定要先關閉A再關閉B,就醬紫。(一樣化簡了一丟丟)


      也是看似複雜的任務, 其實稍微提煉一下就會發現模型是一個拓撲排序

 

      在一些小問題上, ACM能讓你把問題考慮的更加抽象, 你能學到更多, 而不是單純的停留在需求自己。

 

如今你對這倆兄弟有個大概的印象了吧?

 

對於路線問題,先不要急於給本身下定義,分類別。每一個領域均可以去試一試,管他理論工程,前端後臺,C/S仍是B/S,嘗試一下你不上當,嘗試一下你不吃虧~畢竟咱們還年輕,有時間去試錯,去找到本身喜歡的方向。鋪墊那麼多學科知識,就是爲了讓你對編程有一個正確的瞭解,沒有宏觀的把握,很容易迷失噠!

第三個選項?

 

但凡是有點國際視野的童鞋,就會去看看美國那些CS名校是咋教的。對照一下它們的課程體系和本學校的專業課程體系,會發現基本上差很少,因此至少這些專業課的設置是沒有問題的。可是!可是!咱們學習的深度根本就跟國外不能比啊!咱們一個學期七八門課啊,國外是一個學期頂多選三門課啊!

因此這裏給一個建議,就是按美國的標準學好專業課(能夠去Coursera網易雲課堂,網易公開課跟幾門MOOC)——

(計算機專業體系)

學《計算機組成原理》,就本身設計一個CPU,至少作一個單週期的,有餘力就作多週期和流水線的;

學《編譯原理》,就搞個LINQ編譯器+運行時庫;

學《操做系統》,就本身寫一個操做系統Kernel;

學《數據庫原理》,就本身寫一個小型的數據庫管理系統;

學《數據結構》,就去ACM 的OJ上作幾道題。

確實,這樣的話至關於每門核心專業課的大做業都是項目級的了(大一上用C語言實現的學生信息管理系統不叫項目…),但你在985院校啊!你在985院校啊!你在985院校啊!你不能按那些普通院校的標準要求本身啊,有些課程所在方向未設置的話, 請自行補全

確實,這些領域每個都自成體系,每一個領域都足以花費一輩子去研究。但你只是本科生啊!但你只是本科生啊!但你只是本科生啊!本科階段夯實這些領域的基礎,之後無論是選擇研究方向,仍是作工程時遇到的底層問題,有個瞭解總比啥都不知道強啊。

哪一個領域熱門?有前途?你個小本科生操什麼學術大牛的心啊。

我用一個簡單的例子回答你:

畢業後去阿里好仍是騰訊好?

這倆公司哪一個不都是多少年的企業了?在哪學不到東西?你是去當小兵,又不是去當高管。因此說,不能浮躁,不能事事都想找出個最優選項,你才大一,確實不必~打牢基礎,學好數學、英語纔是正道。

(你可能須要點的技能樹)

 

 

 

 

 

 

 

 

 

 

 

 

如何入門編程?

上一小結把本科中大體走向介紹了一下,不過…喂喂,學弟學妹還不會編程哎!

我可沒打算用一篇文章把你們的編程帶入門了…

先普及概念啦啦啦,這時候再忘掉本科的路線之爭吧~忘掉刷題的學霸,忘掉工做室的大神,忘掉保研,出國巴拉巴拉,咱們談編程!

 

優秀的程序員應該具有兩方面能力

  • 良好的程序設計能力:
    • 掌握經常使用的數據結構和算法(例如鏈表,棧,堆,隊列,排序和散列);
    • 理解計算機科學的核心概念(例如計算機系統結構、操做系統、編譯原理和計算機網絡);
    • 熟悉至少兩門以上編程語言(例如C++,Java,C#,和Python);

 

  • 專業的軟件開發素養:
    • 具有良好的編程實踐,可以編寫可測試(Testable),可擴展(Extensible),可維護(Maintainable)的代碼;
    • 把握客戶需求,按時交付客戶所須要的軟件產品;
    • 理解現代軟件開發過程當中的核心概念(例如面向對象程序設計,測試驅動開發,持續集成,和持續交付等等)

嗯,我只是先介紹一下名詞,好歹之後看到知道怎麼回事,否則多丟人,啊哈哈哈…

我並不以爲高考後的暑假可讓你一躍成爲大神,因此這裏只談啓蒙階段。

 

啓蒙

深呼吸,咱們要開始啦!

先看段視頻唄:What MostSchools Don't Teach

下面我來給你洗洗腦~

 

編程很酷

You can code. They cannot. That is prettydamn cool.
LearnPython The Hard Way

 

不要浮躁

Bad programming is easy. Even Dummies can learn it in 21 days. Goodprogramming requires thought, but everyone can do it and everyone canexperience the extreme satisfaction that comes with it.

 

保持興趣

Most good programmers do programming not because they expect to get paidor get adulation by the public, but because it is fun to program.

Linus Torvalds

 

再來點具體的~

咱們信軟沒有 計算機導論 這門課,和編程有關的直接就是C語言了,我以爲很差,暑假補一門公開課吧:

MIT 計算機導論課(若是你英語不過關:麻省理工學院公開課:計算機科學及編程導論

Harvard CS50 (若是你英語不過關:哈佛大學公開課:計算機科學 cs50 )這門課與MIT的導論課互補。教學語言涉及 C, PHP, JavaScript + SQL,HTML + CSS,能夠很好激發學習計算機的興趣。

 

看這兩門課的時候,能夠用Codecademy 把 Python的操做熟悉一下;

學C語言的時候呢,不要看譚浩強的書~ C語言編程 或者 C和指針 都不錯,要看書噢,要敲代碼,具體細節問導生咯。

編碼的奧祕 這本書也能夠放進待讀書目啦,這樣你對整個計算機架構就有個瞭解啦啦啦

Computer Science: An Overview 這本書是清華第一學期要看的書,對計算機科學有了系統的介紹~

 

結束啓蒙階段後,咱們積累了必定的代碼量,對編程也有了必定的瞭解。這時你可能想去學一門具體的技術,諸如Web,Android,iOS什麼的,嘗試作一些儘量簡單的東西吧,給本身一些正反饋,補充本身的推進力。

 

但你確定會問Web開發這些怎麼學…學校有選修課,網上也有那種入門級的視頻,也能夠看書自學~

 

技術怎麼搞?邊實踐邊學習!

以作網站爲例,首先你能夠看看《Head First HTML5》和《Head First PHP & MySQL》,或者用Codecademy,學會基本操做。而後找一些做品,好比WordPress,和它的一些經典模板,去看別人是怎麼作的。而後,你 就能夠本身設計一個小網站,嘗試把它作出來。不用等什麼都學會了再開始作。作的過程當中,你遇到什麼障礙,再有針對性地去學習和解決。

作完了是吧?但別深刻,這些技術有無數的細節,未來會有時間去學習;一樣的,這時候也別過於深刻特定的框架和語言,如今是學習計算機科學核心基礎知識的時候,抄近路是不對的~

你搞搞技術能夠,但你必定要把通用基礎知識搞明白 ! 特別喜歡這些玩意?我無論,我無論,我無論,反正你要把基礎打好。

 

方法

嘴上說只講啓蒙,身體卻很誠實嘛…

兩條路線~

1.   特別喜歡編程的,打心眼裏喜歡的,好比@vczh ——先寫再看書

輪子哥說過:「

像設計模式這種須要大量經驗才能夠領悟到的知識,若是你歷來沒獨立寫過一個上萬行的程序,你以爲你能理解設計模式在講什麼嗎?你不能!我以爲這種時候能作的也就是背下來,理解什麼的都是扯淡。

但當你把項目作得越大、越複雜、算法越扭曲、界面越華麗、尺寸已經大到你以爲不學習新的方法論就確定會讓代碼失控的時候,這個時候你來看設計模式的書,保證是每看到一個模式都以爲人家說到你心坎裏去了。那你不只能夠迅速理解,並且之後還能夠情不自禁的想起來使用它。」

       可是嘞,這期間會有太多的事讓你中斷這一行爲了,若是不是真愛,必定堅持不下去~

 

 

2.     普通用戶 ——先看書再編程

這個就容易理解啦~符合咱們的認知規律,再也不贅述。

 

一個根本途徑——刻意練習

我有這個必要告訴大家一點,人生的經驗~

知識分爲溫馨區,學習區和恐慌區。溫馨區——輕鬆搞定;學習區——大量投入;恐慌區——無從下手。因此咱們練習的時候,要儘可能把題目都安排在學習區這裏,這樣才能讓你進步快的同時,還不會被問題打倒。

 

豆瓣上有個叫心智工具箱的系列~

還有劉未鵬的《暗時間》,都是講認知科學的,有興趣能夠看一下~

 

 

 

參考資源:

@蕭井陌@Badger      編程入門指南v1.4

@左耳朵耗子                程序員技術練級攻略

@vczh                如何成爲牛逼的程序員

這是幾篇比較有質量的入門攻略了,能夠參考一下,具體細節問泥萌導生哈。泥萌導生但是身經百戰了,見得多了。

其餘的各類資源,本身蒐羅咯,智商能低,情商能低,搜商不能低!

 

 

 

 

 

 

 

 

 

 

資源分享

知乎上,有哪些計算機科學與軟件工程方面值得一看的問答?


知乎上,前端開發領域有哪些值得推薦的問答?

看不看先存下來,萬一無聊的時候想看了呢!

 

對了,關因而下載電子書或者本身買書的問題,不要道德帝,不要玻璃心!要懂法律:

中華人民共和國著做權法釋義 (第22條)

第二十二條 在下列狀況下使用做品,能夠不經著做權人許可,不向其支付報酬,但應當指明做者姓名、做品名稱,而且不得侵犯著做權人依照本法享有的其餘權利: 
  (一) 爲我的學習、研究或者欣賞,使用他人已經發表的做品; 
  (六) 爲學校課堂教學或者科學研究,翻譯或者少許複製已經發表的做品,供教學或者科研人員使用,但不得出版發行;

 

 關於書籍的選擇

其實僅僅從入門的角度講,你能學到的那點知識,網上隨便那種博客都能知足你。但爲啥咱們總喜歡黑譚浩強呢?(這一次,譚浩強從新發明了C語言)由於即使知識有了,內功不紮實,對算法或者工程都沒有益處,因此國人寫的那些書,仍是儘可能不要看了~看看經典的吧 !

並且你想,你讓我跟你推薦本書,我確定也會說比較經典的啊,你一查,發現這書牛哎,是否是對個人信任度也就高了呢? 面試的時候,若是面試官問起來看過啥書,你說出來那幾本經典書的時候,這也是加分項。不信你看 怎樣花兩年時間去面試一我的

關於書單,有一份比較好的總結,請參看 程序員必讀書單

 

 

 

 

 

 

 

 

這裏就是一些老生常談,老調重彈了~ 若是你有耐心看到這裏的話,堅持看完吧~

 

不積跬步,無以致千里;_______________。(請填空)

 

本科生找工做和研究生不同,基礎是最重要的,競賽成績和項目經驗乃錦上添花。

 

本科生找工做和研究生不同,基礎是最重要的,競賽成績和項目經驗乃錦上添花。

 

本科生找工做和研究生不同,基礎是最重要的,競賽成績和項目經驗乃錦上添花。


什麼樣的年紀作什麼樣的事,就是最好的安排。

 

這句話對應想表達的意思就是:在該打基礎的時候要好好打基礎,不要追求一些浮誇的東西。你如今走的捷徑,之後會有多達十倍的彎路等着你繞。

 

互聯網行業最大的包容性在於它能夠接納各式各樣背景千態、水平不一的入行從業者。對於CS/SF專業學子來講,是好的也是很差的現象。

 

你看人家通訊工程啊,微固啊,這種科目屬於門檻高,沒人教你學不會 的那種。EE的東西,光靠上課那點東西連門都入不了。只上過學校模數電課的人,作出來的板子壓根就不能用,你覺得按照書上的連線電路就能正常跑麼?有時候跑着跑着就會自激震盪,這個時候又要具體狀況具體分析。不一樣品牌的元器件即便參數相同也會在不一樣頻率上有不同的性能,怎麼選擇也是一門學問,這就已經不是電路圖能夠描述的了。


      深刻到微弱信號、高頻那塊更是一堆深坑。佈線、電磁兼容、信號完整性分等等要注意的點都不是本身隨便看看書,就能學會的,大多數人仍是靠前面的人帶着走的(固然,我電的通訊工程是有這個實力帶着走的)。並且,EE動手實踐的條件更高,至少要有示波器吧。再加上實驗過程當中的隨機性,它的門檻你懂了吧?

 

而咱們就不同了。從學科上講,CS具備完備性的學科體系,是熵爲零的,各類知識和模型都是自洽的,是爲實際應用服務的,你寫出來的代碼是什麼,運行出來就是什麼。學習工具只要一臺電腦也就足夠了。從實際運用上講,網上無論是電子書 仍是技術博客也多得是。連大專學歷的人也能碼出不少代碼,並且人家寫SQL語句,調API說不定比你還熟。

因此若是你不掌握核心科技,就會被無縫替換掉~

說真的,如今纔開始搞編程,已經晚了一大半了 …極少數人能在本科四年完成超越,大多數人還須要研究生的積澱才能成爲一名優秀的程序員,因此,要拿出高三的勁學編程噢 !

好吧…我是故意渲染了就業壓力的色彩,其實按照咱們的擇業標準,咱們的意向公司是壓根不會招那種培訓學校出來的學生的,由於那幫人根本不能用,啊哈哈哈哈…

但咱們專業的學生是否是搞好編程就真的成功了?不見得。因此我仍是建議你們,除了計算機科學之外,多接觸一些經濟金融方面的東西,往大了說能夠 提升我的素質,往小了說,能夠爲轉碩士金融或者CS PhD以後的Quant之路作鋪墊。

計量經濟學導論》、《微觀經濟學》、《期權、期貨和其餘衍生品》是三本很經典的書,固然啦,你也能夠問你相關專業的同窗~之因此寫在跋裏,是避免與主題形成衝突,但我我的以爲仍是蠻重要的哈。固然,還有寫做之類的

來個彩蛋!
   根據 我電校友 ——目前是鵝廠的安卓開發主程 ——的介紹,校招要看以下內容!~

· 實習經歷

· 專業成績排名

· 專業競賽成績

· 高水平科研成果

· 校內技術團隊/互聯網企業俱樂部核心成員

· 國家級重點實驗室核心項目成員

其實還有一個彩蛋!——送給出國黨

你要出國,好歹得想清楚下面幾個問題吧?

國內外CS教育的異同?

若是你想讀研,你自身的興趣點在哪一個領域?

若是本科想搞科研的話如何起步?

      保研vs 出國:

a)是否應該在國內先讀研再申請出國?

b)應該選擇保研仍是出國?  

c)導師的承諾是否可信 ?

若是鐵了心想出國,MasterOr  Phd?

你好歹得知道一下自費讀 Master的費用開支   全獎PhD的就業問題 

以及美國博士要讀多久才能畢業這樣基本的問題吧?   

想好了之後,那麼Master的話怎麼準備?  PhD的話怎麼準備?

無論怎麼說,基礎是最重要的!若是你核心專業課沒有掌握,只是分數高,績點高,那你叫高分低能;若是你核心專業課沒有掌握,只是鼓搗Web開發,Andriod開發,即使是參加ACM,也是點歪技能樹 ;若是你核心專業課沒有掌握,只是這主席,那部長的,那你叫遊手好閒

     有的知識可能你學完之後的很長一段時間裏不會在實際工程中接觸到,但請不要質疑這些知識的存在和意義,那只是由於你作的工程還不夠牛逼。它們是一種烙印式的知識儲備,不然當你真正須要用到它們的時候,會有一種技術盲從感。       雖然互聯網行業是一個須要不斷迭代知識體系的行業,但萬變不離其宗,天才也是少數,最好仍是一步一步來。共勉!