Mircea Goia在Quora上对问题"I'd like to learn web-related programming. What should I start with?"的回答十分精彩,让我情不自禁想稍微翻译转载记录一下。
原文地址在这里:http://www.quora.com/Id-like-to-learn-web-related-programming-What-should-I-start-with
网络编程(包括制作网站)分成两个部分:前端和后端,或者说前台和后台。前端/前台就相当于一个书架,后端/后台就相当于一个往书架上摆书的机器人。学习前台意味着你可以自己定义这个书架的结构,决定怎么摆书。学习后台则意味着用特殊的语言与摆书的机器人沟通,让它去拿哪些书过来摆在书架上。
两个部分所包含的知识都非常庞大,要一一学来并不容易。要么是妈生的绝世天才,要么是勤奋的拼命儿郎,才能都不落下。Goia的建议是两部分都要有所了解,然后根据需求专精某一部分。如,他本人专精的后台部分。这样就意味着,他可以做功能齐全的网站,但是却不能跟设计师的网站比美。
前端/前台:
需要了解一下三部分的内容,HTML,CSS和Javascript。
- HTML or HTML5 (HTML5是最新的标准,关于HTML5的具体信息可以Google一下)
HTML是网站的基础,它的作用就像是notepad,你在里面写入信息,关于HTML的历史可以维基百科一下。它不是编程语言,而是标记语言,也就是用<>这个符号做标记的语言。简单的学习HTML的方法,对着一个页面 右键-->源文件,然后就可以看到该页面的HTML代码了。仔细钻研吧!或者你也可以用一些可视化的网页编辑器,之前牛掰的网页三剑客之一Dreamweaver啊,Microsoft的Frontpage啊,Macintosh的iWeb啊,很多好软件,Google一下全出来了。使用网页编辑器的好处是不用自己写代码,熟悉了软件的操作后制作网页非常迅速。但是不要因此就不学HTML了,还是该好好了解一下的。在软件里也可以看到每一个自己编辑的网页的HTML代码,多看看多想想,并不难!等到自己进阶了,就可以使用专门写代码的程序直接代码做网站了。用一些像是notepad++之类的软件呀,给人感觉很牛掰的!
- CSS(Cascading Style Sheets) - version 2 or better 3
如果说HTML是notepad,CSS就是word文档编辑器。CSS的作用就是让你的信息排版有序,显示更有规律,更漂亮。大部分时候,你可以使用 右键-->源文件 大法,查看网站的CSS文件。这些文件一般是以“.css”结尾,很容易分辨,多操作几次就熟悉了。以后上什么网站都可以这样看一看别人的CSS文件是怎样的,试图从中学习一二。
- Javascript
Javascript的作用是往网页里添加动态数据,否则网页就是静态的,关于动态静态可以维基百科一下啦。注意,貌似见过很多这样的提示,Javascript有一个好名字,但是它和Java是没有任何关系的 调查发现,Java与Javascript之间确实是有联系的,设计师当初在设计Javascript这个网页编程语言的时候,根据公司的要求,借鉴了Java的一些创意。一般很容易见到大家把Javascript缩写为js,而使用右键大法可以看到Javascript文件是以“.js”结尾的,看不到的话,或许它就是直接嵌入在HTML里了。
原文给出了一些链接,都很干净,确实是好东西。
Links for learning
HTML
- http://en.wikipedia.org/wiki/HTML
- http://en.wikipedia.org/wiki/HTML5
- http://www.w3schools.com/html/default.asp
- http://www.w3schools.com/html5/default.asp
CSS
- http://en.wikipedia.org/wiki/Cascading_Style_Sheets
- http://www.w3schools.com/css/default.asp
Javascript
- http://en.wikipedia.org/wiki/JavaScript
- http://www.w3schools.com/js/default.asp
你还可以从Google啊,Youtube啊,等网站上搜索这些东西的tutorials,只要搜索关键词 "HTML tutorials", "CSS tutorials" 或者 "Javascript tutorials"。
后端/后台:
Goia说道,今天的后台比十年前的后台要复杂许多,因为可选择的编程语言太多了。这得益于近10年来的开源运动给编程语言的发展带来的契机,迄今为止你或许已经听过的编程语言有Perl, TCL/TK, PHP, Python, Ruby, Java, Erlang, C, C++, Lisp, Haskell, ASP/ASP.NET/C#, Coldfusion/CFML,很多都是最近发展起来的(咳,网络发展史并不长,我这么说不会被批吧?)。其中有一些因为功能强大或者使用简便受大众的喜爱,并且越来越出名越来越强大,另一些则因为一些缺陷慢慢淡出了人们的视野。这些语言的工作原理,就是使用特定的能被机器识别的格式语言,从数据库中获取数据,送往浏览器。比较扯淡的比喻,又是摆书机器人。你跟摆书机器人说话,让它去拿一些书,然后送到书架那边去。(这个比喻的起源请在文章开头处寻找)
Goia对新手的建议是,选择学习拥有以下特质的语言:
- the language should be popular (that means it has a big community which can offer support)
选择学习的语言要够出名,流行。这样就意味着该语言有一个庞大的,必要时可以提供帮助的网络社区。
- the language should be open source (that means you don't have to pay money for it)
该语言要是开源的,也就是免费的,不要花钱的。这一点大家都理解透彻,但是这与花钱购置书籍应当不冲突。网络上教学资料很多,购买书籍的目的应该是做练习,熟悉。
- the language should stick around for longer time (that means the language shouldn't disappear or be less used in the short term - it happened with ASP classic and Coldfusion/CFML/TCL/TK)
该语言要够持久!咳,是的,不给力的语言都会被清除出去的,给出的例子有,ASP classic和Coldfusion/CFML/TCL/TK
对,你也要选择自己要学什么数据库。如,MySQL, PostgresSQL, SQLlite之类,也要选择开源免费的。 :)
Goia对新手的推荐是:
- PHP (open source, big community, lots of software built with, lots of jobs),
- Ruby on Rails (open source, growing community, hot with startups, growing number of jobs),
- Python (open source, big community, quite hot with startups, growing number of jobs)
- MySQL database (open source, big community, hot with startups, many jobs)
You have to try these and see what you like, what fits you.
都试试,选择最适合自己的。
Links for learning:
PHP
- http://en.wikipedia.org/wiki/PHP
- http://www.php.net/
- http://www.w3schools.com/php/default.asp
Ruby on Rails
- http://en.wikipedia.org/wiki/Ruby_on_Rails
- http://rubyonrails.org/
- http://oreilly.com/ruby/archive/rails.html
- http://oreilly.com/ruby/archive/rails2.html
Python
- http://en.wikipedia.org/wiki/Python_(programming_language)
- http://www.python.org/
- http://python.about.com/od/gettingstarted/tp/pytutbeg.htm 最后,他说,网络编程不是一朝一夕的事情,要有耐心。上帝创造世界且用了7天时间,不要耐不住寂寞。有问题了,不耻下问,祝你学习愉快并且成功。