计算机历史简介
操作系统介绍
Unix介绍
- 被称为计算机/互联网行业的基石;特别稳定,常常用在银行的后台管理上;但不是开源免费的;在写Unix操作系统的过程中,诞生发明了C语言,然后利用C语言重新写了Unix;因而C语言天然的使用Linux和Unix操作系统平台上;
- 最大特点:系统都要基于硬件上;
- 改进的Unix操作系统版本:BSD(伯克利大学分布式)
Linux介绍
- Linux系统是在Unix上进行再次开发,因为UNIX的不开源与免费,Linux开源,因而出现了很多的Linux版本;
- 主要Linux发行版:rehat—>centOS oracleLinux
Debin—ubuntu
基本上就使用Ubuntu和centOS版本的Linux就够了; - Linux主要应用领域:企业/个人 服务器
嵌入式----》手机和单片机
PC机
Windows
- windows操作系统主要就是图形界面化进行人机交互,主要是降低了普通人的学习成本;
小结
操作系统存在的意义:操作系统作为硬件层和应用程序层之间的中间层,屏蔽了底层硬件的复杂性和差异性,而是提供了一个个可以直接调用的接口服务,从容使开发者专注于对应用程序的开发,而不用关注和担心底层硬件知识的缺乏。
编程语言
基本上编程语言都能够在window系统和Linux上进行安装IDE和运行;
主流编程语言
C语言
- 面向过程化语言,个人认为所有语言之父,基本上大学里面学的第一门编程语言就是C语言;模块化编程思想----函数意识;一个函数内部函数大概40-50行;尽量把任务都分解成一个个子模块;进行调用函数;
- C语言最大的应用范围:嵌入式领域;使用C语言从而完全可以覆盖汇编语言(更接近机器的语言,唯一的好处:执行速度稍微快一点);因而涉及嵌入式领域的同学,要求会掌握C语言;
- 难点:结构体,指针部分;多做实例项目进行练习;
C++
- 面向对象的语言,增加了类(封闭,继承,多态),使之具有面向对象的特性,类是具有相同属性(数据结构)和方法(函数)的集合体,对象是类的一个特例;
- C++是C语言的超集,使用C++可以极大提高编程效率,具有很多的库函数SDK和API,里面直接调用包即可;
JAVA
- 面向对象的编程语言,简化了C语言众多的语法知识,使学习人员的学习门槛降低;
JAVAScript
- 和Java没有什么多大的关系,主要是用来用web网页动态的脚本语言;基本上网页上开发都要使用到Js;
- 使用者也是十分广泛
C#
- 微软开发的编程语言,是面向对象的语言,使用组件进行编程,和VB一样容易使用;主要用来做界面,C#语言是.NET框架中新一代的开发工具,和C++和JAVA语言非常相似,基本上会上面的语言,读C#代码不会有什么太大问题;C#是使用在 .Net框架中;
PHP
- 纯对Web开发;PHP是最容易学习的网站开发语言,它能安装在绝大多数的服务器上,并且由于有实时更新的文档和问答,PHP语言相对其他语言简单易学。
- 在web领域占比最高;
ruby
- 一种简单快捷的面向对象脚本语言;
- 最主要火的是 ruby on rails框架 ;
perl
- Unix平台上出发的;文字处理比较强大;可以写出没人能看懂的代码(一个实现可以用十种方法,正好和Python初衷相反);
shell
- 脚本语言,简单易学基于Unix,Linux ,做一些简单的系统管理任务;脚本文件:开发小任务;
- shell既是用户交互的界面,也是控制系统的脚本语言。
- Shell 是一个应用程序,它连接了用户和 Linux 内核,让用户能够更加高效、安全、低成本地使用 Linux 内核,这就是 Shell 的本质。
VB
- VB语言,使用组件进行编程,尽量不要使用VB 来进行编程,生态不好,没有贡献的库,不方便,只是单纯的简单;适合12岁以下儿童使用,但是这样的化,还不如使用Swift 语言
Go
- Google推出的语言,虽然现在在国内还没有大火,但是可以预见将来是会火的;
- 得益于其并发机制, 用它编写的程序能够非常有效地利用多核与联网的计算机,其新颖的类型系统则使程序结构变得灵活而模块化
Ngix
- Nginx是一个很强大的高性能Web服务器和反向代理服务器
- (1)http协议代理:代理http协议,去访问ftp服务器。
(2)搭建虚拟主机:云端上的主机,一般是云服务器提供商的某台服务器中给某用户提供的用户目录。
(3)服务的反向代理:(类似分布式)代理各个服务,用户请求仅仅访问此代理即可自动转到对应的服务。
(4)在反向代理中配置集群的负载均衡:(用于集群)分配请求至不同的服务器,让各个服务器之间的工作量尽量均匀。
Python
重要性就不应多说了,和目前的人工智能练习很密切
小结
个人认为,首先要先把C,C++学会,这是永远不会过时的,且其大型任务都会用C++进行编写的,且都是其他语言的灵感来源,学会这两个编程语言之父,无论是对于阅读其他语言代码还是学习编程语言,都有无可替代的作用;另外,还建议学一下Python和Java,因为目前来说是使用范围很广,生态很好;
当然还有一些其他非常好的语言,工具和平台框架,当自己遇到特定问题的时候,再进行来学习使用;