『壹』 程序员打基础必看书籍!

1、《深入理解计算机系统
从c语言到汇编语言到硬件再到操作系统,写得非常好。是一本能帮助深入理解计算机系统的书。基本上把这本书吃透面试操作系统的大部分问题都不是问题。
2、《算法导论(第三版)》
被很多acmer coder奉为学算法的经典之作,但不太适合初学者,因为它这本书很多内容只提供了伪代码,而没有具体实现。但可以从这本书学数据结构和算法好,因为日后的编程语言对实现而言实际上并没有特别大的障碍,只是适合与不适合的选择罢了,而把想法转换成编程语言才是对算法知识的考验。如果不想太过深入的话可以忽略掉第四部分(高级设计和分析技术)第五部分(高级数据结构)和第七部分(算法问题选编),你会发现书其实比你想象中薄很多噢!
3、《计算机网络:自顶向下方法》
软件学院的计算机网络教材,非常适合初学者,里面将计算机网络从顶层到底层逐章分析了一遍,如果能够结合一些实验来辅助理解会更好,因为里面的讲解比较抽象。
4、《STL源码剖析》
如果你是经常用c++刷算法题的同学,那么一定经常用STL的各种集合, vector, set, stack, queue等等。它们的实现原理,在源码面前,完全没有秘密。
5、《图解HTTP》
日本人著的介绍HTTP协议的书,对理解HTTP协议的一些细节有非常大的帮助,插画也很多,感觉就像看漫画一样,很容易理解的。
6、《TCP/IP详解卷一》
这本书能把枯燥的知识讲得很细致,强烈推荐这本,看完相应章节后大概能够明白为什么TCP/IP要这么设计了。面试的时候经常问到三次握手和四次挥手,还有各种状态的转移, TIME_WAIT的时间为什么是2*MSL······
7、《UNIX网络编程卷一:套接字联网API(第三版)》
中文版快800页,不过我只看了一些章节,这本书也是把TCP/IP的细节讲得很深很深,此外还有非常重要的基本套接字编程,就是写网络程序的时候那些bind, accept, listen, send, receive函数之类的,内容非常多,但是这些是理解多路复用模型所需要掌握的······select/poll/epoll这些系统调用解决了什么问题?事件机制能不能理解?就看这本书的前六章了。
8、《数据库管理系统(原理与设计)》
这个也是web开发中离不开的东西,必须划重点学会的是ER图/SQL语句/存储数据(磁盘|文件|RAID|缓冲池等)/三大范式/索引以及相应的数据结构/事务相关的所有概念,尤其重点学习SQL 。之后学会使用mysql workbench来进行数据库建模/逆向工程生成建表语句/根据SQL生成JAVA实体类等就不赘述了,开发过程中网络谷歌一下就知道啦,然后如果习惯在windows下开发的同学推荐利用navicat这个好东西。

『贰』 如何自己编程序做软件

万事开头难,首先,要有扎实的基础知识,推荐先学 c语言,搞清楚基本概念,比如 变量,函数,类,数据类型等等,再下点功夫研究下数据结构,前者是所有编程语言的构成基石,后者是算法,就是如何用编程语言去解决实际问题。不要相信什么速成教程,不要被当下众多流行的编程语言搞得不知如何下手,安下心花功夫把基础打牢。
第二,推荐学习下java语言,建议看看 《java编程思想》这本书,这是本著名的java编程教学书籍,网上有 pdf下载。
第三,熟悉一下关系型数据库,当前三大主流关系型数据库 包括 mysql, oracle,sqlserver,你可以挑一个专门学习下,主要学习关系型数据中的 基本概念,比如 表,视图,存储过程,函数,以及 关系型数据库 语言,在网上搜相关书籍学习下就可以了,mysql 安装较为简单,而且使用广泛,免费,跨平台,推荐安装,以它为蓝本学习。
第四,学习下 html ,js,css ,这些是做网页的基础,这些你可以 上 菜鸟教程 等网站学习,当然,这些网站教的比较浅,要想深入研究,最好还是找相关书籍好好学一下。
有了这些知识,你可以尝试做个小系统,比如论坛,图书管理系统什么的。 前端页面 用 html 设计,css美化,js 做数据加载,java 做后台,接收发送数据从(到)前端页面, 操作数据库 ,mysql作为数据库用来存放数据。
然后,你可以研究一些专业性的框架做一些真正的可用的软件开发了,前端比如,angularjs,vue ,react,后端 如 java spring ,hibernate , 这时候,你要做的就是上官网,看帮助文档了。
计算机发展的速度是非常快的,新技术层出不穷,但不管怎样,基础的东西是不会变的,所以,花时间把基础打牢,然后多做项目实践,这样才能成功。

『叁』 教学程序是什么

程序教学,是一种使用程序教材并以个人自学形式进行的教学。程序教学主要由教学机器的发明人普莱西首创,对程序教学贡献最大的当属行为主义心理学家F·斯金纳是美国著名的教育心理学家,然而他通过动物实验建立了操作行为主义的学习理论,并据此提出了程序教学论及其教学模式。其程序教学原则可分积极反应原则、小步子原则、即时反馈原则等,其程序教学模式可分经典型直线式程序、优越型衍枝式程序和莫菲尔德程序。但是教师要实施程序教学必须借助于程序式的教材或者进行机器教学。
直线式程序
这是斯金纳首创的一种教学程序,是经典的程序教学模式。在这一流程里,教师把材料分成一系列连续的小步子,每一步一个项目,内容很少。系列的安排由浅入深,由简到繁。以“电流”教学内容为例,可以设计成如下小步子:
①电灯泡发亮的原因是灯丝(发热);
②电灯灯丝发热的原因是灯丝通过(电流);
③电灯变亮的原因是电流强度(增大);
④电灯变暗的原因是电流强度(减小);
⑤当电压增大时,电流强度就(增大);
……
括号里是正确答案。一个学生如能做出正确答案,教学机器就能显示出来,并可以启动开关进行第二步学习。如此一步一步地展开学习,直至达到学习目标。

衍枝式程序
由于各个学生的学习能力及已有知识的基础是不一样的,另外,学习材料本身也有难易程度的区分,因此有人便在经典程序的基础上提出了两种变体。衍枝式程序便是一种,是由美国人A·克劳德提出来的一种可变程序模式。这一模式同样把学习材料分成小的逻辑单元,但每一步比直线式程序的步子要大,每个项目的内容也较多。学生掌握一个逻辑单元之后,要进行测验。测验用多重选择反应进行,根据测验结果决定下一步的学习。这种程序有助于消除不同能力的学生之间的学习差异。