🦄 2024 独立开发者训练营,一起创业!查看介绍 / 立即报名 →

2019 自学指南与 App 开发学习路线(初学友好)

我用自己现有的经验为你提供一条清晰的学习路线,为你做了很多决定,节省了时间,也减轻了你的头痛。你现在应该变身一只听话的小绵羊,我是牧羊犬,赶你去哪你就去哪。最终你可以选择变成一只狼,带着一支队伍,或者独立前行。

假设我们的任务是要穿过一块儿无人区,这片区域没有导航,没有地图,无法用无人机视角观察这片区域。这时我们最期望的是什么呢?一个曾经穿过这片无人区的人带着我们一块儿走,哪怕是他只提供一条具体的路线也行。其实我们甚至不需要一条完美的路线,只要能通过就行。

你要成为一名 App 的开发者,不管是零经验、转行成为开发,还是有些其它领域开发经验的同学都可以参照这个课程路线学习。我认为这个学习路线更像是一套训练系统,因为学习这个动作是一项运动,脑子要动,手也得跟着动才能完成。

在这个学习路线里我会明确的告诉您先要做什么,然后再去做什么。从准备工具开始,到学习应用框架,开发应用。有时这个路线会有分支,你可以选择走向哪个分支。我还会跟大伙分享一下自己自学的一点心得。

做任何事情都需要一个切入点,一个起点,宁皓网就是你自学应用开发的一个切入点。在你犹豫的功夫,宁皓网的会员们已经完成了一个课程的训练,不要再浪费你的时间,抓紧订阅成为宁皓网会员,然后按这个路线去完成训练吧,到年底你就会不一样了。

在课程里,我几乎没有一句废话,因为我觉得废话应该拿出来单独说,所以在这篇文章里,跟你慢慢聊聊视频里没说过的废话。

为什么?

除了养家糊口,成为一名开发者,最吸引我的就是能够实现自己的想法,可以创业,自由职业,可以独立开发,看到编辑器上五颜六色的代码也感觉很舒服。现在无论做什么也都无法离开软件了。成为开发者会拥有更多的机会,待遇也都不错,朋友创业会想到你,你自己创业也更容易一些。

技术领域这个族群的人,人们都很开放、友好且友善。技术类社区也极其活跃,每年各种聚会都能让你结识新的朋友,所以你不会感到孤单。

调整心理

调整好自己的心理,学习开发可能会比你想的要复杂一些,注意只是复杂,并不是不可能。你的学历、经历、所学专业,也不会是太大问题。我认为学历影响更多的是人的见识,这也只是我猜的,因为我自认为是个初中二年级的毕业生,后来的两年职业教育与再后来的成人高等教育,对我来说全都可以忽略不计。能不能做成你要创的业,你要做的应用,更多应该看你到底想不想。

关于计算机与网络我只参加过两个线下培训班,学了五笔打字还有思科的网络工程师助手,这也是十几年前的事情了。其余所有我知道的开发相关的知识全部都是自学的,没拜过师,没上过专门的培训班。遇到的问题也几乎都可以通过搜索解决。

我猜人对陌生事物都会带着一点畏惧感吧。遇到完全没有接触过的东西,一开始一定会出现让人沮丧的事情,随便一个你之前没听说过的专业名词都会吓你一跳。好奇心与幻想驱使我们开始,遇到了暂时解决不了的问题就很容易选择放弃。

问题一定会出现在你面前,它会让你痛苦不堪 ,可以选择放弃,或者继续忍受折磨。放弃能暂时得到解脱,但日后它又会萦绕在你面前。选择继续被折磨,最终的结果都是解决了问题。这是我的经验 ,一个诡异的问题就是无法得到解决,就在我快要受不了的时候,它却突然现了原形。

一个修图师发现照片上有个污点,用了他能想到的所有方法都无法去除照片上的这个污点,后来他用一块抹布解决了它。

自卑与自信这两种心理会交替出现。有时我觉得我能做到任何事情,只要我想学的东西都学会了。有时我又会非常自卑,觉得有些事情自己永远都做不到。不过还好,这两种心理我都不算过分。过分的自信就是自大,永远对未知保持一点恐惧与谦卑。过分自卑就更不是什么好事儿了,它只会让你难受,让你有嫉妒心。

自卑的时候,要自己调整一下。通常自卑的产生都是拿自己跟别人比较,这完全不合理,你拿自己跟几十亿人比较,有比你长的好看的,有比你长的好看还有钱的,有比你长的好看、有钱还有才的。结果肯定是 TM 自卑啊。解决的方法就是,就别再比了呗。参照物放在自身,看看自己是不是比以前进步了,这样做更靠谱一些。

自学方法

自学就是在没有外人干预的情况下,自己独立完成的学习过程。在自学的时候,要是有个人能 24 个小时陪伴,遇到问题马上就能得到答案,那该多好啊。除非你把他/她娶回家,不然你请一个这样的人得多贵啊。

我的自学方法就是:听、看、练。学习要尽可能动用各种感官,学习开发时用听觉、视觉、还有触觉应该就可以了,如果你想用上味觉,说不定学习的时候吃点好吃的也会有帮助。对我说来,学习更像是一项体育运动,最有效的方式就是动手做。

我理解的大部分技术概念都是通过动手实践完成的,光听、光看很快就陷入神游,动手以后才能进入最佳状态。所以我在做课程的时候,把每个视频都当成一个训练来做, 你的任务就是完成每个视频里的训练。

找到切入点,就是找到起点。作为开发者,我们会无数次成为初学者,每次都需要找到一个切入点开始。可以是一篇文章,一组文档、一本书或者一套视频。任何形式的学习资料都可以作为初学的切入点。宁皓网的课程就是一个很好的起点:)

不用担心不完整。在学习时你希望找到最全,最完整的学习资料,但这根本就不存在,其实也不需要这样。因为学习就是点点成面,面面成体。每次学到一个点,点与点之间一开始可能没有太多关联,不过这些点积攒到一定程度就会形成一个面,这时就会有点豁然开朗的感觉。也就是,你学到的任何一个点都不是白学的。

学习资料

一位做英语培训的朋友跟我说,“关于英语学习的所有资料,全部都能在网上找到,为什么还有那么多人管我要学习资料呢” 。原因很简单,自己找忒费劲了。

我现在学技术相关的东西的时候,挺少去看完整的出版图书了,主要是看相关的文档与视频。原因是图书更新的慢,有时候废话也挺多的,还有就是太厚了,很多技术写个几十页就够了,用不着搞 500 页。不过现在想想,如果让我学个其它的东西,比如学个英文语法,我还是希望可以从一本书里找到大部分需要的内容。我们总是期望这样,一本书搞定一切。

数字出版物更好一些,能实时更新,内容精简,目的更明确。有时候看一本 500 页的书不一定能解决的问题,其实一篇文章,一个视频就足以了。还是得看自个儿的需要,有些同学就是喜欢看纸制的印刷品,喜欢书捧在手里的感觉,享受新书的味道。不过技术类的书还真是没啥必要这么干,能实时更新,可以复制粘贴的电子版更好一些。

宁皓网提供的视频课程,类型大概分成几种。一种视频类似于文档,能让你快速理解某个系统或者某个框架的使用方法。还有一种视频是介绍了开发实用的功能,比如开发一个用户登录,内容列表的分页功能,怎么集成微信登录还有各种支付方法(支付宝、微信支付)。还有一种视频是基于应用案例做的,比如搭建一个商业网站,开发一套电商小程序等等。

实战是真的吗?

同学们都偏爱实战类型的案例课程,所以很多图书与课程的名字里都会带着实战。但是你真的期望在一本书或一个课程里看到一个别人家的真实应用的开发过程吗?挺无聊的其实。学到基本工具的使用方法,然后去实现你自己的想法才更有意思。

我至今也没看过一个实战类型的课程,即使名字上带 “实战”,这两个字,也不一定是真正的实战。想想看,别人的实战怎么可能是你自己的呢。自己打拼的才是真实的案例,这个案例也只属于你自己。不需要追 “案例” 或 “实战”,这也只会让我们感觉好一些,认为这样才学有所成。

你的想法永远比我的要好,我告诉你方法,你用这套方法去做你自己想做的。下面我们就开始吧!

2019 应用开发学习路线

2019 的前端应用开发, Vue.js 与 React.js 仍然是首选,你可以二选一。另外跟两个框架对应如还有两个应用框架 Nuxt.js(Vue.js 应用框架) 与 Next.js(React.js 应用框架),用这两个应用框架去开发前端应用更方便一些,有很多东西它都帮我们配置好了,比如路由、服务端渲染功能等等,还为应用提供了一套结构。

另外需要关注的是各种平台上的小程序,比如微信小程序、支付宝小程序。创建它们可以使用京东的 Taro.js 框架,用它创建的应用可以编译成适合在不同平台上运行的小程序,还可以编译成一般的前端应用。正在更新的《电商小程序案例》介绍了这个应用框架的使用方法。

今年的后端应用推荐基于 Node.js 开发,这样你的应用的前端与后端可以使用同一种语言开发(JavaScript  / TypeScript)。了解一下 Node.js 本身,在开发真正的后端应用的时候可以考虑使用 Node.js 应用框架,比如 Adonis.js、Nest.js 等等。宁皓网有完整的 Adonis.js 应用框架的使用方法。

移动端的应用推荐基于谷歌的 Flutter 去开发,去年这个框架如火箭班增长,也得到国内各大厂商的广泛应用。所以这是今年必学的移动端应用开发框架。基于 Flutter,你可以快速创建支持在 iOS 或 Android 平台上运行的原生移动应用。

今年宁皓网还提供了商业网站电商网站的解决方案,课程可以让你快速搭建一个展示类型的商业网站,推广自己的产品与服务,或者要快速搭建一个电商网站在线销售产品与服务。

相关课程

2019 应用开发学习路线(初学者)

概览

应用开发界,是个非常庞杂的环境,里面有太多可以做的事情,每个小分支者都可以成为你的事业。机会很多,但也容易选择焦虑。随便完成一个任务,你都面临上百种选择,你经常会觉得是不是选择另外一个会更好,你的感觉是对的,一定会存在更好的。

如果能用一个普通的网页解决问题,你就不需要等自己学会了开发 App 以后才去解决。太多选择会让人感到崩溃,我的建议是,就用你现有的东西解决当前的问题,然后边走边看,不断进化。我们都充满好奇心,技术领域的新鲜玩意很多,用开放的心态多接触新东西,然后快速理解它们,备用。

按需学习前也要具备基本功,这条路线的目的就是为你提供基本功,用它去实现你自己的想法,做出自己想要的应用。下定决心,用今年一年的时间做出改变,到年底时一定会有巨大收获。

定义

在课程里有些基本名词的定义先了解一下。

应用(App)

App 指的是 Applications,中文可以翻译成 “应用程序”,简称 “应用”。网站、小程序、前端应用、移动端应用,桌面应用,现在都可以简称为 “应用”。作为应用的开发者,我们设计,开发,写代码,做测试,配置服务器...  最终的产物就是给用户用的 “应用”。

终端(Terminal)

在宁皓网的课程里,你经常会听到,“打开终端... ”。 终端指的是一种命令行操作界面,通过终端你可以输入文字命令去执行某些特定的任务。macOS 用户可以直接打开系统里的 Terminal(终端),Windows 用户需要额外下载安装一个完整版的 Cmder 工具。

控制台(Console)

控制台经常会用来调试应用,在做不同类型的开发时,控制台指的可能是不一样的东西。比如在做前端应用开发的时候,控制台一般指的是浏览器的开发者工具里的 Console 面板。在做 Node.js 应用开发时,控制台指的应该就是运行开发服务的那个终端。

比如我们在应用里请求得到了某个接口响应回来的数据,你想知道这些数据里面都有哪些东西,你可以在代码里用 console.log 把这些数据输出到控制台上,这样你就可以在控制台上检查这些数据里到底都有些什么。

前端(Frontend)

前端一般指的就是浏览器这头儿,端就是头儿。前端应用就是在浏览器上运行的应用程序,浏览器可以运行我们用特定语言编写的应用。有时候前端应用也称为 H5 应用(HTML5 应用)。

后端(Backend)

后端指的是应用在服务器端运行的那部分。一般后端应用为前端应用提供了数据的处理能力,比如给前端提供要显示的内容,把前端发送过来的数据保存在数据库里等等。

接口(API)

字面意思是应用程序接口(API:Application Programming Interface)。摇控器上的按键就相当于是接口,通过按钮(按键),你可以控制调节音量,浏览电视菜单等等。

在应用开发领域,应用对外提供的某种服务或者某些功能,都可以看成是应用提供的接口。比如你开发了一个用户注册功能,通过一个接口提供这个功能,一般这个接口就是一个网址,你可以规定使用这个接口的客户端怎么使用这个用户注册接口。比如你要求必须使用某种特定的方法请求这个接口地址,请求里面必须要带着新用户的用户名与密码这些数据。

服务(Service)

服务这个名词的定义有些模糊,因为它在不同语境下会表示完全不同的东西。暂时你只需要按字面意义去理解。服务,就是能为你做某些事情的东西。

一、基础工具

终端、编辑器、源代码管理,这三样是开发者的基础工具,也是必备的工具。

终端

通过终端输入一些文字命令去完成需要的任务,比如管理文件,控制服务器等等。Windows 用户下载安装完整版的 Cmder,macOS 用户使用系统自带的终端(Terminal),然后去熟悉在命令行界面(CLI)下完成一些任务。

编辑器

VS Code 是今年选择使用的代码编辑器。

源代码管理

Git 是最好的源代码管理工具。Git 是软件开发流程里非常重要的工具,学习这个工具并不需要先懂软件开发,而且越早熟悉它越好。下面准备的这个训练是在命令行界面下使用 Git,除了命令行,你还可以直接在编辑器或者使用专门的图形工具使用 Git 。

我推荐先在命令行界面下使用 Git,完成下面的训练,即可获得这个能力。

二、界面设计

学会用 HTML、CSS 还有 JavaScript 创建应用的界面,这个组合是最值得学的,你会发现它们无处不在,可以做出各种不同类型的应用界面。用 HTML 组织界面内容,CSS 设计界面样式,JavaScript 负责为界面添加行为。

单纯学会 HTML 与 CSS 也可以做出应用的界面,但如果想要完整的界面,你还需要用到 JavaScript 。HTML 与 CSS 不能算作程序语言,因为编写 HTML 与 CSS 代码的时候不需要用到逻辑运算,输入的是什么,得到的就是什么。而 JavaScript 是一种程序语言,它也是非常值得学的一门语言。

完成下面的训练,先要学会 HTML 与 CSS 这两种语言,做网页设计案例的时候需要用到一点 JavaScript 。

三、程序语言

把 JavaScript 作为你的第一门程序设计语言,语言不会成为你的障碍,不同的程序语言都有共同的东西,所以懂了其中一门,再学其它的语言就会非常容易。

学会 JavaScript 以后,你能做非常多的事情,可以基于 Node.js 去开发后端应用,可以开发前端应用,小程序,甚至是移动端的应用。

ECMAScript 简称 ES,可以看成是 JavaScript 语言的版本,ES6 是一个版本,现改名叫 ES2015 了。不同版本的 JavaScript 里面提供了一些新的特性,有时候浏览器或者 Node.js 实施了这些新的特性,有时候需要用编译工具,把新的语法编译成老版本支持的写法。

TypeScript 就是在 JavaScript 的基础上添加了一些新的功能,在开发应用时我们可以编写 TypeScript 代码,它提供的编译功能,可以把 TypeScript 代码编译成普通的 JavaScript,编译之后的代码可以在浏览器上或者 Node.js 上运行。

四、数据库

应用的数据要交给数据库管理系统来处理,数据库系统与后端应用之间有一套沟通的方法,后端应用可以通过代码处理数据库管理系统里存储的数据。

数据库系统有很多类型,我推荐先学一种关系型的数据库管理系统,MySQL / MariaDB,PostgreSQL 都属于这种类型的数据库系统。

通过下面课程里提供的训练,理解关系型数据库的用法,包含数据查询语言:SQL。

五、应用开发

今年的后端应用开发推荐基于 Node.js,它可以让我们使用 JavaScript 语言开发后端应用。

  • 《Node.js》

了解 Node.js 本身,再去学一套 Node.js 的应用开发框架,比如 Adonis.js 。

前端应用的开发,你可以在 Vue.js 与 React.js 之间二选一。

如果你选择基于 Vue.js 开发前端应用,可以考虑使用 Nuxt.js,它是一套 Vue.js 应用框架,为基于 Vue.js 的应用提供了一套结构,并且配置好了很多东西。选择用 React.js 可以考虑用 Next.js 这个框架。

  • Nuxt.js》(Vue.js 应用框架)
  • Next.js》(React.js 应用框架)

六、服务运维

开发好的应用,一般指的是后端应用,需要给它提供一套运行环境,这套环境的搭建也有非常多的方法,可以直接在服务器上安装配置,可以基于 Docker 容器。

首先要做的是熟悉一种 Linux 操作系统,这是服务器经常会用到的一种操作系统,在你的电脑上可以通过终端,用 SSH 连接到远程服务器,并且通过文字命令去控制服务器。

CentOS 就是其中一种类型的 Linux 操作系统,它经常会作为服务器的操作系统。

学习这种操作系统的时候可以在本地创建一台 CentOS 系统的虚拟机,Vagrant + Virtualbox 这个组合可以非常容易管理创建的这些虚拟机。

在本地有了一台可以运行的 CentOS 类型的虚拟机,首先要了解的是 Linux 操作系统的独特的目录与文件的权限机制。

在服务器上安装软件一般可以通过系统的包管理工具,Yum 是 CentOS 系统上提供的包管理工具。

你在装有 CentOS 系统的服务器上安装了数据库管理系统,邮件发送系统等等,你需要一种方法管理这些东西的运行。在 CentOS 系统上可以通过 systemctl 完成,用它你可以启动或停止在服务器上运行的服务。

在一台服务器上安装了 Web 服务器软件,它就变成了一台可以提供 Web 服务的服务器了。Nginx 是其中一种 Web 服务器软件。

很多服务商都提供各种不同类型的服务器,阿里云是其中一家,宁皓网也一直运行在阿里云提供的服务器上。

容器化应用,可以使用 Docker。

七、移动应用

使用 Google 推出的 Flutter  移动应用框架,可以开发能在 iOS 或 Android 平台上运行的移动端应用。

微信、支付宝都推出了小程序,开发的小程序可以直接在微信或支付宝应用内部运行。

小程序现在也有框架了,比如京东的 Taro.js,可以使用 React.js 的风格开发小程序应用,你可以把开发的应用编译成适用于多种平台的小程序,或者在浏览器上运行的前端应用。

八、桌面应用

使用 HTML、CSS 与 JavaScript 创建桌面应用,可以在 Windows 或者 macOS 系统上运行。

总结

今年就按上面提供的八大主题开练吧,还没成为宁皓网会员的同学,不要再犹豫了哦:)

评论

对我来说,稀缺的是时间

感谢皓哥!

别客气:)

世上无难事,只怕有心人。(这句老话任何时候都适用)

王老师的网站内容越来越丰富了。

希望可以出一个Flutter的实战。。

嗯,这个今年会来一套。

过来人的大实话,字字珠矶。赞

微信好友

用微信扫描二维码,
加我好友。

微信公众号

用微信扫描二维码,
订阅宁皓网公众号。

240746680

用 QQ 扫描二维码,
加入宁皓网 QQ 群。

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点