你真的需要掌握多种语言吗?

你需要掌握多种语言吗?

我刚刚断送了我的事业。嗯,别人就是这么对我说的。

我的同事们知道了我要离开公司,大多数对此表示理解。让他们不解的是,我目前就职的公司是一家 Windows 商店,我们用 C#.net 写代码,而我要入职的岗位要求在 Linux 环境下进行开发,以 Java 为主要的编程语言。他们认为编程语言的改变会让我丢失多年的编程语言经验,许多人赞同我同事们的观点。

编程语言有上百种。有些编程语言十分常见,例如 Java、C#、 PHP、 Ruby、 Python、Javascript 等,而有些编程语言则处于边缘地带或者是新兴的,例如 Awk、Go、Julia、Rust等。面对这么多的选择,你如何知道应该重点关注那种语言呢?因此,我开始思索,你真的需要掌握不止一种编程语言吗?

 

九个掌握多种语言的理由

你真的需要掌握多种语言吗?

1.对于同一个问题,你可以有多种解决方法。掌握不同的编程语言之后,你会有更多的选择。毕竟如果你只有一把锤子,一切看起来都像是钉子。

2.你具有更多卖点,因此你会有更多的工作机会。有时,学习第二种语言能加倍工作机会的数量。然而,这取决于你所学习的语言种类。无论如何,你将会有更多的合适机会,从而增加求职能力。

3.这表明你具备学习新语言的能力。潜在的雇主知道你并非死板或者惯守成规的人。

4.学习是有趣的。学习新的事物会让你的头脑保持兴奋。这将有助于你在新领域的成长和提高。

5.你将掌握技术动态。你了解业界的发展趋势,并能借此获利。你的技能也不会过时。

6.这将提醒你为什么热爱你的「主」语言,或者如何将事情做得更好。有时候,只有尝试过新语言,才会知道主语言是何等的优秀。你会更加欣赏自己最爱的语言。同时,新语言可能会有一些惊人的特性,让你深觉相见恨晚。

7.你会成为更加优秀的程序员。学习新的语言,能够提高在所有语言间都通用的技术能力,例如设计和创建算法或者处理不同数据结构的能力。

8.你可以在工作中选择最佳的工具。显然,并不存在完美的语言;一些语言在特定情境下会比其他语言更好。掌握了多种语言,你可以在工作中选用最佳的工具。

9.这表明你是学习能力强的人。没有任何事情比掌握第二语言更能证明你的学习能力。

 

九个不想掌握多种语言的理由

1.掌握一种语言更加简便。通常,集中精力和全心投入才能精通某一事物。如果你在不同的语言之间切换,精通一门语言的概率将降低。掌握一种语言也有助于你集中精力。

2.大多数人仅需一份工作,大部分公司仅采用一种语言。在你受雇之后,掌握多种语言不一定会有所帮助。有时候,你只要掌握项目所用的语言,就够了。

3.总有一些东西值得学习;有时候,这意味着要更深入地学习一种语言。

4.大多数情况下,专家能提更高的薪资要求,因为人们更愿意为专家支付更多的薪水。约翰·森梅兹在其视频《我不确定成为一位专家》中谈到了为什么通才并不总是最好的。

5.即便你仅掌握一种语言,仍有可能成为伟大的开发者。开发者的成就与掌握的语言种类没有任何关系。重要的是你创造的是什么。仅掌握一种语言,你可以花更多的时间进行创造。

6.你仅需学习数目有限的软件开发工作。大多数语言只有屈指可数的一些工具。切换语言往往意味着转换不同的工具。只掌握一种语言,你可以更快地精通相关的工具。这将有助于提高你的生产力。

7.这更易于推销自己。只掌握一种语言,你其实已经将自己细分了(即便不是通过选择)。

8.你可以凭借任何一种语言解决大多数软件问题。不管有多少人告诉,大多数语言可以解决任何问题。如果解决问题是你的主要目标(本应当是),掌握更多的语言并不一定有助于实现这个目标。

9.精通一种事物比浅尝十种事物更好。

这不是一个非黑即白的问题。和大多数问题一样,最佳的解决方法是取中庸之道——总有一片灰色地带。如果你是初学者,那么学习一种语言,并将其应用到前十多个项目中会比较容易。在此之后,我建议你成为一位T形软件开发者。

 

什么是 T 形软件开发者?

一位「T形」软件开发者具备某一特定领域的深层知识,并且是一种语言的专家。T 的垂直线代表了这一点。此外,他们会继续广泛学习另一种技能,T的水平线代表了这一点。

 

那么,这和软件开发,特别是编程语言的学习,有什么关系呢?我建议你精通一种编程语言,这将成为你以后的生计,并用于解决大部分问题。你应当尽你所能掌握这种语言。在此基础上,你可以学习对工作有益的第二种语言或者技能。假如你不知道应当学习什么技能,参考我上个帖子《发现你将要学什么》。

A T-shaped software developer is a jack-of-all-trades, but a master of one. 
T形软件开发者是万事通,但是却精于某一项技能。

成为T形软件开发者后,你将灵活地掌握多种语言,同时具备某个领域专家的优点。

 

应当掌握哪种编程语言?

一个常见的问题是,应当学习哪种语言。或者说,假如你是初学者,应当首先学习哪种语言。通常,我会选择有一定历史的语言作为主要语言。这种语言应当用于多个行业,并且有广泛的使用群体和大量的开发工具。Java、C#、net、Ruby、Python、Swift 是符合上述标准的少数语言。

Tiobe 软件根据上述标准跟踪软件语言的流行性,并编入索引中。点击此处可查看完整的编程语言榜单。该索引每月更新一次,前20名的语言都是不错的选择。未来10年,这些语言还会流行吗?我不确定。但这些语言在未来四年内还是很可能保持流行的,这对任何准备着手的项目都是够用的。

 

是否掌握多种语言取决于你的目标

你准备开始新项目或事业吗?或许你仅需掌握一种语言。

你想改变行业或者引领科技潮流吗?或许你需要掌握多种语言。

你想在一家企业固定工作吗?或许你只需掌握一种语言。

你准备从事前沿项目吗?或许你需要掌握多种语言,因为发展趋势总是不断变化的。

老实说,在决定是否要掌握多种语言时,并没有正确或者错误之分。最终还是需要你自己下决定。

你掌握了多少种语言?你擅长的领域是什么,你是如何通过兴趣扩展擅长的领域的?在评论中与我们分享吧。

(编译自:https://dzone.com/articles/do-you-need-to-know-more-than-one-language)

OneAPM 为您提供端到端的 Java 应用性能解决方案,我们支持所有常见的 Java 框架及应用服务器,助您快速发现系统瓶颈,定位异常根本原因。分钟级部署,即刻体验,Java 监控从来没有如此简单。想阅读更多技术文章,请访问 OneAPM 官方技术博客。

本文转自 OneAPM 官方博客

用WorkBuddy和ima搭建本地知识库:从概念到实操 在AI应用普及的今天,私有知识的高效管理与调用成为痛点。RAG(检索增强生成)技术通过将外部知识库与语言模型耦合,为精准问答提供了技术底座。然而,传统RAG方案往往涉及向量数据库、文本切分等复杂环节。一种更轻量的路径应运而生:借助WorkBuddy与ima的组合,将知识收集、语义检索与智能体工作流整合,让本地知识库真正服务于日常办公和研发场景。从概念到实操,系统解析这套轻量级方案的核心逻辑与配置方法,并对比重方案适用边界,帮助读者快速搭建属于自己的AI知识助手。 阅读详情

相关推荐

南邮 2024 软件安全 实验四 自动脱壳+手动脱壳

这次这个实验很简单,就是一个简单的脱壳,然后进行爆破就行了,解法非常的多这里不多讲,会简单讲一下特殊情况这个点开是这样子:然后放进peid里面查看,我这个是原版的PEid,所以显示出来是这样:会显示nothing found,但其实如果你使用吾爱破解的魔改过的peid,它就会显示具体的壳名:然后你点击右下角的那个箭头,里面会有很多的插件用来自动脱壳:你也可以使用这个通用脱壳器,但是脱壳后的程序无法运行,这个放到后面讲。

ARbing_an的博客 2560

实验吧-你真的会PHP吗?writeup

1.你真的会PHP吗?首先fiddler抓包,在response header中发现hint:6c525af4059b4fe7d8c33a.txt,打开后找到index.php源码<?php $info = ""; $req = []; $flag="xxxxxxxxxx";ini_set("display_error", false); error_reporting(0); if(!iss

qq_24966613的博客 3358

SwarmClaw:自托管多智能体AI运行时部署与实战指南

多智能体系统是人工智能领域的重要发展方向,它通过多个具备自主决策和协作能力的智能体共同完成任务,其核心原理在于分布式问题求解与协同规划。这种架构在提升任务处理效率、复杂问题分解和鲁棒性方面具有显著技术价值,广泛应用于自动化工作流、虚拟团队协作、智能客服和个性化助手等场景。本文聚焦于SwarmClaw这一自托管的多智能体AI运行时,它原生支持Model Context Protocol,并内置了超过23种AI提供商,为开发者提供了一个开箱即用且高度可定制的控制平面,便于构建和管理复杂的多智能体协作网络。

weixin_27207591的博客 401

你真的会php吗?

今天来讨论一道php代码审计的题,这是一道实验吧的题,链接: http://ctf5.shiyanbar.com/web/PHP/index.php 。 首先我们点开链接,并且查看源代码, 发现什么都没有,这时候我们想,我们想源码可能在服务器端,我们用burpsuit抓个包,发给Reapeater。 从服务器响应的文件,我们可以发现以下对我们有用的信息。 1.服务器的系统是32位的系

JBlock的博客 1万+

《通信工程施工与管理》

制作馈线接头必须使用专用的工具,专用工具包括:馈线切割刀、馈线安全刀、小金属丝毛刷、固定尺寸或大号活动扳手、小号扁锉刀、细齿小手锯、接头扩孔器、3M防水胶或防水接头盒;如图所示,详情如表所示。

2302_78710464的博客 1653

Python实现飞书机器人定时发送文本、图片等群消息

python实现飞书群自动发送告警消息

tyh_keephunger的博客 2万+

只精通一门编程语言足够吗?探讨程序员的多语言挑战

不知道你是一名热爱编程、刚接触编程的新手,还是一位经验丰富的老手?不过无论你身处哪个阶段,你可能都听说过这样一句话:“作为一名程序员,只需要精通一门编程语言就足够了。”这听起来是不是很诱人?毕竟,深入掌握一门语言已经够难的了,何必再折腾其他的呢?但是,让我们稍微冷静下来思考一下。是不是真的只需精通一门编程语言就能在编程的世界中游刃有余?或者,是否有更多的考量和因素需要我们考虑?在这篇文章中,小狮妹将深入探讨这个问题,解析程序员是否真的只需要精通一门编程语言,以及这个问题背后的复杂性。

wly55690的博客 1393

告别 RPA 和 Selenium,MCP + Playwright 成为自动化开发新宠!

摘要: 随着数字化转型加速,传统自动化工具(如RPA和Selenium)在复杂场景中暴露出开发成本高、灵活性不足等问题。新一代解决方案MCP(Model Context Protocol)与Playwright的结合,通过AI与自动化的无缝对接,实现了智能化的任务处理。MCP支持自然语言交互和上下文感知,开发者无需编写复杂代码即可生成自动化脚本;Playwright则提供多浏览器支持、高性能和易用性。二者结合显著提升开发效率,使自动化更智能、灵活。文章还对比了VS Code与Trae中配置Playwrigh

我先测了 2208

初学编程:学编程真的有必要掌握多种语言吗?

初学的话,真的没必要掌握多种语言。以实际工作经验告诉大家,每一个新的项目,大部分开发都要学新的语言。或者是行业改变,也要接受新的内容。比如苹果应用之前由Objective-C主导的OS中添加了Swift的支持,谷歌在Andriod中添加了Kotlin的原生支持。介于小白要学编程,都会纠结语言的难易程度、应用方向,这篇文章就给大家介绍清楚。

黑马程序员官方博客 456

张量分解浅谈(四 Tucker 分解)

学完了SVD算法之后,我们继续回到张量几大分解的学习上来,本期学习的主要内容是张量的 Tucker 分解 以及 前面的CP分解还留下一点没有说完,正好一并补齐!后面的公式我将采用颜色标记,红色代表必须掌握,蓝色尽量掌握! 在这之前先附一张图,包含了各种运算符号的名称含义,大部分是前面说过或者使用过的: Tensor decomposition一 . Tucker 分解公式介绍和原理二 . 张量的 n-Rank 一 . Tucker 分解公式介绍和原理 我们先来看一张被使用过很多次的Trucker 分解图

欢迎来到 豪哥 的博客 1万+

LlamaIndex 入门实战

LlamaIndex是一个“数据框架”,用于帮助构建LLM应用程序。它提供了各种工具,包括数据连接器,用于摄取现有数据源和数据格式(API,PDF,文档,SQL等),以及用于将数据结构化(索引,图形)以便与LLM轻松使用的方式。此外,LlamaIndex还提供了高级的检索/查询接口,可以输入任何LLM输入提示,并返回检索到的上下文和增强知识的输出。它还允许与外部应用程序框架(如LangChain,Flask,Docker,ChatGPT等)轻松集成。

AIGC搞起 1万+

你真的须要掌握多种语言吗?

你须要掌握多种语言吗? 我刚刚断送了我的事业。嗯,别人就是这么对我说的。 我的同事们知道了我要离开公司。大多数对此表示理解。让他们不解的是。我眼下就职的公司是一家 Windows 商店,我们用 C#.net 写代码,而我要入职的岗位要求在 Linux 环境下进行开发。以 Java 为基本的编程语言。他们觉得编程语言的改变会让我丢失多年的编程语言经验。很多人赞同我同事们的观点...

weixin_30548917的博客 105

Doris数据过期策略:自动清理历史数据

在数据的世界里,就像我们的房间会堆满各种东西一样,数据库也会积累大量的数据。随着时间的推移,很多历史数据可能不再经常被使用,但它们却占据着宝贵的存储空间。Doris是一款强大的数据库,为了让它能更高效地运行,合理地管理数据,我们就需要一种方法来自动清理那些不再需要的历史数据。本文的目的就是详细介绍Doris的数据过期策略,让大家知道如何利用这个策略来实现自动清理历史数据。范围涵盖了从基本概念到实际操作的各个方面。本文会先介绍一些和Doris数据过期策略相关的术语,让大家对一些专业词汇有个基本的了解。

软件工程实践的博客 555

初学编程选哪门编程语言?真的有必要掌握多种语言吗?

之前就有人讨论过,是否做编程需要掌握多种编程语言呢?很多人各执一词,都有道理。 从职业发展的宽度和深度来说,掌握多种编程语言,可能更好的适应企业的发展需要。从而发挥更加重要的作用。而精专主攻一门语言,做到深度学习,成为该领域的专业是不错的发展。下面分享一下两个观点支持者的意见吧。 掌握多种开发语言,才能更好的体现自身价值。   1、在遇到问题的时候,能用多种方式来解决同样的问题,掌握不同的编程语言意味着拥有更多的选择。从而提高解决问题的能力。   2、具有更大的竞争力,拥有更多的择业机会。学

HUYA69的博客 323

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

如何在同一个工程里添加多种语言

这应该是一个使用VC的一个小技巧,不过在打算做之前,在网上找了找,没有找到(可能是我填入的关键字不对,:-)),所以在这里给大家提供一个参考,希望对大家能提供方便,不用象我找的这么辛苦。意图:实现多种语言在同一个工程里,如果调试成功后,即可以同时编译程序的多种语言版本。平台:Win2000 Pro SP4, VC++6.0,SDK一般情况下,编写程序都会使用工程制作向导,生成的工程有两

danielxuao的专栏 1786

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Instagram上的实时语言翻译工具是否支持多种语言?

目前,Instagram的实时语言翻译功能只支持少数几种主要语言,如英语、西班牙语、法语等,对于一些小众语言来说,仍然无法完全满足用户的需求。在当今全球化的时代,语言已不再是沟通的障碍,但在社交媒体平台上,语言差异仍然是一个挑战。近年来,随着人们对跨文化交流的需求不断增长,Instagram等社交媒体平台也纷纷推出了实时语言翻译工具,以便用户能够更轻松地与来自不同国家和地区的人交流。对于一些较为冷门的语言或者方言来说,这些翻译工具往往无法提供准确的翻译,导致用户之间的交流受到了一定的影响。

haiwangfanyi的博客 538

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: Java 8:如何使用流方式查询数据库?
下一篇: 升级 Java 编程规范的6个约定
OneAPMOfficial
博客等级 码龄11年 5粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值