为了账号安全,请及时绑定邮箱和手机立即绑定

2025年我该学哪门编程语言?

标签:
Python C++ Go

这是一个经常被讨论的问题,特别是在每年这个时候特别流行:今年我该学点啥技能好呢?

不仅仅是编程语言,生活中有许多方面或领域,技能是受欢迎或有用的,但你可能会疑惑如何开始或是否值得投入。

最重要的是,我学到的是,关键不在于“我应该学它吗?”而是“学它要多少钱?”

💸 启动成本

有些技能比较费时费力,还没想好自己是否能坚持下去,考虑一下是否愿意为此投入大量时间和精力,这样犹豫一下也合理。

例如,如果你想学习一种乐器,首先需要购买或租借乐器。如果你想学钢琴,你需要经常有机会接触钢琴进行练习,这些东西价格不菲,所以可能会对是否购买钢琴感到犹豫。但如果你想尝试一款带钢琴键盘布局的乐器(尽管功能有限),你可以试试手风琴,看看这样的键盘布局是否合适——它价格便宜,便携,而且许多初学者适用的钢琴理论和教程也同样适用于它。

相反,有些技能起步成本很低——如果你已经有一台炉子或烤箱,可以尝试做一些特定食物,或者开始画画(铅笔、橡皮和一叠A4/信纸很容易就能买到),然后上网找找各种教程——可以从画Q版人物开始试试看?

同样,学习外语也有很多选择和方法,从免费的手机应用和聚会,到付费的课程,甚至学位课程,你可以一点一点地逐步找到自己的节奏。

去年我开始采集和发酵,虽然买书花了一点钱(我现在有很多书了)和罐子(我前几天又买了些),但这些技能主要是快速且便宜的,我从中获得了极大的乐趣,今年我依旧打算继续做这些。更重要的是,这给了我真正走进森林的乐趣和理由。

这不仅仅关乎电脑——任何能帮助你远离屏幕的事情都对保持健康和回来时精神焕发至关重要 🍃

💻 用什么编程语言?

不过,回到开发的讨论。值得学的编程语言是哪一种呢?

我直接切入正题来回答这个问题:⭐你对任何感兴趣的东西⭐。如果你能在任何一天里留出30分钟,或者每隔一天留出30分钟,你就能对一门语言有个初步的了解,决定是否继续学下去。甚至,如果你能花一个小时来了解这门语言的基础体系,而你仍然不喜欢这门语言,那就停下来吧。

因为,除了极少数例外,接触一门新的编程语言几乎不需要任何成本。除了需要花时间,如果你已经会编程,你已经有相应的设备和技能,就可以直接上手。

当然,在一开始研究引起你兴趣的语言是很有用的,一旦你研究完了,你大概就知道哪些语言值得你花时间去学,哪些语言一开始就不太适合你。

如果你最后只选出了几个,甚至还在纠结“到底是这个,还是那个,或者是其他的呢”,我觉得显而易见的答案很明显:应该是按照顺序来考虑所有的选项。

我的使用场景需求是。

  • 命令行版
  • 最好是编译版
  • 尽量不要有外部运行时依赖

我的另一个应用场景是另一个独立的尝试。

  • 后台
  • 拥有简单的构建和最少的托管需求

去年我更加专注于Zig,尽管从脚本语言转到Zig对我来说有些不适应(也正是因此),同时也开始学习Go,作为更折中的语言选择。

从我在 C 和 Zig 方面的经验来看,我现在甚至没有考虑用 C。也许以后会考虑,但目前我选择的语言来看,我没有看到继续使用 C 的好处。我只浏览了一些 Kotlin 的网站,并没有深入研究,并决定我对它不感兴趣。

对于 web 开发,PHP 曾也短暂考虑过,但我暂时还不想深入研究;我觉得先了解 Django 和 Flask 更为合适,然后再回头看看 PHP(我以前做过这样的 php3 项目,那已经是很久以前的事了……)

🔨 小项目来啦

一旦你度过了每种语言的最初一小时,我认为你会觉得有些语言'不行了,我放弃了'——这很正常。这才是最终的重点。之后你可能会剩下一两种语言作为你下一步的选择。接下来呢?

我从一些朋友那里听到的一个问题是,你是怎么选择一个副项目或个人项目的呢?我的看法是,有没有什么你想用程序来解决的问题?例如,这个程序最简单能做些什么呢?

我在命令行上生活,所以这个问题通常对我来说比较容易。不过,除非我需要做更复杂的事情(比如处理媒体或使用复杂的图形界面),情况就不一样了。但我常常需要整理最近拍的照片或MP3,因为我的备份磁盘一直很乱,我需要把它们整理得有条理一些……我也经常希望网站能更合理地发布内容,比如网页抓取和RSS订阅的整理。

试着思考,一个命令行程序如何可以完成我需要的80%的任务?或者对于GUI项目,我们如何用几个简单的控件和按钮搞定呢?从这里入手。

解决特定问题,将功能精简到最少,直接动手吧。

(例如,我正在重写我的 bash-builder 项目,主要是扩展 lenker。我有一个受 Zig 的 build.zig.zon 文件启发做的 tarball-dependencies 项目,实现了一个简单的 /etc/os-release 读取工具,还构思了一个 PATH 管理工具。对于 web 相关的东西,我有一个在构思 Luanti 跨服务器内容时设计的播放器注册表,但我还没有真正动手做。所有这些我都有可能在需要时用不同语言重新审视。)

setCurrentYear今年我该学什么语言?

如果你真的想看看某个不知名的人在网上列出的语言清单,这里就是我现在的情况,

去年我尝试了一下:

  • 🦀 Rust - ❌ 拒绝 - 对我来说,它带来的价值不够补偿其复杂性
  • ⚡ Zig - ✅ 保留 - 低级语言但简洁明了,至少到目前为止我的体验是这样的
  • 🎯 Dart - 🤔 再看看 - 特定于 GUI/应用编写,目前还没有用例
  • 🦫 Go - ✅ 保留 - 在易用性和编译效率之间取得了很好的平衡,适用于 CLI 使用
  • ☕ TypeScript - ❌ 拒绝 - 我不太喜欢

今年我打算有以下计划:

  • 继续跟 Zig 和 Go 打交道——我想要熟悉一门系统编程语言,并且这种语言还带有一些额外特性。
  • 重新拾起我的 Lua 技能,使用 Love2D,也许还会稍微研究一下 [Luanti][launti]
  • 在 Django 上投入更多时间(虽然 Django 不是语言,但它可以帮助我更精通 Python)
🎉 哇啦!

尝试一门新语言的成本相对较低,尤其是当你已经拥有一台计算机和互联网连接时。花上一两个小时尝试多种语言,并试图理解它们为何如此运作,以及它们能为你带来怎样的新思维方式,这都十分值得。

这不仅是“我应该尝试X还是Y”,而是“我已经试过X,也试过Y——在每个上面我还要花多少时间呢?”

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消