Overview

编程是什么:

在我的眼里,编程是对生产生活的一种抽象,下一层的语言是对上一层的语言的抽象,直到抽象到10,能让计算机看懂为止。学习编程的过程就是学习抽象的过程,如何将具象、明确的事物,准确高效地抽象总结成计算机能够执行的指令,这是编程的核心问题。而解决这些问题的过程是繁复的,如果没有足够的好奇心、成就感,恐怕确实不适合编程。

开始:

我学习的时候第一门语言是 python, python是很接近自然语言的语言

list = [“wo”,“shi”,“sha”,"bi"]
for word in list:
  print(word)
# wo
# shi 
# sha 
# bi

你看,只要这么几行代码就可以在电脑上显示出我是傻逼字样,有趣。

python学习:

这上面是基础教程,教一些python的基本语法
这个是慕课网,主要是一些网络编程语言和软件教程

注意:一开始就学习python主要是为了感受语言,python隐藏了许多电脑底层的东西,并不适合用来学习电脑知识

python是自学的,学了一点python之后我就开始强行学java,书的还就是core java之类的,我也没很仔细看,就是大概看了一下,然后就凭感觉看起了
Algorithm(4th edition)
这本书,并且配合
priceton super niubi white hire old men course - 1
priceton super niubi white hire old men course - 2
这两门课学完了这本书,你如果可以把所有的作业都写完,那你可以说是很棒棒了,我反正只做了前三个作业。
这个时候你的算法和数据结构的概念应该比较清晰了。

第一学期选的课:

然后我选了cs570,那个时候cs570还是用c++教的,甚至还有期中考这种神奇的东西,现在的话应该是cpe593教这类的东西吧(反正不是c++就是java),其实我后来才理解,java并不适合入门,因为面向对象(object-oriented)这个概念并不好理解,虽说c/c++里面的指针也是比较吊的,但你拼命看个几个小时也知道个大概了,不像oo需要项目才能理解。如果你选了cs570活着cpe593,建议所有的作业不管是不是小组的,都自己一个人写完,SIT的同学们基本不会抢着写作业的,你写了知识就是你的,何乐而不为?何况本来就是基础中的基础。

同时选的课还有cs561,学了点sql和jdbc,后来就再也没有用过了。。。学的时候会涉及一点点数据库原理,认真看书的话还是有点收获的。

还有就是cs550了,这门课的作业其实没什么毛病的,如果你是cs零基础,这门课应该好好把书看一边,这是计算机组成原理,对于以后理解计算机很有帮助(虽然北美cs面试是几乎不会考这些的)。

c++:

c++是很底层的语言,我一开始并没有直接《c++ primer》,而是随便找了一本中文c++书看,其实primer就是挺基础的,直接看就好了,看到template那一章就行(看书的时候记得注重概念,而不是技巧,比如function pointer那里,其实如果你不用的话很容易忘掉它的写法,与其记住它的写法,更应该记住它是个什么东西,以及什么时候需要用到)。
这里有一些适合c++初学者写的project,可以试试,反正我没试。
windows的话,首先你的电脑需要可以编译(运行)c++的平台(软件),下载visual studio community(这是一个IDE,可以自己查查IDE是什么),然后网上找找教程写一个hello world程序感受一下:
mac的话直接用terminal来编译运行吧,学习效果更好。

学c++的时候可以百度(考虑)以下问题:

  • 程序编译的过程是什么
  • 什么面向对象编程,什么是面向过程编程
  • 汇编语言是什么,机器语言是什么
  • 为什么c++编写的程序比java更快,为什么java编写的程序比python更快

java:

下面可以学习java,为什么我把java放在c++后面?因为java出现在c++之后,是总结了c++的优缺点而出现的完全面向对象编程(object-oriented)的语言,不过我个人认为c++和java是可以一起学习的,两种语言的对比结合可以让自己对语言的认识更深刻:
http://www.imooc.com/learn/85
http://www.imooc.com/learn/124
http://www.imooc.com/learn/110
全都学一下吧,然后可以学学java的设计模式(design pattern),会让你对object-oriented programming有新的认识
java可以用来开发android的手机app,也有ASP这样的框架(一种别人写好的方便实用的类似平台的东西)可以用来写网页程序,网上有数不尽的项目可以写
学习java的过程中,可以考虑以下问题:

  • java与c++有哪些异同?
  • 为什么需要面向对象编程?
  • 除了面向对象、面向过程编程的语言,还有面向什么编程的语言?

第一学期暑假:

第一学期快结束的时候我找了个 unity 的教程学了下,用的是C#,挺简单的,但是帮我瞬间理解了面向对象编程。
暑假的时候我参加了一个项目,是学校EE学院组织的,具体叫啥忘了,反正是什么summer research,做的很水,学了点 javascript 和前端的东西,写了个小网页,没啥卵用,然后一个暑假两个多月(我回家一个月)时间把leetcode的题目刷完了,当时380多道,你可以估计一下你现在的刷题速度,一开始刷题多少都会遇到点困难,但是多总结多理解的话就还好,除了 dynamic programming(建议看一下 introduction to algorithm) 和一些类似 bit manipulation 的稀奇古怪的题之外,你都应该要能做出来才行(讲道理的话dp的题目大部分也应该能做出来才对)。

第二学期选的课:

cs546,跟风选的,教了些前后端的东西,主要用javascript,没有什么难度,但是可以让你大概了解下网络知识,不至于一头雾水,我开学前十天就做完了一个学期的作业,课程基本看视频就行了,最后写一个网站,我觉得要是比较闲的话就一个人写完得了。。。万一队友坑你呢?

还选了cs600,其实如果你自己上完这个课,并且写掉作业的话,对算法肯定是有巩固作用的,反正我是没认真学。

还有个cs810,这个课每年都会换,是cs的水课,我在这课上学了 swift,写了俩 app,在这里学的ios开发 ,如果你时候题目刷的差不多的话也可以写写项目了,不用担心写什么项目,什么都行,反正写就对了。

第二学期寒假:

这个时候我已经迷茫了,因为简历并没有什么项目,然后计算机底层也不会,感觉面试面不过(其实可以面了,我想多了),本来打算寒假再总结一些刷过的题目,但是实在提不起兴趣,于是就水过去了。。。其实花了十几天时间水了一个 operating system 的网课,大概明白操作系统是个什么东西,作业太难了,一个都没写。

第三学期选的课:

cs615,这课可以的,学点命令行,可以装逼,让你自己感觉仿佛像个黑客一样(屁),作业量也不大,但是还蛮有锻炼效果的,以后找到工作了不至于环境都配不好。其实我有点后悔,应该吧cs631也选了,据说也讲得很好。

然后瞎猫碰上死耗子就进了 Amazon,面试毫无意义,就是划水,之前学的什么都没用上,但是我知道我既然拿到了offer那就肯定没办法好好继续准备面试了,所以怒答应。之后我就比较开心了,看完(差不多完了)了 thinking in java,c++ primer,computer system a programmer perspective,little java,还顺便学了点Lisp。

大概我就是这么学的了,你照这么学我保证你技术方面是没有什么问题的,至少是问题不大的,但是找工作,这是另一个技术,可能看面经,有针对性的准备面试更加靠谱。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,123评论 6 490
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,031评论 2 384
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,723评论 0 345
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,357评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,412评论 5 384
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,760评论 1 289
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,904评论 3 405
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,672评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,118评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,456评论 2 325
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,599评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,264评论 4 328
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,857评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,731评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,956评论 1 264
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,286评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,465评论 2 348

推荐阅读更多精彩内容

  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,087评论 6 244
  • TITLE: 编程语言乱炖 码农最大的烦恼——编程语言太多。不是我不学习,这世界变化快! 有时候还是蛮怀念十几、二...
    码园老农阅读 5,300评论 2 35
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,742评论 25 707
  • 夜寂寥。 引娇蚊,卷柔风。 娇蚊隔窗望晚风,晚风不动,告知树叶儿小温情。 树叶儿夜中小摇曳,不舍枝,不舍夜。 娇蚊...
    司才林阅读 304评论 19 20