-
48
热度 -
[综合] 1-2课:安静的程序,淘气的程序和编写程序
静态程序——程序的源代码 上一章我们讲到了程序的源代码,你是不是很好奇它和程序到底是不是一回事儿啊? 严格来讲,“程序”和“程序的源代码”并不是一回事情噢。 程序的源代码是指用编程语言编写出来的程序的逻辑,是静态的文本,我们暂且可以叫TA安静的程序,一般被存储为以特定字符串为后缀的文件。 比如下面就...
26
热度 -
[综合] 1-1课:又回到最初的起点:软件和程序
软件和程序 每每提到“编程”这个词,大家都会觉得这是件高端、神秘的事,或者会皱皱眉头,觉得这肯定是个挺难的事儿吧? 基本所有与编程没有打过交道的人,都认为编程似乎被一群秃头的程序员垄断了,是一种旁人无法介入的专属行为。 而就在这一两年里,“少儿编程”的概念又伴随着素质教育、stem教育迅速崛起。好像...
40
热度 -
[综合] 开篇词 | 为什么我们要学习编程?
为什么需要学习编程? 如今,学习编程的人分为两类,一类是程序员,另一类是期望成为程序员的人。 编程这个事儿,在大多数人眼中还是一种特定领域的、专门的技能,认为学的人都是需要以此谋生的。 其实,作为一个“码龄”超过20年的老程序员,我是这样认为的:在不久的将来(也许三五年,也许十来年之后),编程将从一...
25
热度 -
37
热度 -
[综合] 超神能力:云库局面分析
局面分析是一个让你可以「超神」的能力! 一方面,有了局面分析功能,你下棋过程中像是有一个云服务器始终在给你支招。这很利于学棋者提升自己对局面的理解; 另一方面,对于开局的某一个局面,可能让云端分析告诉你目前走哪了步比较好,主要的几种可靠招法的效果得多少分。 本节概要 添加Flutter版的Toas...
78
热度 -
[综合] 先画它一个棋盘:绘制棋盘 Board
这一节作为将这一系列课程真正的开始!当然我们肯定不是要创建什么HelloWord的啦。 象棋游戏在AppStore中的游戏主要分类是什么—Board类!Board是棋类游戏的主要关注点。这一节开始,我们将以上一节创建的项目chessroad为基础,使用Canvas绘制的我们的棋盘Board。 本节目...
87
热度 -
[综合] 动手之前要做的事:梳理开发环境
这一系列课程既然是实录,那么我们将从创建项目开始,然后一步一步地根据实际开发的过程推进,直至项目目标达成! 在这之前,需要请先确认开发环境。 确认开发环境 教程中,我们作示例的开发环境如下: macOSCatalina10.15.3,runningonMacbookPro2017 Flutter1...
72
热度 -
[综合] 2-5课:计算机是咋运行的:冯诺依曼结构
数组、链表这些结构限制条件的根本原因来自于计算机硬件的体系结构。 在现今的计算机教育体系中,编程语言、数据结构(含算法)、计算机原理及体系结构几门课是计算机专业的本科生都要学习的。 实际上这几门课之间,也包括其他一些课程(例如编译原理、自动机、数电、模电、操作系统等等),有不少overlap的知识点...
71
热度 -
[综合] Flink 环境准备
通过前面几篇文章,相信你已经对Flink的基础概念等知识已经有一定了解,现在是不是迫切的想把Flink给用起来?先别急,我们先把电脑的准备环境给安装好,这样后面才能更愉快地玩耍。 废话不多说了,直奔主题。因为后面可能用到的有:Kafka、MySQL、ElasticSearch等,另外像Flink编写...
78
热度 -
[综合] 彻底了解大数据实时计算框架 Flink
在1.1节中讲解了日常开发常见的实时需求,然后分析了这些需求的实现方式,接着对比了实时计算和离线计算。随着这些年大数据的飞速发展,也出现了不少计算的框架(Hadoop、Storm、Spark、Flink)。在网上有人将大数据计算引擎的发展分为四个阶段。 第一代:Hadoop承载的MapReduce...
48
热度 -
[综合] 第 05 课:搭建本地开发环境
背景 在前面的课程中,我们已经完成了项目模板的整体框架了,但是在开发过程中还有很多地方需要补充和完善以提高开发效率。比如: 手动执行构建。每次代码发生变动后,我们都需要手动执行以下构建命令。 手动刷新浏览器。构建完成后,如果我们需要在页面中验证效果,需要手动刷新。 无法精确定位错误。代码构建完成后...
51
热度 -
[综合] 第 01 课:模板功能设计
1项目模板 我们的项目框架都是基于项目模板生成的。学过JS的知道: functionPerson(name='ant'){this.name=name; } letman=newPerson(); 这里Person是man的原型对象。同样项目模板相当于对象Person,具体的项目相当于man。通过...
91
热度 -
[综合] 6-2课:如何自学算法
自学三要素 不只是自学算法,其实自学任何东西,都涉及到三大要素: 学习目标学习目标包括两个维度:1.要学习的内容;2.对目标内容计划掌握的深度。根据目标,我们可以指定出学习的计划。 学习方法抽象层面,各领域的学习方法都差不多,无外乎由理论到实践。不过不同领域中理论所占的比重不同,理论和实践的关系...
89
热度 -
[综合] 5-9课:像“贪吃蛇”一样“吃掉”自己——递归
除了迭代式的快速排序,还有递归式的快速排序,在实现它之前,我们先来学习一个概念:递归。 这个概念非常重要,因此,关于它我们得多说两句。 递归(Recursion) 存在于多个领域 递归这一术语,应用面非常广泛,在语言学、逻辑学、数学和计算机科学中都有出现。 虽然在不同领域的具体定义不同,不过从直观上...
39
热度 -
[综合] 4-12课:怎么才算学会了一个算法?
以二分查找为例,看看“掌握算法的几个层次” 掌握算法的几个层次 在前面,我们讲过学习一个算法的几个层次: 理论联系实际 现在我们就以刚刚学习过的经典二分查找算法为例,来讲解一下这几个层次对应到实际中是什么样子的。 Level-1:听说 知道有个算法叫做“二分查找”,知道这个算法的目的是在一个有序的...
62
热度 -
[综合] 4-5课:为什么每个程序员都要拜四阿哥?要解决bug(八阿哥)
猜数小游戏为什么输了? 改写小助手 有位小A同学,学习了前一章的猜数游戏程序之后,决定自己把攻击者小助手重新实现一遍。 不过小A想:程序写出来是我自己用嘛,何必搞那么麻烦呢?于是去掉了一些限制。另外,最好每一轮都打印出当前是第几轮,这样不是看得更清楚吗?于是,程序变成了下面这样: low=1 hig...
8
热度 -
[综合] 【开篇】专栏介绍&学习指南
写在前面的话 你好,我是李鹏程,高级数据工程师、大数据讲师。这次给大家带来的是《数据仓库原理&实战》专栏。 数据仓库基本在各个企业都均有落地,主要是因为历史数据积存、数据分析的需要。而且随着互联网的快速发展、数据量与日俱增的情况下,更多的企业开始从传统数据仓库向大数据数据仓库转型。 传统数据...
3
热度 -
[综合] 分布式共识 Paxos&Raft&Zab
很多人喜欢把Paxos说成是一致性协议,但是一致性这个词其实会给大家误导,会把这个一致性和ACID的一致性(Consistency)联想在一起,Paxos的“一致性”实际上是consensus,中文翻译成“共识”可能会更加准确一点,这个“共识”更强调的是多副本状态的一致性。 本篇面试内容划重点:Pa...
72
热度 -
[综合] Spark Streaming 流式计算解析
流式计算在大数据生态中也是非常地有份量,SparkStreaming在过去很长一段时间都是最常用的流式计算引擎,直到出现了Flink。所以常常有人问我,有了Flink之后SparkStreaming还需要学吗,答案是肯定的,SparkStreaming目前在大部分公司的应用还是非常广泛的,虽然有被F...
90
热度