V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
onice
V2EX  ›  程序员

作为开发者,真的不应该被编程语言所限定吗?

  •  
  •   onice · 2019-04-17 19:40:41 +08:00 · 9617 次点击
    这是一个创建于 2049 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天在知乎上,看到一个前辈的回答,大致内容是说:

    不要被编程语言限定,过分强调某一种语言或平台,都是不必要的。

    如果你把自己限定为 Java 程序员或 .NET 程序员,你就已经输了,其次这种限定使得你自动被排除在世界上大多数编程工作之外。

    但是在现实世界中,很多公司都是按照技能来招人的,例如 Java 工程师,web 前端工程师等。

    大家怎么看呢?

    84 条回复    2019-05-17 17:53:15 +08:00
    www5070504
        1
    www5070504  
       2019-04-17 19:43:55 +08:00   ❤️ 1
    个人看法是 只会一门语言确实有局限性 但是也要跟公司技术栈符合吧 毕竟一个项目引入新的语言会带来挺多麻烦事的 这时候就得看领导的技术眼光了吧
    CallMeReznov
        2
    CallMeReznov  
       2019-04-17 19:43:57 +08:00   ❤️ 17
    JOJO,人的能力是有极限的。我从短暂的人生当中学到一件事......越是学习,就越会发现人类的能力是有极限的......除非超越人类。
    我不做技术啦,JOJO !

    迪奥·布兰度
    WordTian
        3
    WordTian  
       2019-04-17 19:47:55 +08:00 via Android
    深入一门,了解多门
    mushishi
        4
    mushishi  
       2019-04-17 19:48:45 +08:00
    应聘 JAVA 开发工程师,入职一个星期,转 PHP 了,然后没有 PHP 经验。现在是入职的第二个半星期
    hisenyuan
        5
    hisenyuan  
       2019-04-17 19:50:24 +08:00
    我感觉应该是深入一门,熟练一门就行了。
    太多的玩不过来
    sherryqueen
        6
    sherryqueen  
       2019-04-17 20:10:27 +08:00
    深入一门. 公司其他技术栈 要看得懂
    nanaw
        7
    nanaw  
       2019-04-17 20:12:27 +08:00 via Android
    起码“活着”的技术全都得熟悉才行。底层的汇编,c/cpp 更是要了解。
    Iamnotfish
        8
    Iamnotfish  
       2019-04-17 20:33:00 +08:00
    语言都是相同的,你深入理解了 JAVA 再看 C#也很熟悉。底层语言不了解不去讨论,但是现在市面上各种的 OPP 语言真的共同性很强。建议不要只把学习的范围只限定在一种语言。PS,楼主看的那个前辈是轮子哥吧,我好久之前也看到过 lol
    HuHui
        9
    HuHui  
       2019-04-17 20:33:31 +08:00 via Android
    屁股决定脑袋
    Lin0936
        10
    Lin0936  
       2019-04-17 20:35:56 +08:00 via Android
    我给自己的要求是深入一门,熟悉三门,其它的只要公司内在用或者目前热门的都能看懂一些。
    mooncakejs
        11
    mooncakejs  
       2019-04-17 20:40:34 +08:00 via iPhone
    不同语言各有所长,干活得选趁手的工具。
    gramyang
        12
    gramyang  
       2019-04-17 20:43:42 +08:00   ❤️ 1
    语言只是工具,编程思想和架构才是技能。话是这么说,但是我真的是不喜欢 JavaScript,还有学了太多语言后容易把一些特性给搞混。
    最多掌握 2-3 种就够用了
    hellwys1
        13
    hellwys1  
       2019-04-17 20:46:45 +08:00
    很多都得看懂啊,懂了 2、3 门之后才知道优劣。只懂一门语言我觉得很难真的深入。
    Mohanson
        14
    Mohanson  
       2019-04-17 20:49:12 +08:00 via Android
    没错啊。当一个计算机工程师,不要当一个某语言程序员
    dalieba
        15
    dalieba  
       2019-04-18 00:23:35 +08:00 via Android
    开发 web 就少不了 HTML、CSS、JS 这三样
    dtysky
        16
    dtysky  
       2019-04-18 00:37:23 +08:00 via Android   ❤️ 1
    你以为你能熟练好几个语言
    其实…………
    MonoLogueChi
        17
    MonoLogueChi  
       2019-04-18 00:40:04 +08:00 via Android
    我是做 unity 写 C#的,但是写着写着就成全栈了,后端没有?自己撸一个出来,要个注册登录页面?自己撸一个出来,素材贴图要改?拿 PS 修一下,现在虽然每样都不精,但是技能掌握了一大堆,能看能改的水平都有了
    geeti
        18
    geeti  
       2019-04-18 00:41:29 +08:00
    入职时候只用 java 写后端
    后来换了个组,后端全用 Golang,部分用 C++,客户端有时候需要修修 bug,又用 C/swift/java
    最近后端又要全用 rust 改写

    语言就是个工具
    Flobit
        19
    Flobit  
       2019-04-18 00:52:23 +08:00 via Android
    语言只是工具,重要的是思想
    msg7086
        20
    msg7086  
       2019-04-18 01:10:29 +08:00
    按照技能招人也不是你把自己限定在一种语言上的理由啊。
    yegle
        21
    yegle  
       2019-04-18 01:16:11 +08:00   ❤️ 1
    Google 并不按照语言招聘
    Kabie
        22
    Kabie  
       2019-04-18 02:33:50 +08:00
    招聘岗位是要能担任这个职位的人,但是把自己限定为只能做这个职位的人就太无聊了吧。

    现实中也并没有那么多需求极端专精的工作任务。
    zzjas98
        23
    zzjas98  
       2019-04-18 04:06:37 +08:00
    按照语言收人的公司也就只能收到被语言限制住的人了,谷歌亚麻这样的公司可不按语言收人
    tsui
        24
    tsui  
       2019-04-18 05:36:36 +08:00
    @zzjas98 没错,亚麻套路最深。
    面试:习惯 C++行不行?行!亚麻 C++代码大概占多少? 50%吧。 撸题 loop...
    bootcamp 第一天:我们现在绝大多数新代码都是 Java,C++大部分都是 11 年以前的老代码
    xuanbg
        25
    xuanbg  
       2019-04-18 07:29:28 +08:00
    只要你真的理解那些基本的编程知识,如:栈、堆、树、链表、数组以及流程控制等等,上手新语言也就是分分钟的事。
    577322753
        26
    577322753  
       2019-04-18 07:54:57 +08:00 via Android
    thrift rpc,使用这种 rpc 框架可以做到不同语言实现相互调用,为何不用你最擅长的语言去做这种语言最擅长的事
    GTim
        27
    GTim  
       2019-04-18 08:01:06 +08:00
    对的

    有空多整理整理教程,比如我的 https://www.twle.cn ,全部整理下来,一夜间感觉自己全栈了... 然后做事再也不极限于语言,想用哪个用哪个
    TomVista
        28
    TomVista  
       2019-04-18 08:16:57 +08:00   ❤️ 1
    可别吹这个了,你从 Java 转到 js 试试....再牛的大佬该懵逼还是懵逼.
    q397064399
        29
    q397064399  
       2019-04-18 08:19:31 +08:00
    @TomVista #28 把 js 当 Java 写不就好了,TypeScript 大雾 >_<
    murmur
        30
    murmur  
       2019-04-18 08:23:40 +08:00
    @TomVista js 50%的特性你是在开发中用不到或者可以用库、新的语法特性避免的,因为你不是框架开发者,他跟 java 不一样
    举个例子以前循环保存次数变量用闭包,现在你不管闭包用 let 或者 bind 都可以搞定了,甚至在 jquery 年代都有用 data 方法把数据保存在元素上然后触发事件去元素上拿的操作
    liuxey
        31
    liuxey  
       2019-04-18 08:34:04 +08:00
    然而很多情况下,语言限定了领域,领域限定了行业,行业又需要经验,转语言还是有成本的,当时我说的不是 web 工程 CRUD,这种就是搬砖,用哪种手套无所谓。
    iamxiaoq
        32
    iamxiaoq  
       2019-04-18 08:38:07 +08:00 via Android
    @GTim 老哥,有点厉害呀!
    secsilm
        33
    secsilm  
       2019-04-18 08:38:20 +08:00 via Android
    信仰
    reus
        34
    reus  
       2019-04-18 08:42:02 +08:00
    有的人连 26 个字母都认不全,他们的现实世界中也不需要其他语言

    你会做这样的人吗?
    q397064399
        35
    q397064399  
       2019-04-18 08:43:44 +08:00   ❤️ 9
    其实说到底这个世界上只有一门语言 那就是汇编语言,最接近机器,也是大部分人可以理解的抽象,把计算机当个大计算器 所有的计算机操作 无非是 读 写 运算 这三类 ,但是这玩意由于太过简单 ,而无法使用,至于简单到什么程度呢?基本上就跟你操作你手持计算机一样,而且大部分寄存器还保存在你脑子里面这样。

    所有语言其实就分三类

    C++流 恨不得干天干地干空气,生怕语言特性少了, 坚持要 0 开销,但是又要高层次的封装(其实这本身就是矛盾的,搞得 9012 年了,可选的 GC 最终还是难产了),就变成了今天这个鬼样子,不伦不类,好在大部分公司 /人只取一部分子集使用,但是由于语言本身功能太多,以至于几乎没几个人能完全把控。

    C 流 万年只在汇编语言上做一丁点的抽象,不把任何高层的特性加入语言,一切用函数来搞定 (线程 协程 )本身定位很准确 就是高性能 坚持对汇编的 0 抽象,不带任何运行时 (其实我最建议学这门语言,真的学会了 C 语言,其它的语言都是渣渣 基本上没一个能打的,搞来搞去 无非是搞一堆有感知的抽象,来增加程序员的脑力负担,像 GC 这种我是举双手赞成的,但是实际上任何一种抽象还是避免不了 有感知, 例如 OMM 的时候)

    Java/C#/Javascript 托管流 ,托管流才是码农日常的最爱,连内存回收这种擦屁股的事情都让机器搞定了,只要一顿乱撸,逻辑正确,程序就能跑起来,要运行时有运行时 高级码农搭架子,低级码农填业务,所有人都在框框里面,大家都不越界,开开心心撸码 高高兴兴下班。
    TomVista
        36
    TomVista  
       2019-04-18 08:47:46 +08:00   ❤️ 1
    @q397064399 @murmur 好吧,我还是保留我的观点.

    有几年工作经验的程序员,给他一两天时间,他完全可以用新语言,新平台,新框架写出一个简单的样例,但是这个样例,连玩具都算不上,完全不可能在短时间用新语言拿出一个完整的产品.

    大家口中所谓换语言,完全实在工作环境下,已经有同事打好了基础,换语言不过是从多年丰富 xx 经验程序员,变成新语言的码畜,然后你要花费时间去了解学习新语言的生态,再然后循环往复 -----换语言-学习-换语言--学习----,最后啥都会,啥都干不成...某公司开了多少 40 岁往上的程序员??技术深度足够?会被扫地出门?

    学的再快,你也赶不上在学校就就学完了的毕业生吧.缺码畜吗?

    换语言要慎重,要保证自己技术生态的深度,毕竟是个人都转行程序员.
    raptor
        37
    raptor  
       2019-04-18 08:49:00 +08:00   ❤️ 1
    根本原因是:语言会限定你的思维方式,这一点才是致命的。

    所以在常用的语言中,每个类型的语言都至少应该比较熟悉其中一种。

    只会一个类型的语言是肯定不够的,更别说只会一种语言了。
    visonme
        38
    visonme  
       2019-04-18 08:55:17 +08:00
    掌握某种特定的技术比语言更重要,好比装修工种,每个工种都有主要的作业工具,但是他们工具包也会有其它工具的一些工具(作业的主要工具)

    公司招人 XXX 工程师,其实是属于表述不明确,当然也不排除某个公司对招的人有误解,觉得会某种语言(工具)就掌握了某种技术
    murmur
        39
    murmur  
       2019-04-18 09:17:37 +08:00
    @TomVista 不换语言是不可能的呀
    java、c/c++/asm 反倒是最健康的生态,这些语言不折腾,只专注语言本身的优化,框架也是一代比一代完善
    反观前端,天天在闹革命,今天推翻这个明天推翻这个,还带着以帮后端语言在搞事情,以前是 node,然后是 erlang,现在是 golang,以后呢
    hantsy
        40
    hantsy  
       2019-04-18 09:25:57 +08:00
    @TomVista 除非你说的 JS 是 ES5。

    我个人主要写 Java,多年前工作需要,不时的切换前端写 Javascript, 个人表示毫无压力。ES6 以后的语法还有 Typescript 非常接近 Java 语法,还有 JS 下的 Gulp, Webpack 等 Build 工具,以及 Angular CLI 都是一路用过来。
    shugen
        41
    shugen  
       2019-04-18 09:30:01 +08:00
    精通一门语言就可以让你温饱无忧了。
    精通不意味对其他语言不了解,知己知彼~
    yanaraika
        42
    yanaraika  
       2019-04-18 09:31:14 +08:00 via Android
    @TomVista 那是因为你开的工资不够高招不到足够牛逼的人。Google 面算法是有道理的
    TomVista
        43
    TomVista  
       2019-04-18 09:32:53 +08:00
    @hantsy 你这是双线作战,,,应该不算转语言吧,,,我平常是前端各种+服务器 c# 也无所谓```
    TomVista
        44
    TomVista  
       2019-04-18 09:36:48 +08:00
    @yanaraika 一直不了解算法对程序的影响,深度不够,没办法跟你讨论算法程序....杠精附体,某个不会红黑树的渣渣??
    AngryMagikarp
        45
    AngryMagikarp  
       2019-04-18 09:43:39 +08:00
    开发人员的目的是解决问题,只不过写代码是他们解决问题的核心。不同语言框架有不同特性,能用在不同场合,能根据实际情况选择何时的语言框架应该是开发人员能力的一部分。但选择的前提是你有选择的权力,这首先是意识问题,其次才是能力问题。

    有比较好计算机科学基础的人不容易受限于语言。那些培训班出来的容易把语言(甚至只是框架)当做神。工作这么多年,我已经不止一次遇到:工作了四五年,结果连 HTTP 协议都没高清楚的 Web 前端,JSON 格式的标准都不懂的客户端了。在他们眼里,他们使用的框架、类库就是他们眼界的全部。
    xomix
        46
    xomix  
       2019-04-18 09:44:42 +08:00   ❤️ 2
    在你刚刚入行的三五年,你不应该看过多的语言,你在用什么就去精通他,用他多做业务,多做项目,建立自己的编程思想和逻辑,抽象出自己对业务逻辑到程序逻辑到数据逻辑的映射。

    当你已经熟料业务转换,建立自己的编程思想之后,你就不应该再局限于一种语言,而是开始广泛的涉猎其他语言的特性和差异,更多的充实自己对编程的认识。

    在你熟悉这些之后,你应该做的是再次回到自己最熟悉的语言上,重新整理自己对程序对象和程序逻辑规律的认识,总结处自己的框架,查看分析和深入理解各种系统的原理,最后再想想如果你用一种语言该如何实现。

    到了这里,编程对你来说是一种知识能力,即使给你一门新的语言你也可以在很短的时间内掌握。

    任何时候参与到语言优劣之争中去,都是浪费自己的时间和生命。
    任何时候想要精通所有的编程语言,都是罔。

    我一直觉得,所谓的程序员,不过是通过一些特定的语言把一般人要做的事情告诉计算机,让计算机按照一般人的需求做事。
    他们只是能够把一般人看似无逻辑的工作总结逻辑后告知计算机,让计算机服务一般人的翻译罢了。
    Cbdy
        47
    Cbdy  
       2019-04-18 09:45:45 +08:00
    底层码畜会被编程语言所限定
    xomix
        48
    xomix  
       2019-04-18 09:46:53 +08:00
    少说了一句,任何时候,计算机原理、网络原理等原理都比语言重要,你不需要深究字节码的转换和寄存器的位变换,但是你至少要知道数据怎么来的,怎么计算的,怎么走的。
    aver4vex
        49
    aver4vex  
       2019-04-18 09:48:20 +08:00
    精通一门就够了,别的都差不多。
    q397064399
        50
    q397064399  
       2019-04-18 09:49:55 +08:00   ❤️ 2
    @TomVista #36 生态这东西 说白了就是固定资产投资,我没说不需要投资,事实上我一直在 Java 这个生态领域做技术积累投资,但是不妨碍我学习 C/C++/Go 语言,因为涉及到缓存 API 网关 等特殊性能场景,Java 确实有其局限性,而且分布式系统的发展 不就是为了将软件系统跟特定语言平台 隔离开来么?
    另外一个问题是 把所有的精力全部只投入到一个技术领域,真的好吗 ? Java 在企业级开发领域确实值得投资,但是离开了成熟的公司跟团队,Java 就是一坨屎,如果你自己要做项目或者到初创公司,Java 那套是负担而不是资产,当初创公司进入成熟规模, 需要上规模软件开发团队,Java 就变成了最宝贵的资产,PHP 却会成为负担,从职业生涯来讲,谁也保不住年纪大了被公司一脚踢出去,去了小公司或者个人外包,那又是另外一幅场景,所以技术生涯 要学会分散投资,把所有技术积累全放在一个领域不是一个好的选择。

    而且很多东西真的是相通的,你学了 引用计数回收 了解他在哪些场景有局限性,就能更加深入的理解 有向图可达性分析 的垃圾回收方式。 另外 GUI 框架 你学了一门 理解了,学其他的 GUI 框架 就是换套皮而已,思想都是相通的。
    Vegetable
        51
    Vegetable  
       2019-04-18 09:52:17 +08:00
    因为大部分人水平不到位,公司才会限定招聘 JAVA 工程师.
    举个不恰当的例子.看一下设计领域,就没有 PS 设计师和 AI 设计师之分.因为设计师思想的重要性远大于使用的工具.
    如果大家都能熟练使用各种后端语言,那招聘后端的时候当然就不用限定语言了.
    工程师毕竟没有设计师那么注重创意思想之类抽象的东西,基本的操作能做了就能干活了.
    我现在能熟练操作 photoshop,山寨几个 logo 海报也不在话下,但是我没办法说我是一个设计师.可是我会了一门编程语言了,就能成为工程师,但是工程师绝对不仅如此
    TomVista
        52
    TomVista  
       2019-04-18 09:52:20 +08:00
    @murmur node 这就过期了啊 😂
    ipwx
        53
    ipwx  
       2019-04-18 09:52:41 +08:00
    只会一门语言,你就是新时代的拧螺丝工。

    当年资本家压榨普通工人,现在资本家压榨普通程序员,道理都是一样的,想必不需要我多说。

    可悲的是,仍然有很多只会一门语言的程序员觉得自己工资高,是中产阶级,超出他能力范围去买房,去消费。

    不说下去了……
    xiangdong1987
        54
    xiangdong1987  
       2019-04-18 09:54:12 +08:00
    学数据结构和算法吧,任何语言都是在一定数据结构和算法上而产生的。还有就是别纠结语言,不断学习才最重要,还有就是得赚钱 赚钱 赚钱 说 3 遍
    murmur
        55
    murmur  
       2019-04-18 09:55:22 +08:00
    @TomVista 能 node 的地方都 go 了吧 除了执着于服务器端渲染的
    orangeade
        56
    orangeade  
       2019-04-18 09:56:18 +08:00 via Android
    不多学点怎麽提高身价
    keepeye
        57
    keepeye  
       2019-04-18 09:58:21 +08:00
    12 年出道到现在,技能树是这样点的:php - js/nodejs - golang - python 最近可能要进入安卓开发,扫了一下 java 的语法,很简单
    yxcoder
        58
    yxcoder  
       2019-04-18 09:59:21 +08:00
    JAVA 学的精,其他也学的不错,遇见问题可以尝试各种办法,最顺手的还是 JAVA
    TomVista
        59
    TomVista  
       2019-04-18 10:10:22 +08:00
    @q397064399 好吧,强的人保持深度广度,弱的人努力保证生活有出路,尽量维持生活,,还是那句话,钱到位了,都好说.

    钱到位了,我转语言. 为了钱到位,我转语言,人艰不拆.

    没办法讨论下去了,大脑回路到了死结..
    Rwing
        60
    Rwing  
       2019-04-18 10:30:06 +08:00   ❤️ 1
    "我发现这个问题下面,有很多人不停地在吹什么:“语言永远不核心,只有人是关键。”“小心点不就完了?你不小心出了问题它就烂?”恕我直言,这些人的格局还停留在“工程师”的级别,根本就没有学会从整个项目的角度去看问题。当我们在讨论一个百人为单位的大项目的时候,个人的小心与否是根本不重要的,我们看的是一个整体的犯错概率,以及随之而来的人工成本。

    作者:Gh0u1L5
    链接: https://www.zhihu.com/question/21017354/answer/545465820
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。"


    节选一下我比较认同的观点。
    rocksolid
        61
    rocksolid  
       2019-04-18 10:40:32 +08:00
    大部分人不是天才,语言和语言乍一看差不多,实际差异不小,很多人所谓的简单只是能上手用而已,写写业务代码没问题
    chenjau
        62
    chenjau  
       2019-04-18 10:45:11 +08:00
    语言是一小块内容. 且触类旁通, 越学越快, 越简单. 在程序员的生涯当中, 学习语言本身所占比重不高,
    如果熟练一门语言, 学一门新语言怎么也要不了一个月时间, 学一个星期可以干活也不算稀奇事.
    当然, c 艹这种一辈子精通不了的腊鸡玩意除外😄️.
    局限于一种语言, 不可能是能力问题, 而是态度问题. 人不能躲在舒适区太久的, 特别是对程序员而言.
    我个人认为一般的程序员, 怎么也至少得掌握一静一动, 一高一低, 附带 shell.
    fancyhan
        63
    fancyhan  
       2019-04-18 10:46:27 +08:00
    没学过 haskell,不能称为职业程序员
    ouhey
        64
    ouhey  
       2019-04-18 10:47:05 +08:00   ❤️ 1
    语言本身都比较简单, 但是要熟悉语言的生态比较费时间
    momocraft
        65
    momocraft  
       2019-04-18 10:48:16 +08:00
    教你自己写程序在十年.html
    anyele
        66
    anyele  
       2019-04-18 10:55:00 +08:00   ❤️ 1
    我也认为, 单是语言不复杂, 有基础的情况下, 一个月肯定能入门, 但这个语言的一系列生态学起来很费时间, 就比如 C#转 Java, 两个语言非常像, 语言上转起来不费力 , 但你从 VS 到 eclipse 就会发现, 这 eclipse 是他妈什么玩意, 折腾了半天换成 IDEA, 纯英文界面,各种快捷键, 各种设置, 又要熟悉很久, 然后又是 Java 栈的各种库, 就这些一般人每个一年能玩熟练?
    wupher
        67
    wupher  
       2019-04-18 11:35:57 +08:00
    语言不重要,思想更重要,其它都是熟悉 library 和 framework。
    neimengwuyanzu
        68
    neimengwuyanzu  
       2019-04-18 11:47:55 +08:00
    我觉得就是至少其他语言给你看个东西 大致要描述出来这个方法 /函数是要干嘛的
    wxl1380610
        69
    wxl1380610  
       2019-04-18 13:44:59 +08:00
    11 年入行现在 ,Android oc , c++ , php , c# , 打一枪换个地方 ,公司的项目需求 ,你要找最稳妥的解决方案 ,比如搞个 app 你不能搞个还不成熟的语言来写 , 到时候招人都不好处理 ,搞 windows 那一套还得要 C# c++ ,关键是别的他不认啊 ,看需求了 ,比如 开发啥 word 小工具啥的 , 语言还是有局限性的 , 语言只是工具 , 关键看需求 。
    liygfg
        70
    liygfg  
       2019-04-18 13:45:30 +08:00 via Android
    @GTim 👍收藏了
    wxl1380610
        71
    wxl1380610  
       2019-04-18 13:50:10 +08:00
    @GTim 牛逼
    jorneyr
        72
    jorneyr  
       2019-04-18 13:58:01 +08:00
    不受语言限制,但是和语言相关的库的生态不是谁都能够脱离的,除非都是自己造轮子。
    shm7
        73
    shm7  
       2019-04-18 14:01:57 +08:00 via iPhone
    脱离了语言,你啥都不会了,那是真码农。会一种,学以另一种知道类比、触类旁通,系统、算法还能写,这个叫程序员。
    zhang77555
        74
    zhang77555  
       2019-04-18 14:02:40 +08:00   ❤️ 1
    不应该被编程语言限制是因为学会编程语言本身并不能让你挣钱,通过编程语言解决问题才能让你挣钱,而目前针对不同的问题,适用的编程语言是不一样,而未来,需要解决的问题也是在变化的。随着工作年限增加,看看是你学会编程语言这事让你更值钱还是你参与过的项目让你更值钱就明白了。
    empty9
        75
    empty9  
       2019-04-18 14:23:19 +08:00
    我这种产品经理都会 n 种语言了,oc,java,lua 主要是移动端开发,js,php,java,sql 写写服务端。其实学习一门语言并不难。最重要的是你要有业务可以搞。
    exch4nge
        76
    exch4nge  
       2019-04-18 15:03:32 +08:00
    作为普通开发者,被编程语言或技术限定是没什么问题的。

    不过作为优秀的开发者,被编程语言或技术限定了,那可能能力会遭到怀疑。基本上到后面大多数关注的语言与技术背后的原理及解决问题的思路,算法、数据结构、操作系统等等方面的基础肯定是必要的。

    多学几种语言与技术,基础知识扎实,你就能根据经(zhi)验(jue)回答(cai)你没有学过语言问题的解决方案 /原理 /bug 原因。你可能不知道具体的某 API 名称,但是你知道这个语言肯定有这方面的 API 来解决问题。当然这时候学习一个新语言也会很快,你会关注不同语言的区别与特色以及在特定领域上的能力。遇到问题会根据需求,初步找到几种方案,然后经过各方面的权衡,最终选择一个合适的语言与技术去实现。

    公司中的团队一般会选择某一些编程语言作为首选,所以一般招聘要求里找相关语言经验的人。不过仔细观察的话,现在很多职位招聘信息里只会强调熟悉 A/B/C 语言之一。

    不过也没必要说限定语言就是输什么的,毕竟很多人目的不是要成为优秀的开发者,可能志在别的地方,可能对于他们编程只是个乐趣而已
    no1xsyzy
        77
    no1xsyzy  
       2019-04-18 15:10:34 +08:00
    我还没见过这种 “ Java 工程师”:你只需要会 Java,工作中不需要了解任何业务流程,也不需要了解任何流程的细节,你只需要会 Java。
    之所以这么写只是因为大多数行业的业务流程非常朴素,并且前面的轮子在,那就没必要重新来过。
    其实微服务的好处之一是不同语言可以轻松地共存。
    但我还真没看到多少这么玩的。
    no1xsyzy
        78
    no1xsyzy  
       2019-04-18 15:27:02 +08:00
    @TomVista 我来反对一下,当时两天总共 12 个小时内厘清 tornado 怎么做,同时做出一个远程调用器,用于给不会 bash 的开发能够进行远程部署。
    接触前甚至不知道 yield 出来东西后还能 send 回去另外一个,查清楚 xxx = yield zzz 在解释器的角度是什么意思花了不少时间,主要是没有合适的关键词。
    结束后我甚至有几成把握从头撸一个协程框架出来。实际上在 asyncio 的循环上撸了一个 actor 式异步的框架。
    cheerxl
        79
    cheerxl  
       2019-04-18 15:27:36 +08:00
    会一种弱类型语言,比如 JavaScript,一种强类型语言,比如 C#,然后对 OOP 和 FP 两种范式都有所实践,那再学其他语言应该都不难吧
    no1xsyzy
        80
    no1xsyzy  
       2019-04-18 15:28:26 +08:00
    @exch4nge 编程只是个乐趣难道还会限定自己是 XX 程序员吗?
    exch4nge
        81
    exch4nge  
       2019-04-18 15:31:21 +08:00
    @no1xsyzy emm ……会有吧,毕竟世界很大……
    charlie21
        82
    charlie21  
       2019-04-18 19:30:47 +08:00
    在一般作业方面,
    为了适应公司的内部调岗的需要,编程语言根本不是、也不可能是一个作业人员的限制
    挑三拣四的人那是肯定要辞退的

    在技术选型方面,
    如果不是从零开始的项目,一般要考虑到 “历史包袱” ,尤其是公司内和其他项目的对接,这时 不需要考虑编程语言的特性
    除非是从零开始的项目,这样很多业务 不需要考虑 “历史包袱” 。很多都可以做成微服务了,怎么满足业务需求怎么来 —— 只有在这个时候,才需要考虑编程语言的特性

    也就是,只有在技术选型方面、从零开始不考虑“历史包袱”的项目,考虑到业务需求的时候,
    此时,
    才需要考虑编程语言的特性

    -

    当然, 公网上是可以闭着眼睛就开始讨论编程语言的特性,说的跟真的似的。上下文是啥?不管不问的,这和盲人摸象有啥区别?

    如果你的所有对于编程语言的看法,都是在做一个有 “历史包袱” 的项目里得来的,那么你对于编程语言的看法,都来自你做的项目的 “历史包袱” —— 不是你觉得它好,而是你因为项目“历史包袱”不得不用它 —— 那么,你的经验的意义为零,因为 看似是你在选择编程语言,其实是编程语言选择了你。

    被选择者,就好好完成工作就可以了嘛,为什么要假装自己是选择者呢?这是一种虚伪
    wsseo
        83
    wsseo  
       2019-05-17 17:46:57 +08:00
    我倒是希望自己被编程预言限制,比如我精通 java,java 相关的工作都能保质保量的完成。这样就有时间做些其他的事情了。
    wsseo
        84
    wsseo  
       2019-05-17 17:53:15 +08:00
    当你真正精通一门语言的时候,你对这些应该很熟悉了---“语言与技术背后的原理及解决问题的思路,算法、数据结构、操作系统等等方面的基础。”
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5945 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 01:57 · PVG 09:57 · LAX 17:57 · JFK 20:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.