【灵魂拷问】产品经理是不是需要懂技术?

答案是:懂最好,可以不会编程,但至少要具备基础知识。

这可是我走了很多弯路总结出来的血淋淋的教训!

当我在研一刚萌生想做产品经理的想法时,有人跟我说产品经理要懂技术。

我当时就想我一定要想办法把自己的技术能力提升到一定的水平,再去找工作,不然以后就没机会学习了,至少能做出一个完整应用。

所以,我就努力搞学术,在研一就把小论文发表了,这样就可以出去实习了。

后来,我去了追光动画(王微从土豆离职之后,创办了追光动画,立志做中国的皮克斯,试问现在还有多少人记得土豆网?欣慰的是追光最近出了一款口碑还不错的动画:白蛇·缘起,恭喜老东家)实习,他们当时为了宣传动画想做一款VR产品,戴着VR头盔就能走进电影世界。这跟我的专业太对口了。

做项目用的语言是C#,后来自己在宿舍自学了JAVA教程,找了一个入门教程一段一段的敲代码。

等我真正做了好长时间产品经理之后,发现做产品其实不需要会编程。懂技术不等于会写代码。

懂技术的目的是:了解自己产品的实现逻辑,从而更好的跟研发沟通。

作为产品经理,只需要知道如下几点:

•从技术角度看,一个互联网产品 的结构是怎样的,各自承担什么功能(例如:前端、客户端、后端、数据库等)。

•从技术角度看,当用户进行某种操作后,程序运行的基本逻辑是 什么(例如:前端的操作控件如何提交请求到后端服务器,经过什么样的处理,如何返回结果等)。

•对其他常用的技术细节有概念。

所以,在这举两个例子,相信你就会对程序的运行逻辑有个全面的了解。

案例1:在网页上登录(B/S结构)

B/S结构即浏览器(Browser)和服务器(Server)结构。我们访问一个网站,输入正确的用户名和密码后,点击“登录”按钮,过一会儿,我们就看到了自己账户中的内容(例如余额数 字)。这个过程司空见惯,但是从技术角度来讲,上述这句话描述的过程的具体实现逻辑可能是下图所示。

第1步,用户在浏览器中输入网址,按回车键,这时浏览器通过网络连接到服务器,向服务器索取这个网址所对应的网页内容。

第2步,服务器找到对应的网页内容(源代码),然后通过网络将这些内容传输给浏览器。

第3步,浏览器得到这些源代码,然后将其解析成网页展现给用户。此时用户看到两个输入框,分别是“用户名”和“密码”,同时有一个“登录”按钮。用户输入正确的用户名和密码, 点击“登录”按钮。

第4步,浏览器再次连接服务器, 将用户输入的内容传输给服务器,并告诉服务器,用户要执行登录操作。

第5步,服务器知道了用户的意图,获取到用户输入的用户名和密码这两个数据之后,紧接着连接数据库,将“用户名”这个内容传给数据库, 要求数据库提供相对应的“密码”字段内 容。

第6步,数据库找到相应的内容, 然后将“密码”信息返回给服务器。

第7步,服务器将用户输入的“密码”与数据库返回的“密码”内容做对比。假设对比的结果是“一致”。

第8步,服务器找到该用户登录之后应该看到的网页内容,但是“余额”这个具体数值服务器不知道,于是它再次向数据库(注:不一定跟上一次是同一个数据库)询问这个用户的余额 是多少。

第9步,数据库接到请求,找到余额数据,并返回给服务器。

第10步,服务器再次将这些网页内容(源代码,包含余额信息)传输给这个用户的浏览器。

第11步,浏览器得到这些源代码,然后将其解析成网页展现给用户。用户看到了登录后的网页上面有他的余额数字。

由此,我们可以得到下述结论:

1、一个简单的登录操作,在最简化的模型中,是由浏览器、服务器 和数据库这三个环节协同完成的 (实际情况更复杂,可能还涉及 DNS解析等)。

2、浏览器可以解析服务器传来的内容,显示给用户,就成了用户看到的“网页”。点击网页上的“登录”按钮,网页可以向服务器提交数据,服务器可以处理这些数据,是因为网页和服务器上都有相应的“程序”。

3、在上面描述的过程中,浏览器就像是一个空売,其内部显示的不论是内容本身(例如“余额数字”),还是非内容的UI和功能部分(例如“‘登录’按钮”)都是由服 务器传输给它的。

4、所有的关键数据都存在数据库中。

案例2:在手机客户端上的发图片(C/S结构)

C/S结构即客户端(Client)和服务 器(Server)结构。如果你正在微信发朋友圈,或者发微博,从手机相册中选择一张图片,写几句话并发送,过一会儿,你的好友就可以看到这张图片和这几句话。这个过程听起来也很简单,但是从技术角度来讲可能会经历下图所示的逻辑过程。

第1步,用户A打开手机上的某社交类应用客户端,想要选择一张图片。这时,该应用客户端程序向手机操作系统(如i〇S或Android)请求访问手机相册,得到允许后,列出相册中的所有图片供用户选择。用户A选了一 张,原图的大小为5MB,并写了几句话,按下“发送”按钮。客户端程序发现这张图片太大了,使用4G传输会很慢而且会耗费大量的流量,于是自动将其进行了压缩。

第2步,客户端程序使用网络连接服务器,并将压缩过的图片和那几句话传输给服务器,同时告知服务器, 这些内容是“用户A”产生的。

第3步,服务器接收到客户端程序传来的内容,连接数据库,将这些内容存储在数据库中,并标记好是“用户 A”的内容。

第4步,数据库完成存储工作,然后通知服务器,存好了。

第5步,服务器接收到数据库的通知,然后通过网络将这个信息通知给用户A手机上的客户端程序。这时,客户端程序在用户A的手机屏幕上显示一 个“发布成功”的提示。

第6步,这时,用户B也打开了安装在其手机上的该社交类应用的客户端程序,他跟用户A是好友,程序自动通过网络向服务器发出数据请求,要求服务器返回用户B的所有好友的内 容。

第7步,服务器接收到请求,连接数据库,希望得到某个时间节点之后用户B的所有好友的内容。

第8步,数据库找出用户B的所有好友在这个时间点之后产生的内容(其中包括刚才用户A发送的图片和文字),然后按一定格式返回给服务器

第9步,服务器接收到数据库传来的数据(有图片、文字),然后将其通过网络传输给用户B的手机客户端程序。

第10步,用户B的手机客户端程序接收到数据,然后刷新用户B的手机屏幕上的内容。这时,用户B看到了用户A发送的图片和文字。

通过这个案例,我们可以得到更复杂一些的结论:

  1. 客户端软件往往不只是一个用来装内容的壳子,它还具备一些功能逻辑,例如压缩图片的功能,这些功能都是开发工程师写代码实现的。
  2. 在上述流程中,客户端程序和服务器之间交换的是纯内容数据,不包含UI和功能部分,因为后两者都已经做在客户端程序里面了
  3. 一般情况下,客户端的使用体验应该比网页更流畅一些,因为它与服务器只需要相互传输内容数据,不需要传输UI和功能。同时,网页与服务器之间的数据交互需要通过浏览器这个媒介,所以必然要受到浏览器的一些限制;而客户端则直接与服务器交互,听起来后者应该性能更好,可以做到的事情更多一些。

综上所述,我们可以看出,即便是两个最简单、最常见的操作流程,背后对应的技术实现逻辑也是非常复杂的。作为产品经理,要能够理解这些基础的技术逻辑,这样才能与工程师相对流畅地沟通。

公众号:薛老板产品派 ,定期更新产品经理求职面试高频问题解答、产品思维提升、互联网新闻解读、手把手带着做实战项目和实习项目~

以下牛客高赞答案也许同样对你有帮助:

❤️看完两件事❤️

看完这篇内容之后如果对你有帮助,我想请您帮我两个忙

1、点赞, 让更多的人看到这篇内容( 收藏又点赞,手拉手好朋友 )

2、关注我和专栏, 让我们成为长久的朋友关系,精彩回答可以第一时间收到

#无实习如何秋招上岸##如何一边实习一边秋招##实习与准备秋招该如何平衡##投递实习岗位前的准备##产品#
全部评论

相关推荐

不愿透露姓名的神秘牛友
10-12 10:48
已编辑
秋招之苟:邻居家老哥19届双2硕大厂开发offer拿遍了,前几天向他请教秋招,他给我看他当年的简历,0实习实验室项目技术栈跟开发基本不沾边😂,我跟他说这个放在现在中厂简历都过不了
点赞 评论 收藏
分享
10-24 11:10
山西大学 Java
若梦难了:哥们,面试挂是很正常的。我大中厂终面挂,加起来快10次了,继续努力吧。
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
11-21 17:16
科大讯飞 算法工程师 28.0k*14.0, 百分之三十是绩效,惯例只发0.9
点赞 评论 收藏
分享
2 14 评论
分享
牛客网
牛客企业服务