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

为何有人觉得工作用什么语言不重要呢

  •  
  •   quietin · 2016-05-14 11:40:28 +08:00 · 6660 次点击
    这是一个创建于 3122 天前的主题,其中的信息可能已经有所发展或是发生改变。

    每当有人问学什么语言作为长远发展好的时候, 总有人说语言不重要, 算法数据结构重要什么的 blabla

    仅从工作的角度谈 算法什么的是很重要, 但是招人的时候 比如后端开发, 招聘基本是按语言分的, 主要招会 XX 语言的, 就写上 XX 工程师

    假设你认为语言不重要 -> 面试某个不熟悉的语言的职位 面试的时候让你写个算法, 当然要用你所应聘的职位要求的语言写, 然后不熟悉的话可能写得丑陋又低效, 当然你或许能阐述出来原理, 但是毕竟没有写出来, 而多数时候企业要的是一个来了就能干活的人, 而不是在嘴上说原理的人

    语言不光是说实现一套逻辑就行了, 每个语言都有自己的一套工具链, 熟练掌握都需要时间吧(比如二次开发之类的需求) 比如优化项目代码, 重构, 提高性能之类的需求, 你不熟悉这门语言能做到吗?

    每门语言都有很多细小琐碎的知识点的, 也就是踩坑 但在一些人的想法里好像换个语言像换衣服一样简单 其实估计他们自己都从来换过不同语言的工作

    极特别个例就不用举了, 没有意义

    最后我想说, PHP 是世界上最好的语言

    59 条回复    2016-05-15 10:08:29 +08:00
    kslr
        1
    kslr  
       2016-05-14 11:49:56 +08:00
    理论,熟悉
    rupert
        2
    rupert  
       2016-05-14 11:53:34 +08:00
    我只想问, php1.0 和 php7.0 是同一种语言么
    rashawn
        3
    rashawn  
       2016-05-14 11:54:19 +08:00
    我觉得语言还是很重要的,如果同事都说蒙古语……
    weaponX
        4
    weaponX  
       2016-05-14 11:57:31 +08:00
    我觉得语言还是很重要的,我现在就在努力地学英语!
    loading
        5
    loading  
       2016-05-14 12:01:07 +08:00 via Android
    工作,真的不重要!

    辅助语言比较重要,
    crayygy
        6
    crayygy  
       2016-05-14 12:01:53 +08:00
    > 而多数时候企业要的是一个来了就能干活的人, 而不是在嘴上说原理的人

    还真不是这样,当你的基础足够扎实,学习一门新的语言并不会花费太多的时间精力。相反,只是熟悉某一门或几门技术没有什么基础知识的,一旦公司需要涉及新领域,基本上就坑了。

    个人认为,大部分公司都是愿意培养员工的 ( 在公司从头学习到深入的员工更容易有认同感 ), 可能是我太年轻吧。
    xuwenmang
        7
    xuwenmang  
       2016-05-14 12:04:23 +08:00
    做 5 年 PHP ,没研究过 wordpress 做二次开发可能照样糊涂不清。

    人家做了 5 年 java ,跟你同时开始做 wordpress 二次开发,不一定比你差。。


    所以语言重要?
    quietin
        8
    quietin  
    OP
       2016-05-14 12:07:29 +08:00
    @xuwenmang 我的倒数第二句话位置不显眼吗
    zjqzxc
        9
    zjqzxc  
       2016-05-14 12:17:45 +08:00
    @quietin 如果产品 99%的功能都是 crud 操作的话,语言很重要,一天的工作量对语言不熟悉有可能要拖一周

    如果产品中涉及到复杂算法的话,对具体语言的熟悉程度就没那么重要了。

    只是对于大多数企业来说,网站都是 cms ,而且还不用考虑多大并发,这时候的确是一个啥思想都没有的熟练工更能给公司产生价值。
    loading
        10
    loading  
       2016-05-14 12:24:57 +08:00 via Android
    对着手册,给你磨一个月,老带新还是能干活的,不是结对编程吗?
    xuwenmang
        11
    xuwenmang  
       2016-05-14 12:34:24 +08:00
    @zjqzxc 你觉得这都是个例那就没办法了。

    天下武功,唯快不破,高手拿到啥都是致命利器。你非要说长枪好。。那就好吧
    luban
        12
    luban  
       2016-05-14 12:37:11 +08:00 via iPhone
    但是很多时候一种语言就是一种思维方式
    Shura
        13
    Shura  
       2016-05-14 12:39:10 +08:00 via Android
    can you show me your code ?
    Shura
        14
    Shura  
       2016-05-14 12:42:15 +08:00 via Android
    看了一下楼主之前的帖子,为啥楼主不坚持 Python ,还是说 Python 和 PHP 是一门语言?
    imn1
        15
    imn1  
       2016-05-14 12:43:44 +08:00   ❤️ 1
    语言很重要,因为我觉得你语文没学好,不知道语义环境
    编程语言重要与不重要,显然是两种语义环境下所说的话

    如果从 A 地到 B 地,用什么出行工具不重要,因为首要问题是能否到达
    当比较出行工具各自的重要性时,语义环境已经改变,实际上已经默认了“能够到达”这个前提条件了

    所以,“什么语言”其语义指的是“任何语言”,就是语言(泛指),所以比较标的是 数据结构等 vs 语言
    然后,非要把“什么语言”确定到某种语言(特指),那就是逻辑上的偷换概念,或者概念不清了

    飞机比汽车贵
    开什么玩笑,玛莎拉蒂怎么也比无人机贵吧
    tvallday
        16
    tvallday  
       2016-05-14 12:52:33 +08:00
    环境不同,职位不同,看法就会不一样。比如说淘宝原来用的是 php ,后来变用 java 了,难道把用 php 的人都辞退?用什么语言要跟着需求走。
    msg7086
        17
    msg7086  
       2016-05-14 12:52:58 +08:00   ❤️ 1
    我在美国的第一份工作是兼职 PHP 程序员,面试的时候直接面我 PHP 能力,面完把我招进去告诉我现在大家不写 PHP 了,全线改用 Ruby on Rails 了。
    后来就这每天 2 小时兼职时间,花了一周时间学完了该学的东西,然后就开始做项目了。
    没人教,就自己看看教学视频然后读同事的代码,老大偶尔点拨几句。

    哪个企业一周时间花不起的你告诉我。(其实不是一周,是 10 个小时。)

    语言本身就是没什么东西了。
    我不会 Java 但是如果让我去做 Java 的工作只要两三天我就可以开始给项目贡献代码了。
    murmur
        18
    murmur  
       2016-05-14 12:53:50 +08:00
    绝对不是
    做前端久了就感觉什么轮子都可以造
    写 java 久了如果有功能没有第一感觉是去看看 apache commons 是不是给写好了 或者 xml 里一个设置就打开了
    inahesun8712
        19
    inahesun8712  
       2016-05-14 12:55:39 +08:00
    编程语言不重要 所以我们只差个程序员
    inahesun8712
        20
    inahesun8712  
       2016-05-14 12:58:25 +08:00
    编程语言不重要 => 我们只差个程序员 => 随便找个人学几天就会了 => 变相压榨程序员
    msg7086
        21
    msg7086  
       2016-05-14 13:00:45 +08:00   ❤️ 2
    对了,

    「每个语言都有自己的一套工具链, 熟练掌握都需要时间吧」
    这叫工具链 / 类库

    「比如二次开发之类的需求」
    这叫代码 / 文档阅读能力

    「比如优化项目代码, 重构, 提高性能之类的需求」
    这叫工程 / 项目设计能力

    「你不熟悉这门语言能做到吗?」
    你看看上面这 3 点,没一个和语言是有关的,恰恰相反都是语言无关的个人能力 / 技术部分。
    所以答案当然是「能」啦,为什么不能?

    可能你会说提高性能会和语言相关。没错,是有些相关,但是基础知识扎实的人,自然而然会知道如何从上到下去分析去 Profile 一个项目,这对性能的提升远远超过你那些什么「用单引号比用双引号性能更高」这些语言相关的东西。
    gamexg
        22
    gamexg  
       2016-05-14 13:07:39 +08:00 via Android
    java 没学过,赶时间立刻上手写 android 。
    的确一开始不熟悉第三方库,用标准库里面的 http 客户端写起来比较麻烦,后来知道有很多优秀的第三方库,就好多了。
    除了这个种问题之外没碰到什么大问题。
    quietin
        23
    quietin  
    OP
       2016-05-14 13:15:14 +08:00
    @Shura 我又不求职, 为什么要 show code. 我也不打算和谁辨个你死我活啊
    关于 Python 和 PHP, 帖子之间并没有绝对的关联关系
    quietin
        24
    quietin  
    OP
       2016-05-14 13:16:35 +08:00
    @xuwenmang 高手不是个例
    msg7086
        25
    msg7086  
       2016-05-14 13:20:07 +08:00
    #24 @quietin
    如果一个人没什么能力,没什么本事,只能一直做新手,那么,

    你说得对,语言很重要。
    redvoilin
        26
    redvoilin  
       2016-05-14 13:20:33 +08:00
    基础重要,语言当然也重要了
    quietin
        27
    quietin  
    OP
       2016-05-14 13:22:59 +08:00
    @msg7086 如果你对工具链的要求只是会拿来用的话, 我没话说
    我还建议贵司招一个基础好的应届生去优化项目, 这样比较省钱
    SuperMild
        28
    SuperMild  
       2016-05-14 13:38:33 +08:00 via iPad
    语言用熟练了很好,但是 10 年后呢,和工作 3 年的新人比体现不出太大优势啊。
    msg7086
        29
    msg7086  
       2016-05-14 13:42:13 +08:00
    @quietin 基础好的应届生省钱?
    基础好的应届生年薪都是 10 万刀以上的你觉得很便宜么?
    这还只是起薪,不算那些能力特别高的。
    反正我们是招不起,只能招些懂语言却没什么基础的人,别的公司不要的我们拿下,便宜。
    虽然最后拖慢了公司进度,把公司活生生给毁了。

    我是个基础一般的应届生,刚工作一年,现在是公司主力开发,负责架构设计和系统重构。
    我们这有个客服,说想转开发,我教了他两三天的 Ruby ,前段时间没什么客服电话的时候他就在设计公司下一代核心系统的架构,预计没多久上头批准以后就可以转到开发部来了,开发能力远远超过公司里做了三五年 Ruby 开发的老员工。新系统的架构比我们现在的核心系统好不知道多少倍,天壤之别。

    另外我不知道你说的对工具链的要求只是会拿来用是什么意思。
    有阅读能力的人把你所说的工具链用到超过老员工的程度无非也就是在网上多看多读自己多试验而已。
    把使用某种工具的熟练度作为资本那就是说你已经没什么别的资本可以撑门面了……
    hxtheone
        30
    hxtheone  
       2016-05-14 14:00:13 +08:00
    写 JS 写多了感觉没有什么这语言不能做的
    写 Ruby 写多了感觉这语言就只能做 web 了

    区别还是有哒
    herozzm
        31
    herozzm  
       2016-05-14 14:00:32 +08:00
    说语言不重要的,要么是各种语言都会的高人,要么就是装 x 的 sb
    xiongxin8802
        32
    xiongxin8802  
       2016-05-14 14:08:20 +08:00
    @msg7086 你说的很有道理!
    msg7086
        33
    msg7086  
       2016-05-14 14:14:53 +08:00   ❤️ 3
    因为我不玩知乎,所以长答案就写在这里了。觉得看不惯的话 B 掉好了。

    首先是什么是基础知识,或者说那些比语言本身更重要的基础知识。

    数据结构和算法,这是大二的课程。
    数据结构至少要熟悉链表、树还有哈希表。
    算法至少要能够说出常用算法的复杂度,能够手算出给定算法的复杂度数量级。

    操作系统、计算机体系结构、编程语言和计算原理,这是大三大四的课程。
    操作系统至少要阅读过 Linux 或者 Minix 的源码,修改过代码,编译过运行过。我们这课的大作业是写一个 Linux 下的 USB 设备驱动。写不出来的话是挂你科的。
    计算机体系结构至少要懂如何设计一款 CPU ,要懂 CPU 内部的指令是如何解析与执行的,整个工作流程是怎样的。大作业是用随便一个类库编写一个能利用 GPU 来做通用计算的程序。
    编程语言这课至少要学习如何设计一门编程语言,我们这边学了 Haskell Prolog 还有一些基础知识比如 Lambda 啊 Functor 啊 Monad 啊这些东西。
    计算原理的话就是自动机和正规语言这些有的没的。

    这是我拿我们这三流学校(排名 100 名开外的无名学校)举例。
    每一个计算机专业毕业的学生都是有上述能力的。我在我们学校只能排中下水平。
    再加上比我们排名更高的这至少 100 多个学校的学生,他们全部都加起来,有多少个?

    学校里只有大一的基础课会教一下 C 或者 Java ,以及语言课会教一下 Haskell ,其他任何语言都是学生自己回去学的。
    比如随便一门课上到一半,老师说下周的作业要用 Python ,同学们自己回去看一下学一下,然后大家就看一下学一下就去做作业和考试了。要搞科学计算了,来同学们回去学一下 Matlab 编程。要学图形处理了,来同学们回去学一下显卡的 Shader 编程。如果你没有一周就能拿起某种语言并且开始开工的能力,你连大学都毕业不了。

    最后说一下面试时候的语言问题。

    说实话我这边大公司招人根本不管你语言。招 Python 工程师你用 Java 答题,没问题。招 Java 工程师你用 C 答题,也没问题。招 Ruby 你用 Scala 答题,更没问题。因为我们相信,有基础能力的人,要切换到新的语言,只要几个小时。

    如果一个企业招人是严格限定语言的,那么有两种可能。
    一,这企业不知道应该招什么样的人。
    二,这企业招不起厉害的人。

    我司属于后者,招不起。
    quietin
        34
    quietin  
    OP
       2016-05-14 14:19:30 +08:00
    @msg7086 希望你的简历中不要出现任何语言, 框架或者工具的字眼, 毕竟不值一提
    美帝的人不上 reddit 跑这儿来干嘛, 算了, 就这样吧
    msg7086
        35
    msg7086  
       2016-05-14 14:22:15 +08:00
    @hxtheone 只能做 Web 的应该是 Rails 吧。
    Ruby 首先一个 Rake 就能够做很多自动化的东西。
    然后 mruby 可以做嵌入式交互。
    然后 Ruby 和 Python 一样可以做运维,比如 Puppet Chef 这些。
    最后 Ruby 强大的元编程黑科技,可以拿来设计 DSL 。
    我上面提到的这位客服小哥,花了几天时间读完了我安利过去的 Ruby Meta Programming ,然后就撸了个 Restful API 文档生成器,输入 DSL 输出排版好的文档网页。

    Ruby 的元编程可玩年。
    neoblackcap
        36
    neoblackcap  
       2016-05-14 14:27:14 +08:00
    语言有坑的话,那到底项目进行到什么深度呢?居然还会接触到语言的坑?我相信 90%CURD 的程序都是没有到谈语言坑对系统造成影响的地步。
    不是语言不重要,是懂什么语言不是最重要的。
    微软招人连你用什么系统都不重要。因为语言这东西可以学嘛, 2 个小时可以了解一门语言到 70%,那么就可以了。剩下 30%有需求再学不就可以了吗?两个小时对开发又不会有很大影响。
    对学习能力强的人来说语言都不是问题,这就是大家为什么整天说工作语言不重要。重要的是你掌握一门新的语言要多久。
    quietin
        37
    quietin  
    OP
       2016-05-14 14:28:42 +08:00
    @msg7086 不好意思, v2 上多数还是国内的, 你要说国外的情况麻烦自己去开贴, 另外本贴也不是讨论贵司招人标准的
    你有很多话想说, 想讨论, 自己开贴, ok?
    msg7086
        38
    msg7086  
       2016-05-14 14:30:09 +08:00
    @quietin 偷换什么概念呢。不重要就不能出现?
    你家里锅碗瓢盆在你生命中很重要,否则你家里就不能出现锅碗了,就只能手抓生肉了?
    公交车在你的生命中也很重要,否则你就不能坐公交上班了,只能在马路上狂奔了。
    (哦马路也对你很重要,否则你只能靠飞的了)

    在美国就要跑去 reddit 不能来 V2EX ?你知道 V2EX 站长就在美国吗?
    用你的话来说,你一个天朝人不上天涯猫扑跑这儿来干嘛?

    所以说基础知识很重要,首先你需要学会逻辑思考能力。
    hxtheone
        39
    hxtheone  
       2016-05-14 14:36:28 +08:00
    @msg7086 然而工作中只用到了 RoR 以及 rake, 元编程看完还没实践就入了 js 还有 fp 的大坑了= =
    debiann
        40
    debiann  
       2016-05-14 14:37:44 +08:00 via iPhone
    语言重不重要对不同的人来说不一样。对有些人能用好一套东西已经花费了他们所有精力,所以选对路子,找对方向就很重要。对另一些人学一套新的东西只是轻而易举,所以有什么新任务很快就能解决,语言没那么重要,毕竟工具是不通用的,但解决问题的方法大多是通用的。
    nagato
        41
    nagato  
       2016-05-14 14:38:01 +08:00
    单纯语言的话,真的好简单
    msg7086
        42
    msg7086  
       2016-05-14 14:39:43 +08:00
    @hxtheone JS 和 FP 其实和 Ruby 也是有相通之处的,毕竟基本都能算是个 Lisp 的方言。
    不过 JS 这语言总觉得有点欠缺, Coffee 用起来舒服很多,希望以后各种进化版(什么 TS 啊)能够弥补掉现在 JS 的各种大坑。
    xuwenmang
        43
    xuwenmang  
       2016-05-14 14:43:24 +08:00
    @msg7086 你真有功夫。在这跟他扯。
    quietin
        44
    quietin  
    OP
       2016-05-14 14:43:33 +08:00
    @msg7086 咦, 刚才是谁在话里透露出一股 熟练工具不值一提的味道, 现在还是要写在简历里啊, 当然也不是不可以, 口嫌体正值的人我没少见, 呵呵
    大半夜的刷 v2 辛苦了, 年轻人注意身体啊(已 b
    msg7086
        45
    msg7086  
       2016-05-14 14:48:16 +08:00
    @xuwenmang 妈的智障我是不想理。
    但是怕以后别人看到了被他一波带走残害新人,所以姑且把事情讲清楚。
    现在终于把我 B 了,可以好好地回帖了 w
    qwerasdf
        46
    qwerasdf  
       2016-05-14 15:14:22 +08:00
    还以为你要说 OOP 和函数式编程的不同
    Akasha
        47
    Akasha  
       2016-05-14 15:37:55 +08:00
    高下立判,呵呵呵
    nashxk
        48
    nashxk  
       2016-05-14 16:19:19 +08:00
    汉语是最好的语言。
    Patiencec
        49
    Patiencec  
       2016-05-14 18:12:15 +08:00
    先说句与题目无关的话,看楼主的帖子内容和回复评论,你已然自己心里有定论,那么发这个帖子意义何在?
    然后说跟题目相关的,多高深的我是不知道了。

    一个产品明明用 java 十多分钟能做好的你只熟悉只懂 c ,然后硬生生用 c 做个十来天,而不是花三两天熟悉一下 java 查一下文档然后再用十多分钟把东西做出来?
    明明要用 cpp 才能有那个性能的,你只懂 java 于是硬是用 java 做出来个东西结果一运行系统占用了大半资源然后打回重做而不是花几天学一下 cpp 然后再做出来?

    至于语言的使用,哪个不是那么两个东西:命名和调用方法(包括很多,例如 block 的使用,至于数组字典这些类型你理解了他们的数据结构和算法了,那使用也就只是命名和调用方法不同而已),然后就是控制语句,流程啊,循环啊。

    只要熟悉其中一门,其他的哪一门语言不是几天的事情不就换个语法,关键字换一个,来来去去就那么几个关键字,能有多难学?至于各种 api 啊库啊,这些难道你不知道有一种东西叫做官方文档?例如 ios , cmd+鼠标左键不会?也不知道有一种东西叫做工具书?难道每一门语言都去把这些都背下来记下来?我又不是要变人形天网,有必要吗?

    当然,如果是要招一个来到马上进入生产价值状态并且这个项目做完就可以让他滚蛋的,那就当上面这些都是放屁咯。
    popo233
        50
    popo233  
       2016-05-14 19:17:44 +08:00 via iPhone
    @msg7086 排名 100 开外是世界排名吗
    jadecoder
        51
    jadecoder  
       2016-05-14 21:52:35 +08:00   ❤️ 2
    能写代码只是一个很低很低的要求

    如果两个同样基础的应届生,你用了 5 年 Java ,他用了 5 年 PHP ,现在他只要学习一个星期就能替代你,你不觉得自己很没用吗?

    语法可以一个星期掌握,框架,工具链,代码风格, JVM 也能一个星期掌握?
    quietin
        52
    quietin  
    OP
       2016-05-14 22:20:21 +08:00
    @jadecoder 你说了我想说的
    exch4nge
        53
    exch4nge  
       2016-05-14 23:16:12 +08:00
    本来看标题想回复几句的,但是看下面楼主评论,我觉得还是算了吧
    vanxy
        54
    vanxy  
       2016-05-14 23:17:50 +08:00
    @Patiencec 如果工作内容只需要调调各种 api 各种库,那换一门语言确实一周就可以了。
    maxmilia
        55
    maxmilia  
       2016-05-15 00:36:41 +08:00
    我觉得语言确实很重要,你看文档资料什么的好多都是英文,你英文不溜学习速度自然就慢了

    而且要学会听得懂领导、客户的话,明白他们的语言对工作效率也很重要
    msg7086
        56
    msg7086  
       2016-05-15 02:19:07 +08:00 via Android
    @popo233 美国排名啦。只是个普通的辣鸡学校…
    yxwqwgz
        57
    yxwqwgz  
       2016-05-15 05:34:09 +08:00
    要求低的话,不重要,可以很快上手。

    要求高的话,很重要。

    这就好像有人可以 20 小时学会一门乐器。但是学过 20 小时和学过 5 年,这里面会有巨大的差距。
    7harryprince
        58
    7harryprince  
       2016-05-15 08:47:00 +08:00
    工作是一个双向选择的过程,而每种语言都有自己的社区调性,而每种语言往往是在不同场景或者领域使用的。
    所以,一般对自己有想法的工程师都会自己挑语言吧?
    usernametoolong
        59
    usernametoolong  
       2016-05-15 10:08:29 +08:00
    对于大牛来说,真的是语言不重要, 他们入门速度太快了。。。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2772 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 04:11 · PVG 12:11 · LAX 20:11 · JFK 23:11
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.