今天在逛坛子的时候看到
念之森蓝昨天发的一个帖子
8年Python开发面试时连基础的语法问题都回答不上来。
发现哪怕是程序员对于技术理论的认知似乎也分两派,但从帖子内容来讲,基本上内容:
1.对于某种语言程序员应该事无巨细的了解其各种特性,以此引申类同到计算机方向的很多其他知识点,我这里称之为“原旨派”。
2.另一派觉得语言以及大多数知识只是工作中所使用的工具,对于工具而言载明白其一通百通的底层原理之后只需要在需要用的时候去看工具的说明书即可。在这里我称之为“实践派”
就像在帖子里部分楼层讨论的那样,实践派会觉得原旨派提出的问题很多都类似八股文的性质。当然对于两派的区分我这里可能表达的不够信达雅,但是相信大家可以理解我的意思。这个帖子并不想讨论原帖中所有的具体言论对错,也不希望大家因为分歧而对峙(这不是一个期望引战的帖子)。我更好奇这两派在程序员圈子内的占比,以及大家的其他看法。可以的话希望大家在回帖子的时候加上自认为自己是哪个派别的,以及目前的工作年限,以及你对两个看别的看法。友好讨论!
就是对于某种语言程序员应该事无巨细的了解其各种特性,并且以此引申类同到计算机方向的很多其他知识点,但是不要求背诵下来,只需要知道哪里能够查阅到并且能够保证资料不消失(使用手段包括但不限于自己复制导出保存、自己记录笔记、保存在 web archive 网站等),用到的时候能够保证查阅到投入使用即可。
然后等到了真正工作中,又变成“实践派”了。各种死线、灰度、敏捷都来了。当初手搓核弹的精神呢?对 MDN 倒背入流的坚持呢?可悲可叹。
工作派是指除了工作中用到的,或上级让你用的,或不得不用的东西以外,其它不去了解,也没兴趣了解。比较典型的,我经常看到有些几年的开发人员,只会用 IDE ,编译也只会用 IDE 的,命令行编译也不会,也不想了解。
像那个贴子,8 年全栈工作经验,看起来应该是后端为主,前端为辅。别的不说,只看 不可变数据类型 都没听说过这一点。如果后端只做学会一些老的技术的话,又不学新东西的话,一般是碰不到 不可变数据类型 这一个名词的,但是一些新的语言不可变数据类型是直接提供的,并且是重点强调优先推荐的。如果搞前端,又是现代技术的话,不可变数据类型怎么都绕不过去,这是这个圈子里长盛不衰的话题。我感觉那个贴子题主是个工作派,工作 8 年可能就只在自已工作范围内打转了。
抱歉这个问题不需要讨论。你觉得强大的 troubleshooting 能力背后所需要的经验积累是哪里来的?是实践派多做多动手而来的?是原旨派深究细节参数而来的?其实都是。但是,纯实践派的劣势 就是一旦遇到碰钉子了,尤其是以零经验攻关那种上下文模糊、毫无参考、工序复杂、决策颇多的情况 则很容易放弃。
我是喜欢有问题就解决问题,例如大气科学领域的数值模式模拟大气不准确,我就想直接深入数值模式去解决问题,但是听答辩的老师不是,他们反而喜欢纠结做的东西解决了什么"科学问题",什么工作都要往理论上扯,有时候就感觉他们的关注点太偏了。其实两派都有各自的道理,所谓存在即合理。我个人认为只要能解决问题,哪一派都无所谓。
但是垃圾回收和编译器,对于开发岗来说是完全没用的知识,不应该归于教旨的范围内,就算能手写一个脚本语言的分代对于项目也没有任何帮助。