我本身的专业是法学,出于一直以来对互联网领域的兴趣,修读了软件工程的第二学位。虽然实际的编程能力还是很弱,不过实实在在的专业学习还是有很大的帮助。
我本身并不擅长技术,对设计相关的内容也仅限于了解一些基础概念,避免出现低级错误。所以这个章节算是对沟通部分的补充,并不是很专业地技术/设计入门推荐,只希望了解一些常识有助于和设计人员、开发人员的交流。
先说技术。这些都是纸上谈兵,我属于编程能力比较弱的那种人,只不过比较喜欢关注技术领域的一些新闻,只是简单说一说技术相关的内容。
如果非计算机专业的同学想认真学技术的话,可以阅读@萧井陌和@Badger的《编程入门指南》或者《知道创宇研发技能表》,同时推荐网易云课堂的《计算机专业体系》。
此外,推荐想要成为产品经理的同学学习一些前端相关的知识或者学习一些脚本类语言比如Python。前端相关知识相对来说注重前端呈现,不像后端特 别追求性能,并且前端有自身的设计规则(类似的,iOS/Android/WindowsPhone也都有各自的人机界面指南),对产品设计有很大的帮 助;与C/JAVA相比,不需要那么多的数理知识和算法要求。而脚本类语言相对更为友好,没有那么抽象,编译器/IDE也较轻,适合入门。
简要介绍一些编程语言相关的内容。
HTML/CSS/JavaScript
前端相关,HTML算是比较熟悉的,毕竟是简单的标记语言,相对来说对逻辑的要求没那么高;CSS没深入学过,能简单改一改;JS简单用过框架,没 深入了解过框架源码和架构。前面说过,我认为这部分应该是最应该了解的,个人感觉C系列的编程语言以及脚本类编程语言都比较偏向技术实现,而前端类的编程 语言比较注重呈现的效果,这一点在产品设计阶段需要关注到。
从另一个角度来说,随着 HTML5 在移动领域的表现越来越好,学习web相关的知识,对移动端也有很大的帮助。
Basic
没接触过,据说更加类似搭积木,没有那么抽象。如果一点没有接触过编程,推荐先玩一玩Small Basic,类似很久之前的LOGO语言,很有意思,英文官网疑似被墙,我这里现在无法访问。
C/C++/C
C还算好点,***的时候能弄懂一点指针的概念,很久不写也就忘记了。C++/C#有个好处,可以使用MS的IDE——VS2013。
JAVA
仅仅入门过,有意从事安卓相关职业的同学可以学习。
Python/Ruby
脚本类语言。Python入门,Ruby没学过。相对,Python的免费电子书比较多,推荐「Python 中文学习大本营」。
Linux
推荐《鸟哥的Linux私房菜》,想入门安全的可以搞搞Kali Linux。
数据库
数据库方面无法推荐,图形化操作还可以,SQL没有认真学习,数据库只了解一些概念性的东西。 相对来说,了解一些技术性的概念有很大帮助,比如「高内聚低耦合」等。适当熟悉一些简单的编程语言,对产品设计时的思路有所帮助。从另一个角度,也有利于估算产品的开发进度。
严格来说,软件工程专业的学习对我帮助***的并不是编程语言的课程,而是《软件工程》/《软件项目管理》两门课程。虽然***终于确认自己没有编程上的天赋和耐心,与其吐槽自己Hello World级别的编程能力,倒不如讲讲一些其他的体会更好。
#p#
关于软件工程
软件工程里对我帮助***是「软件生存周期模型」,其次是需求分析的一些方法和文档,UML图等更偏向详细设计,并不十分适合互联网产品快速迭代的开发模式。
我们可以看一些软件生存周期模型和产品研发流程的示意图:
瀑布模型
快速原型模型
产品研发流程
又一个产品研发流程
两者虽然不尽相同,但是却有着某种共性:需求——设计——开发——运营。
互联网产品由于其特性,不断循环这样一个流程;而快速迭代,实质上也就是将每一个这样的流程缩短,尽快推给用户,得到反馈,继续下一个这样的流程。 也因为跟传统软件公司的不同,没有甲方的存在,必须要从用户中获取反馈,所以产品经理必须要有一定的数据分析和用户调研能力,辨别真需求和伪需求。也就是 经常说的,找准用户的痛点。
有些产品经理的入门书籍中说过产品经理和项目经理的区别,知乎上也有一些回答。一般大公司分得比较细,两个职位都有专职人员,小公司很多都是一人兼 两个职位。即便如此,学习《软件工程》相关的知识绝对对成为产品经理有所帮助。像刚才所说的,最基础意义上的,理解软件的生命周期,对理解快速迭代、理解 产品的开发流程非常有帮助。撇开产品经理/项目经理的区别这点不谈,软件工程领域有一本书推荐阅读:《人月神话》。这本书我仅限于了解,并未深入地精读。 《人月神话》本身是比较偏向项目经理方向,但是学习一些其中的观点还是很有用处的,避免在策划中忽略一些定量/变量,率性而为。
因为大学期间在图书馆的兼职经历,对图书的分类比较敏感,相当多的产品经理书籍都分到了F类——即经济管理,这本书也属于F类。从管理的角度上来 说,《软件工程》就属于对软件(产品)的管理。用vczh的一个回答来介绍这本书:“这本书的主要内容是,一个程序让vczh一年刚好可以写出来,但是你 如果找到了12个vczh同时写,一个月肯定是写不出来的。人和月是两个单位,人月自然是它们相乘了,神话的意思就是说,这两个量是不能乘的。”
虽然说产品经理不一定要会设计,但是有必要了解一些设计相关的知识,避免出现一些低级的错误。推荐阅读《众妙之门》系列,都是小册子,比较简单;还有王坚在《结网》中推荐的《点石成金》、《GUI设计禁忌》以及《写给大家看的设计书》。
《点 石成金》就是大名鼎鼎的《Don’t Make Me Think》一书的中译本,我也是返校之后才去补课读的这本书,短小精悍,即便第三版加入了移动应用相关的内容,依然简洁,全书不到200页,一个下午的 时间足够做到通读***遍。除了总结一些基本的可用性设计准则外,对可用性测试做了相当详细的叙述。此外还有一本《用户体验要素》也有很多人推荐,准备这几 天补课;同时推荐豆瓣上根据此书整理的一个书单:以《用户体验要素》整理互联网产品经理书单。 在「媒体和博客」那一篇里提到过一些大公司的UED团队,推荐了一些链接,特别是。针对移动产品的策划,十分推荐了解相应的人机交互规 范:iOS/Android/WindowsPhone,这里的链接都是英文版的,国内的一些团队都有针对性翻译一些中文文档,在「媒体和博客」一篇中已 经有所推荐,不再多给链接。还有一个之前没有提到过的,谷歌去年提出的「Material Design」。
***,多说一句:我认为互联网上本质依然是技术驱动的,开发人员才是核心。所以,尊重技术,不迷信产品。