大概在两周前,小慕联系了七月老师,向他表达了想采访他的想法。老师是个严谨而认真的人,却又偶尔透露出一些“纯真”,不知道是不是做技术的其实内心都有个阁楼,藏着那些令人不轻易发现的美好。
今天,小慕便带来了七月老师的采访实录,希望可以给所有喜欢七月老师的,喜欢小程序课的你们更多的帮助与启发~
一
小慕:七月老师好,非常开心今天能跟你一起来聊聊关于小程序的那些事。在开始之前,我个人有个问题非常好奇,“七月”这个昵称是有什么缘由吗?这个名字还挺文艺的。
七月老师:不文艺吧 - -,还很俗。我又是一个比较怀旧的人,七月是毕业季,所以纪念下永远都回不去的校园年代。
二、
小慕:哦,原来如此,呵呵~那我想了解下,您是在怎样的机缘下选择在慕课网做一些课程教学和分享?这期间有什么故事能跟我们分享下吗?
七月老师:这可能确实是巧合。之前从来没有想过会做课程。我是一个对技术比较敏感的人,有什么新的技术出现后,我会第一时间大致的看一下新技术的模式、优势。小程序内测时,抱着这样的心态,写了一个demo,这个demo最后经过若干次重构、优化,演化成了第一门课程《微信小程序入门与实战》。大致了解小程序的开发流程、商业模式后,我的直觉告诉我,小程序会流行起来,于是我写了一篇评测文章,从商业模式和技术上分析小程序的未来和现在的缺陷,发表在了一些TMT媒体上,点击率和浏览量都还不错。因为比较认可小程序的模式和理念,所以抱着试试看的心态联系了慕课网,最终才有了这门课程。
三、
小慕:您觉得小程序最大的作用和意义在什么地方?
七月老师:小程序的优势不在于技术。很多时候评价一种新的事物是不能以技术高低、优劣来评价的,唯技术论,是大多数技术出身的人的固有缺点。技术不代表一切,更重要的是模式、环境与场景。
小程序之所以能成功,原因有很多,但这两点我认为是最主要的原因:一是因为微信本身的社交地位,二是因为小程序的开发成本确实比较低。
四
小慕:明白,我相信凡是对小程序感兴趣的应该都学过您的课程,因为真的是好评无数,说您讲的细腻深入,还有用户反馈说学到“废寝忘食”(稍微夸张下),总之就是让很多人都觉得受益良多,您之前有想过自己的课这么受欢迎吗?
七月老师:完全没有。从来都没有想过自己还能讲课。所以人生充满了无数的可能性,关键在于要去“试一试”。
五
小慕:呵呵,您太谦虚了。我看到您目前已经在慕课网上线了多门小程序课,从小程序入门到小程序开发实战、再到小程序全栈应用,它们分别适合怎样的学习群体?
七月老师:《微信小程序入门与实战》是入门级别的课程。我为什么没有说是入门级别的小程序课程呢。因为这个课不仅是适合小程序入门学习,它也非常适合作为前端的入门学习。课程里不仅是讲小程序,更多的时候是在讲一些编程的基本思维并附带讲解一些JS的知识和ES6的知识。小程序对于想入门前端的同学来说,是非常合适的,它本身具备现代前端框架MVVM的特性,本身又没有AngularJS、React、Vue这么复杂,作为前端过渡和入门学习非常合适。比如想用三大框架开发H5,是必须要会babel、webpack、glup等“额外”的技术栈。但小程序不用,你可以很快速的构建一个自己的应用。完全可以先用小程序入门,然后再进阶去学习三大框架。
《微信小程序商城构建全栈应用》是一个全栈课程,属于中级课。一个完整的小程序至少需要包含3个部分:小程序、服务端API、CMS(数据管理)。这个课程就是做了一个完整的小程序。当然,我的课有一个特点是不会只去讲业务怎么实现。能做一个小程序并不难,如果只是把小程序做出来,那这门课至少在教学层面来讲价值不大。所以,基本上我的每个课程业务都只是一个表象,更多是会把编程的一些最核心的知识融入到开发项目本身这个过程中来。比如在这门课程中,我更多的是去讲解TP中的ORM、Model、MVC、路由、全局异常处理等和语言、业务无关的技术知识。寓教于乐,同理,课程也需要讲业务会技术知识点巧妙的结合在一起。脱离业务讲技术,这很难让人理解这技术到底怎么用,有什么意义;而脱离技术只讲业务实现,这又很难给人启发,做到举一反三。
《纯正商业应用—微信小程序开发实战》这门课程主要讲小程序最新的开发模式组件化编程。如果说小程序技术这2年来的发展,最大的改变是什么,我觉得就是加入了自定义组件。自定义组件改变了我们开发小程序的模式。随着自定义组件的加入,小程序的npm也随之到来。
六
小慕:您希望这些课程能够帮助学习者什么?或者说您对于课程的愿景是什么?
七月老师:表面上来看,课程主要是帮助同学们掌握小程序开发。但其实小程序本身是足够简单的,没有太多可以讲的。所以我的课程更多的是希望同学们能够学习到编程的思维,或者说“套路”。编程,至少Web编程,是有规律可循的。只要你能掌握到这种“规律”,那么无论面对什么业务,什么语言,什么技术,你都可以灵活应对。
此外,我特别想通过课程帮助同学们认识到写好代码的重要性。编程行业里,一个经久不衰的话题就是所谓的“三十岁后怎么办”。我工作多年来,看到很多只管完成业务功能,不考虑代码质量、结构、性能的程序员,如果这样来编程,那必然会遇到“三十岁的瓶颈”。编程他就是这样一种看表面很简单,但其实内部是极其有内涵的一种工作,如果你没有注意到编程的“内涵”,即使你从二十岁编程到三十岁,你依然只是停留在表层。很多知识的学习都是建立在深入的前提下,只有深入你才能看到原来看不到的东西,你才能理解一项技术的内涵和意义。长期追求优质的代码和结构必然能够促使你比其他人更加有深度。
七
小慕:您在授课中曾谈到编程思想,提到“其实更重要的是掌握设计思想”,能具体谈谈吗?
七月老师:技术的变迁实在是太快了,几十年前你可以会一门C或者C++就能昨天下,但现在不行了。语言的变化、技术的更迭如流星一样。所以我们编程不能以我学会了某项技术或者某种语言为目标,必须学习到编程的思维模式和规律,否则不断的学习新的框架和语言,这实在是太累了,你也根本无法享受到编程的乐趣。
所以我建议同学们更多的应该去真正的学习面向对象、设计模式。但这里要强调,面向对象和设计模式必须依赖大量的业务编程,脱离业务编程去看设计模式这是没有意义的。
当你遇到一个设计上的难题时,你是否会去看设计模式,找到23种模式中的一种去解决你的设计难题?所以,这才是学习设计模式的好方法。你看,这正如我前面所说,要学好设计模式,你首先要敢于追求好的“代码写法”。如果你完全不追求设计,那自然是不会想到去研究设计模式的。
八
小慕:您觉得tp5最大的优势在哪里?
七月老师:相比于Laravel,优势就在于简单,很适合基于做二次开发和扩展。如果你需要深度的定制一个框架,TP是比较合适。
九
小慕:我发现不少用户说您课程中的很多章节都令他们有“惊艳”、有“茅塞顿开”的感觉,比如ORM、全局异常处理、JS应用等,您是有什么不一样的讲授方式吗?
七月老师:讲“理”。这个理,即是道理也是原理。讲课和吵架一样,要吵赢就要有理有据,令人信服。所以我讲课很少会直接给出答案,更多的时候会讲为什么要这么做,这么做有什么好处。也就是把一个问题解决方案的来龙去脉都讲出来。
十
小慕:有句话说“当你发现困难的时候,正是你成长的时候”,大家在学习您课程中肯定也向您求解了不少问题,有没有印象深刻的?
七月老师:印象中有个同学,提出了一个问题。让我印象深刻的不是这个问题本身,而是这个同学阐述这个问题的形式。他非常详细的描述了这个问题产生的背景、环境,以及他排除问题方式和得到的结果。面对这些结果,他的疑惑是什么。这充分证明了这个同学在提问前是有非常深刻的思考的。我对此印象非常深刻。
编程的问题实在是太多了,永远都有问题,无论你编程多少年,是多么牛的人,依然每天会有无数的问题。可以说,编程本身就是在不断的遇到问题->解决问题-> 回顾问题->学到知识这个过程中成长的。这是编程的特点。
我们谈到要有编程思维,编程思维怎么来?就是通过自我思考解决问题培养起来的。所以,自我解决问题的能力非常重要,甚至远超任何一个你所学的具体技术。很多同学可能会问,我知道解决问题很重要,可我到底怎么解决呢。
调试。99%的问题都可以通过调试解决。
十一
小慕:“出一门买一门,我是七月粉”我刚看评价翻到了一条,每次看到这样的评论您是怎样的心情?
七月老师:开心啊,每个创作者都是希望得到肯定的,也能激励我做出更好、更优质的课程。
十二
小慕:好的,聊了这么多,我也想关心下您对于自己课程的评价,优秀还是非常优秀?(玩笑)
七月老师:我的确不知道自己的课程到底算是什么水平,自己也很难对此作出评价。但我做课程最主要的是把自己对于一些框架、编程思维的理解给讲出来。但值得改进的地方确实还有很多。
·······················································
看完以上,还等什么,七月粉在哪里?打call打起来!
当然路过的童靴也别错过呀,想入小程序坑的,七月老师了解一下哈!
特此奉上七月老师资料:
讲师主页
实战课程:
《微信小程序入门与实战》
《微信小程序商城构建全栈应用》
《纯正商业应用—微信小程序开发实战》
《全面系统 Python3入门+进阶课程》
《Python Flask高级编程》
《Python Flask构建可扩展的RESTful API》
手记:
《编程之路 ——给初学者的学习建议》
《16.12.21小程序0.11.122100版本更新问题》
《17年1月9日,小程序来了。深度解析2017微信公开课》
《小程序来了!!!》
《来自学员的两款小程序。开发者,你应当拥有一款自己的产品。》
《程序员,你真的会写简历吗?》
《新课程预览:TP5.0+小程序+微信支付构建全栈应用》
《REST与RESTFul API最佳实践》
《追寻本质还是流于形式》
《给编程初学者的一些建议》
《再看微信小程序》