程序员这个职业到底怎么啦

2018-09-19 08:32:59 +08:00
 yidinghe

当一个生意很赚钱的时候,什么乱七八糟的人都会想来做这个生意。这很正常。

当一个职业薪水高的时候,什么乱七八糟的人都会想从事这个职业。这也很正常。

程序员就是其中之一。

对其他高收入的职业来说,存在一个门槛,就是从业资质。它能保证进入这个行业的人,能满足一个最低标准,以确保这个职业的产出质量。

程序员这个职业没有实际的从业资质门槛。你几乎凭一张嘴就能找工作。

先说说程序员三种来源,就是:培训出来、计算机专科毕业、计算机本科及以上毕业。

而真正的计算机教育,现在只存在于本科。本科一上来不学编程,而是先学两门课:计算机原理和操作系统原理。

这两门就好似中学化学:将来用不到,但起码知道药为什么能治病,木头为什么会燃烧,看上去毫无关联的现象其实都是共同的机制在起作用。

计算机原理和操作系统原理也是一样,通过了解 CPU、系统总线、内存映射、磁盘分区、设备驱动,从而了解计算机的设计者们面对各类问题,他们都是通过何种思路来解决的。

接下来是不是可以学软件开发了?没有,接下来是数据结构和算法。这两门课也是要仔仔细细的学,先学一点编程语言的语法,然后把这些数据结构和算法挨个都实现了,这才算掌握。

那接下来是不是真的可以学软件开发了?没有,接下来是网络原理、图像处理、多媒体原理、数据库原理,在这些课程里面要把图像的灰度计算、网络包的纠错、非对称加密、遵照范式的数据库设计等等全部实践一遍。到了这个程度,学生方才具有了程序员应有的思维方式。

除此之外还有三门课:汇编语言、专业英语和计算方法。前两个好理解,而计算方法就是如何设计一套算法,在实现复杂的高等函数计算的同时,保持误差最小化。因为计算机精度有限,经过几十万次加减乘除误差会变得很大,所以像天气预报、工业设计方面是不能简单的套用函数去计算的。

这些课程在锻炼学生思维方式的同时,也在开阔学生的眼界:计算机这个行业深不可测,增删改查之类的,连根毛都算不上。

那接下来,是不是真的,真的可以学软件开发了?没有,接下来是学校为你准备的最后一步:软件工程。就是让学生在工作之前先对软件开发的过程有个概念。

这是最后一门课程,接下来就毕业了。

妈的,软件开发到底教没教?开发工具呢?框架呢?

反正在我那时候,学校是一丁点都没教。

全靠学生自学。

上面这些就是从大二开始,三年的专业课程要学的。学生把这些课程学懂了,其知识水平跟专科和培训机构出来的完全不是一个层次。

再看另外一边:培训机构六个月(这时间还算长的)出来,是什么样子呢?

语言会,框架会,工具会,增删改查会;但你要他设计一个链表,不会,要他查询数据库记录然后组成一个树结构,不会,要他写一个简单的的锤子剪刀布游戏,不会。没错,很多人就是这样,低能到这种程度还自以为达到了程序员的标准,这在十三年前是不可想象的。

再比如用工具,没问题的时候还好,一出了问题就抓耳挠腮不知所以,错误信息摆在面前也看不懂,不知道怎么办,我说你调试一下吧,只见一边鼠标晃来晃去一边咂嘴吧,不知道该在哪打断点。

这种情况下谈什么自学能力那都是扯淡的知道不。很多人以为自学能力是个隐藏属性,我想怎么吹都可以。但实际上一个人的自学能力很容易就看得出来:自学能力强的人不会轻易求助别人。就这么简单。

所以以前针对计算机专业的程序员面试,有些是假设面试者已经懂的基础上,不会提某些问题,但现在不一样了,有些问题必须问了,比如什么是进程?进程是如何启动的?进程启动失败了会怎么样?这就好比问一个会计的求职者什么是钱。

我曾经很天真,以为入职的新同事虽然水平差,但只要对技术有热情,我还是可以带起来。最后发现很多人一离开培训机构就完全失去学习能力,以为凭几个月学的那一点毛皮就能混吃到老。

曾几何时,从事程序员人都是对技术非常有兴趣的。现在这样的人越来越少了。只要这个行业无门槛的情况继续保持,情况就不会停止恶化。

我不是希望把本科学历当成程序员的最低标准,因为本科专业课程仍然是与市场脱节的,只教知识不教技能。我只希望有一个真正实用的软件公司都承认的职业门槛,不达到这个门槛就不能从事程序员。这是一个成熟的行业必需具备的。

这就是我得出的结论。

20092 次点击
所在节点    程序员
170 条回复
waterlaw
2018-09-19 18:41:34 +08:00
楼主想说的就是专科出身的失去优越感了, 其实这没什么不好, 有竞争行业才会进步, 再说编程也是工作, 别看的太神圣, 现在经济发展变慢, 大家当然想做个工资高的, 不会可以学, 最怕的是有技术壁垒的存在, 培训班在某种程度上弥补了大学教育, 提高我国人民的编程水平这是好事啊,想想以后简单的编程工作还要交给机器人呢?
yidinghe
2018-09-19 18:47:41 +08:00
@deming 一个程序员如果不能考虑自己年纪大了怎么办,要不要在这行做到退休的话,那么趁早转行才是对的。三十岁以后的生存也是生存,四十岁以后的生存也是生存。既然是为了养家,为了活下去,那么考虑长远一点是必要的。
zcjwxf
2018-09-19 18:57:05 +08:00
任何行业本来就是一群小白围着几个大佬喊:溜溜溜~
你觉得其他行业不存在这个情况? 想啥呢?毕竟人这么多
orange666
2018-09-19 19:13:18 +08:00
只是为了生活而已,有哪个行业都是精英组成的。。。天天加班的日子,也不是那么多人想要的,还不是为了钱。
Flicker
2018-09-19 19:42:23 +08:00
append 说得很对。
leedong00
2018-09-19 20:12:47 +08:00
你的主题就是很多程序员不要强,不主动学习,不为自己未来负责,后来就扯到学历专业上去了,说那些没用的。作为程序员技术能力重要,表达能力更重要这也是一种能力,那种半天磕磕巴巴说不出来什么的,技术一般的程序员,最差。做开发跟专业没有太大关系,比如前知道创宇 余弦。
HarryZD
2018-09-19 20:50:20 +08:00
你这么说的话就一点都不酷,不够程序员的最低『门槛』
kisnows
2018-09-19 21:35:52 +08:00
我做程序员就是为了工作,没有楼主这么崇高的修养。
jiyingze
2018-09-19 21:40:28 +08:00
你本身是不是就是在一个比较差的公司里?接触不到优秀的同事?
sdshdv
2018-09-19 21:43:54 +08:00
你这个没什么好抱怨的,很现实的问题,不少人都是为了赚钱而学习技能,兴趣这个东西大部分人都是没有的
jasperjia
2018-09-19 21:52:42 +08:00
刚上大学一个大学老师说的:除了个别人可能是意外,高考已经基本公正客观地把人分为三六九等,一个 985 一个 211 一个双非坐一起听同一个堂课,你可以大概分辨出他们的学校。这种三六九等,不仅仅是学习能力,还有学习热情学习技巧,基本都定性了。
大四毕业时候发现,确实逃不过这个定律。大一时候一堆人要挑落清北的气势,最后毕业时候,依然全方位比 985211 差。
话难听,屎难吃。
newtype0092
2018-09-19 22:21:38 +08:00
讲个真实的笑话,招 PHP,各种 5 年 8 年经验的,一道 10 进制转 2 进制的题,涮掉了大半人,真的就是直接 10 转 2,没绕任何弯。。。
我都不敢想连二进制都不懂是怎么写了那么些年的代码的。。。
Eds1995
2018-09-19 22:38:21 +08:00
大一不都是三电,大二操作系统数据结构,大三才开始分方向,搞 web 那就 java 搞图像处理那就 c++,你们学校步子迈的真大
levon
2018-09-19 23:18:55 +08:00
不满意你可以给他裁掉,何必给一类人扣帽子呢。
你大可以自己开家公司,然后设置一个门槛,非清华北大不招,前提事你得付得起人家高工资。
levon
2018-09-19 23:24:17 +08:00
也只能说楼主够 low,才会接触到 low 的同事
q397064399
2018-09-19 23:26:55 +08:00
@jasperjia #152

我一个破二本 跟很多 985 211 院校的
计算机专业出身的程序员 做过同事 在一个团队里面工作过,
说实话 做应用层面的开发,我一点不虚他们
q397064399
2018-09-19 23:29:39 +08:00
@newtype0092 #153

术业有专攻,在高级语言里面 使用位操作 本身就是一个带有臭味的操作
我不懂 G1 是如何实现的,但是我懂一般的有向图分析垃圾回收原理
这并不妨碍我使用 Java 构建良好的软件
ClassmateTan
2018-09-19 23:38:07 +08:00
写的很好。
1.楼主对自己的要求很严格,可以的,但不是所有人都是这样。
2.任何行业精英都是那么一小撮人,剩下都是打工的,仅此而已。
_________________
实际上学历,从业经验已经是门槛了。那些培训的,专科的,自学,转行的,更多的是去对应他们水平小公司,有点名气大厂简历就筛选掉了。
ryV60s
2018-09-19 23:38:56 +08:00
如果要楼主去做应用层 CRUD 肯定心里憋屈死了吧。
还有什么职业规划,这是国内,请多看看坏境。。。
q397064399
2018-09-19 23:47:12 +08:00
楼主的问题其实很简单,大规模的信息化系统构建
当然需要大量优秀的工程师,但是并不是每个项目都需要,
很多项目 用一些事务脚本也能构建出一个破破烂烂的系统出来
这并不妨碍这样低质量的软件创造良好的业务价值

程序员里面本身就有很多鄙视链,做底层操作系统的鄙视 做数据库 做中间件的
做数据库 中间件的 鄙视做业务系统的, 做业务系统的相互之间鄙视 做数据量大的系统 鄙视 做数据量小的系统
C++ 鄙视 Java,Java 鄙视 Python 然后大家一起鄙视 PHP
不过历史发展过来,Java 自带内存回收 单一范式却得到了市场的广泛认可,最终成为了企业级软件的首选
反倒是 C++ 应用场景越来越局限。

从汇编语言 到 C 语言 解决了 工程师难以理解的汇编操作符,
程序员终于不用自己管理栈空间了 , 也不用记忆一堆晦涩的 CPU 指令 软件开发 从马车进入了蒸汽时代

从 C 语言到 C++ 带来了多范式编程,解决了大型软件系统的抽象概念的表达问题 ,人们可以使用 面向对象 面向过程 函数式 模板 等各种方式 来编写程序,并使用这些范式解决特定领域的问题

从 C++到 Java 程序员终于不用管理内存了 有了虚拟机 终于不用考虑各个平台上的 API 差异了
只管 new new 反正最后有虚拟机给你擦屁股

每一次的进步都伴随着 机器性能的进步 技术的不断发展,而程序员的门槛越来越低,这本身是一件好事,技术的发展本来就是将人类从无趣的机器细节中 拯救出来,让开发者可以专注于 高层次的概念表达


编程本来只是一个工具,没必要过于神话它,现在很多所谓技术上的困难
随着时间的推移 都会被慢慢解决掉,那个时候 程序员将不用再关心机器细节,或者更少的关心机器细节,
而将大部分的精力放在高层次的抽象概念的表达,作为一个编程多年的 开发者,我相信这一天会到来

最后说一句 构建软件的本质困难 从来不是技术,而是维护抽象概念的完整性表达,技术的困难永远是暂时的

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

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

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

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

© 2021 V2EX