你点开此文,说明你对Web开发是有兴趣的,或者你正在思考开始学习Web开发。在这里,我会告诉你成为一名Web开发者的路线,是对初学者关于Web开发的指导。这篇文章不会教你如何写代码,而是指出在你在真正写代码之前要思考的事情。Web开发是令人兴奋和有激情的事情,正是迎合了这个高速变化发展的世界。了解Web开发,我们先来定义几个基本的概念。

web-development

前端 VS. 后端

一开始一定要分清前端开发和后端开发,我们来分别介绍一下。

前端

Web应用被分类归为分布式应用,一般是客户端——服务器结构,所以我们有一部分的代码运行在客户端,另一部分代码运行在服务器。那些在客户端上的应用就是前端,通常指的就是我们的浏览器。最常用于前端开发的技术是HTML+CSS+JavaScript,高级的前端开发人员通常使用这些技术的组合开发应用的前端,另一个前端的常用技术就是使用Photoshop设计,配合其他技术共同完成Web页面的制作。

后端

后端开发者编写那些运行在服务器上的代码,通常来说,这部分的工作需要和数据库打交道,比如读写数据、读写文件、实现业务逻辑等。有些时候,业务逻辑存储在客户端,这时后台就是用来以Web服务的形式提供数据库中的数据。后端开发者一般需要掌握一种Web编程语言和一个数据库管理系统。

你可以同时掌握前端和后端的技术,但大多数Web开发者都还是有一定的喜好偏向,甚至只在某一方面深入研究。尽管前后端是有区分的,但并没有规定它们各自的具体任务。有时前端只是完成数据的显示,而其他主要工作都在后端完成。但也有时,后端只是提供数据,而所有的计算和具体功能都在前端完成。前后端工作的分配,通常都是由项目的设计和架构来决定的。

编程语言

对于Web开发,有很多的编程语言可以选择。当需要在前端开发时,标准的开发语言是JavaScript,而当需要后台开发时,我们有更多的选择:

  • PHP
  • JavaScript
  • Ruby on Rails(配合Ruby语言)
  • ASP.NET(配合.net语言)
  • Java EE
  • Python

这其实也没有一个明确的清单,以上只是开发者通常会想到和使用的语言。那应该如何选择呢?你的选择应该基于以下几个方面:工作市场(求职机会)、托管服务、可用的学习资源、可用的学习时间、周围的开发环境等。

如果你真的想从事开发行业,找到一个Web开发的工作,那最重要的选择因素就是工作市场(求职机会),你要分析行业情况,选择出一门要学习的编程语言。另一个重要因素就是托管服务,比如PHP的托管就要比Java托管便宜很多。而如果你要开发企业内应用,Java EE或许就是一个不错的选择。但如果你要将你的应用上线,Java EE就要比其它语言昂贵很多。

随着Node.js的流行,JavaScript也变得在后端开发中流行起来,但它毕竟还是一个新的、不够成熟的技术,不推荐给初学Web开发的人学习和使用。

在我看来,PHP有着最简单的学习曲线、便宜的托管服务、充足的学习资源(PHP100就是一个很好的选择哦)和相对简单的开发环境,所以我推荐初级Web开发者学习使用PHP。当然,ASP.NET也是一个不错的选择,Microsoft提供了很多ASP.NET相关的学习资源和免费的开发工具,如果你喜欢Microsoft的环境,就值得考虑ASP.NET。

框架

如果你还是一个初学者,在你开始学习框架前还是要先打好基础。框架可以帮助你简化开发的工作,有很多现成的代码库,它提供给你Web应用的结构,让你的编程工作更简单更快捷。如果你要成为职业的Web开发者,你就必须要精通至少一个框架,加速你的Web开发。

框架有很多种类,有通用型的解决方案,也有针对具体问题的方案。你需要先评估你的需求,如果你选择了PHP开发,我推荐使用Laravel作为框架,它是一个近年来非常流行的MVC框架。如果你选择的是ASP.NET,我推荐学习使用ASP.NET MVC和EntityFramework。

Web开发可能过于大型,你只想专注于其中一种应用,比如一个内容管理系统(CMS)。如果你还是选择PHP,那么我推荐WordPress,它可以帮助你创建网站、博客,也可以用已有的插件或主题作为扩展。

接下来做什么

即使你选择只是从事前端或后端的一项开发,你也应该了解一下另一端的开发,这样做会让你的团队有更高的效率。如果你已经学会了一门编程语言及相应的框架,你就应该开始学习另一种语言,每一种编程语言都有自己的优点和范式,了解更多的语言,可以让你对需要解决的问题有更深入的了解,有更好的解决方案,从而成为更优秀的开发者。最后,正如我之前所说,当你在选择编程语言时要考虑很多的因素,我的选择依旧是JavaScript、PHP、ASP.NET和Java EE,大家可以参考借鉴。

原文:http://arian-celina.com/a-beginners-guide-to-web-development
译文:http://www.php100.com/html/dujia/2015/0120/8425.html