从社会分工谈编程语言发展

2018-03-26 12:04:46 +08:00
 wangbenjun5

马克思曰:“经济越发达,社会分工越细”

在富士康,一个简单的数据线大概要经过 20 多道工序,由不同的人负责不同的部分。放到宏观来看,小公司的员工一个人身兼多职,要写前端,还要写后台,甚至运维也是他干,但是大公司呢,大部分人都是螺丝钉,一个人只负责一小块,是不是和富士康流水线上的工人差不多?

从编程语言这块来看,我一个写 html+css+js 的不必了解你操作系统原理吧?更没必要去了解 CPU 中断机制吧?就如普通工厂组装汽车的工厂,他需要懂发动机原理吗?很多计算机的底层知识已经超越了普通开发者的知识范畴,想把这些弄的清清楚楚很难,虽然说计算机才发展了几十年而已!那 100 年后呢?一个人的知识储备是有限的。

比如说某些计算机科研机构,他们大部分人不会去写 js,但是我肯定他们每天都在研究计算机底层,想着怎么优化 CPU 设计,优化算法以提供性能。

这种分层分工在计算机网络的设计上体现的非常明显,设计者把计算机网络分为 7 层,对于大部分应用开发者来说,只需要了解应用层协议基本上就够用了,你有必要去搞明白数据链路层怎么传输数据吗?

9791 次点击
所在节点    程序员
101 条回复
wangbenjun5
2018-03-26 22:15:53 +08:00
老哥们,我觉得你们说的都对,但是我感觉好多人应该没在公司上过班,对一种知识的认知可以分好几个层次:了解,熟悉,应用,精通...专业!我可没说一丁点都不知道,一般了解就够了,很多人吹的很厉害,其实也就这个层次,读完《操作系统原理》就能设计操作系统了?还差 10 万八千里,一个个真以为自己是全能啊,大学为什么还要分专业,咱不让你们都学学
cout2013mr
2018-03-27 08:47:47 +08:00
真是来黑 php 的吧。。。
老哥看不看 Zend 源码?要学虚拟机,没有基础知识打底,基本等于抓瞎。不学虚拟机,那就好好的去做业务吧。。不要操着架构的心思了
c1ay
2018-03-27 09:22:26 +08:00
@codermagefox #33 项目 deadline 临近
lizz666
2018-03-27 09:44:13 +08:00
@jadec0der 我想问下有什么好书推荐?还有,怎么耐着性子把那些深奥的涉及原理的书看完?
我学 java 看编程思想有时候不大理解还可以照着代码敲一遍,但是你们说的操作系统原理的这个我该怎么去读懂它呢?对这些我是完全小白的。望大神不要嘲笑。
hxndg
2018-03-27 09:53:46 +08:00
@wangbenjun5
你说了半天重点一直在瞎换,你又不知道别人在说啥,又说不清自己的意思。。。

@lizz666 原理并不深奥,主要是实现过程当中有很多的坑。找几本好一点的国外教材就行了
lovelynn
2018-03-27 10:00:26 +08:00
楼主第一个小瞧了人类的求知欲,科学家如此,码农也如此。总是希望知道为什么。
第二个如楼上诸君所说,细分工是企业需求,而不是个人需求。毕竟不想当设计师的钳工不是好钳工,不想当架构师的码农不是好码农。ps 优化这个东西真不是看看文档就能解决。没有自己的理解 怕不是要负优化哦。
zachguo
2018-03-27 10:03:50 +08:00
@jadec0der
@nevin47
云服务已经很大程度抽象简化 devops 的活了,感觉很多工作业从传统意义的 backend 剥离了。
msg7086
2018-03-27 10:06:31 +08:00
@wangbenjun5 大学操作系统课的课后作业是改 Minix 或者 Linux 内核源码。
编译原理课的课程设计是写一个语言转译器。
至于 CPU 设计,前几天刚刚有人贴过。 /t/439606

你的知识水平决定的是你工作的上限而不是下限。如果你连内核是怎么工作的都不知道,网络协议栈是怎么工作的都不知道,那你真就一辈子只能写写业务流程,然后让那些 90 后、00 后那帮从小学开始写代码的人直接淘汰掉。

面造入拧这个段子,不是真的说你进公司以后就拧一辈子螺丝了。
有些人拧螺丝拧成技术总监,有些人拧螺丝拧成螺丝刀,你觉得是为什么。

回到题头,组装汽车的工厂里的人,叫做工人,不是工程师。你给自己定位是工人,觉得不需要学习这些,这是正确的。就像一个通下水道的人没必要了解水管的材料特性一样。

当然,前提是你愿意一辈子通下水道。(我没有歧视水管工的意思,水管工很挣钱,社会也需要他们,但是这并不意味着大家的人生目标就都是通水管。)
oonnnoo
2018-03-27 10:10:06 +08:00
真正牛逼的还是科班出身的人,只是一些鸡汤喜欢拿非科班说事:
谁谁没有读过书,怎么怎么牛逼,谁谁学的 xx 专业,现在搞计算机也很牛逼啦。

尼玛,又不是每个人都是鸡汤那样!!
SakuraKuma
2018-03-27 11:16:18 +08:00
面试造火箭,工作拧螺丝不是正常吗。

懂多点,思考东西的时候多点思路,没啥坏处的。
qianguozheng
2018-03-27 11:21:45 +08:00
@codermagefox 牛的,就是,你只能看到人家的后腿,根本没有机会看清楚头,人家就又换了一份高薪的工作了
wangbenjun5
2018-03-27 11:48:16 +08:00
看不下去了,一个个说的好像人人都要当架构师,动不动就操作系统、内核、网络协议栈...拜托,你去公司看看哪方面需求大?

阿里几千上万个程序员有多少是架构师?有多少是写业务代码的?

岗位决定成就,学的再多用不上还是扯淡,自己感兴趣研究另外说,不是每个人都是狂热的计算机爱好者,很多人只是把写代码当作一份职业,仅此而已!
wangbenjun5
2018-03-27 11:52:05 +08:00
@msg7086 知道并不代表可以应用,难道你看完几本操作系统设计的书籍,动手山寨一个炒鸡简单的 OS 就可以对外可以自主研发操作系统了?
954880786
2018-03-27 12:02:35 +08:00
其实楼主想表达的是:一个人 *精通* 的领域只能是有限的吧。并不是说了解底层原理无用
PERFECTCN
2018-03-27 12:07:22 +08:00
大家不要再劝了,有些坑,还是要他自己走一遍才能知道
wizardforcel
2018-03-27 12:25:54 +08:00
@wangbenjun5 开发操作系统需要的是时间和钱,不是什么智慧。毕竟是高度模式固化的东西。
msg7086
2018-03-27 12:36:31 +08:00
@wangbenjun5 你看完操作系统设计写不出操作系统,但是你没看完操作系统设计,你连操作系统都不懂,还写什么操作系统上的应用程序?

你要做一个流水线上的工人,每天重复干一些无所谓的事情,没人拦着你。
真正的软件工程师早就设计完系统,舒舒服服拿着带薪假旅游去了。

给自己找一个不思进取的理由真是太简单了,请继续你的表演。
msg7086
2018-03-27 12:38:41 +08:00
这都 8012 年了,小学生初中生都能写 HTML+CSS+JS 了,等被后浪推倒在沙滩上的时候,莫要来抱怨后悔就是。
wangbenjun5
2018-03-27 12:43:59 +08:00
@msg7086 来来了,让小学生给我写个 vue js 这样的框架
wangbenjun5
2018-03-27 12:45:08 +08:00
@954880786 有这个意思,计算机底层原理当然有用,术业有专攻,不是每一个都要当专家

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

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

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

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

© 2021 V2EX