1、什么是全栈工程师?
全栈工程师简单来说是全能型人才,能把服务器搭建完成、能够把数据库建好、能够写web程序等 一个人独立完成
栈 是堆栈的栈
2、栈的特点:先进后出,后进先出
* 全栈工程师的起点是安装和部署环境
* 安装数据库
* 有一定的业务分析能力
* 针对业务进行建模、建立数据库表
* 写web程序对数据库进行操作
* 混合APP开发模式
3、webAPP是指单纯把网页封装成一个APP,不具备调用原生APP的能力
要学习的知识有:OC、JAVA要会一点, HTML5、JS必须会, PHP/JAVA选择一种
4、全栈工程师是通往架构师的起点
5、编程语言
•最原始的编程语言:机器语言
机器语言是用二进制代码表示的计算机能直接识别和执行的一种机器指令的集合
6、汇编语言
在20世纪50年代产生的一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言
7、C语言
20世纪60年代末期C语言和UNIX操作系统一起诞生,C语言和汇编语言比起来是高级语言。
* 因为C语言具有附庸性,写好的语言在别的机器都可以编译,一处编写,到处编译;而汇编语言不可以
* C语言有自己的函数,可以保存在函数库里,以后用直接调用;和汇编比起来算是高级语言
* C语言又叫做结构化的编程语言,因为C语言有了函数,函数可以调用函数,函数之间可以传参数、有返回值,这样代码看起来更清晰、更有模块化。
* 最重要的特点 “抽象”
8、c++语言
1. C++语言是一种优秀的面向对象程序设计语言,它在C语言的基础上发展而来,但它比C语言更容易为人们学习和掌握。 C++以其独特的语言机制在计算机科学的各个领域中得到了广泛的应用。 面向对象的设计思想是在原来结构化程序设计方法基础上的一个质的飞跃,C++完美地体现了面向对象的各种特性。
2. 语言只是把一个功能模块封装成一个函数,只执行一个特定的指令,但是他解决不了日常生活中的问题。
9、JAVA
1. Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。 Java 技术具有卓越的通用性、高效性、平台移植性和安全性, 广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。
2. C和C++有一个弊端:有指针,需要人为去管理内存的内存的分配和释放,这样很容易出bug,会造成严重的后果。
比如“银行”、“证券”等金融产业
3. C和C++所说的跨平台并不是真正的跨平台,只是把源代码在不同的机器上进行编译。 而Java是可以在一台机器上写代码,写好之后打包,然后可以在任何一台装有Java的机器上进行使用,实现了真正意义上的跨平台。
4. Java就是一个精简版的C++,不用再去管内存和指针了,程序员犯错的几率就降低了,这也是Java打败C++的原因。
10、PHP
PHP,一个嵌套的缩写名称,是英文超级文本预处理语言(PHP:Hypertext Preprocessor)的缩写。 PHP 是一种 HTML 内嵌式的语言,PHP与微软的ASP颇有几分相似,都是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,现在被很多的网站编程人员广泛的运用。 PHP 独特的语法混合了C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI 或者 Perl 更快速的执行动态网页。 PHP最初是由勒多夫在1995年开始开发的;现在PHP的标准由the PHP Group维护。PHP以PHP License作为许可协议,不过因为这个协议限制了PHP名称的使用,所以和开放源代码许可协议GPL不兼容。
11、 Java被PHP打败的原因
* 过度标准化
* 大量的预先设计
12、函数式编程 Ruby
Ruby,一种为简单快捷的面向对象编程(面向对象程序设计)而创的脚本语言,在20世纪90年代由日本人松本行弘(Yukihiro Matsumoto)开发, 遵守GPL协议和Ruby License。它的灵感与特性来自于 Perl、Smalltalk、Eiffel、Ada以及 Lisp 语言。 由 Ruby 语言本身还发展出了JRuby(Java平台)、IronRuby(.NET平台)等其他平台的 Ruby 语言替代品。 Ruby的作者于1993年2月24日开始编写Ruby,直至1995年12月才正式公开发布于fj(新闻组)。因为Perl发音与6月诞生石pearl(珍珠)相同,因此Ruby以7月诞生石ruby(红宝石)命名。
◦特点:◾使用更加方便
* 不要求提前设计好接口和类
* 减少劳动力、
* 流式数据处理,通过编程环境来识别这句话的用意
* 针对人的思维模式的编程语言
* 电脑像人一样思考
13、强类型经常是静态类型,动态类型不一定是弱类型。 区分语言类型是强类型还是弱类型看他的 数字123 和 字符串“123” 参与运算的时候是否会有区别, 如果得到的是一个数字,需要数字转型,那他就是强类型;
动态类型和静态类型区别:动态类型 是声明变量的时候不指定具体的类型; 静态类型 在声明变量的时候必须声明变量的类型。
链式语法 OC / jQuery $a().b().c().d(); 传统的编程语言都可以写成链式语法,但是性能会特别差。
Ruby是函数式编程语言,其他的指令式编程语言或命令式编程语言