每个开发人员都应该学习的5种编程语言然而,也有一些程序员在日常工作中有机会使用不止一种编程语言。例如,如果程序员使用Flatternative模块,则有机会使用Dart、Kotlin(或Java)、Objective-C(或Swift)、C/C++等。大多数程序员在一种语言上工作了几十年,这限制了他们的技术能力。我们经常看到很多.NET和Java专家。但是精通多种语言的程序员却很少见。学习多种编程语言还有其他好处。然而,学习每一种流行的编程语言并不是一个明智的选择。在这个故事中,我将向您展示每个程序员都应该学习的五种编程语言。并用例子来说明学习这些编程语言的好处。1、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编程语言Miming语言在硬件相关的软件项目中仍然经常使用。但是像Java、C#、JavaScript、Go、Python、Ruby、PHP和Kotlin这样的语言主导着现代软件行业。这是因为它们:人性化的语法和语义。功能齐全的标准API。社区支持。丰富的框架和库生态系统。另一方面,现代社区并不经常使用C——其他流行的语言提供了比C更友好、更简单、更灵活的环境。是的,C是硬件相关项目的更好选择,但大多数开发人员致力于网络和移动相关项目。让我解释一下为什么学习C是最好的选择。C让你成为一个很好的问题解决者几乎所有的程序都提供内置方法或库方法来解决需要逻辑算法的编码问题。例如,如果您需要将特定项目复制到第二个数组中,您可以使用JavaScript中内置的filter方法。如果您使用的是Java,则可以使用java.util.stream包中的filter方法。从字面上看,任何流行的编程语言都有一个内置方法或库方法来过滤数组。但是如果你使用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语言选择hard路线。它将帮助您成为您最喜欢的编程语言的专家。*原文链接:https://betterprogramming.pub/why-every-developer-should-start-programming-with-c-39b3a87392bf。2.BashBash是为类Unix操作系统构建的命令语言和命令行解释器。Bash解释器程序预装在几乎所有类Unix操作系统中。此外,许多GUI终端软件通常使用Bash作为默认的命令解释器。因此,我们可以为不同的类Unix操作系统编写可移植的Bash脚本。程序员遵循不同的做法来提高他们日常的编程效率。许多程序员经常为重复的手动过程编写自己的Bash脚本。例如,我编写了一个简单的Bash脚本来构建和复制TypeScript项目的输出。学习Bash无疑是自动化学习过程的第一步。流程自动化确实是提高生产力的途径。Bash原生支持进程。换句话说,您只需提及其名称即可运行另一个程序。因此,您可以快速编写自动化脚本,提高编程效率。下面的故事解释了如何将GUI元素添加到Bash脚本中。如何通过添加GUI使Bash脚本现代化Bash脚本由一组用Bash命令语言编写的指令组成,可以在Unixshell解释器中执行。我们使用bash脚本来自动执行多项任务,如果我们手动执行这些任务显然会非常耗时。但是如果我们与现代计算相比,bash脚本是过时的东西,因为所有与用户的交互都是通过命令行界面完成的。我们知道一些开发人员正在使用醒目的徽标和颜色来突出控制台界面中的重要内容。如果一个特定的老式bash脚本被技术性很强的用户使用,那很好。但如果它被一般受众使用,那么有一些用户友好的交互显然是一件好事。事实上,您可以使用帮助我们显示GTK对话框的Zenity命令行工具将基于GUI(图形用户界面)的输入/输出组件包含到您的下一个bash脚本中。此外,可以使用notify-send命令行工具显示本机GUI通知。这两个工具通常随流行的Linux发行版一起提供,因此不需要任何类型的预安装。消息框显然,使用本机消息框向用户显示任务已完成比在控制台中打印原始文本要好。使用Zenity可以轻松生成错误、信息、问题和警告类型的消息框。信息消息框:zenity--info。警告消息框:zenity--info。错误消息框:zenity--error。错误信息框:zenity--question。如果需要在用户许可下执行一组指令,则可以使用问题类型的消息。例如,从磁盘中删除一个文件。这可以使用简单的if条件或$?存储最后返回值的特殊变量。通知通知非常适合显示长时间运行的批处理指令的状态。这非常重要,即使用户正在做一些其他工作而不是查看控制台以了解发生了什么,他们也会收到通知。借助notifysend命令行工具,可以轻松生成本机通知。考虑下面的简单示例......Zenity也有发送通知的能力,但通知发送给了我们更多的调整自由。输入元素Zenity通过提供各种输入元素为收集用户输入提供了良好的支持。它有以下类型的输入框。日历输入框zenity--calendar.这是一种比要求用户从控制台以yyyy-mm-dd格式输入所需日期更好的捕获用户输入日期的方法。字符串输入框zenity--calendar。我们通常使用read命令从控制台获取一些字符串输入。bash脚本对于非技术人员的可用性可以通过提供一个GUI文本字段来增强,该文本字段也接受常见的击键(home/end键等)和简单的复制粘贴功能。非常相似的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。
