如何科学选择一门编程语言?理性的我依然选 Go

如何科学选择一门编程语言?理性的我依然选 Go

我应该学习哪种编程语言?
如果你看到这篇文章,很有可能,在你的职业生涯中,你至少有一次在思考应该选择哪种语言。或者你甚至在编程生涯开始之前就已经考虑了。很高兴你能看到这篇文章。
我本人经常地(甚至可能过多地)去思考这个问题。不仅如此,我还会在实践中尝试许多不同的技术,得到或好或坏的结果。
在过去的几年,我曾经使用过以下语言:
我说的使用并不是只读过一些教程,而是至少在一个生产项目上工作过一整年。
如果算上一些练习程序、学生项目、训练营和研讨会,我使用过更多:
尽管如此,我相信,针对如何选择一门新的编程语言,以及需要关注的重要的内容,我可以提出一些我自己的观点。
此外,根据CliftonStrengthsassessment[1],我非常擅长分析,所以我觉得自己在这方面更加胜任:
我可以给你一个检查清单,包含一系列问题,你可以针对你想开始学习的任何新技术进行自测。
你必须考虑特定的技术应用于哪个领域。也许这主要是自动化的(例如C++)、ML/AI(Python)、底层的和服务器相关的东西(Go)、web应用程序(Ruby)、企业项目(Java/c#)等等。
你需要考虑你的兴趣是什么,你是否想要在创业公司、小型软件公司、大公司、金融技术公司或政府机构工作,并在那里找到匹配的技术。
例如,如果你看到.NET主要用于企业领域,但你更喜欢小型公司,那么你可能会考虑使用Ruby。
你是否曾经想过有多少特定技术的开发人员?是否有很多人使用Rust或F#?让我解释一下——从别人那里得到支持。
在我看来,很多程序员在遇到任何问题时,通常都会使用StackOverflow或者在各种博客上寻找答案。如果某项特定技术的开发者寥寥无几,这一切都不太可能实现。他们可能会有不同的问题,而且不会有很多人在网上分享。
程序员越多,遇到过的问题就越多,在互联网上发布的解决方案也越多。如果你正在使用一些众所周知的语言,你可能还没有经历过这样的问题。尝试一些新奇的技术,你会立即开始与你不理解的错误作斗争,你自己解决不了,也没有人能帮助你。
我知道开发人员很少考虑这方面的问题,尤其是当你是初学者时,但是当你考虑你的产品和公司时,你必须记住这一点。
有时候,你可能是CTO、技术或团队负责人,你的职责是为项目挑选工具、技术和招募新人。很明显,当你选择一些花哨的语言(如Elm)时,你可能很难找到有经验的人加入你。
当你在找一份新工作时,情况可能是类似的,你唯一拥有的技能是一些未知的、不那么流行的技术。你可能会发现重新安排工作机会并找到一份令你满意的工作是一个很大的问题。
这也是技术的一个重要方面。它的创造者可以积极参与社区,但也可以退出社区。
以Elixir为例。JoseValim是Elixir语言的联合创始人和创建者,他确实参与了这种语言的开发。他在GitHub上尽可能多地回复,在Elixir论坛上给出反馈,甚至参加小型聚会和当地会议,鼓励人们使用Elixir。
回想2012年,当我在Scala编程时,Scala语言设计师马丁.奥德斯基(MartinOdersky)很少出现在一些小型社区,更不用说程序员会议了。当然,他有时也会做一些演讲,他并没有完全脱离开发人员,但是他和所有使用Scala的程序员之间似乎有很大的距离。幸运的是,根据我从同事那里了解到的情况,现在已经发生了变化,情况好多了。
当你查看RubyonRails时,你将看到一个非常固执但非常有魅力的领导者。他喜欢表达主观的观点。
有时候,考虑哪些公司支持某种特定的语言是很重要的。是倡导GO的谷歌吗?或者是支持React的Facebook吗?Rust由Mozilla支持,C#来自微软,Swift由苹果开发。另一方面,Clojure和Python被认为是社区驱动的,这可能带来各自的优缺点。
考虑为支持语言扩展提供了多少资金是很重要的。如果你确信Oracle将年复一年地发展Java,那么你就不必担心你的未来、市场需求和工作机会。如果你看到Angular将每6个月发布一次,你就会觉得很安全,因为新特性将会频繁出现,你也可以安排必要的升级。
这就是为什么你也要考虑这个方面,这在一开始并不明显,需要一些研究。
举个例子,如果考虑Ruby或JavaScript,几乎可以100%确定每个工具都与这些语言有一些集成。你不必担心围绕一些API编写自己的工具或封装器。你会发现所有的库,甚至是官方库都可以与Twitter、Twillio、GitHub、Dropbox 等集成。但是,如果你选择Elixir,那么你可能很难找到维护良好的社区库,更不用说官方库了。现在的情况比 4 年前要好,但有时这仍然是个问题,需要得到明确的验证。
因此,如果你计划构建一个严重依赖外部API并结合多种集成的工具,那么你可能需要考虑一些不那么生僻的技术来实现这一点。请注意,你的目标是构建产品并交付业务特性,而不是开发其他库或者集成(当然,除非这是你的实际业务)。
Cobol现在是一种报酬丰厚的技术,但你考虑过具体原因吗?是因为它很有前途,非常受欢迎,被广泛采用,还是因为它很老,但是很多系统都依赖它,没有专家?
你需要考虑,使用某种特定的语言会被支付多少薪水。你可能非常喜欢 Elm,但经过一些研究,希望不要太深入地研究它,会发现没有人愿意为它支付很多钱。
有时,这种语言的报酬还不高,但考虑到市场需求,薪酬上涨还是很有希望的。以Rust为例。
如果你坚信某门语言在未来会快速发展,你可以马上投入你的时间,一旦它流行起来,你就已经是专家了。这当然会带来风险,因为这项技术可能不会被很好地采用,但想象一下如果不这样做会发生什么。你将拥有别人没有的经验,你将能够成为一名专家。你是选择紧跟潮流,还是为你的未来做出选择。
这是一个非常个人的事情,但仍然值得考虑,检查一下你是否喜欢一种语言的语法。错误处理是如何完成的,你需要多少代码量来实现并发或者并行性,你可以多快地阅读和理解其他代码。
以Ruby或Python为例,它们是每一个说英语的人都能容易理解的语言。看看基于C的语言,你可能很难理解其中到底发生了什么。Java和C#也非常冗长,而Clojure有时可能过于复杂。
当然,随着时间的推移,你开始越来越多地理解任何语法,但在某些情况下,你可能对Elixir更有信心,而不是使用Go。在我看来,一门语言越底层,开发人员的灵活性和容忍度就越高它允许的抽象越多,表述性就越好。
除了有可用的库之外,语言中还有一个重要部分是支持开发的可用工具,包括不同的构建器、编译器、静态分析程序、格式化程序、测试和部署工具。
考虑一下引导单个项目、编码、测试并将其部署到生产环境中有多难。在编写代码库之后,发布新应用程序版本需要多少时间。迁移数据库、下载和升级依赖项或构建单个可执行包是否简单易行。
一段时间之后,你可能会有一组脚本来完成这项工作,但是要考虑初级人员或新手。他们能像你一样轻松地做所有这些事情吗?这些特性是语言本身提供的,还是每个开发人员都必须准备自己的工具?语法是一回事,但总有一天,你必须向全世界公开你的应用程序。这需要花费你多少代价?
你看,有很多事情是需要考虑的。如果你的时间有限且昂贵,你可能要反思将把时间花在什么地方。
你刚刚读到的这些问题,一定会帮助你做出正确的选择,并对你的决定感到满意。
跟我聊聊你最近是否选择了一项新技术,你是如何分析它的,以及是否对自己的选择感到高兴。
via:https://blog.lelonek.me/how-to-choose-a-programming-language-7805da7ec588
作者:KamilLelonek[2]译者:iris55[3]校对:JYSDeveloper[4]
本文由GCTT[5]原创编译,Go中文网[6]荣誉推出
[1]
CliftonStrengthsassessment:https://www.gallupstrengthscenter.com/home/en-us/strengthsfinder
[2]
KamilLelonek:https://blog.lelonek.me/@KamilLelonek
[3]
iris55:https://github.com/iris55
[4]
JYSDeveloper:https://github.com/JYSDeveloper
[5]
GCTT:https://github.com/studygolang/GCTT
[6]
Go中文网:https://studygolang.com/

主题测试文章,只做测试使用。发布者:最新稳定辅助网,转转请注明出处:https://www.744broad.com/13996.html

(0)
上一篇 2023年3月4日 上午5:30
下一篇 2023年3月4日 上午5:34

相关推荐

  • EDCON2019黑客松已开放报名,等你来战!

    EDCON2019黑客松已开放报名,等你来战! unitimes.io全球视角,独到见解EDCON(www.edcon.io)是全球以太坊社区发展峰会系列,每年都在不同国家召开,旨在分享最新的区块链技术研究成果与应⽤,推进全球以太坊开源技术社区之间的交流与融合。EDCON2019将于2019年4⽉8⽇至14⽇在悉尼举⾏。本次峰会将采⽤“EDCON周”的活动形…

    RUST资讯 2023年2月17日
    100
  • 禁用Matlab,美国又给我们创造一次机会?(下)法道

    禁用Matlab,美国又给我们创造一次机会?(下)法道 ​  从6月初传出哈工大与哈工程被禁用Matlab,到现在快两月的时间,美国政府对中国的打压动作一直未停。它又拉到了新盟友停用华为5G设备,中国企业列名实体名单的数量又增加了,甚至使出关闭在美中国总领馆的路数……美国这是摆明了要与中国为敌。但是正如电影《教父》中那句经典台词所说的一样,“永远不要恨你的敌…

    RUST资讯 2023年2月28日
    40
  • 盐雾腐蚀试验箱 盐雾腐蚀测试试验得力助手

    盐雾腐蚀试验箱 盐雾腐蚀测试试验得力助手 盐雾腐蚀试验箱是一种用于人工模拟盐雾腐蚀环境的试验设备,可以用于用于模拟海洋性气候,用于考核材料、产品及其防护层的抗盐雾腐蚀的性能,以及评价防护层的工艺质量。与天然的环境相比较,盐雾腐蚀试验箱中的盐雾环境是自然条件下的几倍甚至几十倍,因此能够更加快速的得出自然环境下产品的耐盐雾腐蚀效果,能够在几天或者几个星期的时间内…

  • 纸黄金小心出现意外惊吓

    纸黄金小心出现意外惊吓 12月11日讯,在美联储下周FOMC会议即将到来,升息在即的情况下,黄金市场的投资者大量选择观望,数据显示,期金市场的总交易量较100日均线水平下降了34%。目前市场对美联储下周会议上升息的预期已经高达76%。MarexSpectron交易员GrahamLeighton表示:“所有人都在等待下周的美联储会议,黄金市场在美联储正式宣布升…

    RUST资讯 2023年3月11日
    10
  • 血腥的贝里琉之战,一场被遗忘的残酷战役,美军的伤心之地

    血腥的贝里琉之战,一场被遗忘的残酷战役,美军的伤心之地 “虽然这场战斗在任何史书中都无法占据太多的篇章,但对于那些在此阵亡的士兵而言,这就是整个世界的尽头。今天,仍然躺在贝里琉的遗骨们时刻提醒着我们,地狱曾经近在身旁。”这场被人遗忘的战斗的真相是什么?76年前在贝里琉岛又都发生了什么?今天就让我们回到76年前,在贝里琉岛的那个血腥的日子,来探寻贝里琉岛战役的…

  • 一篇搞懂选购机油的标准!最后一句亮了!

    一篇搞懂选购机油的标准!最后一句亮了! 简明扼要地梳理一下选购机油的标准。基础油一共分五类,之前我已经写了文章讲五类机油讲他们的区别,今天说选好机油的标准,那结论很明显是全合成机油好。最直白的理由就是全合成机油在汽车冷启时对发动机的保护远远好于矿物质机油。为什么?我们来看两种情况:【情况一:矿物质机油】发动机停止工作后,机油从凸轮轴、气缸套、活塞环、曲轴主轴…

  • 澳洲商科留学生都在学的Python,登顶世界最受雇主欢迎编程语言

    澳洲商科留学生都在学的Python,登顶世界最受雇主欢迎编程语言 几日前,一则新闻引起澳骄妹的关注一名初三的学生因自学编程被清华提前锁定!其实这样的热度不是空穴来风近几年,随着大数据时代的到来商科与计算机科学的界限逐渐变得模糊BusinessAnalystics、DataScience……越来越多的同学开始自学编程而全球各界的大佬企业更是纷纷开始抢夺编程人才…

    RUST资讯 2023年2月23日
    50
  • 封神2018的游戏 Steam五项年度最佳公布

    封神2018的游戏 Steam五项年度最佳公布 Steam平台的游戏爱好者今日迎来了年度盛典!Steam正式公布2018年度最佳页面,页面分为五个板块分别为2018年度最畅销游戏、2018年度最热新品、2018年度最畅销VR游戏、2018年度最佳抢先体验毕业作品和2018年度同时在线人数最多游戏。快来看看有没有你热爱的大作吧。2018年获得年度最畅销游戏铂金…

    RUST资讯 2023年2月25日
    40
  • 前端研发的新基础设施 – Rust 🦀️

    前端研发的新基础设施 – Rust ️ 作者:伍林辉(五灵)阿里交付技术团队最开始关注到Rust️,是因为Atom团队放弃维护Atom,转身投入到一个新的轻量级、更快的编辑器Zed的开发,而这个编辑器最大的特点就是将全部基于Rust来构建。而为什么基于Rust来开发可以更快呢,这成功吸引了我的好奇心,也是写这篇文章的原因。这两年Rust正在快速占…

  • 2021年对云原生的10个预测

    2021年对云原生的10个预测 黄一泰5分钟阅读谢丽尔-洪谈到DevOps大会主题演讲的主要收获时说照片:MaximHopmanonUnsplash早在一月份,我就写过一篇2020年CNCF年度报告的回顾,总结了云原生计算基金会(CNCF)的主要更新。最近在2021年DevOps大会上,CNCF的生态系统副总裁CherylHung给出了她对2021年云原生的…

    RUST资讯 2023年2月16日
    80
关注微信