技术知识入门笔记!(1):基础知识、编程篇

本系列适合没有技术背景的菜鸟看,是我阅读唐韧老师的《产品经理必懂的技术那些事儿》的笔记,欢迎产品菜鸟们一起交流~

第一篇包括互联网的发展、常见开源技术、架构、交互原理、编程理解、编程语言、程序



1. 基础知识


1.1 技术发展阶段

基础技术发展期(20世纪五六十年代)→PC互联网时代(20世纪90年代)→移动互联网时代(21世纪)


1.2 产品形态发展

本地安装软件(借助光盘、安装包)→ 网址访问(借助浏览器)→APP(借助手机)

从第一到第二阶段,解决了容灾性的问题(切换计算机、计算机损坏的风险)。

从第二到第三阶段,让互联网向普通人生活渗透,提高生活效率。


1.3 开源社区与技术

互联网大部分技术都是开放源代码的,可以无偿使用。

GitHub:线上开源社区。提供项目托管和软件版本管理服务。

Linux:服务器操作系统。安卓底层系统就使用的Linux,很多超大型计算机也用的Linux。

OpenSSL:密码库,是网络安全的基础保障协议。

MySQL:关系型数据库。具有开源、轻量化、支持大规模访问特点。

Apache:服务器运行系统。

Eclipse:开发平台,提供开发服务框架。


1.4 技术架构


分为前端和服务端(又称后端),前端和服务端通过网络进行数据传输。

对应到图中,前端就是智能手机、个人电脑。后端就是服务器+数据库

服务器:部署服务端程序,处理前端请求并且响应,通过程序对数据库读写操作。

数据库:存储数据。


1.5 请求与响应的模式

所有的互联网技术产品,背后的实现模型基本都是 请求与响应模式。

前端通过网络向后端的服务器发请求,请求中会携带必要的数据(比如登录时的用户密码)。后端服务器接收到请求后,会解析出数据,对数据库进行写入、查询等操作,然后返回一个响应(比如登录成功)给前端。


2. 编程基础知识


2.1 编程是什么

程序员与计算机进行交互的指令集。

计算机的本质是0与1组成的代码,不能识别人类语言,需要借助编程与计算机进行交互。

2.2 常见编程语言

C语言:面向过程的语言,由丹尼斯·里奇发明

Java:面向对象的语言,由James Gosling发明

PHP:用于Web的语言,有轻量化、灵活的特点,由Rasmus Lerdorf发明

JavaScript:用于Web的语言,可以为网页增加动态功能


2.3 数据

组成:

数据由数据类型、数据名称(又称变量名)、数据值组成。

类型:

整型 int:不带小数点的数字,可进行数学计算

浮点型 float/double:有小数点的数字,可进行数学计算

字符型 string(java)/char(c)/NSstring(Objective-C):不可计算。注意产品界面上所有的数据都是字符型,即使是数字。

布尔型 bool/boolean:表是非判断,只有两个值“true”和“false”,转化为整型时分别转成1和0。例子:注册时的是否同意用户协议。

还有:长整型、单精度浮点型、双精度浮点型。

数据拼接:

例子:目前有 1254 人参与了本次活动,其中1254是动态变化数字

背后由三个元素拼接而成:a = “目前有” ,b = 1254 , c = “人参与了本次活动”,String s = a + b + c

逻辑结构:

条件判断 if else :用于判断执行

条件选择 switch case :用于多选一

循环操作 while/do while:用于重复操作、循环滚动

数据结构:

定义:按一定规则进行组织的数据的集合,形式包括数组、栈、队列、堆、树、图

数组:同一类型的数据的集合。数组可以指定大小,且数组中元素可以通过数组下标标记和获取,注意下标从0开始排列而不是1。如 a[0] 就是数组a的第一个元素

栈/堆栈:汉诺塔结构,符合后进先出的原则。底部封口,上端开口,先进入的后出,后进的先出。如用户注册功能:第一步设置账号密码页面→第二步个人资料→第三步产品首页,这是一个典型的栈结构,就可以用栈来实现界面的跳转。(图片来自百度)

先进后出,后进先出的栈结构

队列:分队头和队尾,先进先出,后进后出。适用于控制事务性的操作,步骤有严格的先后顺序的情况。(图片来自百度)


先进先出,后进后出的队列结构

树:有一个根节点,下有很多子节点。适用于产品结构设计、权限设计及用户等级设计场景。例如微信底部的Tab栏。(图片来自百度)


一个根节点,很多子节点的树结构


2.4 程序

定义:程序是按一定规则和顺序的任务执行过程,是一套指令集合。

组成:程序=数据结构+算法

最小执行单元:函数或方法。它们是完成一项具体任务的独立模块。

函数 = 输入 + 输出 + 函数内部处理流程。注意输出可以为空类型,为空时返回值用void表示。



还会持续往下更新数据库、前端、后端的内容~

你可能感兴趣的:(技术知识入门笔记!(1):基础知识、编程篇)