shenyi
管理员
管理员
  • UID1
  • 粉丝16
  • 关注0
  • 发帖数135
阅读:237回复:0

实战学习中的”代码要多练”是怎么个练法?

楼主#
更多 发布于:2019-08-23 00:35
话说 练武“练拳不练功,到老一场空”。 力量、速度、柔韧性、抗击打等基本功很重要,仅仅是练套路、动作是没用的。
 技术也一样。很多同学看技术视频只看不练,认为看懂了就算会了。其实也是“学技术不练,明日就一场空“。


  那么问题来了,传说中的代码要多练,怎么个练法?
 
 之前在群里 有同学很诧异我在课程视频里打代码打的很six,遂询问有啥诀窍吗?
 
  可能我在群里回话就回复的不太严谨,于是说了句:“别看我视频里打这么快。其实背后这段代码我已经练了几十遍了”。
 
  问题又来了。 有部分学员认为我是把 同一段代码敲了 几十遍。。。。。。。


  很久很久以前大学老师教我们写代码,就有异曲同工之样。老师经常把代码敲一遍,然后当着我们的面” 夸嚓  “删了,又无比轻巧的打了一遍。反复2次,然后告诉我们:“要想熟练,就要这么练”。

 这种方法和抄书没啥太大区别,对于学习基本命令和语法时是挺有用的。 那么到了实战学习中,我们是否也是这么 夸嚓、夸嚓?
 答案并不是这样的。


 我要开始变形了,请大家注意。


 for example:
 譬如我练习sql语句和代码结合。以insert into 这SQL为例,看我是怎么反复练几十遍的
第一写:
  insert into table(xxx) values(xxx) . 这个得写两遍,认识到插入语句的写法
第二遍写:
 拉起程序,利用老外帮我们弄好的sql驱动,如jdbc啊之类的,调用下原生SQL。体验下程序执行原生SQL的快感。 期间要对class.forName这种玩意有所了解。为啥tmd只要写个forName就能用了。
第三写:
  这时就要尝试用ORM写写了。体验下模型操作数据库的快感,写出面向对象化的代码
第四遍写:
  就要想想了。如果有个字段是唯一的,譬如username 不能重复。那我直接写insert 插入重复值咋办? 此时你就学到了唯一索引,顺便把ON DUPLICATE KEY UPDATE 也学了
 第五写:
  比较不同ORM插入数据的区别,至少掌握mybatis或hibernate的两种框架。
 第六写:
   如果我们同时在两张表插值,那么事务怎么玩
 第七遍:
   开始学习主从。了解读写分离,同样是insert
 第八遍:
   数据量大了。insert 感觉好慢? 是吗? 那么就要学一学水平分表,顺便学习下分库分表中间件
 第九遍:
   尝试用协程 执行多个insert 。此时就要学习更多 高逼格语言
第10遍:
   考虑insert 的同时,往redis插入缓存
第11遍:
   你会发现要学的东西越来越多了。 这一切都是insert into 帮你牵扯出来的。不是吗?





 实战学习中反复练,其实并不是反复写同一段代码

  而是每次写都有改进 都有逼格的提高、都有不同场景的应用、都有技术境界的提升。强迫你学会思考、学会探索。强迫把你的未知知识点带出来。
会讲故事的程序员
游客

返回顶部