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

    文章

    217

    浏览量

    20926
收藏 人收藏

    评论

    相关推荐

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

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

    企业老工程师和高校老师有啥区别

    电子工程师硬件
    电子发烧友网官方
    发布于 :2024年02月28日 17:50:00

    如何搞崩一个硬件工程师心态?试试对ta说这几句

    硬件工程师
    扬兴科技
    发布于 :2024年02月20日 18:05:49

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

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

    嵌入式软件工程师常用的

    最近我换工作了,看见不同嵌入式软件工程师用的平台都不一样,所以我整理了一下。PlatformIO:多平台支持:PlatformIO支持多种嵌入式平台,包括Arduino、ESP8266、ESP32
    的头像 发表于 12-24 08:00 231次阅读
    嵌入式<b class='flag-5'>软件工程师</b>常用的

    作为射频工程师,你真的会用“dB”?

    作为射频工程师,你真的会用“dB”?
    的头像 发表于 12-06 14:51 217次阅读
    作为射频<b class='flag-5'>工程师</b>,你<b class='flag-5'>真的</b>会用“dB”?

    嵌入式硬件和软件哪个好?

    方案,要求理解嵌入式系统架构,有一定的C语言基础,熟悉ARM、protel设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用
    发表于 12-05 15:17

    FPGA工程师需要具备哪些技能?

    语言 FPGA工程师通常使用硬件描述语言(HDL)进行FPGA芯片的设计工作。硬件描述语言使得工程师能够使用高级语言进行设计,从而提高了开发效率和可重用性。 HDL可以分为两种类型:Verilog
    发表于 11-09 11:03

    如何成为一名优秀的嵌入式工程师

    了解到最新的技术和趋势,同时也可以提高自己的编程水平。 要成为一名优秀的嵌入式工程师,需要不断学习和实践,掌握C语言的基础知识,同时也要关注嵌入式的发展和变化,不断提高自己的编程水平。不积跬步,无以至千里;不积小流,无以成江海。
    发表于 11-07 15:36

    嵌入式软件好还是硬件好?

    架构,有一定的C语言基础,熟悉ARM、PROTEL设计软件,有四层板开发经验。 成为优秀的嵌入式硬件开发工程师需具备以下技能:由需求分析至总体方案、详细设计的规划能力;熟练运用设计工具、设计原理图
    发表于 09-18 15:31

    为什么嵌入式软件工程师需要掌握 Linux?

    ,都默认支持 Linux 操作系统。 可以说, 打开 Linux 这扇门,你才是合格的软件工程师 。如果不能
    的头像 发表于 07-21 18:15 1312次阅读
    为什么嵌入式<b class='flag-5'>软件工程师</b>需要掌握 Linux?

    热门推荐:硬件工程师必备工具

    工程师在使用华秋DFM软件时,有哪些实用技能可以轻松掌握。 下图主要介绍在华秋DFM软件中,硬件工程师有哪些业务板块是适用的。 四、给硬
    发表于 06-21 10:15