Web开发初学指南
英文原文:A Beginner's Guide to Web Development
如果你正在阅读这篇文章,你可能是对 Web 开发有某种兴趣,甚至你开始想去学习 Web 开发。本文则展示了一个成为一个 Web 开发者可以遵循的途径。作为一篇初学者指南,本文从学习什么出发到如何专攻。或许对打算进军 Web 开发的您有所帮助。
前端 VS 后端
或许你会觉得最初的缺口是前端和后端,所以让我们先看下什么是前端和后端。
前端
Web 应用按照客户-服务体系结构分类为分布式应用。所以我们的代码有一部分运行于客户端,还有一部分运行于服务端。运行于客户端部分的应用(大多数情况下,客 户端是指我们的 Web 浏览器)被成为前端。最常见的用于前端开发的技术组合是 HTML+CSS+JavaScript。前端专家通常使用这些技术开发专业知识来创建 Web 应用的前端。
后端
后端开发者编写运行于服务器上的代码。通常情况下,这部分工作需要为读/写数据、读/写文件、制作业务逻辑等连接数据库。有些情况下,业务逻辑 是驻留在客户端的,这时客户端通常以 Web 服务的形式被用以服务来自数据库的数据。后端开发者通常精通于一种 Web 编程语言和一个数据库管理系统。
你可以同时掌握前端和后端,当然从一般情况来讲,Web 开发者更倾向于其中的一个,对另一个只做了解。专攻于一个的也大有人在。虽然两者之间有一个分割线,但是对于哪一方应该做些什么是没有限制的。有时候前端 仅用于可视化表示,所有的工作都在后端完成。而有些时候后端只服务于数据,所有的计算和函数都位于前端。这是一种设计和结构的关系,以此来定义哪一方做什 么事情。
编程语言
目前有很多对 Web 开发可用的编程语言。当我们选择前端的时候,事实上的标准语言是 JavaScript。当选择后端时,可供选择的就有很多了,下面列举了一些流行的选择:
- PHP
- JavaScript
- Ruby on Rails(与 Ruby 编程语言一起使用)
- ASP.NET(与 .net 编程语言一起使用)
- Java EE
- Python
这只是其中的一部分,你的选择应基于一些因素的评估,如就业市场、Web 应用的托管环境,可提供的学习资源、可用的学习时间以及你四周的开发社区。
如果你想成为一个 Web 开发者,从个人角度来看最重要的因素应该是就业市场。你应该分析你所处在(或者你想要处在)的就业市场并且选择有大量职位空缺的语言。另一个重要因素是托 管环境,例如 PHP 托管要比 Java 托管便宜的多。如果你要开发一个将被托管于组织内部的内网应用,这时 Java EE 或许会是一个很好的选择。但是如果你希望你的应用成为线上时,Java EE 相比其他语言可能就要昂贵的多了。
随着 Node.js 的流行,JavaScript 开始成为一个受后端开发者欢迎的选择。然而,它仍然是相当新的、不成熟的技术。所以不太建议初学 Web 开发的人学习。
从个人来看,PHP 拥有最简单的学习曲线、廉价的托管环境、丰富的学习资源和相对容易的开发环境。这对初学者来说是个不错的选择。除此之外,ASP.NET 也是个不错的选择。微软提供了很多的学习资源、免费的开发工具和一个相当丰富的环境。如果你喜欢微软的生态系统,那么你可以考虑 ASP.NET。
框架
如果你是一个初学者,给自己一些时间去学习一个框架。框架是简化 Web 开发者工作的代码库。框架赋予 Web 应用一个结构,这帮助开发者更容易的处理一些任务并且效率上比什么都要自己编写来的快。如果你想要成为一个专业的 Web 开发者,那么就必须要学习至少一个框架,促进你的发展速度。
目前你可以学习的框架有很多,你必须评估你的需求。如果你选择了 PHP,那么建议你把 Laravel 作为一个选择。如果你选的是 ASP.NET,那么你可以选择学习 ASP.NET MVC 和 EntityFramework。
Web 开发可以是巨大的,你可能想要专注于一种类型的应用。以 Web 网站的内容管理系统(CMS)为例,如果你选择了 PHP,那么建议你继续使用 WorldPress。WorldPress 允许你创建网站、博客,同时它也能够通过默认插件或自定义插件和主题来扩展,以适应更加复杂的业务应用。
你将发现你选择的任何一种语言背后都有大量的框架,所以基于你选择的语言,你将和不同的框架打交道。
下一步
在第一个建议中,即使你选择专攻于前端或后端,你也应该对另一端有所掌握。如果你这么做了,你的团队会表现的更好。如果你已经学习了一门语言, 掌握了一种框架。或许你应该考虑重新开始一个,编程语言都有自己的理念和范式,知道两个或两个以上的编程语言可以让你对如何解决编程语言有一个更好的认知 和理解,会使你成为一个更“流利地”开发者。正如前面所说的,你必须在选择语言的时候考虑众多因素。你可以在以后的道路中慢慢的扩展你的选择清单。如果看 文章的您是一位 Web 开发的大牛,也欢迎您在文章后面的评论中分享您在开发过程中所遇到的点点滴滴。(编译:陈明)