0

0

每个开发人员都应该学习的五种编程语言(上)

PHPz

PHPz

发布时间:2023-04-10 11:41:03

|

1716人浏览过

|

来源于51CTO.COM

转载

每个开发人员都应该学习的五种编程语言(上)

程序员编写代码的通用编程语言有很多种,大多数使用企业软件的程序员在退休前通常只使用一种编程语言。然而,也有一些程序员在日常工作中有机会使用多种编程语言。例如,如果程序员使用Flatter本机模块,则有机会使用Dart、Kotlin(或Java)、Objective-C(或Swift)、C/C++等。

大多数程序员在一种语言上工作了几十年,这一点会限制他们的技术技能。我们经常看到很多 .NET和Java专家。却很少看到掌握多种语言的程序员。学习多种编程语言会带来更多好处。但是,学习每一种流行的编程语言,并不是一个明智的选择。

在这个故事中,我将向您展示每个程序员都应该学习的五种编程语言。并用实例说明学习这些编程语言的好处。

一、C/C++

C语言是几乎所有底层软件组件的基础语言。C的抽象更接近于硬件,C为程序员提供了最小的语法(保留了32个关键字)。与其他现代流行编程语言相比,C的语法更接近汇编语言。因此,C编译器可以高效地将C源代码转换为机器语言,并生成轻量级和极快的二进制可执行文件。

C++是C的扩展,所以你可以使用C++的C语言缺少的特征(例如:类、命名空间等)。学习C/C++对任何程序员都有很多好处。C/C++促使您编写优化的代码,因为C/C++不提供自动垃圾收集。

C提高了您解决问题的能力和基本的计算机科学技能,因为它不提供预构建的数据结构和功能齐全的标准库。例如,如果需要C语言中的堆栈,则必须构建自己的堆栈。

同样,学习C/C++有助于提高计算机科学知识和技能。下面的故事解释了为什么程序员应该先学习C语言。

为什么每个开发人员都应该从 C 开始编程

你可以用任何语言开始编程——但从 C 开始有更多好处!

图片

世界上大约有700 种编程语言。但是,开发人员使用大约 20 种不同的编程语言来构建企业软件。换句话说,即使有很多编程语言,也只有少数流行的通用编程语言。开发人员通常在学校、大学或职业生涯开始时开始编码。

当他们开始编码时,每个开发人员都会发现自己在问一个问题:我应该先学习哪种编程语言?如果你在大学学习计算机科学,课程大纲通常首先是 C 编程语言。

在C语言程序米铭语言仍然在与硬件相关的软件项目经常使用。

但是 Java、C#、JavaScript、Go、Python、Ruby、PHP 和 Kotlin 等语言在现代软件行业中占据主导地位。这是因为他们的:

  • 人性化的语法和语义。
  • 功能齐全的标准 API。
  • 社区支持。
  • 丰富的框架和库生态系统。

另一方面,现代社区并不经常使用 C——其他流行的语言提供了比 C 更友好、简单和灵活的环境。是的,C 是硬件相关项目的更好选择,但大多数开发人员都在工作与网络和移动相关的项目。

让我解释一下为什么学习 C 是最好的选择。

C 让你成为一个很好的问题解决者

几乎所有程序都提供内置方法或库方法来解决需要逻辑算法的编码问题。例如,如果您需要将特定项复制到第二个数组中,则可以使用JavaScript 中的内置过滤器方法。如果您使用的是 Java,则可以使用包中的filter方法java.util.stream。从字面上看,任何流行的编程语言都有一个内置方法或库方法来过滤数组。但是如果你使用 C,你必须自己实现它——因为 C 中没有内置或库过滤方法。

当您找到这些场景时,您将面临需要解决的问题。练习算法问题是成为优秀问题解决者的好方法。我们并不总是处理仅涉及您最喜欢的企业编程语言的标准库和内置功能的简单任务。我们经常处理涉及解决问题技能的任务。因此,使用 C 编写初始代码会使您成为更好的问题解决者。

而且,参加竞争性编程黑客马拉松的开发人员经常使用 C 来解决问题。

C 给你硬件的味道

Python、C# 和 Java 等编程语言是非常人性化的语言。但是,这些语言与物理硬件非常抽象。换句话说,在开始使用 C 进行编程之前,您将无法体验计算机硬件的行为。现代编程语言隐藏了与硬件相关的整个体验,提供了全新的沙盒环境。在大多数情况下,这个沙盒环境是使用虚拟机创建的。

不幸的是,开发人员跳过了与硬件相关的关键主题,如内存管理、文件处理和代码优化——因为它们不是从 C 开始的。现代编程语言自动处理内存分配和垃圾回收器的释放。另一方面,在 C 编程语言中,开发人员通过编写高度优化的代码来管理内存。

使用 C 编写初始代码可为您带来难忘的硬件之旅,这是每位计算机科学家都应该体验的。

C 教你表现和自由

当一种编程语言提供非常人性化的抽象时,特定的编程语言将变得不那么灵活。您最喜欢的编程库的每个标准库方法和内置方法都充当硬编码的黑盒。换句话说,现代编程语言隐藏了低级代码,并为开发人员提供了干净但有限的接口。使用现代编程语言,直接动态内存分配实际上是不可能的。同时,C 通过公开所有低级代码访问为您提供真正的自由。

C 编译器生成极快的汇编代码。因此,C 开发环境本身会激励您编写高性能代码。在C中,我们必须小心地声明变量、分配内存、清理内存、访问资源和释放资源。如果您最初使用 C,则可能不会使用当前使用的编程语言使用过多的内存、不需要的资源和错误的数据结构。

C 激励你编写干净的代码

与现代编程语言不同,您必须用 C 编写许多代码行。这是因为 C 提供了对您需要的一切的低级访问——它没有为您提供高度抽象的标准库。当代码中的行数增加时,代码的复杂度也会增加。因此,我们必须编写干净且不言自明的代码来摆脱杂乱的代码。

当我们处理行业级软件项目时,编写干净的代码是一项非常需要的技能。事实上,如果我们从事过基于 C 的项目,那么编写干净的代码就是小菜一碟。

结论

随着 C++ 项目的积极发展,C 已经成为 C++ 的一个子集。C++ 确实是一种现代编程语言,具有功能齐全的标准库。因此,学习C++和学习C是不一样的。但是,直接的内存操作能力和低级访问能力还是有的。几乎所有现代编程语言都通过引入新的语法、语义和标准库方法相互竞争。但是,像 Go 这样的语言只扩展了标准库和社区驱动的库。

如果开发人员立即跳入 Python、JavaScript、C# 或 Java 等现代编程语言,他们将错过 C 编程语言提供的宝贵经验。从 C 开始编程是了解编程语言如何与硬件连接的好方法。

先用C语言选择硬路线。它将帮助您成为您最喜欢的编程语言的专家。

*原文链接:https://betterprogramming.pub/why-every-developer-should-start-programming-with-c-39b3a87392bf。

二、Bash

Bash是为类Unix操作系统构建的命令语言和命令行解释器。Bash解释器程序预装在几乎所有类似Unix的操作系统中。此外,许多GUI终端软件通常使用Bash作为默认命令解释器。因此,我们可以为不同的类Unix操作系统编写可移植的Bash脚本。

程序员遵循不同的实践来提高他们的日常编程效率。许多程序员通常为重复的手动过程编写自己的Bash脚本。例如,我编写了一个简单的Bash脚本来构建和复制TypeScript项目的输出。学习Bash无疑是学习过程自动化的第一步。过程自动化确实是提高生产力的方法。

Bash本机支持进程。换句话说,您只需提及其名称即可运行另一个程序。因此,您可以快速编写自动化脚本以提高编程效率。下面的故事解释了如何将GUI元素添加到Bash脚本中。

如何通过添加GUI使Bash脚本现代化

Bash 脚本包含一组用 Bash 命令语言编写的指令,这些脚本可以在 Unix shell 解释器中执行。我们使用 bash 脚本来自动执行几个任务,如果我们按照手动方式执行这些任务,这些任务显然很耗时。但是如果我们与现代计算相比,bash 脚本是老式的东西,因为与用户的所有交互都是通过命令行界面完成的。我们知道一些开发人员正在使用引人注目的标志和颜色来突出控制台界面中的重要内容。如果一个特定的老式 bash 脚本被高度技术性的观众使用,那很好。但是如果它被普通观众使用,那么进行一些用户友好的交互显然是件好事。

事实上,您可以使用Zenity命令行工具将基于 GUI(图形用户界面)的输入/输出组件包含到您的下一个 bash 脚本中,该工具帮助我们显示 GTK 对话框。此外,可以使用notify-send命令行工具显示本机 GUI 通知。这两个工具通常随流行的 Linux 发行版一起提供,因此不需要任何类型的预安装。

消息框

很明显,使用本机消息框向用户显示任务完成情况比在控制台中打印原始文本要好。使用Zenity可以轻松生成错误、信息、问题和警告类型的消息框。

信息消息框:zenity --info。

图片

警告消息框:zenity --info。

图片

错误消息框:zenity --error。

图片

错误消息框:zenity --question。

图片

如果用户允许,需要执行一组指令,则可以使用问题类型消息。例如,从磁盘删除文件。这可以通过使用简单的if条件或$?存储最后一个返回值的特殊变量。

通知

通知非常适合显示长时间运行的批处理指令的状态。这一点非常重要,即使用户正在做一些其他工作,而不是查看控制台以了解发生了什么,他们也会收到通知。借助notify send命令行工具,可以轻松生成本机通知。

考虑下面的简单例子…

Zenity还具有发送通知的功能,但notify send为我们提供了更多调整的自由。

输入元素

Zenity通过提供各种输入元素为收集用户输入提供了良好的支持。它有以下类型的输入框。

日历输入框zenity --calendar。

这是一种更好的捕获用户输入的日期的方法,而不是要求用户从控制台以yyyy-mm-dd格式输入所需的日期。

字符串输入框zenity --calendar。

我们通常使用read命令从控制台获取一些字符串输入。bash脚本对于非技术人员的可用性可以通过提供一个GUI文本字段来增强,该字段还接受通用的按键(主/结束键等)和简单的复制粘贴功能。

非常类似的zenity --password可以用来捕获用户的秘密字符串,如密码或PIN码。此外,密码输入还允许您启用用户名字段。然后返回用户名和密码,并用|字符分隔。

文件选择对话框zenity --file-selection。

本机保存/打开对话框可以顺利显示。我在Neutralinojs中也使用了此功能。

列出选择

如果我们使用普通的控制台输入来询问用户的一些选择,我们可以为用户的所需选择实现几个缩短键输入。例如,要求用户输入字母A以接受一个选项,另一方面要求用户输入字母B以激活另一个选项。从用户的角度来看,通过显示基于GUI的列表选择,可以稍微改进此方法。

让我们假设您正在制作一个安装脚本,您需要询问需要安装哪个帮助程序插件,以便与主软件程序进行双因素身份验证。

高级范例

如上所述,有几个GUI输入元素可以与bash脚本一起使用,而不是一直使用原始文本。此外,我将向您展示一个更高级的示例,该示例是使用这些本机GUI元素实现的。

*原文链接:https://medium.com/swlh/how-to-modernize-your-bash-scripts-by-adding-gui-cba613a34cb7。

Vondy
Vondy

下一代AI应用平台,汇集了一流的工具/应用程序

下载

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

Python异步编程与Asyncio高并发应用实践
Python异步编程与Asyncio高并发应用实践

本专题围绕 Python 异步编程模型展开,深入讲解 Asyncio 框架的核心原理与应用实践。内容包括事件循环机制、协程任务调度、异步 IO 处理以及并发任务管理策略。通过构建高并发网络请求与异步数据处理案例,帮助开发者掌握 Python 在高并发场景中的高效开发方法,并提升系统资源利用率与整体运行性能。

46

2026.03.12

C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

178

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

51

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

92

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

102

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

227

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

532

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

171

2026.03.04

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Rust 教程
Rust 教程

共28课时 | 6.9万人学习

Kotlin 教程
Kotlin 教程

共23课时 | 4.4万人学习

R 教程
R 教程

共45课时 | 7.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号