Web开发的入门指导

Web开发的入门指导

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

前段和后端

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

前段

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

后端

后端开发者编写那些运行在服务器上的代码,通常来说,这部分的工作需要和数据库打交道,比如读写数据、读写文件、实现业务逻辑等。有些时候,业务逻辑存储在客户端,这时后台就是用来以Web服务的形式提供数据库中的数据。后端开发者一般需要掌握一种Web编程语言和一个数据库管理系统。
你可以同时掌握前端和后端的技术,但大多数Web开发者都还是有一定的喜好偏向,甚至只在某一方面深入研究。尽管前后端是有区分的,但并没有规定它们各自的具体任务。有时前端只是完成数据的显示,而其他主要工作都在后端完成。但也有时,后端只是提供数据,而所有的计算和具体功能都在前端完成。前后端工作的分配,通常都是由项目的设计和架构来决定的。

编程语言

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

  • PHP

  • JavaScript

  • Ruby on Rails

  • ASP.NET

  • Jave 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

转载于:https://www.cnblogs.com/november1943/p/5187631.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/373672.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新东方mti百科知识pdf_20南航翻硕mti初试417上岸经验贴

南京航空航天大学mti初试417分排名第一:‌基础英语88:1,外刊阅读:从2月到6月开始一直打卡外刊app,友邻优课,流利阅读等2,背单词:扇贝单词app,新东方专八单词绿皮书,华研专八单词等3,星火专八阅读…

JavaScript学习随记——属性类型

<!DOCTYPE HTML> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>属性类型</title></head> <body><script type"text/javascript" charset"…

Shell if else语句

if 语句通过关系运算符判断表达式的真假来决定执行哪个分支。Shell 有三种 if ... else 语句&#xff1a; if ... fi 语句&#xff1b;if ... else ... fi 语句&#xff1b;if ... elif ... else ... fi 语句。1) if ... else 语句 if ... else 语句的语法&#xff1a; if [ ex…

过滤日志中不相关的堆栈跟踪行

我喜欢堆栈痕迹。 不是因为我喜欢错误&#xff0c;而是因为发生错误的那一刻&#xff0c;堆栈跟踪是无价的信息源。 例如&#xff0c;在Web应用程序中&#xff0c;堆栈跟踪向您显示完整的请求处理路径&#xff0c;从HTTP套接字到过滤器&#xff0c;Servlet&#xff0c;控制器&a…

Can't create/write to file '/tmp/#sql_887d_0.MYD' (Errcode: 17)

lsof |grep "#sql_887d_0.MYD" 如果没有被占用就可以删掉 。 https://wordpress.org/support/topic/cant-createwrite-to-file-error Hello, just today I saw this kind of error on every page on my blog. WordPress database error: [Cant create/write to file …

python3怎么创建文件_Python3.5 创建文件的简单实例

实例如下所示&#xff1a;#codingutf-8Created on 2012-5-29author: xiaochouimport osimport timedef nsfile(s):The number of new expected documents#判断文件夹是否存在&#xff0c;如果不存在则创建b os.path.exists("E:\\testFile\\")if b:print("File …

Dijkstra 最短路算法(只能计算出一条最短路径,所有路径用dfs)

上周我们介绍了神奇的只有五行的 Floyd 最短路算法&#xff0c;它可以方便的求得任意两点的最短路径&#xff0c;这称为“多源最短路”。本周来来介绍指定一个点&#xff08;源点&#xff09;到其余各个顶点的最短路径&#xff0c;也叫做“单源最短路径”。例如求下图中的 1 号…

JavaScript学习随记——错误类型

错误类型&#xff1a; 执行代码期间可能会发生的错误有多种类型。每种错误都有对应的错误类型&#xff0c;而当错误发生时&#xff0c;就会抛出相应类型的错误对象。 ECMA-262定义的7种错误类型 Error&#xff1a; 是错误的基类型&#xff0c;其他错误类型都继承该类型。Error…

多个集合中的共同和独特元素

本周&#xff0c;我们将暂时中断较高级别的问题和技术文章&#xff0c;以解决我们中许多人可能面临的一些代码问题。 没什么花哨的或太辛苦的&#xff0c;但是有一天它可能会节省您15分钟的时间&#xff0c;偶尔回到基础上也很不错。 因此&#xff0c;让我们开始吧。 有时&…

2016给自己一个交代

一、前言 在关于技术上的学习&#xff0c;常常有这样那样的计划&#xff0c;而最终一个都没有真正的落实。零散的学习&#xff0c;终究需要系统总结&#xff0c;才能使自己有所沉淀。从毕业至今&#xff0c;我一直在忙碌&#xff0c;为公司付出自己的很多很多&#xff0c;却只不…

洛克人红色思考型机器人叫什么_稻船敬二新企划《红色灰烬》 依然是机器人风格...

稻船敬二离开CAPCOM之后玩家们纷纷感叹《洛克人》系列将再无续作&#xff0c;不过在单飞的这段时间里&#xff0c;稻船敬二还是创作了诸如《苍蓝雷霆 刚巴尔特》《Mighty No.9》等类似洛克人风格的作品。其名下的团队comcept的最新作《Mighty No.9》即将于9月18日发售&#xff…

常见对话框

(1)普通对话框 // 点击按钮 弹出一个普通对话框public void click1(View v) {// 构建AlertDialogAlertDialog.Builder builder new Builder(this);builder.setTitle("警告");builder.setMessage("世界上最遥远的距离是没有网络");builder.setPositiveButt…

JavaScript学习随记——面向对象编程(继承)

Example:基于原型链的继承 <!DOCTYPE HTML> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>面向对象编程&#xff08;OOP&#xff09;</title></head> <body>…

NSCharacterSet

先上个例子&#xff1a; NSString * str1 [nameInput.textstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]]; NSString * str2 [passwdInput.textstringByTrimmingCharactersInSet:[NSCharacterSetwhitespaceAndNewlineCharacterSet]]; […

Apache Mahout:构建垃圾邮件过滤器服务器

Lucene发生了一些相当有趣的事情。 它最初是作为一个库&#xff0c;然后其开发人员开始基于它添加新项目。 他们开发了另一个开源项目&#xff0c;该项目将向Lucene添加爬网功能&#xff08;以及其他功能&#xff09;。 Nutch实际上是任何人都可以使用或修改的功能齐全的Web Se…

建模步骤_古建设计 | sketchup建模步骤教程(简易入门版)

前言本篇教程主要是针对古建建模入门者。小N给大家分享一套我相对简易的建模步骤。(PS&#xff1a;但是估计有些人可能会感觉我做的东西已经繁琐了……)因为主要是为了让大家熟悉、入门和好记忆。所以讲的东西&#xff0c;小N我会相对简单&#xff0c;有些细节的内容不会更多展…

JavaScript模块化

JavaScript模块化的实现方式&#xff1a; <!DOCTYPE HTML> <html><head><meta http-equiv"Content-Type" content"text/html; charsetutf-8" /><title>模块化</title></head> <body><script type&quo…

Linux下面的IO模型

1. Linux下的五种I/O模型 阻塞I/O模型&#xff1a; 一直阻塞 应用程序调用一个IO函数&#xff0c;导致应用程序阻塞&#xff0c;等待数据准备好。 如果数据没有准备好&#xff0c;一直等待….数据准备好了&#xff0c;从内核拷贝到用户空间,IO函数返回成功指示。 我们 第一…

改变导航栏上边的状态栏颜色

#pragma mark - 改变状态栏颜色 -(UIStatusBarStyle)preferredStatusBarStyle{ return UIStatusBarStyleLightContent; }转载于:https://www.cnblogs.com/block123/p/5195203.html

PIT和TestNG突变测试简介

变异测试是一种技术&#xff0c;它可以发现测试未涵盖代码的哪些部分。 它类似于代码覆盖范围 &#xff0c;但变异测试不限于在测试期间执行给定行的事实。 这个想法是修改生产代码&#xff08;引入突变&#xff09;&#xff0c;这应该改变其行为&#xff08;产生不同的结果&am…