对于产品经理来说,是否学技术以及学什么样的技术,首先要看学习之后对日常产品工作是否有帮助。
我一向认为,学习新知是要有目的性的,它必须是可以拿来用让我们变得更好,或者它可以无形中在影响着我们的生活,换句话说是要不能带来物质收益,要不带来精神收益。对于技术学习来说也是这样,决定要不要学习的不是别人都在学,而是学习技术对你有没有用 。
一、产品经理要不要学技术?
任何一个互联网产品都会经历一个从需求定义到方案设计到编码实现再到调试纠错的过程 。
从产品工作角色分工来看,产品经理主要负责需求定义以及方案设计,技术人员负责编码实现,调试纠错一般由测试人员和运营人员负责。产品经理要不要学技术这个问题出现在产品经理确定需求及方案设计过程中是否涉及技术逻辑,以及确定需求及方案设计之后交由技术进行编码实现这个沟通过程中,懂技术能否提高我们的沟通效率。
1、确定需求及方案过程中是否涉及技术逻辑?
这里说的技术逻辑不是指需求以何种语言来实现,更多是指产品表现层之下的技术逻辑。
比如用户需求反馈要增加一个搜索的功能,产品经理这时候所做的工作就不仅是简单的出个原型和设计图,优秀的产品经理往往首先会想:
- 这里建立索引需要从哪些地方获取数据 ?
- 哪些数据应该作为目标的命中文本?
- 这些文本权重怎么处理?
- 是否需要加上一下非文本数据作为排序依据?
- 这些非文本数据怎么安排?
- 这个搜索的时效性是什么样?
- 是否需要增量消息的机制?
- 如果用增量消息的机制是否数据源和搜索引擎的开发周期要加长?
这些问题清楚之后,最后要做的才是出需求文档,原型和设计图,此种情况下就要求产品人员懂技术,以便了解与需求相关的技术逻辑,避免不合理需求。
需求文档,原型和设计图是表达产品经理需求的媒介,产品经理更重要的是要以正确的方式设计正确的产品运行逻辑,然后把方案设计交由技术人员进行实现,而不是单纯的告诉技术我要实现某个需求,看似一个表面层产品需求背后涉及多个层面的运行逻辑。
2、懂技术能否提高我们的工作效率?
我们会经常看到网上一些技术人员大吐苦水,其中大部分原因要不是产品经理提的产品需求逻辑行不通,要不是产品经理无法说清具体的产品需求。
产品经理的作用是把用户需求提炼为产品逻辑讲给技术人员,技术人员所做的工作是把产品经理描述的产品逻辑翻译成计算机能听懂的语言让计算机进行实现,在产品需求传达过程中就要求产品人员能在产品逻辑正确的情况下,清楚准确地把产品需求传达给技术人员,这时候产品经理如果懂技术就能站在技术的角度上去思考问题,在进行沟通时也会兼顾技术逻辑与产品逻辑,提高沟通的效率。
技术是实现产品的基础,一旦你了解一门技术的边界在哪里,就不会再天马行空地提出无法实现的需求,而与你合作的研发工程师,也会更愿意配合你,所以对于产品经理来说,技术也应该是一门通识课。
二、确定学技术之后,产品经理应该学习哪方面的技术?
不同阶段的产品从业者,学习的内容有所不同。
1、已经在从事产品工作的同学
对于一个已经在具体岗位上负责某项产品工作的同学来说,这时候的学习技术往往处于两个目的,一是日常工作需要,另一个是提升自身能力,如果是工作需要可参照以下的方法,如果是寻求提升请继续往下看。
和工作相关:
- 了解你的产品需要哪些技术
- 搞清几种所需技术之间的关系
- 了解其中每种技术的基本逻辑
- 用产品逻辑推技术逻辑,然后用技术逻辑反推产品逻辑
已经从事产品工作的同学学习技术并不是要求你会敲代码,而是要明白产品背后的技术逻辑,明白技术能用来做什么,明白如何更好的融合技术来实现自己对于产品的想法, 以及在提出需求时能从技术角度评估技术实现成本。
2、准备从事产品工作的同学
产品经理岗位要求上并没有要求懂技术,更看重的是是否具有用户思维,逻辑能力是否清晰,有技术背景的会是加分项但不是决定因素,技术逻辑可以在日常工作中学习。当然如果你决定从事互联网方面的工作,最起码要知道一些专业术语,比如缓存、JS脚本、Ajax 、数据库、存储过程、BI等等名词到底是什么东西? 如果有心想要学习一些技术知识,那么请重点观看下文。
平时我们所说的技术主要指开发技术,分为前端技术和后端技术。对于想要成为产品经理的同学可以学习一些前端相关的知识,前端相关知识相对来说注重前端呈现,不像后端特别追求性能,并且前端有自身的设计规则 ,对产品设计有很大的帮助。
(1)前端技术:HTML/CSS/JavaScript
- HTML:超文本标记语言,标准通用标记语言下的一个应用,主要用于表现层,产品经理最好懂HTML,注意不是HTML5,当然要是懂H5就更好了,HTML是最基本的网页脚本语言,有时候看不懂某个页面的逻辑时,可以点击右键属性—“查看网页源代码”来看一看。
- CSS(Cascading Style Sheets) :一种用来表现HTML或XML(标准通用标记语言的一个子集)等文件样式的计算机语言。学习时重点了解CSS框模型、选择器种类,以及定位模式等等。
- JavaScript :一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为JavaScript引擎,为浏览器的一部分,广泛用于客户端的脚本语言。
前端类语言学习可以从这三种语言入手,前端类的编程语言比较注重呈现的效果,这一点在产品设计阶段需要关注到;前端页面的展现离不开服务器和数据库的支持,这就需要用到后端技术。
(2)后端技术:php/python/java
- php: 是一种创建动态交互性站点的强有力的服务器端脚本语言。 PHP 是免费的,并且使用广泛。是时下热门的后端语言。
- python:python不是专用语言,应用范围比较广,目前常用于运维中的脚本,网站开发,学习Python,对数据分析能力方面也是一个显著的提升,对于数据分析方面,有时候你可能需要各种Excel表格,各种公式罗列,甚至当数据量过大的时候,对于数据的分析还会造成阻碍,而通过Python,只需要简单的做一些基础的命令行,便可以轻松获取相关的数据 , 能极大的提高工作效率。
- Java:一种可以撰写跨平台应用程序的面向对象的程序设计语言,广泛应用于PC、数据中心、移动电话和互联网,有意从事安卓相关职业的同学可以学习。
无论是前端还是后端语言,只需要知道技术逻辑即可,如果想深入学习,动手敲一些代码是一个不错的方式。
3、所有在做产品经理的或者想从事产品工作的
除了前后端语言,无论是已经在从事产品工作的同学还是准备要从事产品工作的同学,都应该了解一些常用的技术,了解这些技术能极大的方便日常产品工作的开展。
移动产品:
- 了解动态静态语言的区别,
- 了解什么叫 SDK、封装;
- 了解什么是 MVC 结构模型;
- 了解在纯技术上前端和后端如何区分;
- 了解什么是 API;
- 了解常用的数据库类型及其优缺点 ;
- 看得懂每年的 WWDC 和 Google I/O。
pc端产品:
- 了解基本的Box模型概念
- 了解DOM概念
- 了解同步/异步的概念
- 了解前端常用的框架,知道它们各自的优缺点和适用环境
了解移动环境和 PC 环境的区别对前端开发的影响
项目侧:
- 了解什么叫构建 集成
- 知道SVN和Git 的使用是为了解决什么问题
- 试着通过实践学会使用git,甚至了解 git-flow
- 了解常见的持续集成工具
- 解发布流程
确定产品经理是否该学技术以及学什么技术之后,接下来关于有关学习渠道的问题我就不在这里啰嗦了,感兴趣的可以关注我的微信平台。
最后强调一下,产品经理要忌讳对技术的深入钻研,因为那样的话容易导致从技术工程师的角度出发,在进行产品设计时往往会走向误区,另外就算对技术有所了解,在和技术人员沟通的时候也应该尊重技术人员的看法,术业有专攻,产品经理不能偏离自己的职业定位,最重要的还是要懂用户心理,懂用户需求,懂市场需求。
作者:王豫强,人人都是产品经理专栏作家,95年产品经理,一个既懂产品又懂运营的全栈小能手。微信公众号:王豫强