视频链接:
你好,我是李艺,笔名石桥码农。目前和朋友一起创办了日行一课文化,是联合创始人兼CTO,在团队里负责产品研发。同时我也是腾讯云在小程序、人工智能、音视频领域的 TVP 最具价值专家,腾讯课堂年度最具影响力专家,曾在2017年初,做过“零基础周末学习小程序开发”的实时Live课程,2017年10月出版了《小程序从0到1:微信全栈工程师一本通》这本书。
我在2002年开始接触编程,有15年以上的一线项目研发经验,很多常见的编程语言,像Java、PHP、C++、Objective-C、JavaScript、ActionScript3等,这些我都在项目中实际使用过。在我看来,语言与技术都是为产品服务的,没有哪一种语言或技术是最好的。我也不偏重于某一门语言,或某一种技术,只要在当前这个时代,对某些领域的产品开发是合适的,我就会去学习与使用。有人觉得不断学习新技术会很累,但是在我看来,学习新技术是一件快乐而有趣的事情,尤其是当这种新技术可以解决我们的实际困难的时候。
我的技术基本都靠自学所得,在开始学习时感到困难,后来坚持在实践中学习,坚持知行合一,随着积累的增多,不仅技术能力得到了增长,学习效率也慢慢提高了。
在技术学习这件事上,我有两点最深刻的体会分享给你:
1,要先学会一门语言,语言都是相通的,把一门语言学透了,再学习其它语言和技术就很容易触类旁通。(先学会一门语言)
2,要坚持在实践中学习,坚持知行合一,不要只是看一看、听一听,一定要动手实践。只有亲手复原了代码现场,看到了一样的运行效果,才算是真正的知行合一,这时候获得的知识才算是自己真正的“良知”。(坚持实践中学习)(坚持知行合一)
这门课程的名称中也有“实践”二字,希望你坚持在实践中学习,把小程序开发这门技术学好。
小程序发布已经过去三年时间了,今天学习小程序技术晚了吗?现在为什么要学习小程序技术?学习小程序开发的意义和价值在哪里呢?接下来我分别从三个角度和你聊一聊我的感悟和体会。
1)从用户体验的角度考虑:小程序顺应了时代需要
这里有两点值得一提,一个是与App对比的下载和安装体验,一个是与Web对比的启动和运行体验。
大概在2008年,手机网络主要是2G,后来是3G,在那个时代,手机App都是要下载使用的。用2G那样的网络下载App,不仅速度慢,流量费用还很贵。当时最好的方法就是找到可以使用的WiFi,所以那个时候,街边商家像肯德基、麦当劳等,都以向顾客提供WiFi作为店面卖点。
后来,到了2013年,国内4G牌照发放,2014年4G网络开始普及。这个时候流量便宜了,主要矛盾不再是App Size大、流量贵,而是下载和安装一个App很麻烦,尤其是那些,在生活中使用频次不高的App。
相比App,小程序不需要下载与安装,搜索或扫码,打开就可以使用。所以在下载和安装方面,小程序具有明显优势。
另外,与PC Web、H5页面对比,它在启动上也具有优势。对于H5页面,每次打开页面,都是重新加载与渲染的,而小程序可以做到从后台直接切换到前台,在渲染上也可以像App一样局部渲染。小程序在体验上,可以达到类App的体验效果。H5页面在浏览器里面虽然也有缓存,但是很难达到这样的效果。
2)从商户运营的角度考虑:你需要小程序
基本上所有传统App,都需要做小程序,除了微信本身。
社区里的小商店,生意想做得好,一般都有自己的“招牌”。北京的易初莲花这个超市,离闹市较远,但是它的鸡蛋便宜,引来老头老太太做公交也要去这个超市买鸡蛋,年轻人离得远甚至开车去。鸡蛋亏一分甚至一毛,把流量吸引过来了;但来的人一般不只是买鸡蛋,商超在其它特色商品上把价格调高一些,在鸡蛋上亏的钱也就挣回来了。这个套路在App的运营上同样适用。
我们看一下这张图,App按用户使用频率和单次使用时长划分,一般可简单分为四类:
1,高频高时长App,例如微信;
2,高频低时长App、例如饿了吗;
3,低频低时长App,例如大众点评;
4,低频高时长App,例如豆瓣。
当然可能也有人使用大众点评是低频高时长,例如美食爱好者;使用豆瓣是高频高时长,例如文艺青年,在这里我们取普遍行为划分分类。这四种类型的App,每类运营策略都不一样。
对于第一类,高频高时长的App,在任何时候都不用担心,用户买了新手机,下载的第一拨应用就是它们;
对于第二类,高频低时长App,这类App由于使用次数多,真正需要的用户也会下载,但用户每次使用时间不长,所以这类应用一般都会增加一些高毛利产品或服务。至于高频的低毛利功能,则是像商超的鸡蛋一样,是用来引流量的。对于这类产品,如何引流,小程序就是最好的方式。
免费、公正,只要功能是对用户有用的,就像便宜的鸡蛋一样,用户就会扫码、试用小程序。反正小程序也不需要下载,每个人基本又都有微信,扫码就可以使用,很方便。
待用户试用了,发现功能确实有用,就方便从小程序向App引流了。罗辑思维的得到App,在开始的时候,坚持不做小程序,后来还是做了,就是为了向得到App引流。
对于第三类、第四类App,在App市场中属于长尾应用,以工具类产品为主,这些应用,用户一般更喜欢使用小程序这种方式。不用下载,打开就能用,体验也不比原生App差到哪里去,为什么不用呢?
第四类App,是低频高时长,由于使用时间长,还可以通过小程序向商家自己的App引流;第三类App,是低频低时长,没有引流的必要了,有不少小微团队做这类工具类应用,由于长尾效应,基于微信巨大的月活基数,每个月的广告费也足以养活团队了。
所以你看,无论是哪些传统App,基本上都需要做小程序。小程序去中心化,排名公正、免费,任何App,除了微信本身,都可以找到和它共生的点。
3)从开发的角度讲:小程序走到了技术前沿
在2017年小程序诞生之前,App开发最热门、最成熟的技术是Hybird混合开发,国内大厂无论是阿里的手淘宝,还是京东App,无一例外都使用了这种技术。使用这种技术的好处是,可以同时具有“原生App良好的交互体验”,和“Web App跨平台开发的优势”。
Hybird App主要的原理是什么呢?
它是由Native通过JSBridge等方法,提供统一的底层API,然后用HTML+CSS实现界面、用JavaScript来写业务逻辑,调用底层API和后端接口,最终的页面在Webview中渲染显示。在这种模式下,Android、iOS的底层API,一般都具有一致性,所以Hybrid App具有跨平台开发的优势。
小程序是Hybird App技术的再发展,相比Hybird App,小程序还具有额外的优势,例如:
审核周期短,iOS动辄2周的审核周期,在小程序平台上只需要2天;小程序还有3亿以上的月活用户,微信开放了社交关系链API,为小程序提供了快速裂变的可能。
所以你看,从开发技术上考虑,小程序是最先进的,是值得学习与使用的。百度、阿里、头条相继推出自己的小程序平台,从侧面也证明了这种技术的前瞻性。
综上所述,无论从用户体验的角度,商户运营的角度,还是从技术人员开发的角度,小程序开发都值得一学。
在2017年初,我在知乎开过一节实时Live课程“零基础周末学习小程序开发”,那个时候读者问得最多的问题,并不是小程序组件和接口如何使用,而是在具体的软件项目中如何实现具体的某些功能,例如,单击头像侧滑菜单如何实现、有多个商品分类如何实现横向滚动,等等。
后来,我又出版了小程序方面的书,邀请购书的读者进入读者群学习交流。结合这些学员学习的经验,以及我自己学习的体会,我深知学习一门技术的关键,在于动手实践。不光学习小程序技术如此,学习任何编程技术都是一样的。
第一,知行合一,致良知
对于学习者,无论看了多少资料,或者听了多少课程,如果不动手实践,知识和技术终归不是自己的。只有亲自让代码运行起来,并且看到正确的运行结果,在那一刻,“良知”才可以在内心真正地建立起来。
明朝至圣先师,王阳明创立的阳明心学,讲究“知行合一,致良知”,我认为这门学问应用在编程实践中也是合适的。
第二,踏实,坚持,积少成多
如果不注重实践的积累,急于求成,前面一些问题上没有完全搞明白,就着急往下走,当后面遇到挑战,需要依赖前面那部分知识作为支撑的时候,难免心生茫然,无计可施。既没有掌握过硬的技术能力,还浪费了时间,或许还要花费更多时间去弥补。好读书不求甚解的同学,可能都有过这样的阅读图书与观看视频的体验。
只有不断地实践,将一个一个小的“良知”汇集起来,慢慢的才会建立一张完善的小程序知识结构网,当这张网,足够坚固缜密的时候,心中光明,已是举一反三的境界了。这种时候才是大牛口中所说的,「学好一门技术,其他技术就能无师自通」的境界。在开始的时候,下一些苦功夫、笨功夫,从长远来看是非常值得的。
这门课程最大的特色,是全栈开发与实战开发。主要有下面四点:
1)集中在一个项目中学习
这门课为了避免实例太多,知识断裂无序,加重你消化吸收的负担,我会安排一个大项目的开发,尽量用这一个项目,将绝大部分小程序开发的知识和技术,都包括进去。
2)全栈讲解
大多数小程序教程,仅仅是讲述平台组件、API等前端内容,不涉及到后端。学习者学习之后,仍然无法独立完成项目。
本课程不但注重最佳实践,与易错问题的讲解,还注重在一个完整的项目中,讲解具体的业务逻辑功能,是如何实现的,相信你随着课程学习,会慢慢领悟到面向对象的软件设计思想及设计模式技巧,这样在课程结束后,你编写其它类型的小程序项目也能游刃有余。
3)学习的渐进性
本课程从一个具有广泛实际应用场景的商城小程序出发,内容由浅入深,用一个项目贯穿前后端所有技术,同时将必须的基础知识,在课程中按从易到难的顺序,穿插讲解,在实际的业务开发中,学习小程序组件及API的使用,相信这会让你体会更深。
我相信即使零基础或相关经验不多的学员,只要跟着我一步一步练习,到最后项目完成,一定也大有所获。
4)面向原因性讲解
对于开发中经常遇到的一些bug或问题,这些都属于易错问题,我特意做了收集。我会在讲解的过程中,不仅讲解最佳实践和解决方法,还注意向同类别的其它问题拓展,目的在于希望学员在遇到相似问题时,可以举一反三。古人说授人以鱼,不如授人以渔,我教你的是三点水那个渔。
在学习过程中,遇到不明白的问题,或者你发现课程中没有讲到的问题,欢迎你在下方给我留言,一起讨论学习。
好,我是李艺,我在极客时间等你。