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

标签: 学习 计算机 编程 | 发表时间:2011-10-17 08:13 | 作者:程序员 hi3w
出处:http://www.jobbole.com/blog.php
  注:本文转载自外刊IT评论,国外程序员Feross Aboukhadijeh分享的经验。

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

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

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

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

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

  我的第一个网站


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

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

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

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

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

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

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

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

  我的第一个真正的

  当我9年级(14岁)时,我和我的朋友都非常着迷与观看像NewgroundseBaumsWorld这 样的网站上的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技巧,调试网站问题等。

  大量的学习和阅读

  等我进入了斯坦福大学后,我学习了大量的计算机课程,诸如CS106XCS107,我还超前学习了部分 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! :0: 我用了好长一段时间才改掉在变量前加$符号的习惯!

  在软件公司工作

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

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

  如何学会编程:

  • 做练习性项目。
  • 看编程书籍。
  • 做项目练习。
  • 上计算机课程。
  • 做练习性项目。
  • 读编程类博客。
  • 做项目练习。
  这就是我能给出的最好的建议。

  祝编程愉快!



  -------------------------------------------------------------------
  你可能对以下文章也感兴趣

  “品质在于构建过程”吗?
  HTML5 开发者需要了解的技巧和工具汇总
  10个Web开发设计相关资源博客推荐
  移动应用程序开发工具和平台精选
  C语言之父辞世引发“分号”悼念
  HTML4和HTML5的10个关键区别
 
  --------------------------------------------------

  

相关 [学习 计算机 编程] 推荐:

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

- hi3w - 伯乐在线 -博客
  注:本文转载自外刊IT评论,国外程序员Feross Aboukhadijeh分享的经验.   我在很小年纪的时候就开始学习编程,我学习编程的方法是创建大量的不同的网站. 下面列出的是我创建的主要的网站,其中最早的一个是我11岁时开发的. 我希望读者能从我这些复述中获得的信息是:如果你想学习编程,做大量的练习性的项目是非常必要的.

【外刊IT评论网】我是如何学习计算机编程的

- Randall - 外刊IT评论网
本文是从 How I Learned to Program Computers 这篇文章翻译而来. 我在很小年纪的时候就开始学习编程,我学习编程的方法是创建大量的不同的网站. 下面列出的是我创建的主要的网站,其中最早的一个是我11岁时开发的. 我希望读者能从我这些复述中获得的信息是:如果你想学习编程,做大量的练习性的项目是非常必要的.

我的编程竞赛之路 ——中国大学生计算机编程第一人楼天城访谈

- Jing - 《程序员》杂志官网
25岁的楼天城有“中国大学生计算机编程第一人”的称号,也被参加竞赛的学子们敬称为“楼教主”. 他的传奇经历一直激励着众多年轻学子:从2001年开始参加计算机编程竞赛,并连获全国一等奖;2004年入选国家集训队,同年获得IOI金奖并被保送到清华大学;2008年开始在首位亚裔图灵奖获得者姚期智院士的理论计算机中心攻读博士;2007年和2009年两次带队参加ACM/ICPC全球总决赛并获得第二名.

推荐编程学习路线图

- - Starming星光社最新更新
对于一些没有编程经验的人来说,一开始就学习web开发会让人觉得非常困难. 因为你的能力处于初始阶段(你根本不知道你缺少哪方面的知识),所以在你能够建立一个任意复杂的网站之前,你可能会认为你需要大概几个月的时间来夯实计算机方面的基础知识. web开发和CS是不同的,你完全可以在没有太多计算机基础的情况下开发学习web开发.

如何学习计算机图像学(来自人人数学的美学世界小站)

- - CSDN博客推荐文章
IT人一定要记住,不要指望通过一本教材就学会计算机图形学,它比你想象的要复杂的多.         计算机图形学是用计算机来画东西的学科,数字图象处理是把外界获得的图象用计算机进行处理的学科.         如何学习计算机图形学呢. 除了计算机图形学的基础知识以外,你还需要有以下的知识,你懂的越多,当然做的越好.

谈一谈网络编程学习经验(06-08更新)

- Leo - C++博客-首页原创精华区
PDF 版下载:https://github.com/downloads/chenshuo/documents/LearningNetworkProgramming.pdf. 本文谈一谈我在学习网络编程方面的一些个人经验. “网络编程”这个术语的范围很广,本文指用Sockets API开发基于TCP/IP的网络应用程序,具体定义见“网络编程的各种任务角色”一节.

编程语言教程书该怎么写: 向K&R学习!

- kapster - 为之漫笔
原文地址:Lax Language Tutorials. 每年在评审Jolt Awards图书的时候,我都会被一些语言教程类图书弄得心力交瘁. 从这些年的评审经验来看,这些语言类教程的写得都不错,但除此之外,少有亮点. 换句话来说,这些书都很严谨、很精密,如果读者有足够的定力,通过它们掌握一门语言的编程技术还是不成问题的.

学习不同编程语言的重要性

- 蒋冰 - 伯乐在线 -博客
  注:本文转载自flyfy1的博文;.   引子:今天选了下学期要学的一门课,叫做编程语言. 据说是两周学习一门新的语言,很有挑战性. 以及这门课的课本是MIT出的《Concepts, Techniques, and Models of Computer Programming》(一下简称《CTMOCP》),今天看了一部分它的前言部分,联系我以前读过的《黑客与画家》里面有两章对编程语言的讨论,发现学习不同的编程语言还是相当有必要的.

用Codecademy学习编程,简单又有趣

- 可可 - 36氪
为了学习编制程序,很多人买了一堆相关书籍,并参加了很多网络课程,甚至花了几百块钱买了一套教学光碟,到头来还是不会编程,非常不值. Codecademy是一个刚推出的网站,它为用户提供了一种学习编程的新方式. 它是一种基于网络的互动编程教程,手把手帮助用户了解JavaScript的一些基本原理,更重要的是,使用Codecademy学习编程充满了趣味性.