本文转自Ruby China,原作者dsh0416,来源链接:https://ruby-china.org/topics/33036,略有改动。本文只代表作者本人观点,不一定代表转帖者的观点。

写这篇文章之前我的顾虑非常多,因为它很得罪人而我却捞不到一点好处。但反过来说我写这篇文章并不是针对说「达○」「○清」这样的培训机构。

我要针对的甚至都不是培训行业,反过来,我认为对于软件行业而言,培训整件事情就不靠谱。这不是我心血来潮,我想诸位的公司只要不是沙丁鱼罐头类型的外包公司,对于培训这件事本身都多少抵触。至于高端的培训班,我想你们也有自己的看法,只是有时候不方便说出来。但我最近了解了一些底层劳苦人民悲惨的事实,使我实在看不下去,只能出来批判一番了。

退圈保平安

我们先抛开培训班的问题,我们先来讨论一个经典的面试题,它叫做「FizzBuzz」。输出数字 1-100,逢 3 的整倍数输出 Fizz,逢 5 的整倍数输出 Buzz,又是 3 又是 5 的整倍数输出 FizzBuzz。那么稍有常识的人都知道,无论你学习什么语言,学的水平有多糟糕,这道题都很容易实现。但我们来看一下最常见的一些错误是怎么出现的:


for i in 1..100if i / 3 == # 写不下去了for i in 1..100if i % 3 == 0puts 'Fizz'elsif i % 5 == 0puts 'Buzz'elsif i % 15 # 写不下去了...for i in 1..100if i % 3 == 0puts 'Fizz'elsif i % 5 == 0puts 'Buzz'elsif i % 15 == 0puts 'FizzBuzz'elseputs iend

很多培训班会告诉你这些算法的基础知识毫不重要,但事实上严格来说这都算不上是一道算法题,这没有任何已有的算法模板来解决,这只是一个最简单的循环和条件分支语句,有超过 9 成的开发者没法正确写对这道题。我认为,这些人压根就不该也不适合来写代码。

令人惊讶的是,这些人并非不能写业务逻辑,比如说让他们写个 CRUD,他们甚至不比你写得慢。但它们的问题在于连理解文字、理解需求的基本能力都不具备。当你说「整倍数」的时候他们无法想到用余数,当你先提到 3 和 5 的整倍数时,他们无法想到 15 应该放在他们两个之前判断。

对程序最基本的逻辑的考察没有通过,并不代表他们无法进行日常的开发,就好像数学应用题不会做也不一定会挂科一样。他们通常会写出非常糟糕的抽象,常见的例如在一个社交网络里给每种类型的 UGC 内容单独建表,然后再为每种类型单独建回复和点赞的表;将用户重置密码和管理员重置密码完全拆成两个方法来实现;无法正确判断自己方法在边界条件下的情况等等。

培训班对于培训这样的程序员来说是容易的,而且市场上需要这些程序员。各位可能很难相信,今天的互联网应用大多都没有什么鲁棒性可言,市面上至少一半的产品都存在高危的漏洞只不过是没有人想要攻击他们而已。市场需要这些能用的垃圾来建一个原型、骗一笔投资或者交付一笔外包。

培训班能教你的归根结底是「如何使用一个工具」,而不是「解决问题的方法」。然而在使用工具这件事上,你无论如何都无法描述清所有的场景,就好像你在通过人为地输入一些逻辑,来让汽车学会自动驾驶一样是不完整的。然而在这层嘴脸上,无论是低端的还是所谓的高端的培训班都会用一种方式来糊弄过去,那就是「老师教给你的东西是有限的,更重要的是,你从老师这学到了代码的基本方法,你要上进才能更好学习」。但我们平心而论,老师真的教你们代码的基本方法了吗?他带着你们去学习如何阅读官方文档了?还是教你们程序背后的基本原理了?都没有。他明明在教你语法和一些非常弱智的场景。「解决问题的方法」是无法速成的,是大量基础理论在大脑中建立的“知识场”和大量日常经验积累的共同结果。所以什么号称两个月掌握别人两年知识的都是骗子,你以为人家两年都在那里划水呢?你以为你两个月真能干出来什么吗?

承认吧,如果有人真的写好了代码,就算他没报班,自学也不会比现在差。

暗示与明抢

我觉得从某种角度来说所谓低端的培训班和高端的培训班都是一丘之貉,都在宣传时给你过高的期望,而毕业后这个期望永远是落空的。低端的培训班告诉你培训后就可以月入上万,主要面向的是二线和是三线城市学业失败的人。毕业后通常需要通过伪造简历才能进入一家沙丁鱼罐头外包公司,拿着三四千的薪水,成天干着重复而无用的最底层的编码工作。

而高端的培训班则面对一线城市的中产阶级,宣传时让他们认为通过培训后他们能大大改善现在的生活,甚至利用自己的技术成为创业公司的 CTO,成为自己财务自由的垫脚石。然而毕业后他们能找到的工作也不过如此,根本没有脱离他们中产阶级的生活。

如果单单是这样,我其实并不会写今天这篇文章,因为他们至少是无害的。但事实上,低端的培训班通常伴随贷款出现,可以先上课后付款;而高端培训班高昂的学费常常消耗掉一个中产家庭的全部积蓄,使其不多的财富积累化为乌有。可以说,培训班是坐庄稳赚,而学员们在培训后大多都变得更拮据和悲惨。这种资本驱动下的套路,就和卖老年保健品的那些灰色产业一样灰色。他们通过给你看到一个事物的片面使你盲信,从而满足了他们自己的利益。

放弃吧,如果你没有能力自学,培训班根本帮不了你。

黑暗剑,不存在

如果反过来回忆一下我们自己学习代码的历程,你会发现都是类似的,是螺旋上升的,是循序渐进的。你是从先会一些最简单的逻辑,到开始写一些能用但不好的代码,慢慢自己通过阅读文档、阅读别人的源码来提升。如果你一上来就来看 Rails 的实现,你肯定根本看不懂。你对于一项技术的理解,也一定是先认为这是黑盒,这是魔法,再到了解其技术细节,最后和人说这东西其实很简单。

我相信不少 Ruby 程序员都是从 Java 程序员过来的,对于这些程序员来说,他们很容易理解 Ruby 的面向对象的机制,但对于开类和模块注入的一些方法却觉得很魔法。而如果你是从一门 FP 语言过来的程序员,比如说 Lisp,那你会对 Ruby 的 Block 机制感到很亲切,对于开类和注入觉得很容易理解。相反对于一些面向对象的一些手段感到不是很熟练。

这些都是人类「迁移学习」的能力,你将已知的东西来做类比从而理解新的未知的技术。全栈工程师之所以成为全栈工程师,是因为他一开始精通一部分,随着不断学习新技术,不断将已知的迁移上去,从而对技术栈拥有非常全面的大局的认识。然而一些培训班甚至能号称自己能培训「全栈工程师」,你连基础都没有,就相当于同时学习操作十台机器,你想想那可能吗?所以出来的那个不叫全栈工程师,那个叫全栈 Hello World 工程师。你可以在简历上写上:精通各种语言 Hello World 写法、掌握各种数据库的安装、熟练各种操作系统开机。你其实什么都不会。

写代码一方面需要灵性,需要实践经验的积累,另一方面需要打好基础。这些东西本应该是由本科教育提供给你的,但不得不说国内大多数大学的本科教育也没有提供合适的基础教育,而培训班在拮据的时间内也不可能教你这些基础教育的部分,何况更普遍的情况是本科数学挂科,数据结构重修,大三还把每天至少一半的时间花在游戏上,到了大四才去报个培训班,培训班也不能改变你不爱学习的本质。举例来说,如何计算一段程序的时间复杂度、空间复杂度,如何理解栈、队列等数据结构,了解网络协议的基础。这些东西就像是 RTS 或者 MOBA 游戏的经济一样,当前的经济并不会直接影响到当前的局势,但发展一段时间之后,特别是后期和大后期就会立刻成为你的局限之处。如果你连时间复杂度都不会算,你怎么知道两段程序谁的性能更好,又是甚至性能差到根本不能工作的时候你又去求助谁。

醒醒吧,写代码没有捷径,如果你希望在这条路上继续走下去,你必须打好基础,不断学习新的知识才有可能。

RUA

有位大佬曾告诫我,如果不是触及到自己的利益,那么就不要去断别人的财路。但也就是这样,业界和学界都充斥着一股药丸的气息。所有人做教育都是想着帮你卖出去,而你自己学习的目的也是把自己卖出去。所以大学连「SICP」都不上了,培训班才越来越猖狂;所以越来越多的人相信基础知识无用,认为存在让自己成功的捷径;所以加班昏天黑,干不到 35 岁就被退休了;所以发的 paper 申请专利都是为了完成指标;所以学术上造假,商业上抄袭,技术上停滞;所以你只有跑不起来的代码,快不起来的程序,加不上的薪资。

与其说这些培训机构在骗你,不如说是你贪小便宜的心态正中了这些培训机构的计。

愿世界少一些套路。

更新

在此篇文章发出后的几个小时内,我的微信上已收到了 9 篇不同公司对于某价格不菲的 Ruby 培训营(的毕业生)的吐槽,内容竟还高度重合。现整理如下:

连 SQL 是什么都不知道
不知道什么是 group_by 和 count
MVP 模式的 CRUD 写得很熟练
面试面到无话可问
写一个简单的循环都写不出,并称是该届优秀的学生
已加入该公司面试的黑名单
在未经允许的情况下,将录取学员的公司的 Logo 挂至其官网进行宣传
给一个月时间写一个最简单的 Rack 中间件,最后回复不会写

虽然此贴不是针对这个培训营,但这个营确实是在收智商税,并且暴露出来的问题还是很明显的。在第一批学员刚毕业的时候,社区里大多数的公司都抱着非常友好和鼓励的态度欢迎他们。但是随着时间的发展,大家越发认识到这些毕业生基础知识薄弱、学习能力低下的特点,哪怕一些已录取的员工也被转岗,开始出现了不少牢骚,对于这个营毕业的学生开始抵触。

评论里还有反应这个营在培训时曾主张通过不断练习形成「肌肉记忆」。我从未在编程这件事上听说过这种词,如果说一件事情是「重复性」的,那当然就把它封装抽想起来,或者注入进脚手架,哪里有形成「肌肉记忆」这种说法。而这种错误的训练方式也解释了上述企业对于这些人的印象。

当然也不少人质疑说,光骂培训班,那受过高等教育毕业的学生技术就一定好了吗?当然也不是这样的,事实上我国大多数高等学府的计算机教育也是无用的,甚至是有害的。许多学校安排了四年的课程,确实涉及了不少基础知识,但结果却本末倒置,觉得学生听不懂所以课上得简单,学生也没有好好学好。我甚至见到过某 985 学校算法课期末考默写,因为好好考试会有太多人挂科。我也很难相信这种专业毕业的学生究竟是在给行业输送人才还是压力。

希望所有在这里奋斗的同学们能沉下心多钻研,不要相信有所谓的捷径。

大四报了个天价培训班,变成量产型炮灰工程师相关推荐

  1. 瞎扯淡 量产型炮灰工程师

    转自:https://ruby-china.org/topics/33036 看完这篇文章,非常有感触,最近招聘,招了5个人,其中两个没有上到1个月的班就被赶走了,真的是,培训机构培训出来的什么几把玩 ...

  2. 公务员面试天价培训班热火 鼓吹先舍才有得

    核心提示:南京各培训公司今年都在公务员考试之时拿出天价培训班作为"主打",而且还打出"先舍才有得"的旗号,宣传"6天6夜,魔鬼式训练,1万元,包你捧上 ...

  3. “培训班”出身的AI工程师,要得要不得?

    郭一璞 李根 发自 2018  量子位 报道 | 公众号 QbitAI 大过年的,但这事儿忍不了. 苏珊娜·伊利奇(Suzana Ilić),一位来自Google的小姐姐,Google东京机器学习负责 ...

  4. 微软win11安装助手报0x80888002错误的解决方法(官方工程师方法)

    报错介绍 这个错误是因为检测电脑是否可以安装导致,通常出现在安装阶段75%,第一次会重新安装,第二此会报 0x80888002错误. 解决方法 在https://www.microsoft.com/z ...

  5. 程序员吐槽培训班简历造假,经验包装竟拿到阿里外包26k的offer

    关于程序员速成培训班的传言和八卦很多,近日,又有一个程序员发帖吐槽培训班简历造假,两个大四学生报了个培训班,竟然给包装成有三年工作经验的人,更离谱的是,竟然还拿到了阿里外包26k的offer-- 许多 ...

  6. 某程序员吐槽培训班简历造假,应届变三年,拿阿里外包高薪offer

    关于程序员速成培训班的传言和八卦很多,近日,又有一个程序员发帖吐槽培训班简历造假,两个大四学生报了个培训班,竟然给包装成有三年工作经验的人,更离谱的是,竟然还拿到了阿里外包26k的offer-- 许多 ...

  7. java 图形应用有必要学吗_儿童英语口语怎么学?有必要报班吗?

    学校的英语教育主要关注儿童的应试能力,在英语听说方面是存在差异的.英语作为一门母语,应用情境是在沟通里,所以越来越多的母亲意识到,是当时注重起学生的英语口语了.但是家长们也不太清楚,儿童英语口语要怎么 ...

  8. 学前端是去培训班还是自学好?

    其实很多人对前端这个行业感兴趣,但是不懂如何下手,是自学还是去培训班上课.在这里我想说如果你要是想系统的学好前端,在最快的时间内最有效的学习,那一定是去上培训班的. 现在市场上的竞争十分激烈,多学一份 ...

  9. 作为一个在校大学生,是否有必要参加计算机培训班?

    对于现在的大学生来说,掌握计算机方面的技能还是非常必要和普遍的,很多企业和工作都需要使用到计算机,从基础的办公软件操作,制表.做好看的PPT,到专业的设计.运营.开发等技术工作. 文章目录 前言 一. ...

最新文章

  1. 自学python需要多长时间-零基础学习Python开发需要多长时间?
  2. python一行输入多个值用空格隔开_2020-09-22-Python-函数嵌套、filter()函数、一行输入多个整数(空格分隔)、多维列表的输入...
  3. 尹成python爬虫百度云_Python爬虫实战:抓取并保存百度云资源
  4. java双语试卷_Java程序设计基础(双语)试题题目及答案,课程2021最新期末考试题库,章节测验答案...
  5. 坚持早起21天,每月躺赚5000元!
  6. php setcookie 过期,php cookie怎么设置过期时间?
  7. Linux技术学习路线图
  8. 管理刀片服务器的KVM切换器
  9. 为什么 MapReduce 再次流行起来了?
  10. D2Admin - 基于vue的清新后台模板
  11. 晨会分享 知识点二〇一六年五月二十五日
  12. python中测试字符串类型的函数_Python新手学习基础之数据类型——字符串类型
  13. java实训报告_Java实验报告三
  14. 数字信号处理实验(六)—— 心电信号处理 IIR FIR滤波综合题(下篇)
  15. 安装Alfa Awus 1900 驱动到 Kali Linux
  16. CentOS服务器ntpdate同步及使用ntpdate同步时钟服务器时间
  17. 基于ResNet的MSTAR数据集目标分类
  18. redis统计用户日活量_使用redis统计用户日活、月活(实践版)
  19. 初学开关电源设计全过程笔记
  20. python中显示第三行数据_在Python中Dataframe通过print输出多行时显示省略号的实例...

热门文章

  1. java jms clust,Geoserver 的 JMS Cluster modules(集群数据同步)
  2. 每日程序C语言46-函数之间的调用
  3. 每日程序C语言5-斐波那契兔子数
  4. HDOJ 1443 约瑟夫环的最新应用
  5. MYSQL中group_concat有长度限制!默认1024
  6. iOS开发 剖析网易新闻标签栏视图切换(addChildViewController属性介绍)
  7. charles基本使用文档
  8. 和 的运算(值)结果 及 Boolean结果
  9. 操作系统实验报告1:ucore Lab 1
  10. sql注入_1-8_宽字节注入