对程序员这个工作的感想

2020-03-19 20:05:47 +08:00
 ybw

对于 95 %的程序员岗位,他们整个职业生涯不会有一次和算法、数学打交道的机会,这些基础设施有在相关专业深耕多年的人才建立,一般人不插手也不应该去插手。

绝大多数程序员真正的要求不是数学和算法,而是细心。

认真阅读你用到的第三方库的文档和教程,认真理清你接手的项目的架构、繁杂的函数调用关系、对多线程和内存时刻保持警惕等。

至于设计整体架构什么的,更多的是直觉或经验,而非智商。

7326 次点击
所在节点    程序员
60 条回复
areless
2020-03-20 08:58:40 +08:00
水管工也不会去生产水管
loading
2020-03-20 09:01:12 +08:00
在我看来,程序员和水泥工没啥区别,很多高薪的是因为 996,大家都是搬砖。
jinsongzhao
2020-03-20 09:01:38 +08:00
看法角度不同吧,算法还是有,只是别人都实现了,知道如何调用和找到的成本更效率。就像只要懂公式,不需要求证公式,哪怕研究算法的,也只是搞懂公式,用好公式。要说创造算法,那可能都能拿诺贝尔奖了吧。
zenithar
2020-03-20 09:05:29 +08:00
技术水平转化成升职加薪的可能性不是绝对的,国内外大厂大部分不也是螺丝钉。
xsen
2020-03-20 09:11:55 +08:00
@newtype0092 你说的这些确实不属于数学或算法层面的。至多只是工程能力
vwym
2020-03-20 09:13:12 +08:00
其实我还是蛮讨厌用一个努力、细心这种宽泛的词汇去描述一个人的,这种词汇基本上没有任何的参考意义。
“认真阅读你用到的第三方库的文档和教程,认真理清你接手的项目的架构、繁杂的函数调用关系、对多线程和内存时刻保持警惕等。”
ala2008
2020-03-20 09:14:01 +08:00
会有追求优化的程序猿的
smallyu
2020-03-20 09:14:27 +08:00
劳动密集型产业
LouisGuo
2020-03-20 09:18:06 +08:00
普通程序员 模型设计能力 在工作中起的作用更大些
vwym
2020-03-20 09:19:22 +08:00
@vwym 说认真就是没有认识到,2 者在学第三方库前的基本功底了,为什么天天在强调基础,就是因为学习新库的时候能够发散出去找问题找答案了。哪有一句只要认真就完事了。
本质还是方法论,处理好需要考虑什么问题,这些都是考你的基础,没这个基础你连发散问题都发散出来。你指望一个只学过 http 没了解过网络和 tpc 的人去认真思考个什么,没用的,这就是基础。有了基础才会发散出去。
huangsw
2020-03-20 09:30:26 +08:00
别让公司领导知道了,否则程序员的工资都会缩水
cgpiao
2020-03-20 09:37:12 +08:00
基本数据结构还是要考虑的吧,不能瞎用。
smallpython
2020-03-20 09:41:57 +08:00
可以反过来推, 如果程序员这个职业只有很高的技术含量, 那么就不会有这么多人从事这个行业
其实任何事情在社会上能发展成一种职业, 就已经意味着它已经解决了从事难度过高的问题
exploreXin
2020-03-20 09:54:08 +08:00
楼主说出了国内 IT 圈子的现状,一个良好的技术生态圈子是包括产学一体化的体系,什么叫产学一体化呢,就是学校教出适合市场需求的人才,然后企业接收成为自己的员工,员工通过自己的工作得到企业赋予的报酬。有人说,现在不就是这样吗?但如果你深入内部去了解,就会发现不管是学校,企业,或者员工,都没有符合一个良好体系的因素,首先说学校,目前学校教的大都是理论,就是那种看上去只有科学家才会精通的东西,而企业需要的是应用型人员,也就是说企业不管你的技术好坏,实现了我想要的业务逻辑,能赚钱,你就是好员工,而员工,在学校学习了理论后,在企业当中接触的都是业务代码,也就是没有算法,数学的代码,需要用到相关代码的时候直接找开源工具,所以自身并没有真正理解过所用组件的内涵与本质,这些所有的加在一起,最终将导致一个不良环境。为什么是不良环境,先看学校,学校只教理论,学生达到分数要求毕业之后,能不能找到工作或者以后混的怎么样,学校就不管了,而企业需要的是直接能够投入市场的技术能力,而不是学校学习的理论,最终结果就是许多计算机专业毕业的学生,也要到程序培训机构去学几个月,才能找到工作,难道大家不疑惑吗?为什么我是计算机毕业的学生,学了 4 年,毕业后找不到工作,还要到外面的培训机构去培训 4 个月才能找到工作?所以可以看出在学校教学和企业需求之间有个巨大的缺口,就是理论和业务之间的过度,这部分缺失了,导致我们必须到培训机构去弥补这部分缺口。所以说培训机构是现阶段国内 IT 体系不完善的历史产物,因为只有在培训机构我们才能获得从学校到企业的跳板,企业没有资金单独给员工提供完整的技术培训,而学校里的教师又都是从来都没有参与过实战编程的教师,没有办法制定出适合企业的培训课程,最终我们只能到培训机构中去学习过度的那部分知识,去了培训机构你会发现,那里的讲师大都是企业中有过实战的技术人员,这就是目前国内的现状。

企业需要过来就能上手的员工,这错了吗?这没错,企业的最终目的是盈利,而不是慈善机构,不可能免费提供全套培训设施和流程。那学校教理论,这错了吗?这没错,学校教的理论知识,数学,算法,计算机科学这些,只要你工作的足够久,工作中遇到的计算机系统足够复杂,总有一天需要用到数学,计算机科学这些理论知识来对系统进行优化与重构。到底哪里错了?最终的问题出在 整个制度,学校的教师如果能够选用有实战经验的企业员工,那么就不会出现教师不懂企业需求的情况,企业应该更多的与学校合作,提供实习机会,就算企业自家的实习生最终没有留下来,但是全社会的企业都互相培养人才的话,自家的岗位也最终会被其他企业培养出的人才所承担。如果所有企业都只看眼前的蝇头小利,短期是有收益的,但长期以往就会自掘坟墓。这些都是理想的假设,国家培养一个教师已经耗费了很大的人力财力,如果要培养实战型教师,那将付出更多的资源,同时也不是所有企业都负担的起培养实习生和与学校合作的业务,这就需要大企业和有能力的企业在可以承担更多责任的时候不要推脱,为了社会的良序发展,多去承担社会责任。

最终完善的 IT 体系,需要大家一起,艰难缓慢的构建起来。这样的体系内就算你工作当中没有用到数学,但是你本身是拥有这样的能力的,没有运用只是不需要运用,所以一定要明确我们到底是选择写 CURD,还是只会写 CURD,这才是最关键的,只要自己想要深入研究技术,无论是谁都有这个权利去学习与探索。
newtype0092
2020-03-20 10:14:59 +08:00
@xsen #26 逻辑运算是写在高中数学课本里的,递归、二分之类的基础算法思想基本所有的算法书上都有提到,你是根据什么得出的这些不算数学或算法层面的呢?
你说的工程能力又是什么呢?如果只是增删改查的熟练度,那干外包的不是很熟么?为什么你们都不待见人家。。。
lail7168
2020-03-20 11:22:22 +08:00
@cmdOptionKana 笑尿 哈哈哈哈
xsen
2020-03-20 11:46:44 +08:00
@newtype0092 #35
1. 你说的这些,广义来说是属于算法范畴
简单点算法就是解决问题的一系列步骤;但你要知道,楼主所说的,我们一般意义上讨论的不是这种广义的算法,因为诸多语言或公共库都已然有实现,且效率不低

我们一般说的算法,属于没有通用解决方案的算法;都是针对特定的场景,比如推荐、海量数据、图像或图形等

2. 关于工程能力
简单点就是对算法的实现。但实际工作中会广泛很多。比如要考虑高性能高并发、维护、扩展、运维等等诸多方面;也包括代码的实现、理解等。其实就是除算法之外的所有,都属于工程的范畴
xuanbg
2020-03-20 11:58:05 +08:00
计算机领域不是 95%,而是 100%不需要懂什么高深的数学知识。因为数学在计算机领域只是应用而非证明。能够把已证明的应用到计算机领域用来解决某些问题的,就已经是先驱了。最典型的例子就是 RSA 加密算法。

编程需要的是逻辑能力和工程能力。前者能帮助你建立正确的数据模型,后者能帮你更好的组织代码,以保证软件的可扩展性、可维护性、稳定性、可用性以及更高的运行效率。
xuanbg
2020-03-20 12:04:17 +08:00
大多数的程序员缺不缺智商我不知道,但他们肯定缺少逻辑能力和工程能力。据我的观察,他们搞的数据模型总是似是而非,或者干脆就不会搞。只会写改上千百遍还是有 BUG 的面条代码,压根就不会对代码进行有效的组织。
newtype0092
2020-03-20 12:54:11 +08:00
@xsen 我觉得你们这种把算法狭义的定义为特殊算法,然后加上程序员不用懂算法,不用懂数学的观点,只能导致写烂代码的人越来越多。
任何行业,当一味追求降低门槛,而不是提倡打好基础,肯定会越来越烂,因为从业者的平均水平会越来越低。

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

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

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

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

© 2021 V2EX