产品经理要懂得技术
2023-03-17 17:02:49 0 举报
AI智能生成
在产品经理的日常工作中,当进入产品需求评审和开发阶段时,就会涉及到大量与技术进行沟通的情况。学习相关的技术知识和思维,可以更好的了解产品功能的实现逻辑,也能更顺畅的跟研发进行沟通。
作者其他创作
大纲/内容
问题
互联网产品经理需要懂技术吗?
在需求制订和实施的过程中,少不了对相关技术实现细节进行讨论,所以产品经理必须要懂技术
通用的技术理解能力,是每一个互联网从业人员的基本素养
Web前端技术
AJAX技术的妙用
定义
只让部分页面刷新的技术叫作AJAX,,翻译为“异步JavaScript和XML”
AJAX具备的两项能力
(1)发起网络请求
发起网络请求的能力由浏览器的内置能力提供,所有的浏览器都提供了XmlHttpRequest对象,它可以由网页调用,用来连接一个特定的地址。
(2)无须刷新,可动态操作网页
DOM(Document Object Model,文档对象模型)
可以将一个网页想象成一个人,一个人的运动系统由骨骼和肌肉组成,DOM相当于骨骼,定义了一个网页的结构
总结
AJAX是一项用于异步拉取数据并展示在当前页面的技术,这对需要延迟加载数据和触发式加载数据的页面有很大益处。绝大多数网页为了加速响应,都会用到这项技术。
DOM是什么
DOM(文档对象模型)是Web前端里最基础、最常用的一个模型。
浏览器在解析HTML文档时,会把每个标签抽象成代码里的对象,按照这种层次分明的结构组织,这就是DOM。
静态网页与动态网页
联系
静态网页、动态网页都是网页,都是在浏览器上用HTML展示出来的页面
区别
静态网页无须经过后台程序的处理。
动态网页要经过后台程序的处理,我们常见的ASP、JSP、PHP都是后台处理程序。
总结
(1)静态网页和动态网页都是网页。
(2)静态网页不需要后台程序干预处理,直接由服务器返回。实现为静态网页后,一般不需要维护,因为数据不需要更新。
(3)动态网页一般需要由程序来处理(ASP、JSP、PHP、Python、Ruby等),并由数据库提供数据支撑。
(4)不要以URL的形式来判断一个网页是静态的还是动态的,而应该看页面的属性(产品经理最好具备一些调试技巧和经验)
(5)动态网页更灵活。
分析URL的结构
URL组成
一个标准的 URL 地址由protocol、hostname、port、path、parameters、query 几部分组成
网页基础知识:表单
表单在很早的 HTML 版本中就已经存在,它是用户输入和网页之间数据交互的一个界面,在HTML中用<form>标签标记。
表单中还可以承载很多类型的元素,例如RadioBox和CheckBox,用来丰富用户输入类型和减少交互成本。
表单是用户和服务器数据交互的用户界面,一切向服务器提交的数据都是由其中的几个简单的标签组成的。
H5应用程序缓存简介
Application Cache是HTML 5中定义的一种离线存储技术标准。这种技术可以让开发者明确地指定页面中哪些静态资源可以在第一次访问网页的同时缓存到本地,并且在下次访问该网页时向服务器询问本地缓存的资源是否需要更新。
Application Cache技术通过缓存资源到本地,避免了每次打开网页都会从服务器拉取大量数据的过程,取而代之的只是一个轻量级的更新检查请求,这样,开发者的服务器带宽就被大大地释放出来。
JS DDoS攻击的原理与防御
分布式拒绝服务攻击(Distributed Denial of Service,DDoS)是一种对网站发起大量连接,导致正常用户无法访问网站的攻击手段。利用流量劫持变相进行 DDoS,就是JS DDoS。
开发者在引用一个第三方库时,在页面里写上它的散列值,如果第三方库被劫持,计算出的散列值与开发者写在页面里的不匹配,浏览器便不会执行它。还有另一种方案,就是使用HTTPS链接,这样可以解决大部分劫持问题。
UA的故事
“UA”是“UserAgent”(用户代理)的简写,一般用来区分不同的浏览器。
其他的浏览器(例如IE、Safari、Chrome等)都是以它为模板扩展出来的
简单理解HTML、CSS和JavaScript
HTML、CSS、JavaScript共同构建了读者看到的所有网页展示和交互。
HTML(HyperText Markup Language)是超文本标记语言 。
CSS(Cascading Style Sheets)是级联样式表 。
JavaScript 是一种脚本语言 ,主要用于前端页面的DOM处理。
Cookie和广告联盟
Cookie 是浏览器每次向网站服务器请求数据时携带的一些额外信息,这些信息一般非常少(最多4KB),主要就是为了解决服务器“记性不好”的问题。
拿到Cookie的浏览器可以根据关键词匹配它们的广告,然后推荐给用户,这种广告因为推送的都是用户感兴趣的内容,“杀伤力”特别大,被称为“精准广告”
HTTP Header是什么
HTTP 协议的 Header 是一块数据区域,分为请求头和响应头两种类型,客户端向服务区发送请求时带的是请求头,而服务器响应客户端数据时带的是响应头。
请求头里主要是客户端的一些基础信息,UA(user-agent)就是其中的一部分
(1)accept,表示当前浏览器可以接受的文件类型,假设这里有image/webp,表示当前浏览器可以支持webp格式的图片,那么当服务器给当前浏览器下发webp的图片时,可以更省流量。
(2)accept-encoding,表示当前浏览器可以接受的数据编码,如果服务器吐出的数据不是浏览器可接受的编码,就会产生乱码
(3)accept-language,表示当前使用的浏览语言。
(4)Cookie,很多和用户相关的信息都存在 Cookie 里,用户在向服务器发送请求数据时会带上。
(5)user-agent,表示浏览器的版本信息。当服务器收到浏览器的这个请求后,会经过一系列处理,返回一个数据包给浏览器,而响应头里就会描述这个数据包的基本信息。
响应头里是响应数据的一些信息,以及服务器要求客户端如何处理这些响应数据的指令
(1)content-encoding,表示返回内容的压缩编码类型,
(2)content-length,表示这次回包的数据大小,如果数据大小不匹配,要当作异常处理。
(3)content-type,表示数据的格式,它是一个 HTML页面,同时页面的编码格式是 UTF-8,按照这些信息,可以正常地解析出内容。content-type 为不同的值时,浏览器会做不同的操作,如果content-type是application/octet-stream,表示数据是一个二进制流,此时浏览器会走下载文件的逻辑,而不是打开一个页面。
(4)set-cookie,服务器通知浏览器设置一个Cookie;通过HTTP的Header,可以识别出用户的一些详细信息,方便做更定制化的需求,如果读者想探索自己发出的请求中头里面有些什么,可以这样做:打开Chrome浏览器并按“F12”键,唤起Chrome开发者工具,选择network这个Tab,浏览器发出的每个请求的详情都会在这里显示。
简单理解HTTP的GET和POST
GET 就是拉取服务器的数据,POST 就是向服务器提交数据
WebSocket是什么
WebSocket是 HTML 5的一个主要特性,它是建立在TCP上的一种全双工协议,也就是说客户端可以向服务器发信息,服务器也可以向客户端推送消息。
WebSocket 在首次建立连接时,使用普通 HTTP和服务器通信,同时告诉服务器后面的交互用WebSocket的方式。在WebSocket连接建立后,往来的消息都可以通过这条管道发送,同时客户端与服务器也会不断地用ping-pong的方式保持心跳,防止连接异常断开。
“直出”是什么
浏览器直接输出渲染好数据的HTML页面,简称“直出”。
互联网的黄金矿工:爬虫
网络爬虫的作用就是抓取某个指定网页的数据并存储在本地,而一些大公司的主要收入都来源于搜索引擎,搜索引擎的数据是由网络爬虫没日没夜地从互联网上抓取的
简单理解单页Web应用
单页 Web 应用如何能在一个页面里把多个页面才能做的事情做完呢?
(1)AJAX。前端的 JavaScript 代码可以拉取服务器上的数据了。
(2)页面历史栈。前面介绍过,单页 Web 应用只有一个页面,也就是只有一个URL,那么用户想前进或者后退该怎么办呢?这就依赖单页Web页面自己的处理了。
锚点与网页内跳转的实现
锚点定义位置,用#号完成对锚点位置的跳转,无论是在输入的URL中还是网页中,各种位置跳转的需求都可以这样简单完成。这个锚点的跳转仅仅是浏览器的操作行为,并不会发起任何网络请求和服务器交互。
利用锚点的特性不仅能完成这种页面位置跳转的小功能,还可以改变浏览器的访问历史。当在不同的锚点间切换时,浏览器是可以后退的,每变化一次锚点的值(也就是#后面的值)都将增加一条浏览记录。
客户端技术
Android应用的“续命大法”
“续命大法”第一式:监听系统事件
“续命大法”第二式:守护进程唤醒
“续命大法”第三式:“全家桶系列”
Hybrid APP
Hybrid APP,就是指使用原生和H5两种UI呈现内容
何时使用原生UI
对流畅性体验要求较高的场景
UI样式相对固定,不会频繁变化
交互复杂
何时使用H5页面
较强的动态运营需求
UI样式复杂多变
交互简单
多平台复用
手机传感器知多少
磁场传感器
磁场传感器可以测定出手机在x、y、z三个方向上的磁场强度,用户旋转手机,直到只有一个方向上的值不为零时,手机就指向了正南方。
很多手机上的指南针应用,都利用了这个传感器的数据。
加速度传感器
加速度传感器返回的是当前手机在x、y、z三个方向上的加速度值。
三轴陀螺仪
三轴陀螺仪可以测定出当前手机在x、y、z三个方向上的角加速度,这个功能主要用来检测手机的旋转方向。
常见的翻转手机就可以接听电话的功能,就是利用三轴陀螺仪测定角加速度变化的功能实现的。
近距离传感器
能够检测手机附近物体距手机正面的距离,它依靠一个小型雷达实现,通过发射一些脉冲信号并检测返回时间计算距离
指纹传感器
指纹解锁已经是智能手机的标配功能,它的实现完全依赖于手机中嵌入的指纹传感器。
指纹传感器按技术可以分为光学式、电容式及射频式3种。
手机上普遍采用的是电容式指纹传感器。
光线传感器
光线传感器检测手机正面接收的光照强度,从而对应地改变手机屏幕的亮度,让用户在不同光照下都能看清屏幕。
气压传感器
气压传感器可以检测当前的大气压强,从而推测出用户所在位置的海拔高度。
iOS中的健康应用可以计算出用户爬了几层楼,作者猜测它就是利用不同海拔大气压强不一样的原理来推测用户上升的楼层的。
温度传感器
手机自带温度传感器,可以获取当前环境的温度
开发技术
“空指针”是什么
空指针,顾名思义,就是指向空的指针。
程序中的“越界”是什么
程序员要存储的数字超过了他选用的数据类型所能表示的最大范围时,就会发生数据范围越界
开发动画需要多少工作量
1.位移动画
(1)动画开始时控件的起始位置。
(2)动画结束时控件要到达的位置。
(3)动画的持续时间。
2.缩放动画
(1)动画开始时控件的缩放倍率。
(2)动画结束时控件的缩放倍率。
(3)动画的持续时间。
3.渐隐渐现动画
(1)动画开始时控件的透明度。
(2)动画结束时控件的透明度。
(3)动画的持续时间。
(4)设置重复次数。
(5)设置重复模式。
4.旋转动画
(1)动画开始时控件的旋转角度。
(2)动画结束时控件的旋转角度
(3)动画的持续时间。
耦合与解耦
“解耦”和“耦合”是对立的,产生了耦合才需要解耦。
栈与队列
栈
栈 是一种“先进后出”的数据结构。比如用户用Chrome浏览网页,单击了一个链接进入下一页,如此重复十几次后,又想回到一开始的页面,就需要不停地按“回退”键,此时浏览过的网页便一个接一个地出现,它们的出现顺序就是“后进先出”,这个结构叫作“历史栈”。不光是浏览器,很多APP也有历史栈。
队列
队列 是一种“先进先出”的数据结构。所谓进,就是数据的插入,所谓出,就是数据的删除。“先进先出”的意思是,插入的时候是什么顺序,删除的时候还是什么顺序,不能乱插,也不能乱删。
如果你的数据在处理过程中需要保持原有的顺序,用队列来处理,准没错。
并行计算
并行计算 指一台计算机或一个计算系统(如分布式系统)可以在同一时刻执行两个或者两个以上的任务。
并行计算在计算机世界中有两种实现方式:时间上的并行和空间上的并行。
所谓时间上的并行,是指流水线技术。
空间上的并行,简而言之就是“人多力量大”,通过增加硬件资源投入的方式解决效率问题,在单机系统上的解决方案就是增加核的数量。
程序“挂了”是怎么回事
1.都是程序员的错
2.操作系统不靠谱
操作系统
微软公司的Windows
Windows的前身是MS-DOS,是一个只有命令行而没有界面的操作系统。
苹果公司的Mac OS
它的前身是著名的UNIX。UNIX与其说是一款年长的操作系统,不如说是一个系列的统称或是一个标准。
开源的Linux
Linux算是最“草根”的系统,最初的Linux内核由还是大学生的Linus完成,大概拥有一万行代码。开源使其市场份额不断扩大,同时借助社区的力量,Linux自身也在不断完善
一个操作系统需要以下这些能力
1.启动
2.内存管理和进程管理
3.文件系统
4.给上层的APP一套好用的API
流水线技术
流水线技术是指,在重复执行一项任务时,可以把它细分成很多小任务,让这些小任务重叠执行,来提高整体的运行效率。
多线程是什么
多线程是有效提升程序运行效率的方式之一。它还在提升优化算法、提高硬件配置、分布式计算、网格计算的效率方面起着重要作用。
多线程有两层含义
(1)开启多个线程做不同的事情,目的是并发同时做很多事情。
(2)开启多个线程做同一个事情(比如前面举的放水的例子),目的是提高效率。
网络技术
网络基础之协议栈
应用层:为应用程序提供数据传输的网络接口,常见的HTTP、Telnet、FTP等协议都工作在这一层;
传输层:传输层提供端到端的连接,例如让A主机上的程序a找到B主机上的程序b。TCP和UDP都工作在这一层,端口号的概念也定义在这一层;
网络层:用于寻址,它能让两台主机在互联网的茫茫“机海”中找到彼此;
数据链路层:网卡就工作在这一层,负责将数字信号转化成可供物理层传输的电信号或者光信号;
物理层:物理层是信号传输的物理通道,网线和配套的接口都属于物理层。
网络地址转换
1.静态转换(Static NAT)
2.动态转换(Dynamic NAT)
3.端口多路复用(OverLoad)
PING和网关
PING是 TCP/IP协议簇中的一部分,它的原理是向目标 IP地址发送一个数据包,如果对方返回一个同样大小的数据包,则证明连通,并且整个过程能够测试时延。
网关:网络的关卡,是两个网络之间的“门”
TCP与UDP
TCP/IP又分为4层,分别为应用层、传输层、网络层和物理层。
TCP保证可靠性的手段
1.顺序编号
2.确认机制
3.超时重传
UDP的可靠性
什么是反向代理
“代理”,都是指客户端向外界发起请求时,并不直接与目标服务器连接,而是将所有请求交给一个代理服务器,由它负责连接外界的目标服务器。
反向代理却恰恰相反,它是针对服务器的一种代理技术。反向代理服务器可以接受客户端的请求,然后将它分发到被代理的服务器上,待这些服务器处理完请求后,再将结果转发给客户端。它是将服务器隐藏在自己背后的。
反向代理有什么意义呢?
可以实现负载均衡
可以减轻后端服务器的一些压力
可以对请求做进一步的封装和解封
可以为后端服务器阻挡一些网络攻击,提升后台服务器的安全性。
CDN是什么
CDN(Content Delivery Network,内容分发网络)是一个经常被程序员提及的名词。
CDN的作用:它是一个基于互联网的数量巨大的服务器集群,专注于内容和资源分发,为用户提供快速访问资源的能力,进而提升内容访问的体验。
推送服务的核心:长连接
两种场景会使用长连接:
1.短时间内,向同一个服务器发起多次数据请求
2.实现PUSH功能
HTTPS技术简介
HTTPS建立连接的流程
(1)客户端发起HTTPS请求。
(2)服务器将公钥发送给客户端,客户端可以根据公钥验证服务器的身份。
(3)客户端生成一个加密密钥,公钥加密后,将密钥传输给服务器,服务器用私钥解密报文,获得客户端密钥。
(4)服务器和客户端的数据传输都通过客户端密钥进行加解密。
HTTPS 可以保证信息在网络中传输的可靠性,主要用于对传输安全敏感的场景,如网上银行、支付宝、财付通等。另外,HTTPS 也可以有效地防止页面被网络中的第三方(比如运营商)篡改,如果你的网站经常被运营商改得乱七八糟,可以让开发人员尝试使用HTTPS。
代理服务器
代理服务器,是指在我们上网的过程中访问某个服务器时,并不是访问真正的服务器,而是先找了一个“代理”,由它向真正的服务器发出请求。
Wi-Fi技术
Wi-Fi 网络中,无线网卡与无线网络接入点建立数据连接之前,要经历两步:SCAN(扫描)和Authentication(认证)
用一张无线网卡和一个无线网络接入点(Wireless Access Point)就可以组成一个Wi-Fi系统
什么是HTTP 302跳转
网络协议为了识别这些不确定性,定义了一系列状态码,302就是HTTP协议里的一个状态码。
Hosts文件
Hosts文件给了用户一个自己决定命运的机会:用户可以在 Hosts 文件中,指定某个域名对应的IP地址,系统在发起网络请求时,会优先使用Hosts文件中的IP地址,这样就达到自主决定使用哪台服务器的目的。
VPN简介
VPN(Virtual Private Network)就是虚拟专用网络。
VPN 就是一条在公共网络上虚拟出来的专用通道,来满足用户自由交流不被窃听的需求。
互联网技术领域的一些专业名词
抽象、封装、类、实例和对象
对事物进行“抽象”,从而封装为“类”,由“类”可以生成“实例”或“对象”。
SDK、API和架构
SDK是Software Development Kit的简称,中文名称是软件开发工具包,是基于当前系统或者平台的一整套开发工具的集合。
API是Application Programming Interface的简写,中文称为应用程序编程接口 。API也常被称为API函数。
架构指一个软件系统的结构,是考虑了一个软件系统的所有设计要素、梳理清楚模块划分及模块之间的关系后形成的一种结构设计。
控件、组件和框架
控件表示程序设计中最小粒度的可复用可编程的部件。
TabHost最常见的应用场景是微信的主界面,底部的4个TAB控制切换到不同的功能页面。这种由最基本的按钮控件和其他控件一起组合而成的结构,称为组件
框架是由很多控件和组件组装在一起的,并且能够在某一领域里完成一系列操作,就好像一把瑞士军刀,能够把某一领域内的问题解决得干净漂亮。
二进制文件
计算机存储的所有内容都是二进制,文本文件也不例外,所以文本文件在存储的时候需要将明文文本转换成对应的二进制,而普通二进制文件的存储不需要转换。
二进制文件更省空间,写入速度更快,因为可读性很差,所以还有一定的加密保护作用。
脚本
脚本,是使用一种特定的描述性语言,依据一定的格式编写的可执行文件。
特点
脚本就是剧本
脚本是普通的文本文件,是批处理文件
脚本导演了一个序列事件的发生
脚本让一个例行任务效率大幅提升
脚本语言
JavaScript浏览器脚本语言,目前也应用于服务端。
PHP,经常用于服务端脚本程序的编写。
Perl、Shell、Python、Ruby、Lua都是非常常见的脚本语言,在机器学习中就可见到。
内存泄漏
由于程序申请了内存,但没有释放内存,导致内存一直处于被消耗的状态,称为内存泄漏 。
解决内存泄漏问题
(1)产品经理要经常做好程序员鼓励师的工作,告诫程序员要永远保持敬畏之心,永远记得申请内存要释放,不要在这种是非问题上犯错误。
(2)治疗内存问题是有手段的,不同平台上有不同的内存诊断与Debug 工具,利用工具排查要比程序员目测检查效率更高,效果更好。
中间件
在计算机中,中间件是位于两个软件中间的软件,广义地讲,中间件一般为应用软件和系统软件之间相互通信的桥梁。
.NET和Java
二者就是广义上的中间件,位于操作系统之上,用来更方便地构建应用程序,并更好地包装操作系统,让开发者并不需要深入了解操作系统就可以开发应用程序,而且开发效率高、稳定、学习成本低
变量与函数
一切可以进行操作的对象都可以称为变量
一个类里面还有函数,函数里面可以有一些逻辑和运算的操作
散列表
散列算法可以随意设计,教科书上一般会介绍以下几种方法:直接定址法、平方取中法和除数取余法
散列表,它是一种数据结构,也是一种效率极高的查找方式。散列表的核心在于散列函数的设计。产生散列冲突不要紧,我们可以增加随机性并对冲突进行适当的有损化的处理。
钩子
钩子来源于英文词hook
Hook 的意思是钩住,也就是在消息过去之前,先把消息钩住,不让其传递,使用户可以优先处理。执行这种操作的函数也称为钩子函数 。
配置文件
配置写在一个文件中,这个文件就称为配置文件。
总结起来,配置文件就是一个对软件运行时状态的本地存储形式,我们可以通过改动配置文件来改变软件运行行为或策略。
RGB通识
RGB的基本原理。RGB是Red、Green、Blue三种颜色的缩写,称作三原色
RGB 三种颜色分别有256级亮度,那三种颜色的组合数就是256×256×256=16777216,也就是2的24次方,所以分别用8位RGB来表示的颜色数量是1670万,足以覆盖人类眼睛的辨识程度。
视频文件与编解码标准
视频文件扩展名
.avi/.rmvb/.mkv/.mp4这几种视频文件扩展名是比较常见的
视频文件容器
.avi/.rmvb/.mkv/.mp4其实是视频文件容器或称封装格式
视频文件编解码标准
编解码的英文是codec,基本上互联网的任何一个领域都离不开它
时间戳、MD5和GUID
时间戳理解为:当某一事件发生时,立刻为它存储一个时间。
MD5值就是一个文件或字符串生成的一个数,这个数是唯一的。
GUID是一个128位的数字标识符,它能保证在一个计算机集群中不会存在两个相同的值。
栈的含义
栈 首先是一种数据结构。栈也表示由操作系统管理和分配的一些内存区域,这些内存区域用来存储程序中的变量及参数,程序员常说的“栈溢出”就是指这块内存空间被用完了,内存不够,程序就崩溃了。
栈也表示程序员常说的“栈信息”,常指程序出错的打印信息。
JSON
客户端收到这个JSON字符串之后,再按照相反的规则,把它拆开,取出里面所有的key=value,包装成一个对象,这个过程叫反序列化 ,也就是JSON的解析。
JSON并不是凭空想出来的高深概念,而只是为了解决“对象”在网络上传输的问题而诞生的
理解OpenGL
OpenGL是一组API,这些API可以运行在不同的平台上,可以支持各种语言。最重要的是,它能利用显卡的硬件加速能力,帮助我们绘制图形。
OpenGL的绘制流程大约要经过几个步骤。首先,要把要画的东西拆成三角形之类的基本图形,然后在三维空间坐标系里给它们安排合适的位置,之后把灯光加上去,使要画的东西有一种立体感,最后,把这些东西转化成屏幕上的像素点(即光栅化),整个绘制就算是完成了。
引擎
渲染引擎, 我们通常称之为浏览器内核,是浏览器中最重要的呈现HTML、CSS、JavaScript的“发动机”。
游戏引擎, 提供了一套用来开发游戏工具的组件,它是制作游戏产品的瑞士军刀,是制作游戏最基础最底层的核心部件。
杀毒引擎, 就像发动机的核心功能是提供动力一样,它的主要作用就是辨别和侦测病毒,在杀毒引擎之上再包装UI和交互,就形成了一个完整的杀毒产品。
搜索引擎, 看起来像是谷歌这样的产品,其实它的核心能力是爬虫、分词和索引。
开源许可证
什么是开源?程序员写了一些代码,觉得自己写的代码可能会对这个世界上的其他人有所帮助,就在网上公开源代码,让每个人都可以自由地查看、下载和分发,这就是开源。
人工智能的基本原理
人工智能从业者:专家、工程师和调参程序员
第一类人是学术界的专家。
第二类人是工业界的工程师。理论的落地,离不开工程的实践。这部分工作大致可以分为深度学习框架的开发和在框架基础上具体的AI产品的研发两类。
比较有名的框架
(1)谷歌开发的TensorFlow,是最流行的框架。
(2)Keras框架,在众多框架的基础上再次封装,比TensorFlow更简洁,几行代码就能搭起一个神经网络。
(3)Caffe,是另一个广为人知的元老级的框架,来自加州大学伯克利分校,一开始与TensorFlow齐名,后来逐渐落伍,已经很久没有更新了。
(4)Facebook开发的Torch,历史悠久,但由于其使用Lua语言,始终无法在Python的大潮流中大展身手。
调参程序员的从业者
(1)搭建模型。
(2)数据整理。
(3)调参。
人工智能
什么是人工智能
人工智能就是让计算机能像人类一样思考,机器具备了人类的思考方式,并且能根据自己的“经验”,产生预测、判断、分类的能力。
什么是模式识别
通过一系列经验提取出模式,然后识别未知的模式。
模式是怎么产生的
训练的过程,就是找到模式的过程。这种过程在工业界叫作模式识别,在计算机界叫作机器学习。
什么是深度学习
基于神经网络来训练模式的方法就称为深度学习。
什么是神经网络
神经网络就是这样一种高级模型,它能拟合任意一种非线性的关系,是机器学习的终极武器。
神经网络由很多神经元连接起来,每一条连接都有一个参数。
产品经理平时工作时与程序员沟通的方法
程序员的分工
Web前端开发
用户直观看到的东西,都属于前端开发的范畴
前端开发工程师主要和浏览器打交道。
Android终端开发
Android开发工程师每天都很忙,但大多数时间都浪费在了机型适配上。
iOS终端开发
开发工具叫 XCode,号称最优秀的编程工具
如何正确地提需求
1.提需求要有节奏感
需求要跟着项目的版本周期走。
2.先自己尝试评估需求难度
产品经理评估需求难度这件事需要一点技术含量。
3.下点功夫做准备
在需求的实现过程中,产品经理要经常为程序员协调设计资源或测试资源。
程序员想要的需求文档
程序员需要的是一份大家都认可的清晰的交互图,其关键位置需要有一些边界条件的说明
为什么项目会延期
1.关于需求
需求的确定,是项目启动的必要条件。
2.排期与风险控制
项目的排期取决于项目的交付周期、需求量和所需人力
具体的时间点需要技术负责人和产品负责人一起讨论制订
大型项目的前期可以采取周会的方式同步进度,项目的后期或者周期短的项目可以采用晨会的形式,一旦发现有延期风险应及时暴露、及时应对,避免风险堆积导致被动
3.沟通,还是沟通
改进项目管理方式的一个捷径是学习其他团队的工作模式,吸取经验,加以改进,或许可以做到事半功倍。
目标设定的两种方法
第一种是根据当前目标设定一个进步目标
第二种是参考业界最优秀的产品,设定合理的(追赶或超越)目标
精益创业的作用
精益不仅指从0到1创造一个产品,完成一次产品设计和验证的过程不是非要经历痛苦的开发和设计,最好能够利用已有的“轮子”
精益的作用是最小成本验证可行性,把所有资源投入到最大可能的方向。
0 条评论
下一页