原副标题:“掌控”两门C词汇,是不可能将的
常常会在招工关键信息上看到许多明确要求:熟练 Python,熟练 Java,熟练 C……但你与否Dharmapuri, 究竟要什么样才算“掌控”?
书名镜像:https://rodneylafuente.com/jekyll/update/2023/03/29/you-can%27t-know-a-programming-language.html
作者 | Rodney Lafuente Mercado
翻译者 | 弯月 白眉林 | 郑丽媛
公司出品 | CSDN(ID:CSDNnews)
我看完许多门部都将C词汇间接放到职务中文名称中,或将C词汇做为关键明确要求,放进职务叙述的某一地方——我认为,此种作法是对程序员与合作开发潜能之间亲密关系的误会而引致的。
不论合作开发人员在组织工作上将采用哪种词汇,都不如果有“Java 合作开发者”或“React 合作开发者”这种的讲法,如果多于“应用软件合作开发者”。程序员对C词汇的介绍某种程度无法透过条码表明,甚至我真的他们显然不可能将 或者说“掌控”两门C词汇。
此种想法不公平
从某种意义上说,C词汇间没有严格的切分,并不足以给每种C词汇都设置一个职务。如果非要根据不同的编程组织工作区分技术,那么也如果从更高层面来考虑,或者如果根据合作开发人员与硬件的亲密关系来定义。例如底层系统合作开发、计算机网络开发以及通过脚本处理数据。
即使在更广泛的类别上,需要 丰富经验的想法也往往是在其他地方出现,因此很难说能胜任某一角色的人却无法胜任其他角色,比如算法复杂度问题(只要不是间接调用库),比如并发进程,以及大量人员同时合作开发系统所带来的问题(如版本控制)。此种编程组织工作的特点就是,不论如何定义职务,即使是完全无关的职务间,也不会有太大差异。而这个特点在C词汇的底层划分上尤为明显。
对于这个看法,最常见的回应是,不论采用不同词汇解决问题与否存在概念上的相似性,探索一种词汇、即使是一种词汇的框架(例如 React)本身就很复杂也很耗时,招工合作开发人员的公司需要承担这笔费用。所以他们宁愿雇用一个曾在某一项目中采用过 Kotlin 的合作开发人员,也不愿雇用一个更有潜能但从未接触过这门词汇的合作开发人员。
这种想法对合作开发人员不公平,对公司来说也不公平。虽然遇到不熟悉的词汇,这些合作开发人员需要花时间阅读代码和熟悉词汇,但如果他们有更好的解决问题的潜能,这部分时间完全能找补回来。因此,从长远来看,他们对公司的价值更高,而且这段时间也并不长,我估计最多一年。
在应用软件领域,所有问题都是创造性的而非叙述性
其实,此种观点之所以如此流行,原因不难理解。人类解决应用软件问题的潜能不像在物理世界中解决问题那样具有专业性,其专业某种程度就像是每家每户的家用电器与电力系统中每个部件间的差别一样。
例如,医生需要花费数年时间专注研究人体内的一个特定器官,但这些角色解决的问题都是叙述性的,而不是创造性的。医生最有价值的潜能是他们对人体的掌握程序,就像汽车修理工对汽车组织工作原理的介绍一样。他们面临的问题可以间接用这些知识来处理,他们解决问题的潜能与他们拥有的该领域知识量间接成正比——然而,应用软件行业并不存在此种正比亲密关系。
应用软件合作开发潜能并不会与某种词汇的熟悉某种程度间接挂钩,因为词汇是一种工具,而不是他们正在努力解决的问题。合作开发人员需要解决更大的问题,即在有限时间内只能获得有限的关键信息,以及什么样利用这些关键信息实现特定的结果。这不是遇到问题时仅凭记忆就能解决的。
当然,并非所有与物理世界打交道的职业都有相同的特征,即一个人所拥有的物理对象知识间接亲密关系到解决问题的潜能。比如,建筑师和艺术家介绍建筑材料、环境和画布的一切,但不一定就能表现出更高的水准。这是因为他们面临的问题也是创造性的,而不是叙述性的。
也就是说,为了实现想要完成的目标,他们无法参考已有的成果,而是需要参考宇宙设置的自然限制。他们解决问题不是透过理解出现问题的对象,而是理解可以采取行动的领域。在应用软件领域,所有问题都是创造性的而非叙述性的,且这个领域是无限的。
问题本身就是自然,特别是在应用软件中,而自然就是数学,而非物理。
我知道 C词汇, 但我一个也没有 “掌控”
经常有人问我“掌控”了哪门编程词汇,我只能说所有词汇我都知道,但我一个也没有掌控。
可能将我只需要许多文档和许多时间,就可以像其他人一样“流利”地采用手头的词汇。但C词汇不是自然词汇,无法透过流利度来衡量。如果非要用流利度来衡量编程词汇,那么如果指的是一个人达到可以熟练采用词汇的复杂细节(例如语法)所需的时间。而这完全不同于自然词汇:在自然口语中,流利度指的是对底层结构的理解,其变化范围远大于C词汇。从他们向计算机传达思想的方式来考虑,计算机的同质化远高于人类。
透过对某种词汇的掌控某种程度来衡量合作开发人员的人,往往对应用软件合作开发技术不太介绍,但恰好他们就是许多组织中负责招工合作开发人员的人。让每个人都更加介绍应用软件与他类型组织工作的区别,这才是惠人惠己。
☞ 超越 ChatGPT ?AutoGPT 爆火,两周斩获 50k+ Star:无需人类插手,自主完成任务!
☞GPT-4 让 Python 程序实现自修复 Bug,国外小哥将工具命名为“金刚狼”,并开源!
☞ 优酷回应非会员收看3000秒广告;亚马逊推出Titan大词汇模型;Android 14首个Beta版本释出 | 极客头条