为什么需要学习更多编程语言

图片

译者:今天,我们为您发布了开发人员Akshat Giri的文章 ,他分享了他的想法,为什么值得学习越来越多的编程语言。

我已经担任程序员四年了。 从C#开始,开发游戏,然后切换到Python和机器学习。 然后,我学习了前端的JavaScript和TypeScript。 下一步是移动应用程序的开发,因此我开始学习Ionic,React和React Native。 我对后端产生了兴趣,并开始使用Go。 过了一会儿,Dart,Java和PHP被添加到我的语言和框架列表中-这三个在我在Facebook上工作期间都是必需的。

我不想说我是上述所有语言的专家。 我只是对他们有经验,而不是其他语言和框架。 为什么选择落在他们身上? 好吧,在我看来,他们提供的服务比其他服务更多,这就是为什么。

Skillbox建议:两年实践课程“我是PRO Web开发人员”

我们提醒您: 对于所有“ Habr”读者来说,使用“ Habr”促销代码注册任何Skillbox课程时均可享受10,000卢布的折扣。



但是,为什么我建议您学习更多语言? 事实是,您甚至无法想象几年后会发生什么。 解决特定问题时,选择正确的语言或框架可以节省大量时间。

解决第一个问题


我将举一个简单的例子。 几个月前,我选择了蓝牙耳机。 停在AirPods。 我尝试了许多其他方法,但是在我看来,这些方法尽可能地方便。 问题是我将它们与Windows笔记本电脑和Android手机同时使用。 如果两个小工具都在附近,则耳机将连接到手机,但不会连接到笔记本电脑。 因此,我不得不手动断开它们并重新连接。 每一天

这非常累人,我决定制作一个按钮来解决需要时将耳机连接到笔记本电脑的问题。

最初,我决定使用Python解决此问题。 我以为我可以轻松找到一个可以控制蓝牙设备的库。 事实证明这是错误的;没有找到好的库。

下一步是Node.js。 我能够找到一个JavaScript库,从而可以控制计算机上的蓝牙功能。 在Node.js上执行了该脚本后,我实现了所需的功能。
// App.js const device = new bluetooth.DeviceINQ(); const airpodsAddress = "18:81:0E:B2:6B:A6" const airpodsName = "Akshat's Airpods"; device.findSerialPortChannel(airpodsAddress, function (channel) { // make bluetooth connect to remote device bluetooth.connect(airpodsAddress, channel, function (err, connection) { if (err) return console.error(err); console.log('YAY! Airpods Connected'); // Don't need a communication stream between the two // so let's just exit the stream. setTimeout(() => process.exit(0), 5000); }); }); 

好的,但是现在我需要屏幕上的一个按钮来启动脚本。 最后,我决定将其放在Windows任务栏上,以便始终可用。 我编写了另一个脚本,对我来说似乎可以帮助完成此任务。 但是不,我不得不求助于Golang。 他使创建可执行文件成为可能,该可执行文件又执行了先前在Node.js上创建的脚本。
 / main.go package main import ( "fmt" "os/exec" ) func main() { output, err := exec.Command("npm", "start").CombinedOutput() if err != nil { fmt.Println(err.Error()) } fmt.Println(string(output)) 

全部解决了。 我为桌面制作了一个快捷方式,并将其移至任务栏。 一切正常,一切正常。



我以为在C#中我也可以解决这个问题。 但是我真的不想安装Visual Studio和IDE。

我的示例演示了如何使用不同的语言以最少的时间找到针对特定问题的混合解决方案。 还有很多其他示例,但是我认为要点很明确。

那么为什么还要学习其他语言呢?


老实说,这很有趣。 另外,它扩大了您的视野,使您脱离了舒适区(它不会带来麻烦,但会激发学习新事物的欲望)。
另一个原因是超越了一种语言或框架的功能。 面向对象的语言很好,但是您还应该学习功能或过程编程。

您学习的第一门编程语言将是最困难的。 第二种可能性似乎更大。 但是进一步研究新产品似乎就像在公园里散步。 语法略有不同,有一些新变化,仅此而已。 此外,您可以学习专门的库和已经掌握的语言的框架。

在我看来,可能导致学习其他语言的另一个原因是WASM。 Web Assembly将使您能够在浏览器中运行所需的语言。

如果您是JavaScript或Python程序员,则值得掌握底层语言。 您可以从C ++或C开始,但我建议Golang。 它使您能够获得C ++的所有高速功能,而不会遇到C系列的特性问题。

如果您使用低级语言,请尝试使用JavaScript或Python。 两者都非常流行和普遍。 两者都可以与低级语言结合使用。 您可以为Node.js和Python编写C ++模块。

在评论中分享您自己的经验:您知道什么语言,打算学习什么语言以及为什么?
Skillbox建议:

Source: https://habr.com/ru/post/zh-CN435414/


All Articles