学编程,来源栈;先学习,再交钱
当前系列: 认识计算机 修改讲义
一定很关心:学些什么,以及怎么学?

课程内容

面向“纯小白”解释

源栈课程,学了能做些什么?

  1. 完全学以致用、最契合最标准的:网站、可套壳APP,比如:淘宝京东、今日头条、360、一起帮……
  2. 还需要再自学一部分内容,进行“拼接”的:原生APP(比如:嘀嘀打车)、各种游戏、桌面应用(上位机)、爬虫/数据分析……
  3. 几乎不能做:真正的人工智能、机器人编程(工控下位机)、操作系统、编译器、CAD等非常底层的软件系统等……

听不太懂没关系,慢慢来……

为什么没听到:Java、python、前端、后端……这样的内容?

你不是学语言,而是学技术

Java和python都是编程语言,和计算机沟通(主要是单向的指令)需要的“语言”,一系列的语法规则合集。

@想一想@:学英语 是不是等于 学习英语的各种语法?

我打个比方:

  1. 学语言,就类似于你学习使用AK47/M16,拆枪装抢天天打靶,
  2. 你熟悉了枪械,枪法也练得很准,但你上不了战场,
  3. 要成为一个合格的士兵,你还需要学习一系列的知识,比如:战术配合、武装行进、野外生存……

以语言为导向进行学习的同学,很容易掉两个坑:

  1. 茴香头的茴字有几种写法?
  2. 我学完了Java,但我不知道它能干什么?

一定要牢记:你是来学技术的,是来学语言的!

Web全栈开发

关于前端和后端,一句话解释:我们都教,也希望你都学。

我们的课程,高度概括:Web全栈开发系列课程。

  1. 开发:不是测试不是实施,但开发转测试转实施很容易,反过来不行
  2. Web:和网络相关,我们开发出来的东西,一定是要联网才能用的。典型的就是网站,以及和网站“同质的”APP
  3. 全栈:开发一个网站所需的全部知识(技术“”,一系列的技术)

分部讲解

是什么(能做什么),什么时候学(基础/前提),为什么要学/不学:

  1. 编程基础
  2. 前端
    1. 小前端
    2. 大前端
  3. 后端技术,按语言分为:
    1. Java向
    2. C#向
  4. 数据库
  5. 项目实战:后端Web框架

最后给出

学习路线

可根据你的时间/精力,自行选择:

描述
1 2-1 2-2 3 4 5 6-mvc 6-api 时长
全栈/后端双语/大前端
编程基础
小前

C#
Sql
ADO&EF
ASP.NET MVC
ASP.NET WebApi
2100


大前端
Java
JDBC&NH
SpringMVC
SpringBoot
全栈大前端 C#向 编程基础
小前端
大前端
C#
Sql
ADO&EF ASP.NET MVC ASP.NET WebApi 1650
Java向 编程基础
小前端
大前端
Java JDBC&NH Spring MVC
SpringBoot
全栈小前端 C#向 编程基础
小前端

C#
Sql
ADO&EF ASP.NET MVC ASP.NET WebApi 1350
Java向 编程基础
小前端

Java JDBC&NH Spring MVC
SpringBoot
纯后端
C#向
编程基础


C#
Sql
ADO&EF

ASP.NET WebApi
900
Java向
编程基础


Java JDBC&NH

SpringBoot
纯前端
编程基础
小前端






900

大前端




说明:

  1. 知识点之间的依赖关系
    • 1是所有内容的基础
    • 2-1、3、4是并行的独立的
    • 6-mvc和6-api“理论上”是并行的,实际上是api比mvc少了一个v
    • 2-1是2-2的基础
    • 3和4是5的基础
    • 2-1、5是6/7的基础
  2. 前端/后端的“”,只能是“理论上”的纯。实际上在同学们学习的过程中,很难彻底的割裂前后端。所以900个学时是理论上的,实际上再加至少100个学时是非常有必要的。

  3. 小前端还可以再精简到只学HTML,放弃CSS和JavaScript,这样还可以再释放216个学时。这样,与其纯后端,不如全栈小前端(精简版)


课程特色 

课程特色,一句话总结,我们是一个:面向就业职业培训课程。

实用为主

短的时间,教会你有用的知识,让你找到一份好的工作。大白话就是:学完了之后能干活,我们把主要的精力放在“应用”层面,能做出东西来。

很多(尤其是自学的/科班的)同学反映:课程都学完了,还不知道学的这些东西能干嘛?

作业和项目

我们是绝对不允许出现这种情况的:

  • 会布置作业,大量的作业,有难度的作业,同学们要去做。不要嫌做作业花时间,听课和作业(含消化/吸收)的时间比,至少应该是1:3。
  • 作业以项目为导向:最后把所有的作业内容,拼凑起来,就是一个模拟的一起帮

不仅仅是学,更重要的是练——把编程想象成体力活。

两句话,同学们牢记:

键盘敲烂,月薪过万;

作业不做,等于没学。

难易控制

最开始的时候,我是想把课程弄得高大上一点的:

但很快就发现,不现实,同学们吃不消,毕竟学习时间只有6个月……

所以,删除了一些生僻晦涩(又难又没用)的知识点,几经调整,直到今天。

但是,一些难点还是不得不讲,而且还要讲深讲透:

  • 课程目标是:一般2年工作经验开发人员同等水平。不开玩笑,如果真的保质保量的学完,你缺的只是“见识”。为什么我们源栈同学就业率这么高?(此处自夸十分钟……
  • Web开发需要:基本的安全(防脚本注入)、性能(缓存)和可维护性(分层架构)
  • 满足面试要求:面试造航母,工作拧螺丝……(尤其是Java方向的,卷啊!)

#少学点会不会没那么难?#

看你怎么理解“难”。准确的说,少学点,是降低了达标的标准。

有时候,学得更少,更难以理解:看到全貌,更有助于你的理解。

比如现在你会觉得我讲的东西还是有点听不懂,但等你学完了全部课程之后,再回头来听……

兼顾理论

不是不讲理论,但讲得不多,没有大学计算机课程那么深。我们“编程基础”里面的一个“系列”,大学里面就是一门课,要讲一学期的。

PS:但同学们(野生程序猿)一点都不要怕,他们(科班生)没几个人认真学的,枯燥乏味晦涩难懂……,这是一致评价!^_^

讲理论知识,还是为了:

  • 干活:有些理论基础你不懂,你也没办法进入应用层面,所以仍然实用为王
  • 能过面试那一关:有些理论面试的时候会问,所以还是面向就业

特别强调:不要“自作聪明”的错误归因,我这里听不懂,就是因为理论基础不行……尤其是不要自己瞎琢磨,直接来问我!

  • 不浪费你的时间
  • 如果确实是课程设计有问题,那是你帮了我的大忙

包容并蓄

这是我们课程,区别于其他课程的最大特点

其他课程是:

  • 要么偏重理论(大学科班),要么只管应用(培训班)
  • 或者以语言为导向,学Java就知道Java,学python就只知道python
  • 通常前后端隔离:学前端,就不知道后端;学后端,就不知道前端

我们的课程:把(各语言、前后端)通用的部分都“剥离”出来了,先“共通”,再“个别”。

同学们通过学习,就会知道,哦:

  • 原来所有的语言(JavaScript/C#/Java)都是:面向过程/对象/函数,都是变量赋值分支循环,都有核心类库处理日期字符串,……,大同小异
  • 原来所有的Web开发,都是这么个套路,cookie、session、重定向,MVC框架,依赖注入面向切面……一样一样的嘛!
  • 原来……

于是,你获得了:

  • 更广阔的视野
  • 拥抱变化”的基础和信心
  • 逐步体会语言/编程的实质,而不是语法的差异

什么是内功,对于企业级应用编程开发人员,这才是内功!不是那些什么编译原理二进制……


学习方法

除了之前提到的笼统的三勤四功(脑勤手勤口勤,看视频敲代码背单词写总结),我着重讲一下如何处理学习过程中的一些难点:

先易后难

其实我们的课程,也遵循“八二”原则:

  • 20%的难点,要完全掌握的话,可能需要你80%的时间;
  • 但最常用的,是不那么难的80%的知识。

按 https://17bang.ren/Code 网站(手机可用)导航组织学习,难度是一波一波的。

对于线上的预备班同学,因为沟通更难(必须承认),可以采用“蛙跳战术”,先易后难。

这里看不懂,我可以先跳过,以后再回头学——但不要跳得太多,/笑哭.jpg,最好还是和我们沟通,有问题就问(觉得飞哥太凶,可以问小九嘛!^_^)

层层深入

很多现阶段你认为“抽象的”“难以理解”的东西,其实需要你在漫长的职业生涯中,像剥洋葱一样,一点一滴(一层一层)的理解。

比如面向对象,得窥门径,飞哥花了5年(没有名师指点嘛,/调皮.jpg);真正的用好它,可能要一辈子!

用一开始,就要求——但可以不懈的追求——百分百的理解,要“吃透”它,拼命的钻研硬啃,这样自己感动自己。在一些必要的时候,可以得过且过,难得糊涂。

对比:洋葱 vs 洋葱上抠个洞

得意忘形

《倚天屠龙记》张无忌学太极:你忘记所有的招式,就学成太极拳了……

一些概念、知识,要透过语言去理解。

因为计算机的发展速度太快了,一种东西可能有多种定义,一种定义可能有多种内涵,(和中小学教材不一样)来不及统一整理。比如:堆、栈、接口、依赖注入……,必须结合上下文理解。

大家在学习的过程中:

  1. 不要局限于语言/文字(语言的表达是非常有限的)我们还有演示,大量的代码/PPT……你不要被“语言”束缚!
  2. 要局限/纠结于定义,用定义帮助你理解就可以了。最好把定义看成一种解释描述,而不是一个绝对的“”(类似于英语语法

比如:什么是计算机?

计算机(computer)俗称电脑,是现代一种用于高速计算的电子计算机器,可以进行 数值计算 ,又可以进行 逻辑计算 ,还具有 存储记忆 功能。是能够按照 程序 运行,自动、高速处理海量数据的现代化 智能 电子设备

啥意思?你可能本来都还多少知道点的,抠文字反而懵了……

  1. 不如把计算机搬到你面前,给你演示它的各种功能,是不是?
  2. 不够高速不够海量不够智能的,甚至不是电子的,算不算计算机?

PS:人工智能的突破,如何让计算机认识一只狗?从为计算机定义狗的特征,到让计算机自己去“学习”……

那确实离不开定义又因为定义理解不了的时候,怎么办?直接联系我们,我们一对一的给你说清楚,这是我们非常欢迎的(再次强调!)


最后的话

职业培训的课程设计本身就是很“功利”的,学起来是很苦的。

但是,我还是在这个功利课程中,掺了那么一丢丢“没用”的东西。为什么?因为我想让你知道,远方还有更美的风景。我们学东西,并不只是为了“实用”。

同学们,我衷心祝愿你们,在你们漫长的职业生涯中,能保持你的天真和好奇,体会到学习本身的乐趣,所以能够走得更高更远!

理想主义走不远,现实主义做不大。

—— 段永平


预备班学习内容

课程已经全部公开:(演示导航/视频)

  • 内容不少,占到全部视频存储空间的30%以上
  • 难度不低,高难度已经黑体标识

不是什么“试听课”,而是能够真实检测你学习能力和毅力的“试金石”。

问:飞哥,你看我是不是适合学编程啊?

答:你先学!我才能看得出来。

编程基础

以下123适合于所有程序员学习,45适合Web应用开发人员学习:

  1. 认识计算机:软硬件组成、运行原理、操作系统、进程线程…… 以程序员的视角,重新认识计算机
  2. 编程语言:按诞生发展时间,介绍所有主流语言的特点,重点是JavaScript/C#/Java。让大家了解编译/解释、强/弱类型、并能够进行变量赋值/分支循环/函数的代码书写、面向对象的代码组织(由此进入实操环节)……
  3. 数据结构和算法(程序员“三大浪漫”之一):数组/链表/堆/栈/树、二分/冒泡/快排等……
  4. Web开发基础:网络基础、B/S架构(鸟瞰图)、HTTP(S)协议、什么是前端什么是后端、cookie/session/cache、数据库的作用……
  5. 软件工程:什么是企业级Web应用、真实项目它的特点/难点,相应的一些工具的应用(IDE/git/postman……)
  6. 逸闻史话(待完成):增加趣味性,比如:iphone图标和自杀的图灵 / 究竟谁是第一台计算机 / 影响深远的3场诉讼 / 经典的《人月神话》

Web前端

知识内容包括:

  1. HTML和CSS:so easy,没的说……
  2. Javascript基础:刨去JavaScript中大量的糟粕,呈现最简洁最实用的部分
  3. bootstrap和JQuery:曾经最流行、现在仍然在使用的、简单快捷的前端框架

实际上就是做网页,难度不大,而且比较有成就感,可以线上学习(至少一部分)。

为职业方向为:

  • 前端岗的同学,打下基础
  • 后端/全栈岗的同学,提供一种快速了解前端知识,构建项目页面的方式

少年,冲吧!


自测题

  1. 你从小到大,学到的哪些知识是有用的,哪些知识是没用的?他们真的一点用都没有吗?
  2. (日后回答)工作中有没有用到这些东西?知道/不知道这些,对你的工作产生了什么影响?
学习笔记
源栈学历
键盘敲烂,月薪过万作业不做,等于没学

作业

觉得很 ,不要忘记分享哟!

任何问题,都可以直接加 QQ群:273534701

在当前系列 认识计算机 中继续学习:

上一课: 已经是第一课了……

多快好省!前端后端,线上线下,名师精讲

  • 先学习,后付费;
  • 不满意,不要钱。
  • 编程培训班,我就选源栈

更多了解 加:

QQ群:273534701

答疑解惑,远程debug……

B站 源栈-小九 的直播间

写代码要保持微笑 (๑•̀ㅂ•́)و✧

公众号:源栈一起帮

二维码