勿以浮沙筑高台

2016-09-05 刘欣 码农翻身 码农翻身
无论是培训和是自学,不管是科班出身还是半路出家, 现在越来越多的人进入计算机软件行业,这是一件好事情, 至少证明这个行业还处于蓬勃发展的、昂扬向上的阶段, 要不然也不会有这么大的需求量。 

但是只学会了一门语言, 或者短期内通过培训突击了一门技能, 是远远不够的, 因为只是学会了一些招式,内功并没有练好,如果不把基础补上,越往后走越难, 想成为高手更是难上加难。

计算机的基础有:离散数学,数字电路,计算机组成原理,数据结构,操作系统,计算机网络,数据库,编译原理,汇编 等, 这些可是计算机系大学4年的专业课, 你能一下子掌握吗?  几乎不可能。

有人可能觉得这些东西没什么毛用,还不如我学一点实际的Java 技能来的实在,   我想说的是: 勿以浮沙筑高台

当你在陷入Java 虚拟机的细节不能自拔的时候, 你会看到那些理解计算机组成原理和汇编的童靴能够轻松的应对。 

当你觉得看线程很吃力的时候,那些学过是进程的通信和同步的同学会觉得这根本不是什么事儿。 

当你和Java Socket编程努力的fight的时候, 那些搞懂了计算机网络的家伙们表示毫无压力。

当心苦苦纠缠于Hadoop的MapReduce 的时候, 那些学过函数式编程思想的人表示小菜一碟。

当你学习缓存,node.js 这样的新技术的时候, 你也许不知道这些技术的基本思想,在几十年前早就出现了,现在只是换了一个场景来应用而已。
。。。。。。

计算机的基础就是内功, 能让你迅速的理解、学会新的技术,新的招式,

这在编程技术瞬息万变的IT业有强大的竞争优势,有追求的同学,应该把内功练好。


我之前写了很多文章,像《CPU阿甘》,《CPU阿甘之函数调用》,《我是一个进程》,《我是一块硬盘》,《TCP/IP之大明王朝邮差》,《我是一个网卡》,《我是一个路由器》 ,《我是一个键盘》  都是讲的最基础的计算机知识。

但遗憾的是限于篇幅,又想着编一个吸引人的小故事,要做出很好的比喻, 很多内容都是点到为止,没法展开讲。

所以很多人建议我开课的时候,我首先想到的就是讲这些计算机的基础, 而不是某一门编程语言。 

我想讲的就是把我认为最重要的、最常用的计算机基础给大家掰开了,揉碎了讲一下,内容涉及到计算机组成原理,汇编,操作系统,计算机网络。

目标听众
非计算机专业/半路出家 , 计算机专业但是没学好基础的也欢迎参加 :-) 
课程形式

QQ群视频, 每周一次, 每次2小时(讲1.5小时 + 0.5小时问答),    开课时间暂定9月19号这一周,具体时间群里讨论确定 。

课程内容
1. 计算机的组成  (1.5 小时)
目标: 了解计算机的主要组件及之间的关系,了解计算机的重要概念

计算机硬件组成
系统启动过程
Hello world的一生
计算机系统的本质问题:速度不匹配
计算机的重要概念:进程和线程,并发和并行,同步和异步

扩展知识:
施乐帕洛阿尔托研究中心
IBM早期的机器

2. 计算机语言的发展   (0.5 小时)
目标: 了解计算机语言的过去,现在和未来
机器语言、卡片机、汇编语言、高级语言
编译型 和 解释型
静态类型和动态类型

扩展知识:
100年后的语言

3. 程序的机器级表示  (2 小时)

目标: 彻底理解CPU, 内存,指令在机器硬件级别是怎么一起工作的

最最基本的C语言和汇编、指针、寄存器、堆栈
C语言,汇编,机器指令之间的关系
函数在CPU和内存级别到底是怎么回事?
指针到底是怎么回事?

扩展知识:
缓冲区溢出攻击
寄存器计算机 vs 堆栈式计算机
RISC 和 50 30206 50 15289 0 0 2575 0 0:00:11 0:00:05 0:00:06 3000CICS
存储程序
图灵机

4. 计算机网络   (3 小时)
目标: 理解计算机网络的工作原理以及重要的协议

理解协议、网络协议分层的本质
理解应用层协议HTTP,FTP,SMTP
TCP/IP,ARP,NAT等

扩展知识:
互联网的发明
网络编程的发展

5. 操作系统 (3 小时)
目标:了解操作系统的4大基本功能:进程管理,存储管理,文件系统,   IO

深入进程和线程
如何给程序提供一个独占内存的假象
CPU, 内存,硬盘,操作系统等如何配合来实现分层的虚拟存储器
文件系统
IO管理
报名
加我的QQ(3340792577)或者微信(liuxinlehan), 我需要和你聊聊, 看看是不是适合听这个课,然后再加入群里。

这次我想采用类似于众筹的方式, 至少满25人才开讲。 
费用
249 元, 收费对双方都是约束, 你需要认真参与,我需要认真准备和讲课。

课程总共10个小时,平均每小时24.9 元。 

PS : 如果这种形式不错的话, 我会陆续再讲一讲这些内容:
面向对象的设计
一起写SSH框架
优秀源码解读

(完)

你看到的只是冰山一角, 更多精彩文章,尽在“码农翻身” 微信公众号, 回复消息"m"或"目录" 查看更多文章

有心得想和大家分享? 欢迎投稿 ! 我的联系方式:微信:liuxinlehan  QQ: 14703250

公众号:码农翻身
“码农翻身”公众号由工作15年的前IBM架构师创建,分享编程和职场的经验教训。
推荐一个叫掘金的开发者社区,很多技术干货,  我的文章也会在这里分享 : 

掘金是一个高质量的技术社区,从 Swift 到 React Native,性能优化到开源类库,让你不错过互联网开发的每一个技术干货。长按图片二维码识别或者各大应用市场搜索「掘金」,技术干货尽在掌握中。