编程与Web开发:有什么区别?

外部人很难掌握编程的世界。例如,如果您没有编程经验,则可能不知道哪种语言最适合初学者学习。

但是,对编程的误解甚至更深。尽管出现了诸如“软件工程师",“ Web开发人员"和“程序员"之类的术语,但是您应该了解它们的工作之间存在一些关键差异。让我们研究一下是什么使编程和Web开发如此显着不同。

不同的焦点

虽然两种类型的专业人员都键入代码行来使事情在计算机上发生,但是他们的关注点却大不相同。 。程序员的制作方式各有不同,但通常会创建全新的计算机应用程序或添加到现有软件上。另一方面,Web开发人员专门处理网站的构建和维护。

要了解两者之间的区别,请考虑Web设计人员的角色。设计者创建网站的模型,并可能计划其功能集。不过,此人无需编写任何代码即可完成此操作。他们可能使用Adobe Dreamweaver之类的程序来阻止网站设计,或者在Photoshop中建立模型。

网络开发人员弥合了这些网络设计人员与程序员之间的鸿沟。设计师为网站提出了一个构想,然后由网络开发人员按照其规范进行构建。在此项目中,程序员的角色可能是创建一个新工具来帮助处理网站访问者的请求。从长远来看,程序员将在他的应用程序完成后继续前进,而Web开发人员可能负责网站的更新和维护。

另一个重要的一点是每个专业人员的工作范围。在商业环境中,程序员可能会负责扩展公司已使用多年的专有软件。

-slidenerd(@slidenerdtech)2015年6月16日

因此,他们可能由于公司不想放弃对其业务必不可少的软件,因此花费大量时间为较旧的应用程序查找代码并尝试向其添加新功能。在网站设计方面,当公司想要一个新网站时,很少需要通过外科手段添加新零件。对于网站,从头开始更有效。

它们使用不同的语言

您可能已经知道,有数十种不同的编程语言,它们都有不同的优势和目的。构建移动应用程序的人将使用与构建Web应用程序的人不同的语言-我们已经讨论了如何选择正确的Web编程语言。

Web开发人员使用HTML(这实际上不是编程语言)来组织文本和CSS(也不是真正的编程语言)来自定义文本的显示方式。然后,他们使用JavaScript进行客户端工作(例如检查登录时是否将密码字段留空),并使用PHP进行服务器端的行为(例如搜索用户输入的术语)。当然,Web开发中还使用了其他语言,例如Ruby。

另一方面,程序员可以使用多种语言来构建他或她需要的应用程序。根据情况,程序员可以使用C#,Java,C ++,Python,C或任何其他选择来构建应用程序。

这些差异的重要含义是,Web程序员必须定期跟上他们使用的语言的变化。由于这些语言的快速发展,2015年编写的有关网络编程的教科书可能现在已经严重过时。因此,Web编程课程通常通过在线资源而不是书籍进行教学。

相反,1985年用C编写的一本教科书仍然可以相当有效地向学生教授该语言,因为它在C语言方面没有太大变化。几十年。当然,有些旧资源可能会遗漏一些样式标准和最佳实践,但远不及Web开发水平。

实现上的差异

您可能不会认为,但是上面讨论的语言实际上在幕后执行着非常不同的功能。

像Java和C ++这样的编程语言是高级语言,这意味着键入C ++代码行实际上是从实际的机器指令中抽象出来的当您编译它时就会变成它。用低级语言(例如汇编代码)进行编写将非常繁琐且困难。这些较低级别的代码与硬件紧密相关,因此您必须指定将数据移入或移出特定内存寄存器的方法。

例如,看看下面的示例汇编代码,以从中打印“ Hello,World" LMU的计算机科学网站:

    global  _start    section .text_start:    ; write(1, message, 13)    mov rax, 1              ; system call 1 is write    mov rdi, 1              ; file handle 1 is stdout    mov rsi, message        ; address of string to output    mov rdx, 13             ; number of bytes    syscall                 ; invoke operating system to do the write    ; exit(0)    mov eax, 60             ; system call 60 is exit    xor rdi, rdi            ; exit code 0    syscall                 ; invoke operating system to exitmessage:    db  "Hello, World", 10  ; note the newline at the end

在C ++中,键入以下简单行将执行相同的功能:

std::cout << "Hello, World";

我们可以看到,当代码程序员键入的内容实际进行编译时,机器会对其进行处理转换为计算机可读形式以创建可运行的应用程序。与大多数不需要进行编译的网络开发工作形成了鲜明的对比。在Web服务器上编译并运行但在客户端计算机上显示的某些“基于Web的应用程序"是例外,但这是应用程序程序员和Web开发人员之间的区域变灰的地方。

我们提到HTML和CSS,而CSS是样式表语言。它们的语法描述页面上的内容,组织方式(HTML)和外观(CSS)。它们用于演示,而编程语言具有功能。您可以自己进行测试-在计算机上使用一些基本的HTML代码创建一个名为 test.html 的文本文档,如下所示:

<h2>This demonstrates why <i>HTML is not a programming language</i>, but rather a <u>markup</u> language.</h2>

保存并在浏览器中打开选择,您将看到您指定的HTML在浏览器内部已经生效。没有编译代码;您的浏览器只知道如何解释HTML。将它与在屏幕上输出“ Hi!"的简短C ++程序进行比较-如果没有编译器,就像在在线工具或Visual Studio中一样,您将无法使代码执行任何操作。

在简短

可以公平地说, Web开发人员是程序员的子集,因为这两个职位都有类似的方法和技能。网络开发人员会使用程序员不会使用的技能和工具,例如图形设计实用程序和视频编辑软件。同样,与程序员相比,Web开发人员通常更频繁地与客户联系。 程序员创建了Mozilla Firefox,但网络开发人员创建了Mozilla.com。

— Lena(@photosheep_me)2014年5月14日

标签: