上线虽然有了几天,但是始终没腾出手来把内容好好编辑一下。今天刚好有点功夫,借着整理Java Task1 的功夫,详细解释一下,修真院的教学模式倒底是怎么样的。
一 扯一些没用的
“掌控自己学习的节奏”-这句话,打算当成修真院的Sologn。
为什么先从这个地方说起呢?
老师上课,学生听讲的模式,本身就抹杀了每个人的个性化,所有的人都是按照一个统一的节奏走,完全不顾,不管每一个学生的差异化,而实际上,因为背景知识不一样,思维能力不一样,受过的训练不一样,主观能动性也不一样,非但不一样,简直是天壤之别。
在修真院,学习的最快的,7天就可以完成CSS的任务。一个半月就能上手直接写Java代码,会运维,会DB设计。学的慢的,可能一个半月才能刚刚好勉强把CSS做完。
所以如果是统一安排老师讲课,怎么学?
学习不该是这样的,首先,得认同,不同个体的差异。接着,再去想,怎么样解决这个问题。
这就是修真院的价值。
修真院给出的是一个学习导航,嗯。教导你在什么时候,该做什么。记着,方向盘在你的手上,你仍然是老司机,油门和刹车同样的在你的手上,你还是那个司机。
修真院只是告诉你目的地,以及要走过哪些路。什么时候走到,是否走弯了路,中间休息或者是干脆住下来,无所谓。
为此,修真院做的第一件事,就是整理出来,当前如果能够胜任一个Java工程师,最需要的技能是什么。
别扯其他乱七八糟没用的东西,最烦动不动拿是不是看过JDK的源码来说事的装逼犯,门还没入呢,代码都没写过,看你妹的源码,老老实实搬两年砖再说。
所以Java的初级工程师倒底需要什么技能?
首先先从什么是初级工程师,这个定义说起来。
初级工程师,参考暗灭大人在知乎的定义,就是能够独立完成项目的人。
对,这个定义很混蛋,因为足够把大部分一年或者是一年半,或者是两年的人给直接闷死了。
但是,如果你做不到能够独立做项目,抱歉,你真的连初级工程师都算不上。低级以下无区别,真心没有必要为了证明比别人强那么一点点而再细分了。
那么什么是中级工程师?中级工程师就是能带团队,懂架构,深入了解一些算法和原理,做得了选型,什么项目都能做的人。
中级工程师比初级更惨。简单说初级以下,高级以下,全部是中级工程师。差了那么两到三年,或者是三到五年的工作经验,薪水是16K还是50K,这种差别有意义么?没太大的意义。
高级工程师又是什么?高级工程师就是那些各种流行,开源框架的贡献者。对,除了他们,他们其他的都不算高级工程师。
就这么分,简单明了,谁不认同谁滚蛋。你爱怎么分怎么分,反正我就这么分。
站在这个角度继续走下去,初级工程师需要什么技能,就很简单了~
二 初级工程师需要的技能
先从数据库说起。
Mysql是必须要会的,关键是,需要会到什么程度?
Navicat就是一个客户端工具,随便用两下就可以了。
DAL是我们自己封装的访问Mysql的中间件,好处是将缓存的使用融入了进去。有很多值得分享的设计思路,当然还没有开源。所以只能分享思路,线上的学员是用不到的。
图里没截全,其实还有Mybatis,JDBC和Hibernate。我是期望这三个,做为一个初学者,都可以花时间去看一下怎么用的。太复杂的用处不说,只说简单的使用,还是可以快速的用一下手。
再说开发模式。
实际上,由于IOC的出现,接口和实现的分离已经取代了绝大多数的设计模式。每一个设计模式都有自己的背景,也包括大量使用继承等等。
但是,坦诚的说,不要使用继承。所以在设计模式中,最需要掌握的也不过么几个而已。
1.单例,NND这个在截图的时候他们又没放上去。
单例有很多经典的使用场景,很多有关单例的细节,很多种实现方案。
2.AOP
Aop在拦截器和性能统计上没说的。判断用户是否需要登录,是否实名验证这些东西,百分百使用拦截器来做这个事儿。
3.接口-实现分离
Spring最早是为了解决不同的实现类,通过依赖反转将New语法去掉的问题。但是延至今日,他带来的影响早就超出了两个不同的实现类的替换问题。
强迫你使用接口编程,这么一个简单的概念,就让你的代码整齐了很多,也好维护了很多。
还有第三方API,这也是Java初级工程师必须要会的。
随便举的例子就是短信,微信,存储,支付,IM等。
马丹,写的有点累了。明天有时间,有心情了接着写。
今天继续。
再说说技术框架。马丹,又不想写了。