在自学编程这条道上,有人半途而废,有人效率暴增

简介: 在自学编程这条道上,有人半途而废,有人效率暴增

image.png

在知乎上有一篇3w+点赞的,是关于如何自学编程的文章(编程路上那些让我效率暴增的学习方法!),我是在《微信小游戏开发》书稿完稿以后看到的这篇文章,当时看到以后就转发到我的读者群了,写得太好了,把新人在学习过程中经常遇到的困难都写明白了,痛点实际且深刻,获得3w+点赞不足为奇。


以下以这篇文章提到的主要痛点为脉络,讲一讲新人如何利用《微信小程序开发》这本书,主要靠自学编程,成为一名微信小游戏独立开发者。


科班出身长于何处?


科班无任何显著长处,这一点西安交通大学校长王树国校长已经批判过了,网上有视频,你感兴趣可以自行找出来看一下。


image.png不要迷恋科班出身,由于大学计算机教育教材的严重滞后后,科班出身的计算机毕业生并不一定比非科班出身的知道的更多。如果硬要总结,科班出身在认知上主要长在三项上:


  • 知道每门功课是干什么,要学什么;
  • 被老师用随课测验、课后作业等形式,逼着做过一些小项目或小题目,有一些实践带来的手感,实践对于编程学习十分十分重要;
  • 一份来自“我是大学生科班出身”的自信,虽然这份自信没有理由,多数时候还可能演化为自负。

image.png

在《微信小开发开发》这套书中——以下简称本书,我为读者明确了“成为一名微信小游戏独立开发者”的目标,确定了“具体需要学什么,及怎么学”的问题,至于实践与练习,整套书都是一个PBL项目的实战,学习本身就是在实战中完成的。


至于来自科班出身的那份自信,别人给不了你;但如果你按照自学讲义认真实践,或许可以获得另外一种来自于自学编程的自信,毕竟半途而废的人太多了,这份自信也很珍贵。


选择什么编程语言?


这是一个伪问题。

image.png

从这张截图可以得到以下几点信息:


  • 学习编程从来都不是学习某一门编程语言,而是在学一个计算机生态,学的是一个宠大的电子计算机体系,这样的体系可以简单用技术栈代称;
  • 学习哪一个技术栈,跟自己的目标和自己的职业身份有关系,例如想从事金融算法或机器学习的工作,可以学Python;如果是大一新生,时间充足,可以从C语言打基础;如果想开发Web,可以学习PHP、Java、Go语言。但这些目标都太宽泛了,目前到了2023年,编程语言也有了新的发展与变化,目前学习什么,也需与时俱进。

在本书中,我替读者明确了成为微信小游戏独立开发者是学习目标,那么小游戏技术栈便成为了读者的学习目标,该技术栈包括但不限于以下具体学习内容:


  • JavaScript语法
  • HTML5(包括基础的HTML & CSS3),用于经典HTML5游戏移植,这是新人最快、最省力的进入小游戏开发领域的方式
  • 模块化的重构技能、面向对象与使用设计模式的重构技能,重构是不断优化游戏体验的必备技能,也是老生常谈的架构师角色的基本技能
  • 微信小游戏平台组件与接口的调用
  • 微信小游戏云开发能力的使用
  • Go、Node.js后端接口编写,及Web管理后台开发
  • Go语言语法
  • 编程规范
  • MySQL数据存储
  • 计算机运行原理、小游戏代码调试方法、网络通讯协议、RESTful接口设计规范等

成为一名微信小游戏独立开发者,知道要学习这些具体内容没什么,但从网上搜索到许多相关的教程,或者从京东上购买许多本书籍,然后再一一完成学习就太难了。


现在这些你都不需要做了,只需要购买一套《微信小游戏开发》,就可以入门微信小游戏技术栈的开发了,简单吧?


用购买其它N本书籍总价十分之一的价格,就可以购买这套书。当你在京东或其它网店看到这套书(加上番外篇)有1000多页,及总价过百时,不要惊讶,惊讶可能只是代表你还不知道自己应该学啥。从京东商城里随便找10本计算机相关的书,然后把它们的页数和价格加在一起,看看是多少?


选择什么样的学习方式?


项目驱动式学习,基本已经成为技能学习的最佳方式,虽然许多读者可能还不知道它或者不认可它。但实际上,在项目驱动式学习之上,还有一个更好的方式。


image.png


从这幅截图里面,至少可以读出以下信息:


  • 大学本科教育是面向“面”的教学,让大学生在许多方面都学一点,却不会在某一个垂直细分方向上深入教学,而毕业后走向工作岗位或作为独立开发者需要的却是某个细分领域特别精准与垂直的技能。你越在某个细分领域突出,你的职业优势或作为独立开发者的睡后收入就越多;
  • 项目驱动式学习,是目前公认的学习编程技能最好的方式,但这个方式也有缺陷:它使学习者的知识比较零碎,在进行了一段项目实践以后,需要特意地找书进行一段理论学习。这里其实还隐含了另一个缺陷,就是对于初学者,在你没有充分认知又没有师傅带的时候,你怎么知道应该找补哪些理论呢?甚至对于练习项目的选择,都有可能因为难度选择不当而半途而废。

在本书中,在两个方面解决了这个问题:


  • 本书项目是一个整体的实战项目,这已经知道了,还有就是这个项目它是刻意按照从易到难的次序进行编排的,对于初学者而言,先易后难,稳步前进,总是更加容易的;

  • 书中每进行一段实战练习之后,都有一段相关的拓展,如下所示,拓展即与实践相互补充的理论学习。

image.png


这是一张书中内容的截图。看到了吗?实战之后是拓展。除了拓展,还有练习,练习也是与当前实战相关的,也是为了巩固当前所学内容的。


如何安排学习计划?


接下来要讲的学习方式,不仅适用于微信小游戏技术栈的学习,学习其它技术也适用。


image.png


从这张截图中可以看出来,这位作者善于制定计划,并且善于在学习过程中记笔记。这至少可以给你两点启示:  


  • 学习一定要有计划。为了方便读者制定学习计划,本书目录采用了“课”的方式进行设计,全套书共有93课,读者坚持每天学习一课即可,学有余力也可以加快速度;

  • 为了辅助读者练习,我还编写了一套90个步骤的自学讲义(在公众号艺述论回复10000就可以看到)。读者每学习一步,每完成一步的练习,就亲自编写一个学习笔记,这叫费曼学习法,是全世界公认最快的学习方法。读者在编写学习笔记时,可以参照我给你准备的自学讲义,对照内容及格式,查漏补缺。

看视频还是看书?


这个问题其实不是问题。


image.png

看视频比较详细,但时间可能长;看书比较快,但涉及操作的地方可能不易看明白。没必要一定要二选一,二者完全可以结合起来,容易的地方就看书,感觉困难了不好接受就翻翻视频。

读者在学习本书时,可以先以“书+讲义”的形式为主。作者有计划录制一套教学视频,看读者需要,如果这方面需求的人多,会提前开展录制工作。如果将来有视频,在公众号艺述论回复关键字10000时可以看到视频合集链接。


如何通过微信热度搜索热门游戏


“微信热度”是一个微信小程序,可以在上面查看关键词热度,例如今天“微信小游戏”的热度为:

image.png


热度不小,且有很大的日环上升。“微信小游戏”热度上升,一般与小游戏有关,例如之前微信小游戏“羊了个羊”火爆的时候,该词汇曾一度猛烈窜升。


那么,如何确定当下的热度升高是与哪些游戏或因素相关的呢?


可以通过百度指数(index.baidu.com)查看“微信小游戏”的需求图谱,如下所示是今天的查询结果:

image.png

从截图中可以看出,“微信挑一挑”、“合成大几把”是入圈的微信小游戏,还有“羊了个羊”热度依然不减。近期“微信小游戏”热度攀升,它们都脱不了干系。


新人开发者刚跨入小游戏的开发领域,除了前面讲过的,通过“书+自学讲义”把技术栈学习好以外,还需要关注当下流行什么样的小游戏题材,这些游戏是学习与借鉴的榜样。


一般而言,从HTML5小游戏领域进行移植或进行微创新改造,是最容易出成绩的方式。国家著作权保护法有明文规定,法律保护图片、音乐等游戏素材,但是不保护创意,大众喜欢的游戏创意人人都可以学习。


在本书中,开始的部分特意安排了从HTML5向微信小游戏移植的内容,便是为了新人读者更容易起步。

在学习过程中,如果遇到困难,可以进读者修仙群与其他道友一起探讨,也可以在公众号私信我参加1v1编程辅导。


【参考链接】


以上内容是对新书《微信小游戏开发》(李艺著)撰写形式及成书过程的解读。该书已在京东上架,如果你想成为一名独立的微信小游戏开发者,想从微信小游戏开始自学编程,可以前往商城自行购买,收货后如果觉得好别忘记点个赞。


目录
相关文章
|
5月前
|
Java UED 开发者
揭开Java性能提升之谜:异步编程如何让你的应用响应速度飞升?
【8月更文挑战第30天】随着互联网技术的发展,系统性能和用户体验成为关注焦点,异步编程因其能提高应用响应速度和吞吐量而在Java领域广泛应用。本文将详细阐述Java异步编程的概念与优势,并通过实战示例展示其在实际项目中的应用,如使用`Future`、`Callable`及`CompletableFuture`等接口和类实现异步操作,帮助开发者更好地理解和运用这一技术,以提升程序性能和用户体验。
53 0
|
5月前
|
JSON C# 开发者
💡探索C#语言进化论:揭秘.NET开发效率飙升的秘密武器💼
【8月更文挑战第28天】C#语言凭借其强大的功能与易用性深受开发者喜爱。伴随.NET平台演进,C#持续引入新特性,如C# 7.0的模式匹配,让处理复杂数据结构更直观简洁;C# 8.0的异步流则使异步编程更灵活高效,无需一次性加载全部数据至内存。通过示例展示了模式匹配简化JSON解析及异步流实现文件逐行读取的应用。此外,C# 8.0还提供了默认接口成员和可空引用类型等特性,进一步提高.NET开发效率与代码可维护性。随着C#的发展,未来的.NET开发将更加高效便捷。
70 1
|
5月前
|
Rust 搜索推荐 测试技术
揭秘Rust性能极限!从菜鸟到高手的蜕变之路:深入剖析性能分析与调优的隐秘技巧
【8月更文挑战第31天】Rust凭借卓越的性能、内存安全性和并发支持,成为高性能系统开发的首选语言。本文详细介绍Rust的性能优化流程,涵盖从基础分析到高级调优的技巧,并通过示例代码展示具体操作。内容包括理解Rust的性能优势、常用性能分析工具(如Cargo Bench、Valgrind和perf)、基准测试示例以及优化技巧,如减少内存分配、利用并发模型、优化数据结构和避免过度抽象。通过持续优化与迭代,开发者可充分发挥Rust的潜力,提升程序性能。
272 0
|
算法 安全 程序员
分享刷题的个人经验!!!(特别高效)
分享刷题的个人经验!!!(特别高效)
100 0
面试了个阿里P7大佬,他让我见识到什么才是“精通高并发与调优”
金九银十已经过去了,公司招聘也渐渐脱离了高峰期,在这忙里偷闲时刻聊聊在面试时遇到的一位大佬; 始末 按照公司项目招聘的要求,我通常都会问一些高并发需要掌握的知识和实战路程,主要考察一下有没有做过高并发项目,有没有做过性能调优,清不清楚其中的细节,每个方案可能带来的副作用;基础扎实不扎实,比如:数据结构是否合理,算法是否高效,有没有从最根本的IO和计算两个维度去做细节优化;
|
人工智能 JSON 缓存
身为程序员,你有哪些提高写代码效率的黑科技?
身为程序员,你有哪些提高写代码效率的黑科技?
|
NoSQL Java 程序员
要学的东西太多,自己能力不足,很焦虑怎么办
总有人问我,兔哥,现在java要学的知识点这么多,记不住,怕学不精很焦虑怎么办? 这是很多初学者都有的痛点。 其实吧,你可以试试贪多而不必嚼烂。
190 0
|
缓存 前端开发 NoSQL
程序员该知道大型网站架构的发展历程吗?如何有效地增加服务器?
前面介绍了大型网站的业务需求和大致的工作原理,但是不能简单地理解为只要增加服务器就能把一个网站变成一个能应对大量用户的网站。 通过增加服务器来达到支持更多的用户是大型网站架构的目的。 本节简要介绍大型网站架构的发展,并介绍大型网站架构如何有效地增加服务器。 本节介绍的技术点只要了解即可,后续章节会有更详细的说明。 大型网站系统的内部是复杂的,一般是多种网站架构的混合(包括静态网站、动态网站和B/S架构网站等)。
|
SQL 缓存 分布式计算
【面经】面试官:做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?
随着互联网的高速发展,互联网行业已经从IT时代慢慢步入到DT时代。对于Java程序员的要求越来越高,只是单纯的掌握CRUD不足以胜任互联网公司的相关职位,大量招聘岗位显示:如果是面试中高级的Java岗,基本上都需要懂性能优化的相关知识。今天,我们就一起来聊聊一个经典的面试题:做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?
311 0
【面经】面试官:做过性能优化的工作吗?你会从哪些方面入手做性能优化呢?
|
算法 程序员 持续交付
如果你有拖延症,程序员不如试试这个技巧提升效率?
  要吃掉一头大象,每次吃一口。   ——克雷顿·艾布拉姆斯(Creighton Abrams)   造成拖延的首要原因之一,同时也是造成生产力低下的祸根,就是总是在感慨一个问题:好忙啊,问题好大啊……实际上,你并没有真正试着去解决问题。当我们从任务的全貌来审视任务的时候,它们看起来比真实情况都要大,并且更吓人。   在本文中,我会谈及一个能够帮助你克服拖延的提高生产力的窍门:分解任务。通过将大任务分解为小任务,你会发现自己更有动力去完成它们,也更加稳妥地向着目标前进。
167 0