編程是什么:
在我的眼里碑韵,編程是對(duì)生產(chǎn)生活的一種抽象,下一層的語(yǔ)言是對(duì)上一層的語(yǔ)言的抽象缎脾,直到抽象到10祝闻,能讓計(jì)算機(jī)看懂為止。學(xué)習(xí)編程的過程就是學(xué)習(xí)抽象的過程,如何將具象联喘、明確的事物华蜒,準(zhǔn)確高效地抽象總結(jié)成計(jì)算機(jī)能夠執(zhí)行的指令,這是編程的核心問題豁遭。而解決這些問題的過程是繁復(fù)的叭喜,如果沒有足夠的好奇心、成就感蓖谢,恐怕確實(shí)不適合編程捂蕴。
開始:
我學(xué)習(xí)的時(shí)候第一門語(yǔ)言是 python, python是很接近自然語(yǔ)言的語(yǔ)言
list = [“wo”,“shi”,“sha”,"bi"]
for word in list:
print(word)
# wo
# shi
# sha
# bi
你看闪幽,只要這么幾行代碼就可以在電腦上顯示出我是傻逼字樣啥辨,有趣。
python學(xué)習(xí):
這上面是基礎(chǔ)教程盯腌,教一些python的基本語(yǔ)法
這個(gè)是慕課網(wǎng)溉知,主要是一些網(wǎng)絡(luò)編程語(yǔ)言和軟件教程
注意:一開始就學(xué)習(xí)python主要是為了感受語(yǔ)言,python隱藏了許多電腦底層的東西腕够,并不適合用來學(xué)習(xí)電腦知識(shí)
python是自學(xué)的级乍,學(xué)了一點(diǎn)python之后我就開始強(qiáng)行學(xué)java,書的還就是core java之類的帚湘,我也沒很仔細(xì)看玫荣,就是大概看了一下,然后就憑感覺看起了
Algorithm(4th edition)
這本書客们,并且配合
priceton super niubi white hire old men course - 1
priceton super niubi white hire old men course - 2
這兩門課學(xué)完了這本書崇决,你如果可以把所有的作業(yè)都寫完,那你可以說是很棒棒了底挫,我反正只做了前三個(gè)作業(yè)恒傻。
這個(gè)時(shí)候你的算法和數(shù)據(jù)結(jié)構(gòu)的概念應(yīng)該比較清晰了。
第一學(xué)期選的課:
然后我選了cs570建邓,那個(gè)時(shí)候cs570還是用c++教的盈厘,甚至還有期中考這種神奇的東西,現(xiàn)在的話應(yīng)該是cpe593教這類的東西吧(反正不是c++就是java)官边,其實(shí)我后來才理解沸手,java并不適合入門,因?yàn)槊嫦驅(qū)ο螅╫bject-oriented)這個(gè)概念并不好理解注簿,雖說c/c++里面的指針也是比較吊的契吉,但你拼命看個(gè)幾個(gè)小時(shí)也知道個(gè)大概了,不像oo需要項(xiàng)目才能理解诡渴。如果你選了cs570活著cpe593捐晶,建議所有的作業(yè)不管是不是小組的,都自己一個(gè)人寫完,SIT的同學(xué)們基本不會(huì)搶著寫作業(yè)的惑灵,你寫了知識(shí)就是你的山上,何樂而不為?何況本來就是基礎(chǔ)中的基礎(chǔ)英支。
同時(shí)選的課還有cs561佩憾,學(xué)了點(diǎn)sql和jdbc,后來就再也沒有用過了干花。妄帘。。學(xué)的時(shí)候會(huì)涉及一點(diǎn)點(diǎn)數(shù)據(jù)庫(kù)原理把敢,認(rèn)真看書的話還是有點(diǎn)收獲的寄摆。
還有就是cs550了,這門課的作業(yè)其實(shí)沒什么毛病的修赞,如果你是cs零基礎(chǔ)婶恼,這門課應(yīng)該好好把書看一邊,這是計(jì)算機(jī)組成原理柏副,對(duì)于以后理解計(jì)算機(jī)很有幫助(雖然北美cs面試是幾乎不會(huì)考這些的)勾邦。
c++:
c++是很底層的語(yǔ)言,我一開始并沒有直接《c++ primer》割择,而是隨便找了一本中文c++書看眷篇,其實(shí)primer就是挺基礎(chǔ)的,直接看就好了荔泳,看到template那一章就行(看書的時(shí)候記得注重概念蕉饼,而不是技巧,比如function pointer那里玛歌,其實(shí)如果你不用的話很容易忘掉它的寫法昧港,與其記住它的寫法,更應(yīng)該記住它是個(gè)什么東西支子,以及什么時(shí)候需要用到)创肥。
這里有一些適合c++初學(xué)者寫的project,可以試試值朋,反正我沒試叹侄。
windows的話,首先你的電腦需要可以編譯(運(yùn)行)c++的平臺(tái)(軟件)昨登,下載visual studio community(這是一個(gè)IDE趾代,可以自己查查IDE是什么),然后網(wǎng)上找找教程寫一個(gè)hello world程序感受一下:
mac的話直接用terminal來編譯運(yùn)行吧丰辣,學(xué)習(xí)效果更好撒强。
學(xué)c++的時(shí)候可以百度(考慮)以下問題:
- 程序編譯的過程是什么
- 什么面向?qū)ο缶幊陶傻椋裁词敲嫦蜻^程編程
- 匯編語(yǔ)言是什么,機(jī)器語(yǔ)言是什么
- 為什么c++編寫的程序比java更快尿褪,為什么java編寫的程序比python更快
java:
下面可以學(xué)習(xí)java,為什么我把java放在c++后面得湘?因?yàn)閖ava出現(xiàn)在c++之后杖玲,是總結(jié)了c++的優(yōu)缺點(diǎn)而出現(xiàn)的完全面向?qū)ο缶幊蹋╫bject-oriented)的語(yǔ)言,不過我個(gè)人認(rèn)為c++和java是可以一起學(xué)習(xí)的淘正,兩種語(yǔ)言的對(duì)比結(jié)合可以讓自己對(duì)語(yǔ)言的認(rèn)識(shí)更深刻:
http://www.imooc.com/learn/85
http://www.imooc.com/learn/124
http://www.imooc.com/learn/110
全都學(xué)一下吧摆马,然后可以學(xué)學(xué)java的設(shè)計(jì)模式(design pattern),會(huì)讓你對(duì)object-oriented programming有新的認(rèn)識(shí)
java可以用來開發(fā)android的手機(jī)app鸿吆,也有ASP這樣的框架(一種別人寫好的方便實(shí)用的類似平臺(tái)的東西)可以用來寫網(wǎng)頁(yè)程序囤采,網(wǎng)上有數(shù)不盡的項(xiàng)目可以寫
學(xué)習(xí)java的過程中,可以考慮以下問題:
- java與c++有哪些異同惩淳?
- 為什么需要面向?qū)ο缶幊蹋?/li>
- 除了面向?qū)ο蠼短骸⒚嫦蜻^程編程的語(yǔ)言,還有面向什么編程的語(yǔ)言思犁?
第一學(xué)期暑假:
第一學(xué)期快結(jié)束的時(shí)候我找了個(gè) unity 的教程學(xué)了下代虾,用的是C#,挺簡(jiǎn)單的激蹲,但是幫我瞬間理解了面向?qū)ο缶幊獭?br> 暑假的時(shí)候我參加了一個(gè)項(xiàng)目棉磨,是學(xué)校EE學(xué)院組織的,具體叫啥忘了学辱,反正是什么summer research乘瓤,做的很水,學(xué)了點(diǎn) javascript 和前端的東西策泣,寫了個(gè)小網(wǎng)頁(yè)衙傀,沒啥卵用,然后一個(gè)暑假兩個(gè)多月(我回家一個(gè)月)時(shí)間把leetcode的題目刷完了着降,當(dāng)時(shí)380多道差油,你可以估計(jì)一下你現(xiàn)在的刷題速度,一開始刷題多少都會(huì)遇到點(diǎn)困難任洞,但是多總結(jié)多理解的話就還好蓄喇,除了 dynamic programming(建議看一下 introduction to algorithm) 和一些類似 bit manipulation 的稀奇古怪的題之外,你都應(yīng)該要能做出來才行(講道理的話dp的題目大部分也應(yīng)該能做出來才對(duì))交掏。
第二學(xué)期選的課:
cs546妆偏,跟風(fēng)選的,教了些前后端的東西盅弛,主要用javascript钱骂,沒有什么難度叔锐,但是可以讓你大概了解下網(wǎng)絡(luò)知識(shí),不至于一頭霧水见秽,我開學(xué)前十天就做完了一個(gè)學(xué)期的作業(yè)愉烙,課程基本看視頻就行了,最后寫一個(gè)網(wǎng)站解取,我覺得要是比較閑的話就一個(gè)人寫完得了步责。。禀苦。萬(wàn)一隊(duì)友坑你呢蔓肯?
還選了cs600,其實(shí)如果你自己上完這個(gè)課振乏,并且寫掉作業(yè)的話蔗包,對(duì)算法肯定是有鞏固作用的,反正我是沒認(rèn)真學(xué)慧邮。
還有個(gè)cs810调限,這個(gè)課每年都會(huì)換,是cs的水課赋咽,我在這課上學(xué)了 swift旧噪,寫了倆 app,在這里學(xué)的ios開發(fā) 脓匿,如果你時(shí)候題目刷的差不多的話也可以寫寫項(xiàng)目了淘钟,不用擔(dān)心寫什么項(xiàng)目,什么都行陪毡,反正寫就對(duì)了米母。
第二學(xué)期寒假:
這個(gè)時(shí)候我已經(jīng)迷茫了,因?yàn)楹?jiǎn)歷并沒有什么項(xiàng)目毡琉,然后計(jì)算機(jī)底層也不會(huì)铁瞒,感覺面試面不過(其實(shí)可以面了,我想多了)桅滋,本來打算寒假再總結(jié)一些刷過的題目慧耍,但是實(shí)在提不起興趣,于是就水過去了丐谋。芍碧。。其實(shí)花了十幾天時(shí)間水了一個(gè) operating system 的網(wǎng)課号俐,大概明白操作系統(tǒng)是個(gè)什么東西泌豆,作業(yè)太難了,一個(gè)都沒寫吏饿。
第三學(xué)期選的課:
cs615踪危,這課可以的蔬浙,學(xué)點(diǎn)命令行,可以裝逼贞远,讓你自己感覺仿佛像個(gè)黑客一樣(屁)畴博,作業(yè)量也不大,但是還蠻有鍛煉效果的蓝仲,以后找到工作了不至于環(huán)境都配不好绎晃。其實(shí)我有點(diǎn)后悔,應(yīng)該吧cs631也選了杂曲,據(jù)說也講得很好。
然后瞎貓碰上死耗子就進(jìn)了 Amazon袁余,面試毫無意義擎勘,就是劃水,之前學(xué)的什么都沒用上颖榜,但是我知道我既然拿到了offer那就肯定沒辦法好好繼續(xù)準(zhǔn)備面試了棚饵,所以怒答應(yīng)。之后我就比較開心了掩完,看完(差不多完了)了 thinking in java噪漾,c++ primer,computer system a programmer perspective且蓬,little java欣硼,還順便學(xué)了點(diǎn)Lisp。
大概我就是這么學(xué)的了恶阴,你照這么學(xué)我保證你技術(shù)方面是沒有什么問題的诈胜,至少是問題不大的,但是找工作冯事,這是另一個(gè)技術(shù)焦匈,可能看面經(jīng),有針對(duì)性的準(zhǔn)備面試更加靠譜昵仅。