产品学技术:探究计算机软件的工作原理
前 言:
哎呀,被小伙伴们催更了,火速更新了一篇,干巴巴湿哒哒!
既然产品经理天天要跟程序员打交道,那为什么不去做一个知己知彼的人呢?
难道你忘记了原型评审时,被diss最多的场景不就是程序员说你规则没考虑清楚吗?到底是哪里规则没考虑清楚呢?为什么怎么想都想不清楚呢?除了不太熟悉业务外,本质原因是因为不了解技术。
为了更好的与程序员沟通,也更好的写出合理的原型设计规则,我们可以不用敲代码,但我们有必要去了解一下技术实现原理。
本文目录:
一、计算机基础
二、什么是软件开发?
三、人机交互的方式有?
四、什么是计算机语言?
五、计算机软件的工作原理
六、代码初体验
七、代码案例
八、代码原理
一、计算机基础
计算机
电子计算机,俗称电脑,是一种能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件和软件所组成,没有安装任何软件的计算机称为裸机。
三大硬件
1. cpu是一台计算机的运算核心和控制核心。其功能主要是解释计算机指令以及处理计算机软件中的数据。
2. 内存是数据与CPU进行沟通的桥梁。计算机中所有程序的运行都是在内存中进行的,内存(Memory)也被称为内存储器,其作用是用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据。
3. 硬盘:内存不能长久保存数据,断电时信息就丢失,程序和数据都会被保存在存储设备硬盘中,当程序和数据需要使用时,再加载进内存。
二、什么是软件开发?
什么是软件?
是指按照一定顺序组织的计算机数据与指令的集合。 数据:就是指现实生活中的我们的姓名、电话等信息。指令:就是告诉计算机如何对数据进行处理。
系统软件和应用软件都是用计算机语言编写出来的,计算机语言调用底层指令处理数据。 1. 系统软件 如:Widows、Linux。2. 应用软件 如:axure、visio。
什么是开发?
人们用计算机语言去制作各种软件,实现人与计算机之间更友好的交互。 为此工作的岗位人群,统称为程序员。
三、人机交互的方式有?
主要有两种:
1. 图形化界面:简单直观,容易操作,用户的体验好。现如今,我们与计算机交互,大部分都使用的是此方式。
2. dos命令行方式:需要有一个控制台,输入特定的指令,让计算机完成一些操作。较为麻烦,需要记录住一些命令,而且只能完成一些比较单一的功能。
dos控制台打开的步骤:开始+R-->输入cmd即可。
四、什么是计算机语言?
语言:是人与人之间用于沟通的一种方式。例如:中国人与中国人用中文沟通,而中国人要和韩国人交流,就要学习韩语。
操作计算机就如同和计算机说话一样,我们告诉它做什么,它就可以做什么。前提是,我们和它说的内容它必须能够识别才可以,这就是计算机语言。
计算机语言:人与计算机交流的方式。如果人要与计算机交流,那么就要学习计算机语言。计算机语言有很多种,如:C、C++、Java等。这里,我们选择其中的一种,Java语言。
五、计算机软件的工作原理
用户场景:
如果你的电脑上安装了微信,你希望和好友聊天,会双击微信图标,打开微信软件扫码,然后登录就可以了。那么,微信是怎么运行起来的呢?
原理解析:
首先,有一点你要明确,你安装的微信软件是保存在硬盘中的,但却不是在硬盘中运行的,而是在内存中运行的。为什么呢?
因为内存的读写速度比硬盘快很多。对于读写速度,内存 > 固态硬盘 > 机械硬盘。机械硬盘是靠电机带动盘片转动来读写数据的,而内存条通过电路来读写数据,电机的转速肯定没有电的传输速度(几乎是光速)快。所以,不管是运行微信还是看我的文章,都是先将硬盘上的数据复制到内存,才能让CPU来处理,这个过程就叫作载入内存(Load into Memory)。
双击微信图标软件,操作系统就会知道你要运行这个软件,它会在硬盘中找到你安装的微信软件,将数据(我们安装的各种软件本质就是很多数据的集合)复制到内存。CPU直接与内存打交道,它会读取内存中的数据进行解析处理,并将结果保存到内存中。如果需要保存到硬盘,才会将内存中的数据复制到硬盘。
例如,我打开一个word文件,随便输入一些内容,虽然我们看到的不一样了,但是硬盘中的文档没有改变,新增的文字暂时保存到了内存中,Ctrl+S才会保存到硬盘。内存在断电后会丢失数据,而硬盘不会。所以有事儿没事儿多按按Ctrl+S,要不你就白写了。
六、代码初体验
先撸一把代码,体验其丝滑般的快感再说
1、浏览器打开在线编译工具
https://c.runoob.com/compile/10
2、点击运行按钮,结果如图右侧
3、产品视角解读
符号:{ 代码块区域 }
解释:大括号的作用是 将其包裹的代码视为一个整体 , 定义代码块的开始和结束 。如:类名后的大括号,就表示里面的代码组成这个类。方法名后的大括号,表示里面的代码组成了这个方法。
代码: public class HelloWorld{ }
解释:表示是一个java类,文件名叫 HelloWorld
代码: public static void main(String[] args){ }
解释:java程序的主方法,当运行某个java类时,main()方法就是入口方法,其它的方法全在这个方法里边直接或间接调用的。
代码: System.out.println("刻意练习产品思维");
解释:将 英文 双引号中的内容在系统中打印出来,引号中 内容随便你输入
代码:// /*****/
解释://表示单行注释;/***/ 表示 多行注释。注释:解释该部分代码的意思
七、代码案例
1、复制以下我的代码,到在线编译工具,重新点击运行
//表示一个java类,文件名叫 HelloWorld public class HelloWorld {
/* java程序的 主方法,当运行某个java类时, main()方法 就是入口方法,其它的方法全在这个方法里边直接或间接调用的 */ public static void main(String[] args) { //将英文双引号中的内容打印出来,内容随便你输入 System.out.println("公众号:刻意练习产品思维"); } } |
结果如图:
八、代码原理
源代码--编译--执行
Java源代码(.java)经过java编译器(javac.exe)编译之后,并没有直接转化为机器码,而是转化成一种中间格式,成为字节码(.class)。
字节码再经过java虚拟机转化成特定CPU架构的机器码。也正是因为这一中间物,java才有所谓的跨平台。在windows平台上编译好的字节码,copy到linux平台后,经过为linux而设计的Java虚拟机解释后即可执行。跨平台这一特征,是通过字节码和JVM来实现的。
< 系列文章,未完待续>
作者:会飞的猪
标签:退伍军人,反面教材连续创业者,懂技术懂运营的B端产品人