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

2016-05-14 11:40:28 +08:00
 quietin

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

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

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

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

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

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

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

6471 次点击
所在节点    程序员
59 条回复
msg7086
2016-05-14 13:00:45 +08:00
对了,

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

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

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

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

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

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

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

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

区别还是有哒
herozzm
2016-05-14 14:00:32 +08:00
说语言不重要的,要么是各种语言都会的高人,要么就是装 x 的 sb
xiongxin8802
2016-05-14 14:08:20 +08:00
@msg7086 你说的很有道理!
msg7086
2016-05-14 14:14:53 +08:00
因为我不玩知乎,所以长答案就写在这里了。觉得看不惯的话 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
2016-05-14 14:19:30 +08:00
@msg7086 希望你的简历中不要出现任何语言, 框架或者工具的字眼, 毕竟不值一提
美帝的人不上 reddit 跑这儿来干嘛, 算了, 就这样吧
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
2016-05-14 14:27:14 +08:00
语言有坑的话,那到底项目进行到什么深度呢?居然还会接触到语言的坑?我相信 90%CURD 的程序都是没有到谈语言坑对系统造成影响的地步。
不是语言不重要,是懂什么语言不是最重要的。
微软招人连你用什么系统都不重要。因为语言这东西可以学嘛, 2 个小时可以了解一门语言到 70%,那么就可以了。剩下 30%有需求再学不就可以了吗?两个小时对开发又不会有很大影响。
对学习能力强的人来说语言都不是问题,这就是大家为什么整天说工作语言不重要。重要的是你掌握一门新的语言要多久。
quietin
2016-05-14 14:28:42 +08:00
@msg7086 不好意思, v2 上多数还是国内的, 你要说国外的情况麻烦自己去开贴, 另外本贴也不是讨论贵司招人标准的
你有很多话想说, 想讨论, 自己开贴, ok?
msg7086
2016-05-14 14:30:09 +08:00
@quietin 偷换什么概念呢。不重要就不能出现?
你家里锅碗瓢盆在你生命中很重要,否则你家里就不能出现锅碗了,就只能手抓生肉了?
公交车在你的生命中也很重要,否则你就不能坐公交上班了,只能在马路上狂奔了。
(哦马路也对你很重要,否则你只能靠飞的了)

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

所以说基础知识很重要,首先你需要学会逻辑思考能力。
hxtheone
2016-05-14 14:36:28 +08:00
@msg7086 然而工作中只用到了 RoR 以及 rake, 元编程看完还没实践就入了 js 还有 fp 的大坑了= =
debiann
2016-05-14 14:37:44 +08:00
语言重不重要对不同的人来说不一样。对有些人能用好一套东西已经花费了他们所有精力,所以选对路子,找对方向就很重要。对另一些人学一套新的东西只是轻而易举,所以有什么新任务很快就能解决,语言没那么重要,毕竟工具是不通用的,但解决问题的方法大多是通用的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/278582

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX