你永远叫不醒一个装睡的渣

183 阅读13分钟
原文链接: zhuanlan.zhihu.com
IT修真院是个什么样的机构?​www.zhihu.com图标

“简单讲,就是一个叫桂某某的人,在修真院官网线上,免费学习JAVA任务,发现太难,做不下去,就去骂修真院是骗子。”

昨天看到这个回答的时候,突然就明白了我之前一直在做,但是从来没有真正想通过的道理。

为什么在当初我会坚持用七天日报来筛选线下报名的学员。

三年以来,我见过很多人,我收到无数的私信,在夜深人静的时候问我自己该怎么办。

也见过各种人心。

从贴吧跟人撕逼开始,到知乎上看到各种没理由的踩和各种自以为是的评论,到昨天这个叫《热血小伙“桂***”智斗无良培训机构,揭露免费培训天大骗局》之间,见过了大多戏精和迫害症。

我还记得很清楚,在贴吧里我说我要一个月400块教人学Java的时候,贴吧吧主的嘴脸。

我是一个心眼很小的人,从来都是有仇必报,今天报不了,我记你一辈子的性格。

更不会因为自己有什么身份而顾忌会对自己的品牌有各种各样的影响。

所以我从来都不是一个合格的CEO,但是这就是我喜欢的生活方式。

在贴吧里,这么一群人,习惯性的质疑一切,又会盲目的相信一切。对这些人来说,只要是收费,你就是坑人,只要不是出视频教学,你就是没技术,只要你在贴吧,你就不可能是CTO。

对他们而言,世界就是简单的分成了这种简单的规则。

简单有趣,当按照这种规则去观察这个世界的时候,他们有了自己的价值观和准则,并且质疑一切和他们所见所得的价值观不同的所有事情。

我一般都称他们为“程序渣”。

Java的任务一,一直以来都受很多人的质疑。

但是任务一的难度设计,能够被桂同学解析到了阴谋论的程度,我就明白鲁迅当年说的一个道理。

“谁都可以当一个程序员,但不是谁都可以做一个好的运营。”

第一,我不喜欢非科班的学生去学Java,所以我并没有在任务地方设置成有Java语法的学习,有数据库的学习,有算法和数据结构的学习等等。

第二,我不喜欢Hello World的教学方式,所以所有的任务设计都规划成了以实际看得到的结果为准则,这点在JS的任务体现的更为明显,Java的任务体系在后面的部分偏练习而非偏项目,这是后续课程的内容会更新的部分。

第三,我不喜欢只能写出来增删改查的程序员,我很清楚独立完成项目的工程师,倒底需要什么样的能力。

第四,但是有人做到了非科班,高中毕业,不算特别聪明,仍然完成了Java系列的所有任务,做完了复盘,找到了工作,而且不止一个。

其实这个桂小伙不清楚,如果真的想要在营销上做手脚,把任务的难度设计的非常简单,让用户在短时间之内有成就感,有一种我也能当Java程序员的错觉,让他跟着你手把手的写代码,是比现在的任务更有效的转换方式。

但凡有点脑子的人都会明白,这和哄骗人无异,倒底这个人,是否适合学Java?什么时候能松手?到现在竞争已经比较激烈的时候,靠这种手把手教出来,脱离视频连个项目都不会建,根本不懂项目管理的人来说,真的有能力找到一份工作吗?

对了,这个桂小伙说自己通过自学的方式,还是找到了一份Java的实习,用了3个月的时间。

他说自己是班里编程能力还不错的人。

很抱歉,我想我大概是用任务的难度狠狠的嘲讽了他。虽然他每天利用课余时间去图片馆自学,但是我想任务一是1~7天的时间阶段还是在狠狠的嘲讽着他。

为什么时间是一到七天?

其实到现在了,都未必有人能明白,任务一面向的对象,并不仅仅是Java的初学者,还包括了工作半年到一年的人。

这些人不需要来到线下,但是需要有一个很隐晦的去告知他们职业发展路线的地方。

所以任务一来连接数据库完成基本的增删改查,任务二来完成Http请求的响应并输出Json结果,任务三来实现传统的套页面的方式,这三个任务本身就是在项目里能够完成端到端的小的无逻辑的增删改查模块的必要技能。

这三个任务,对于在外包公司里写过业务代码,在校园里的毕业设计中做过图片馆管理系统,写过购物车的人不算有难度。

1~7天的时间,是用来规范代码,将课程设计代码转换成工业产品线可用代码的转换期。比如说,大部分的人不会用TDD来编程,先写单元测试,写接口,再写实现类,这对我来说,是在十年写代码过程中,从初级工程师到中级工程师里最重要的提升之一。

然后我把他隐含到了任务里去。我不管这些人能不能理解,但是我希望能够有一个直观的印象。

单元测试是什么,为什么要先写单元测试,再写实现类,什么样的内容是一个单元,单元测试里可否连接DB?

同样的道理还包括了Maven,有人曾经问过我,为什么对Maven如此看重,原因在于Maven背后的思想体系,约定大于配置,是一个很重要的设计理念。

从Maven的Pom配置文件可以看得到,GroupID和ArtifactID和Version是怎么解释了Jar的混乱无章,能够用三个属性将全天下还包括未来都涵盖进去的设计,对于一个新入行的人来说看似可望不可及,但最终还是会埋下一颗种子。

怎么生成3000万条的记录插入到Mysql里,更是提醒学习Java的人一个小小的原则,不要拿着锤子就觉得天底什么都是钉子。

你会用了Java读写数据库,但是同样的一个任务,靠Java远程连接DB,慢慢插入3000万条记录,速度会慢到你无法忍受,而当你遇到问题无法忍受的时候,就应该而且需要学会分析性能屏颈,并去需要解释办法。

最简单的办法是什么?直接生成Sql文件去导入DB。在Mysql的时间里,我特地提醒了三种操作DB的方式,第一种,用图形化界面,Navicat,和使用Excel没什么区别,直接的去操作数据。第二种,用命令行,用Shell脚本去读写DB。第三种,用Java语言去操作Mysql。

我甚至在期待有人去思考,什么样的方式能够快速生成2亿条记录?靠Windows慢慢生成?为什么不是用服务器生成?在服务器上写一段Java代码?有没有更简单的方案?靠Linux的命令行有没有可能?如果更复杂的语法,我用Python?

但很遗憾的事,我还没看到过有人在这里,能够沿着这条思路去走到Python或者是其他语言的道路上去,但是我想,但凡能想到生成Sql文件再导入进去的,就会自己直观的感受到做事情两种方式的差别。

程序员是用来解决问题的,了解更多的,就应该是在什么情况下,解决什么问题,方案有哪些,各自的好坏是什么。这对未来的发展格外的重要。

在任务一中,包含了各种各样的技巧和价值观,也是唯一的一个我写出来操作步骤的任务。

我并不建议操作步骤写的过于详细,这也直观的体现在后续的任务里。

在某种程度上,任务一的操作步骤是我妥协的一个结果,如果我不把操作步骤写清楚,我想会有更多的人难在任务一,但这并不是坏的事情。

同时,操作步骤的本身,就是一个完成任务的思路。包括任务的分解,扩展,思考。

这些所有的内容,放到一到七天内,对于一个已经写了半年或一年左右的人来讲,不是难事,但是他们未必会真正明白索引是什么,Maven的价值又是什么,Mybatis和Hibernate的差别在哪里。

任务一到三都是一个梳理,用最简单的业务逻辑,点明知识体系中的重点的梳理任务。

他的本意,并非给零基础的人来学习。

这句话我说过很多遍,我不建议非科班的学生去学Java,但是有了一个人的例子,我就明白在这一点我错了。

即便Java的任务一难度如此之大,还是有高中生顺利完成。

好的学习方式和坚定的信仰比什么先天条件都重要,这是我最大的感触。

我见过底子好人聪明却不踏实的各种人,我见过人愚笨但能吃苦意志坚定的小伙伴。

所以,到了今天,我不反对有非科班生的人去学习Java,特别是在线下,我会说清楚,任务一,对于没有任何基础的人来说,一个月之内完成是正常的,而且这种学习过程,必须是边做任务,边看语法,边补基础知识,而不是如他们所想,先看一个月语法基础,再看一个月数据库,再来去做任务。

但官网的时间我没有做任何的更改,原因很简单,这个世界不会原谅你非科班,不会原谅你零基础,不会原谅你自认编程能力还行却连一个任务一都做不到。

毕竟找到一份实习的工作不是修真院的目标,勉强能转行成功也不是修真院的目标,Java在修真院注定了是要成为荣耀职业的啊。

无论谁因为各种各样的原因,做不到1到7天之内完成不了任务一,我都想让学习Java的人明白,在这个世界上,有人能做到,而这些人,就是你求职时候的对手。

这和其他的职业不一样。像前端,相对简单,入门容易,要求并没有那么高。

可是Java不同,就算是完成了任务阶段的学习,就算是完成了复盘项目,就算是完成了真实项目,也仅仅是起步而已。

源码的解析,底层知识的补充,分布式和高并发的场景,行业知识的沉淀都需要Java工程师有良好的学习能力,抗压能力和求知欲。

如果说我用一开始入门简单的错觉,让一个可能原本不适合做Java的人,选择了Java这个职业,而他在未来两到三年里的时间因为学习能力和基础的原因无法再进一步,怎么办?

对了,刚刚忘说了一点。不同的人,从任务体系中学到的东西不一样,不夸张的讲,工作两年左右的人,都可以试着去做一下任务体系。

我想桂同学对修真院的不满意是在他最后一天日报,也就是18年的1月底。整整两个月了,他终于证明了自己通过自学,不需要师兄的辅导,还是明白了什么是索引和Maven,并且找到了一份实习的工作,有能力来揭穿修真院的套路了。

坦诚的讲,我不觉得这是一个坏孩子,以自己一已之力扛修真院的大量水军,冒着生命危险揭开惊天大骗局(原来他们在线下教你写代码要收钱),当婊子就不要再立牌坊(既然要收费就全部收,在线上做任务干脆也收费,你怎么能在线上不收费),这需要很强烈的正义感,而且还需要付出行动。

无论是百度贴吧,还是知乎,我从来都不忌讳任何的质疑,污蔑和误解。

我不需要给这个世界上所有的人一个解释,我没有任何对不起他们的地方。

我只需要说明白,我就是我,不是一个你们心里任何一个想象中的人。我技术好,不代表我脾气好,我愿意教人写代码,不代表我愿意教你写代码,我是一家公司的CEO,不代表我不会每隔半个月就跑去贴吧骂一次吧主。

我没什么耐心去挨个解释很多事情,为什么这么做,为什么 那么做。这大概是我现在慢慢的尝试去理解很多之前不理解的人需要做的最大的改变。

大部分人都愿意看到自己想要看到的世界,用自己能够理解的规则去强行套在看到的一切问题上。

这和装睡并没有什么区别。

我想我愿意恭喜来到线下学习的内门弟子的每一个人,看到了桂同学昨天的表现,你们是否对自己有了更多的信心?

看到他张牙舞爪咬牙切齿自以为是的时候,刚好就代表了两种完全不同的选择。

同样的任务,同样的艰难,一种人选择了修正自己的学习方式,更刻苦的去学习,去跨过这道槛,一种人选择了放弃并用尽吃奶的力气去泼粪。

虽然有时候心很累,但是修真院的教学理念不会变,修真院的价值观也不会变,毕竟在这个物欲横流的世界里,不仅仅有桂同学这种程序渣,还有太多的亚衡和伟江。

我很不喜欢去解释自己做的事情,毕竟show me the code的思维方式已经固化到修真院的日常。

但总还是要对程序渣解释一下,用他们能理解和愿意理解的方式,安抚他们的心灵:“抱歉,您需要回到经济舱,头等舱不到新西兰。”