我是如何学习计算机编程的

我在很小年纪的时候就开始学习编程,我学习编程的方法是创建大量的不同的网站。下面列出的是我创建的主要的网站,其中最早的一个是我11岁时开发的。我希望读者能从我这些复述中获得的信息是:如果你想学习编程,做大量的练习性的项目是非常必要的。

学习一种技术最好的方法就是练习,练习,练习。所有我知道的最优秀的程序员都深深的享受编程——编程是一件让他们干起来无由的高兴的事情。也因此他们大量的编程。经常,那是一种不健康的废寝忘食。学习如何编程——以及如何编程——并不需要你具有超人的能力。你只需要去按照自己的意愿动手去做,做出点什么东西。

做什么东西并不重要,重要的是你找到东西动手去做。我所认识的那些优秀的程序员,他们都有各自不同的最初学习编程的动机。有些人学习编程是为了开发动画游戏。有些人是为了解决他们在使用计算机时遇到的问题,或让工作更有效率。有些人是为了开发产品来满足人们的需求。有些人(真正的程序员)学习编程只是他们为了深入了解计算机工作原理的步骤之一 ;他们希望能搞清楚这种机器。有些程序员编程只是因为他们享受解决难题的挑战。

让所有这些“优秀程序员”统一起来的唯一因素就是,他们全因为生活中的某些原因而为编程着迷,继而花大量的时间编程,做大量的,大量的用于练习的项目

那么,我就不再罗嗦了,下面就是我如何学习编程的故事:

我的第一个网站

在我大概十一二岁的时候,我感到需要给自己做一个网站。我已经记不清为什么需要一个网站了,只记得那样就开始做了。于是我就在网上搜索关于网页、Web浏览器、HTML如何工作的信息。很多的信息我发现都已经过时了,有些明显是错误的或给了错误的向导(例如为IE浏览器和Netscape浏览器分别做网站),但过程是非常的有趣的,我学到了很多新东西。

尽管在网上搜到了很多粗制滥造的的信息,我还是想办法做了一个简单的网站,我叫它“Feross的网站”。开发它,我使用的是微软的Frontpage,那是一个非常棒的所见即所得的HTML编辑器。我使用很常见的语法,例如粗体,斜体等对网站做修改,在编辑器里即时查看这些HTML标记能达到的效果。这是很有效的学习方式。

下面是我的第一个网站的截屏。这个网站已经不存在了。

你从上面的图片上看不出来,这个网站上的每个元素都在动,闪烁的动画,还能出声。我在网站的每个页面上都放置了不同的MIDI格式的歌曲。而且都是自动播放,你没有办法让它们停下来,除非把电脑消音。哈,这就是当年流行的网站设计风格。 

等再长了几年岁数后,我们重新设计这个网站,让它变的漂亮些。我使用了在网上发现的一些免费的网站模板,用微软的画图工具修改了一些图片。

经管我大量的依赖于模板,但这不失为一个学习HTML和Web浏览器的好方法。“Feross的网站”除了用来收集我小时候的一些视频外没有其它用处,所以不久后我就对它失去了兴趣。

我的第一个真正的

当我9年级(14岁)时,我和我的朋友都非常着迷与观看像Newgrounds 和eBaumsWorld这样的网站上的flash视频和动画(这是2005年之前,还没有YouTube)。我在这种网站上花了大量的时间,所以我知道所有最好的视频和游戏。我想,如果做一个网站来收集这些在网上发现的我喜欢的flash动画、视频、游戏,会是一件很酷的事情。这就是我做出FreeTheFlash网站的初衷。它是这个样子的:

我从开发“Feross的网站”的过程中学到了很多HTML知识,这次我使用了Macromedia 公司(现在的Adobe公司)的Dreamweaver编辑器,这个东西能让我在网站里重复的页面使用同一个模板。

一段时间后,我意识到,我应该让网站动起来,听说是应该使用一种叫做PHP的编程语言来做网站,而不是只使用静态的HTML。于是,我买了花了20美元从Amazon买了一本书,叫做《PHP and MySQL for Dynamic Websites》,使用PHP和MySQL对网站进行了重新设计。我还给它进行了新的美化:

在高中时期我对这个FreeTheFlash 网站的开发持续了2年。它对于我的第一次尝试做一个“真正”的网站来说是相当成功的——在2006年,它获得了60万人/次访问,页面浏览量达3百万。FreeTheFlash 让我知道了做出一个产品、让它杰出、看大量的人使用它,是一件多么自豪的事情。它让我想做出更大的网站。

我的第二个网站

在中学,我在上计算机课程时做了大量的笔记。于是,在11年级时,我觉得应该把这些笔记放到网上,让那些不喜欢看课本的学生使用。我做了一个网站,叫做StudyNotes,使用的是PHP和一个叫做Joomla的内容管理系统。我也尝试过使用Drupal,但发现它太复杂了。

同年,我为我的学校Key俱乐部分部做了一个网站,如今也不用了。

这段时间,我花了大量的时间泡在WebmasterWorld里,这是一个论坛,主要关于网站站长和SEO专家推测Google算法,讨论AdSense技巧,调试网站问题等。

大量的学习和阅读

等我进入了斯坦福大学后,我学习了大量的计算机课程,诸如CS106X 和CS107,我还超前学习了部分CS106课程。

所有的课余时间我几乎都在阅读关于设计、编程、浏览器和JavaScript等方面的资料。一般每天4-5个小时。

如果你要问我都读什么?乱七八糟的。但大部分都是我敬仰的设计师和程序员写的博客。你可以从这篇博客的右侧看到我列出的部分博客链接。

关键一击

之后,在2010年夏天,当我在Facebook实习时,因为跟一个朋友打赌,我开发了YouTube Instant,它是一个用来实时搜索YouTube视频的网站。这个网站在建成之后的10天里获得了1百万用户的访问量,YouTube的CEO甚至给我发消息说提供一个职位给我,你可以从这里看到这些媒体的躁动。

我知道YouTube Instant的成功归功于当前的好时机和一点幸运。我想,我们很多人不知道自己能做出什么。

继续前行

我注意到很多人使用YouTube Instant来听音乐视频,这让我想到了另外一种使用YouTube API的好方法。于是,我的朋友Jake Becker 和我在2011年的头3个月里开发了Instant.fm,它能让你轻松的向朋友分享音乐播放列表。通过这个项目我们都学到了很多新的东西。

在这个工程中我掌握的技术:

以及其它一些我们学会使用的东西:

动手去做!

我把从11岁就开始做的东西都不厌其烦的曝出来,目的就是要说,如果你想学习编程,你需要动手去做东西!现在就去。不要找任何借口。

做东西是最好的学习方法。

从头到尾读一遍编程语言书籍是一件很无聊的事,读到一半你就读不下去了。但,如果你想做一个项目,你在做的过程中会知道你该学习哪些知识,这是认识和掌握知识更有效的途径。

计算机课程

大学里的计算机课程是学习编程的另外一种十分有效的方法。大多数好的计算机课程都十分强调学习计算机科学领域里的重要概念和范式,而不是教你某个特定的语言。这能让那些从来没有接受过正规教育的人在自学时开阔眼界。

记得在斯坦福大学上第一堂计算机课程时(那是教授C++的课程),我在想“怎么可能变量前不带$符号呢?”当时我只使用过PHP!  我用了好长一段时间才改掉在变量前加$符号的习惯!

在软件公司工作

另外一个提高编程水平的方法就是到软件公司实习,比如Facebook或Quora,最近的两个夏天我就是在这些公司里度过的。你会从那些优秀的人那里学会如何更好的编程,如何阅读和理解他人的代码,如何在大项目中进行团队合作。

还是那句话——比什么方法都管用——学习编程最好的方法就是做项目练习。我是不是重复这句话无数次了? 

如何学会编程:

  • 做练习性项目。
  • 看编程书籍。
  • 做项目练习。
  • 上计算机课程。
  • 做练习性项目。
  • 读编程类博客。
  • 做项目练习。

这就是我能给出的最好的建议。

祝编程愉快!

文章转自:http://www.itxxz.com/a/zhichang/2014/0618/96.html

译文出处:http://www.vaikan.com/how-i-learned-to-program-computers/

转载请注明链接

我是如何学习计算机编程的

时间: 2024-10-11 00:54:38

我是如何学习计算机编程的的相关文章

第1次作业:学习计算机需要多加思考

这篇随笔记录了我阅读这些博文的感想. 第一部分:结缘计算机 当初选择计算机这个专业,是因为自己对编程这块还是有一定的兴趣的,希望能够编制一些有趣或者有用的软件或者程序:当然另一方面的原因就是这个专业比较好就业,并且对其它大部分专业也没有太大兴趣,所以目前计算机是我喜欢但不是非常擅长的领域.我认为我目前的条件还是可以学好计算机的专业知识,但对比老师推荐的这些博主来说还是相差甚远的. 第二部分:在计算机系里学习 我觉得我最想吐槽的就是选择咱们这个专业并不能完全专一地学习计算机编程,学的太杂.至于国内

计算机编程从入门到精通,如何才能快速入门

资料来源于网络搜索 [王西猛讲师的网络课堂] 学习计算机编程,难点有二:1.没有编程思路,即使学习了很长时间,也不能够开发一款完整的软件出来 2.要记忆的专业术语太多,造成记忆混乱 ,特别是学习复杂的编程语言更难.也就是说,编程入门很难. 所以在开始学习编程语言之前,需要有一个过渡的课程,来快速掌握编程思路.下面给大家介绍一款中文汉语编程开发平台,里面有详细完整的视频教程,半个月基本就可以开发一个简单的软件,初步熟悉编程思路之后然后再学习其他的复杂的编程语言,是很容易的.因为基本上编程语言开发的

有一定基础的 C++ 学习者该怎样学习 Windows 编程?

人的心理有个奇异的特性:一项知识一旦学会之后,学习过程中面临的困惑和不解非常快就会忘得干干净净,似乎一切都是自然而然,本来就该这种.因此,关于「怎样入门」这类问题,找顶尖高手来回答,未必能比一个刚入门不久的人来回答要好.就譬如最高票的那个回答,是一个非常精通 Windows 编程的高人回答的,但这种答案能给刚開始学习的人带来多少帮助,我这里想先打一个问号. 前段时间刚辅导了一个学生学会了 Win32 GUI 编程,刚好看到这个问题,顺手就邀请他回答了.并不是是给他布置总结作业,不过希望能从他这里

有一定基础的 C++ 学习者该如何学习 Windows 编程?

人的心理有个奇妙的特性:一项知识一旦学会之后,学习过程中面临的困惑和不解很快就会忘得干干净净,似乎一切都是自然而然,本来就该这样的.因此,关于「如何入门」这类问题,找顶尖高手来回答,未必能比一个刚入门不久的人来回答要好.就譬如最高票的那个回答,是一个非常精通 Windows 编程的高人回答的,但这样的答案能给初学者带来多少帮助,我这里想先打一个问号. 前段时间刚辅导了一个学生学会了 Win32 GUI 编程,刚好看到这个问题,顺手就邀请他回答了.并非是给他布置总结作业,仅仅是希望能从他这里得到第

学习Python编程的11个精品资源

本文由 伯乐在线 - atupal 翻译自 Alex Ivanovs.欢迎加入技术翻译小组.转载请参见文章末尾处的要求. 用 Python 写代码并不难,事实上,它一直以来都是被声称为最容易学习的编程语言.如果你正打算学习 web 开发,Python 是一个不错的选择,甚至你想学游戏开发也可 以从 Python 开始,因为用 Python 来构建游戏的资源实在是太多了.这是一种快速 学习语言的一种方法. 许多程序员使用 Python 作为初学语言,然后接着是像 PHP 和 Ruby 这样的语言.

学习面向对象编程OOP 第一天

面向对象编程 Object Oriented Programming 一.什么是面向对象编程OOP 1.计算机编程架构; 2.计算机程序是由一个能够起到子程序作用的单元或者对象组合而成.也就是说由多个程序单元可以拼凑成一个完整的功能程序; 3.三个目标:重用性.灵活性和扩展性; 4.每个单独的对象或者单元都可以实现数据的接收.处理和发送; 5.在实际的项目开发中,都会使用达到OOP去声明类,而且在项目里面只用对象和类. 详细参考网址(根据原文学习的) http://www.cnblogs.com

五本书籍助你从零基础学习java编程到精通之路

前天的文章给大家介绍了Java初学者应该学习哪些基础,亦是美网络小编从Java的三个大方向:J2SE.J2EE.J2ME对大家做了前景分析,这两天也收到了大家的很多反馈,很多小伙伴看了后对自己的Java编程方向有了比较明确的目标,也有小伙伴们说,要是能提供一些Java初学者应看的书籍就更好了,其实推荐Java书籍已经被规划在小编写的Java编程系列文章之中,常言道:书中自有黄金屋,书中自有颜如玉,下面亦是美网络小编给大家推荐的Java书籍中虽然没有黄金屋和颜如玉,但却能让Java编程的初学者快速

免费计算机编程类中文书籍

摘自github 语言无关类 操作系统 开源世界旅行手册 鸟哥的Linux私房菜 (简体) Linux 系统高级编程 The Linux Command Line (中英文版) Linux 设备驱动 (第三版) 深入分析Linux内核源码 UNIX TOOLBOX WEB服务器 Nginx开发从入门到精通 (淘宝团队出品) 版本控制 git - 简易指南 Git 参考手册 Pro Git Git Magic GotGitHub Git Community Book 中文版 Mercurial 使

非计算机专业学习计算机

一个同学的问题:李老师好,我是一名文科类专业学生,但本身对计算机信息专业方面很感兴趣,并希望在此方面有所发展,但对该学科总体架构方面诸多迷惑,不知您能否为我提出些许建议? 我想了一下计算机专业的课程设置给了如下建议: 1.找计算机系统结构.组成原理.操作系统.计算机网络.数据库原理.信息管理系统这些书看看,能理解多少理解多少.这个可以和下面的过程同步进行,并且重复多遍.2.找本C语言的书或者Java语言的书,书一定要偏操作的,最好你能跟着书做.把书后的习题上机调试了.3.找本数据结构的书,尽量去