0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

优秀的软件工程师真的可以随意交换吗

工程师人生 来源:网络整理 作者:工程师吴畏 2018-10-24 10:21 次阅读

我多次听经理或招聘人员说,优秀工程师是可以与其他优秀工程师交换的。他们可能会说,“首席工程师为这个项目选择了 F# 语言,如果外面没有太多的 F# 开发者,那么有几年经验的优秀开发者应该也还不错。”

我还听说过一些这样的言论,“我知道他们是前端人员,但我们现在需要他们做些后端工作。因为他们本身很优秀,所以这没什么大不了的。”

如果你相信这些蠢话,那我都可以把布鲁克林大桥卖给你了。我还创立了下一个独角兽公司,业务就是把冰卖给爱斯基摩人!我敢肯定,公司很快会有 10 亿美元的估值!机会难得,快来投资吧~

好吧,不开玩笑了,说实在的,“优秀的”软件工程师可以交换,这样的想法并不靠谱。我有时会对软件工作感到疑惑,是不是我在简历上写,“我保持良好的记录,不断在新技术上开拓驰骋”,然后我就能去任何想去的公司了?

我不敢相信今天要坐下来和你解释这一点,但是,现在让我们从语言差异开始说起。实际上,我已经将多种语言的代码投入生产,从 Scala 到 C#,从 Java 到 JavaScript。即使我能在几周内学会任何类 C 语言的的语法,(给别人可能需要更多时间,)我仍然清楚地知道,我不会用一种新的语言去开发一个生产代码库。

那么行业或商业背景呢?我已经涉猎在很多领域,包括健康卫生、电子商务、教育和电信。我是否应该认为我有资格在社交媒体工作哪?那么制造业、航空航天、数字加密货币(Cryptocurrency)哪?我的领域究竟能拓展到哪一块?在我被要求从 Web 过渡到移动、桌面或物联网时,也发生了同样的情况。

现在,让我给你讲个小故事。去年,在做后端 Java web 服务工程师的全职工作时,我还参与了另一个团队的工作,他们要在 Ionic Framework 中做一个移动应用程序,并使用 Angular、TypeScript 和一些定制库打组合拳。直到长达八个月的项目临近结束时,我才得以“适应”这种融合了 Ionic/Angular/TypeScript 的工作方式。实际上,“适应”这个词可能有点夸大其词。但仍然困扰我的是,我要在控制器中公开字段,因为需要在视图中显示它们,或者常量应该与其他变量一样命名。

顺便一说,如果你想在 JavaScript 中使用静态类型(static typing),你很快就会发现,这条路走不通。必须准备好“任何”类型!不过,我喜欢使用的 RxJs 订阅。

在项目结束后,我愉快地撤了。我现在再也不会自称为 TypeScript 或移动开发者了。这不是要在口头上表达优越性,而是一个简单的经验问题:八个月的时间不足以证明我在此方面的资质。我敢打赌,任何全职编程的人都会同意我的看法。

一个花了几年时间研究某种语言的开发者,将能够毫不费力地用它思考。她会在脑海中随时准备好所有需要的资源来完成任务,然后继续投入下一个任务。她了解语言环境,可以轻松地将标准库和第三方库结合成一个具有内聚性的新功能,就像一把钥匙对应一把锁一样,以此来轻松地解决问题。然而,当她不知道什么是可用的时候,她会重新造轮子,或者更糟的情况是,她会完全不知所措。

每一种语言都有着其独特的习惯用语、构建和依赖管理工具、框架、库、在线社区、IDE 等一系列东西,这些东西在日常实践中,对开发者生产力的影响比我们想象的要大得多。

但是,所有的语言都一样吗?我是说,C# 和 C++ 的开发者,到底有什么区别?“只是 # 和 ++ 的区别,哈哈,没什么大不了的!”快,把说这话的人扔去喂狮子!

我不是说任何人都不应该更换自己的语言、行业或设备。我只是说,程序员是不一样的。一个以 F# 为主要语言编写应用程序的软件团队,不会从我的 Java 经验中获益,尽管我也花了大量时间写 Scala。我只是说,我们不能找到那些“优秀的开发者”,然后出于奇思妙想,随机地把他们拖到不同的团队,并期望他们能够发挥出应有的效果。我是说,不要把所有“优秀的”开发者当作是可以交换的。

可交换开发者的神话是不现实的。人与人之间的不同无法消除,并愿每个人都能找到最适合自己的那个角色!

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件工程师
    +关注

    关注

    8

    文章

    218

    浏览量

    21138
收藏 人收藏

    评论

    相关推荐

    特斯拉招募软件工程师强化无人驾驶与机器人远程操作

    近日,据外媒最新报道,特斯拉正紧锣密鼓地招募软件工程师团队,旨在加强其无人驾驶出租车及Optimus机器人的远程操作能力。这一举措标志着特斯拉在推动自动驾驶与人工智能领域迈出了重要一步。 特斯拉此次
    的头像 发表于 11-27 10:26 549次阅读

    FPGA算法工程师、逻辑工程师、原型验证工程师有什么区别?

    ,还需要与软件工程师、硬件工程师紧密合作,对整个系统进行集成和测试。 总的来说,FPGA 算法工程师着重于算法优化,FPGA 逻辑工程师专注于逻辑设计,FPGA 原型验证
    发表于 09-23 18:26

    正是拼的年纪|65岁电子工程师上班VLOG #65岁退休 #电子工程师 #搞笑 #上班vlog

    电子工程师
    安泰小课堂
    发布于 :2024年07月25日 11:31:02

    嵌入式软件工程师如何提升自己?

    ,不断提升自己的专业技能,保持与行业最新技术的同步。 3.积累项目经验 项目经验对于嵌入式软件工程师的职业发展至关重要。通过参与实际项目,可以锻炼自己的技能提高问题解决能力和团队合作能力。建议积极参与
    发表于 06-12 11:20

    索尼诚邀软件工程师参与PS免费手游平台设计

    据悉,近日,澳大利亚知名媒体TweakTown发现,索尼互动娱乐正在为其旗下的PlayStation Studios Mobile招募一名资深的软件工程师,负责设计PlayStation的免费手机游戏平台。
    的头像 发表于 05-23 17:08 726次阅读

    嵌入式软件工程师和硬件工程师的区别?

    嵌入式软件工程师和硬件工程师的区别? 嵌入式软件工程师 嵌入式软件工程师软件开发领域中的一种专业工程师
    发表于 05-16 11:00

    大厂电子工程师常见面试题#电子工程师 #硬件工程师 #电路知识 #面试题

    电子工程师电路
    安泰小课堂
    发布于 :2024年04月30日 17:33:15

    Cognition发布首款AI软件工程师Devin

    据报道,Cognition公司今日公布了其首款人工智能软件工程师——Devin,掀起了打造软件模式变革的序幕。该产品在SWE-bench代码测验中展现出卓越表现,甚至超过了部分顶级人类工程师的水准。
    的头像 发表于 03-13 10:57 626次阅读

    优秀电源工程师需要哪些必备技能?

    。1、建模仿真电路建模仿真是电源工程师必备技能之一。它是电源开发过程中不可或缺的一个环节,可以帮助工程师们验证设计方案的准确性与可行性。电源建模仿真软件根据研究方向分为电气仿真和磁器件
    发表于 01-29 11:29

    如何构建linux开发环境和编译软件工程、应用程序

    前文介绍了如何使用官方提供的镜像文件启动开发板,本文将说明如何构建linux开发环境和编译软件工程、应用程序。
    的头像 发表于 01-03 12:31 2056次阅读
    如何构建linux开发环境和编译<b class='flag-5'>软件工程</b>、应用程序