致产品经理:是时候要学学编程了!

  对于产品经理这一综合性职能来说,具备一定的技术知识,不论是在与工程师工作的配合中,还是在对技术产品的理解上,都能起到非常大的帮助作用。
本文选自《产品经理必懂的技术那点事儿》,我们简单聊聊非技术型产品经理需要了解的编程语言中的数据类型。

  说产品经理学编程并不是真的让产品经理去学习如何写代码,而是让产品经理通过了解编程的基本原理,知道产品背后的程序逻辑是如何处理的。
  工程师是一类理性和逻辑思维较强的个体,对于产品经理来说,首先需要做的就是能听懂工程师所说的话,在实际工作中来看,工程师在和产品经理配合的过程中,使用最多的就是技术语言。
如果你是技术人员,那么本文对你的帮助不大,但也可以跟着小编继续回顾一下这些知识点~
                        ◆ ◆ ◆ ◆ ◆
  那么进入本文正题,编程语言中的那些数据类型。
数据类型是用来在计算机世界中区分和表达数据载体的规则,数据类型是一种对数据的约束,每一种数据都有一种且唯一一种数据类型,数据类型代表编程语言中的最基本规则。介绍完什么是编程语言及几种主流的编程语言后,我们来看一下编程语言中的基本数据类型。“数据”是计算机世界中的基本单元,一张图片是一个数据,一个文字也是一个数据。如下图所示,一个基本的数据单元主要由几部分构成,分别是数据类型、数据名称和数据值。数据的名称也叫变量名,每一个变量都有对应的数据值,这部分内容我们会在接下来的章节里介绍。
                
  每一门编程语言都有自己的基础语法,就像我们学外语需要掌握语法一样。编程语言是和计算机进行沟通的语言。计算机要理解程序的意思,首先就得从数据类型开始,数据类型好比我们说话用的单词的意思,计算机需要理解我们传递了什么信息。
  另外就是语法结构,好比我们说的单词需要以什么样的顺序和方式被组织起来,不同的外语有不同的语法规则,也有不同的单词,例如表示苹果这一物体,中文里叫“苹果”,但英文里叫“apple”,中文的主谓语顺序和英语中的也略有差别。同理,在编程语言中也会有不同的语法规则和不同的关键字。我们先看一下编程语言中的基本数据类型。

1 表示整数的“整型”

  在产品中,我们通常会在需要计算一些数值时使用到整型,比如需要统计通讯录有多少人时,需要声明一个整型变量来记录通讯录项目总数,而且这个变量是可以持续累加进行计算的。
  整型是一种数字类型,所有的不带小数点的数字都属于整型,在编程语言中,用关键字int 来表示整型。关键字是编程语言中一种约定存在的表示一定具体意义的形容词,关键字一般都是固定存在的,就好比语言中的一些固定词语。int 实际上就是英文integer 的缩写,表示整数的意思。在不同的编程语言中,表示整型数据的关键字会略有不同,但大部分都是用“int”来表示整型数据。在程序中,我们可以给一个变量取一个名字,然后声明这个变量为整型,例如“int a = 10”,这是一个基本的程序语句,里面有几个关键字符号,从左到右,首先是“int”,说明这个数据类型被我们声明为整型,也就是整数类型,然后是“a”,这是我们随便取的名字,我们还可以叫x 或者y 都行,再往后就是“=”,这个“等号”其实是赋值号,代表的意思是,将“10”这个整数赋值给变量“a”。至此,我们就写完了一个最简单的程序语句。同时,整型是可以被用来进行数学计算的,例如我们可以将两个整数进行加减乘除的数学计算,“int a = 1;int b = 2;int c = a + b”,在这条程序语句中,最终变量“c”的计算结果是“3”。下图所示为三个数据单元,数据的名称也就是变量名分别是a、b、c,名称后面对应的是数据类型和数据的值,这也表示了所有类型数据的基本格式。
                 
  例如,我们还可以写一个声明整型的程序语句,“int x = 1024”,这句程序的意思就是我们声明了一个整型的变量“x”,并且赋值为整数1024。对于变量的取名也有一定的规则,例如我们可以取名为“a”和“x”,但我们不可以用一些特殊符号来命名变量,不能使用“%”或者“$”类的符号作为变量名,规范的变量取名一般是字母或者下画线开头,中间和结尾也可以是字母数字或者下画线,比如“a1”、“_a”、“a1_”都是合法的变量命名。

2 表示文本的“字符型”

  字符型是一种文本类型,字符型的内容没有规则限制,可以是任意内容。在不同的编程语言中,表示字符型的关键字略有不同。例如在Java 语言中,我们使用关键字String 表示字符型数据;在C 语言中,字符型使用关键字char 来表示;在Objective-C语言中用NSString 表示字符型数据。使用哪一种关键字取决于各编程语言自身的特点,就好比使用不同国家的语言来表示“苹果”这个意思,说法不一样但本质其实是一样的。字符型数据一般会用引号表示该数据属于字符型,例如“hello”就是一个字符类型的数据,表示一个单词,也可以是“hello world”,表示一句话,中间的空格也算是这个字符型数据的一部分。如果字符型数据的内容是数字,比如“1024”,这时候并不代表是整数,而就是一个字符型数据。也就是说,字符型的“1024”并不具备数学意义,不能用来做计算。
  字符型的数据在我们设计产品的过程中其实使用得最多,我们在产品界面上展示的所有信息在程序里都是以字符型的数据类型展示的。例如,我们在用户登录界面会看到用户名和密码的文字,这些都是以字符型的方式显示在界面上的,如果我们在用户名和密码的输入框中输入一些内容,那这些内容也是以字符型的数据被程序读取,然后做进一步处理。
再比如,我们在电商产品的购物车中填写购买商品的数量时,填写的是具体的数字,但是程序读取出来的实际上是字符类型,如果需要对购买商品的数量做进一步计算,比如要统计总共买了几件商品,那就需要将字符型的数据转换为整型,然后再做计算。在产品设计中,我们会定义某一个输入项的输入类型是文字还是数字,这是产品层面的定义,比如产品层面会定义购物数量是输入数字,但在程序里面,从这个输入框获取的内容却是字符型的,如果需要对这个值进行数学计算,则需要先将这个字符型的数值转换成整型数据。关于数据类型间的转换,我们会在后面章节做具体介绍。可以说,字符型是使用最广泛的一种数据类型。

3 表示小数的“浮点型”

  浮点型也是一种数字类型,与整数型相比,浮点型的数据都是带小数点的数据。在编程语言中,一般使用float 或者double 标记浮点型数据。对于产品经理来说需要理解的是,虽然都是数字,但是整数和带小数点的数在程序里面是分别用不同的数据类型声明和表示的。了解这些基本数据类型后,在设计产品或者与技术人员沟通的过程中就可以对数据类型这一项做到心中有数了。
  和前两种数据类型一样,在不同的编程语言中,表示浮点型的关键字也会根据编程语言的特点略有差别,但本质上都代表一类有小数点的数字类型。还是以Java 语言为例,我们可以声明一个浮点型的变量“float a = 1.5”,跟之前声明变量的方式一样,现在变量“a”的数据类型就是浮点型。与此同时,我们将数值“1.5”赋值给变量“a”,浮点型和整型一样,都是有数学意义的,也就是说可以被用来进行计算。例如,我们可以让两个浮点型的数相加,“float a = 1.5;float b = 1.5;float c = a + b”,这时候变量“c”的计算结果就是“3.0”,就算相加出来的结果是一个整数,但是因为声明变量“c”是浮点型,所以结果也是带小数点的浮点型。
  在产品设计中,我们也会使用到浮点型,例如在填写体重的时候,我们可以输入“60.5”这样的数值来表示公斤,在一些专业型的工具产品中,我们会输入一些带小数点的数来设置一些参数,这时都会使用到浮点型。当然,如前文所说,在界面上获取的其实都是字符型,只是我们在程序里面将字符型转换为了浮点型。

4 表示是非判断的“布尔型”

  布尔型是一种特殊的数据类型,布尔型的数据只有两种值,即“true”和“false”。“true”对应的序号是1,“false”对应的序号是0。布尔型变量的赋值只能是“true”或者“false”,一般用来做标记位使用,反映现实世界里的真假判断。在编程语言中,一般用关键字“boolean”或者“bool”表示和声明布尔型数据。例如,我们可以声明一个布尔型的变量“boolean a = true”或者“boolean b = false”,变量“a”和“b”的值只能是“true”或者“false”之一。
在产品设计中,我们经常会在流程设计里使用到布尔型。例如,如果用户在注册时需要同意一个注册协议,注册协议旁边往往有一个可以勾选的小框,勾上视为同意,不勾视为不同意。
  在程序实现中,我们可以使用布尔型的数据对这个操作进行记录。例如,我们可以设置一个变量来记录这个操作,“boolean isSelected = false”,我们声明了一个变量名字叫“isSelected”,然后给它初始赋值为“false”,即设定默认是没有勾选的,如果用户在注册时将勾选项选上,我们就可以将这个变量的值修改为“true”。布尔型在程序设计中使用得比较多,主要用于控制流程或者做一些特殊标记。

5 数据类型间的转换

  前面我们提到了编程语言中三种最常见的数据类型,分别是整型、字符型和浮点型。除了这三种基础类型之外,还有一些其他类型,例如长整型、单精度浮点型和双精度浮点型,这些都是基于基础数据类型的其他数据类型,它们一起构成了程序的数据基础。前文提到数据类型间的转换,例如我们从界面上获取的整型数据输入实际上首先得到的是字符型。这时,我们就需要将字符型转换为整型,在大部分编程语言中,都会有对应的工具来进行数据类型转换。例如,我们获取到购物车商品的数量,从界面上获取的值的数据类型是字符型的“10”,这时的“10”是不能直接进行数学计算的。如果我们要将商品的单价乘以商品数量,必须先将字符型的“10”转换为整型的“10”,转换成整型数据类型后,就具备了数学计算的能力。同理,我们也可以将字符型的数据“1.5”转换为浮点型的数据进行数学计算。反过来,我们也可以将整型或者浮点型的数据转换为字符型,数字类型的数据转换为字符型后就不具备数学计算意义了。
  需要注意的是,如果字符型数据不是数字而是其他字符,比如“a”,这时将字符型转换为整型的话,得到的结果是“a”在ASCII(American Standard Code forInformation Interchange,美国标准信息交换代码,是基于字母的一套编码系统)中对应的具体数值,实际上就是字母“a”对应的二进制代码,也就是一串由0 和1 组成的代码。在计算机的世界里,所有的数据最终都是由0 和1 表示的,我们所编写的程序语言最终被解析编译后都会还原成计算机能识别的机器码。简单说,计算机真正认识的其实都是由0 和1 组成的各种序列,这些序列的顺序和组合及长度各不相同。

6 数据拼接

  在编程语言中,数据拼接一般是字符型数据间的拼接,拼接后的字符型数据统称为字符串,字符串的内容可以表达任何内容,字符串简单来说就是一串文本。如前文所说,“1024”是一个文本,也就是一个字符串,并不是数学意义上的1024,字符串能表达的内容非常多,字符串的内容既可以是数字也可以是小数或各种符号。
  在产品设计中,我们经常使用到数据拼接,例如要设计一个功能展示有多少人参与了活动,文本会设计成“目前有人参与了本次活动”,这句话在程序里是以字符型的数据类型存储的,整个字符串中间关于多少人的部分是变量,也就是说这里的数字是会动态变化的,在编程语言中,该如何实现呢?其实很简单,我需要用到数据拼接,以Java 语言为例,第一种是我们先将“目前有”这个字符串用变量“a”表示,将后面的“人参与了本次活动”这个字符串用变量“c”表示,中间的数字我们在程序中获取时是整型数据,先将整型转换为字符型然后用变量“b”表示。这时,我们通过“String s = a + b + c”这条程序语句就可以实现字符串数据的拼接,从而实现这个功能。
  在进行产品设计时,如果某个功能涉及固定字符和动态字符的组合,就要考虑数据拼接了。
  如果产品经理在产品设计过程中能对那些属于动态数据的部分做特殊标记,那么工程师一定刮目相看。
            
  上图是上文提到的活动参与人数统计的例子,其中人数部分是动态变化的,数字前后的文字都是静态的。如果在产品设计图中能清晰地把动态变化的部分标记出来,就能明确地提示工程师在开发时需要特别注意,也降低了产品经理额外说明和解释的沟通成本。
  本文选自《产品经理必懂的技术那点事儿》。
                      
  
  想及时获得更多精彩文章,可在微信中搜索“博文视点”或者扫描下方二维码并关注。
                        

时间: 2024-10-29 15:39:51

致产品经理:是时候要学学编程了!的相关文章

关于互联网产品经理有哪些经典书籍?

入行产品经理所需的准备目前,互联网产品经理的社区很多,里面有海量的信息,如何修炼成为一名优秀的产品经理的经验也是林林种种,笔者也阅读不少,获益不少.今天,笔者并不是谈如何成为一名优秀的产品经理,成为优秀的产品经理只是第二步,入行才是第一步.笔者作为一个做了一段时间产品的人.谈谈入行产品经理所需做的准备.前提:做产品,关键是要发现用户的需求点,发现用户的痛处~~第一.关注互联网动态和产品动态:每天阅读新浪科技或者其他门户网站最新的互联网资讯,时刻关注互联网动态,只有知晓过去,才能更好的把握未来.用

指导产品经理的日常工作的效应、定律、法则

摘要: 偶然看到介绍这些效应.定律.法则的文章,发现虽然不知道名字和出处,但实际上对此并不陌生,且应用也可以很广泛,扩展开来联想到工作当中,发现也能很好的指导产品经理的日 偶然看到介绍这些效应.定律.法则的文章,发现虽然不知道名字和出处,但实际上对此并不陌生,且应用也可以很广泛,扩展开来联想到工作当中,发现也能很好的指导产品经理的日常工作,结合自己的一些看法,摘录部分如下. 蝴蝶效应 上个世纪70年代,美国一个名叫洛伦兹的气象学家在解释空气系统理论时说,亚马逊雨林一只蝴蝶翅膀偶尔震动,也许两周后

产品经理负责制:产品经理负责制的意义

文章描述:产品经理负责制的诱惑与窘迫. 一 既然是谈产品经理"负责制",就应如"农田承包经营责任制"或者"厂长经理负责制"一样,产品经理是对最后的经营成果负责.农民对自己承包的责任田经营成果负责,只要给国家交足了公粮,田里想种什么.如何种.种多少之类的问题,都是由农民自己畴划.主导.决策.安排的:厂长经理从董事会或者国资委获得企业的经营权,确定了企业的经营目标与方向,有权自行安排人事.产品.财务开支等事项,才能对最后经营成果负责.因而产品经理负责

产品经理经验分享:成功的产品设计经验与思考

文章描述:我把这12条,打乱原有的顺序,重新整理为两个部分,有利于阅读和思考. 最近 知乎上有人问到: 俞军 提出的有关产品经理提出的12条军规,你赞同多少? 我把这12条,打乱原有的顺序,重新整理为两个部分,有利于阅读和思考: 产品观 1.产品经理首先是用户,站在用户角度看待问题 发现用户的需求,而不是创造需求 把用户当作傻瓜,不要让用户思考和选择,替用户预先想好 用户是很难被教育的,要迎合用户,而不是改变用户 关注最大多数用户,在关键点上超越竞争对手,快速上线,在实践中不断改进 用户体验是一

设计之外:产品经理真的那么重要吗

文章描述:产品经理是炮灰. 前些日子有篇网文,鼓吹产品经理的重要性,几乎夸上了天.有人评论道:"是为了争取加薪吗?"一语中的. 重要个毛线.依我看,都是炮灰. 一个人能取得多大的成功,取决于两点:1.他有多少才华与热情,2.这些才华和热情是否能战胜环境中的困难.很遗憾,摆在产品经理面前的障碍大部分是不可战胜的. 在这篇文章里,我们只讲靠谱的产品经理,不讲不靠谱的. 不论PM靠不靠谱,都分为两种,或者在大中型公司工作,或者在小型公司(创业团队)工作.环境障碍各自不同.先说前者.在大中型公

《妥协的完美主义:优秀产品经理的实践指南(卷二)》一第1章 App产品设计团队进化史1.1 在没有产品设计团队的软件开发时期

第1章 App产品设计团队进化史 妥协的完美主义:优秀产品经理的实践指南(卷二) 在App的开发过程中,常常有两股主要矛盾力量:开发人员和市场人员. 尽管市场人员精通市场.定价,善于掌握商机,但他们对产品设计和过程的要求,只局限在需求列表.需求清单上,列出他们所需功能,这些需求同用户的实际需要和期望有一定差距,主要在于如何超越竞争对手,如何赚取更多的利润,这些需求的来源基于市场调研和对用户心理的猜测: "市场数据的表现是这样的,用户可能是因为某某原因不喜欢使用我们的产品." "

如何不被程序员(RD)们嫌弃--写给那些血气方刚的产品经理(PM)

最近有位刚做 PM(产品经理)的小伙跑来跟我控诉,说公司技术部的 RD 们(程序员)个个不给力.需求过了千百遍还是理解错,或者就是简单回一句"做不了",表情如死灰. 这位 PM 血气方刚,张牙舞抓,脑子里总有一千万个新产品需求的想法扑腾着.他咄咄不停的抱怨 RD 们不配合,能力差,懒惰,没思考能力,没品位,顺带连抠脚味儿太大这种事也强烈谴责了."擦,老子明天就去学编程!" 哎,我发现 PM 们都特喜欢说这句无比励志的话呢! 面对他,我的心突然惆怅起来.几年前的自己也

产品经理都应人手一本的书

在距离腾讯深圳总部几百公里之外的广州研发部里面,有个奇人,他衣着朴素,面颊削瘦,语速平缓.而且媒体记者一般很难见到他,不过如果某个话题触动到他,交谈的时候也会变得异常顺利.而这个人就是腾讯公司的高级副总裁,人称"微信之父"的张小龙. 张小龙对他的产品经理会要求人手一本<乔布斯传>,而且也曾有人说过,如果有求职者声称自己看完了凯文·凯利的<失控>,那么面试就可以结束了.而作为一名"微信先生",张小龙在平日里会看哪些书?而这些书又是如何影响着他对

如何从软件测试工程师发展成为产品经理?

精彩回答: 天顺: 这个问题仿佛就是问我的一般.先说说我自己. 我毕业后从事了相当一段时间软件测试的工作,最高做到高级测试工程师,带部门2/3的测试工程师,负责公司大多数项目的测试管理.在做测试的过程中,我渐渐对产品经理这个工作产生了兴趣. 每当研发和测试为了功能点吵得不可开交的时候,最经常听到的一句话是:别烦了!问产品经理不就知道了! 每当项目上线后,技术的同事们都相当盼望着知道项目的结果(别说技术同胞们是死脑筋只会写代码,项目给公司带来利润多少,是否成功,是很多技术同事非常关心的,成就感这东