和大家一样,我也是一名普通的程序员,很快工作五年了。现在依然记得大学时软件工程老师曾说过的一句话,大概是这样的:“工作五年之后,就基本可以分出大家的区别了”,这句话大概有两层意思,第一,大家都基本确定了自己的工作或职业方向;第二,一个人的能力如何基本已经确定了。先抛开这句话的真理性,至少它本身是有些道理的,当然随着时间的迁移,当初的五年时间对于现在可能已经不太准确了。但这句话一直陪伴着我,每过一段时间,我就会想起这句话,因为自己很想知道五年之后自己是什么样子,总告诫自己一定要找准方向,要努力学习,让自己在合适的时间能有质的飞跃,能够在同行同辈之中脱颖而出,在工作或事业上形成一个转折点。愿望总是美好的,而正因为有了美好的愿望,人类才能够不断向前走。
读高二时开始接触电脑(那时用计算机这词也太过专业了吧),偶尔跟着同学去网吧泡泡江湖,论坛形式的游戏,那时要是能打到只凶猛的老虎那可真是令人羡慕忌妒恨啊…。也是那时第一次听了刘若英的《后来》,而且网吧经常放这首歌,直到现在,一听到《后来》就会勾起我的回忆,那感觉挺好!江湖,很侠气的词儿,估计现在的年轻人都不知道曾经有款如此简单低级的游戏了,呵!从那时起,我算是真正的接触了电脑,接着学聊Q、听音乐、玩CS…。还好自己一向比较能克制自己,以致于最终基本不影响考大学。
报考大学的时候,许多人都是糊里糊涂的报,专业名看起来顺眼就基本差不多了。但那时我却有着明确的报考方向,那就是计算机专业,在那时我似乎就已经知道编程是怎么回事儿了,虽然我真的是没接触过。
上了大学,读的是自己喜欢的计算机科学与技术专业。
入门的编程语言是C语言,接触了之后挺喜欢它,那时觉得它简单易学,似乎能够解决好多问题。
第二门编程语言是Java,经过一段时间的学习发现,Java代码之优雅、结构清晰等优点深深的吸引着我。
C++自学过一个月左右,ASP了解了一些,C语言和Java都开过课程,那时Java在我心中绝对是第一语言。
大三第二学期开始接触J2EE,后来基本上每天都会学习相关的技术知识。在老师和师兄的明师指路之下,开始自学了HTML、JavaScript、CSS、XML、DTD、XML Schema、MySQL、Jsp、JSTL、Sitemesh、Spring、Struts、Hibernate、EJB、CVS、Jcreator、MyEclipse等技术与工具。毕业设计与几个同学开发了一个小系统,毕业设计文档还把软件工程的几个步骤给整了一遍,结果还像模像样搞得挺自满的。
就这样,我带着一颗对编程的热情与好奇心,慢慢的踏上了程序员之路。
工作后,先后从事了金融行业、电信行业,工作内容经历了写代码(SSH、JSF、ExtJs、单点登录、Eclipse插件开发、GWT开发…)、Linux日常命令使用、安装配置Linux、基于Linux安装MySQL/Oracle及维护、应用系统部署及维护、技术沟通、需求调研、技术管理、工作分配与进度跟踪、项目管理、招聘等(不分先后),一路走来,真是五花八门啊,相信大多数前辈和同辈们都是如此走过来的吧!
软件这个行业,都说是业务是灵魂,技术是手段,技术不太重要,业务才是最重要的。也许,这就是软件行业在浮躁而极富特色的中国被糟蹋的结果吧。
但我个人始终认为,作为一家软件企业,技术永远是最重要的,技术才是软件企业真正的灵魂,我反对那些不重视技术的软件企业(虽然你们也是受害者,但却是你们把中国程序员给害的)。
下面总结点自己的工作经验:
1、没有解决不了的技术问题,关键是时间与方法
2、不要说没时间,时间真的是挤出来的
3、Bug是永远改不完的,关键是要修复严重的、影响业务的、显眼的Bug
4、随着项目的开发,接触项目的人越来越多,项目代码越来越乱,风格五花八门,潜在的Bug越来越多,以致于谁都不想去维护了
5、很多程序员写代码不负责任,写代码的水平暂且不说,更令人发指的是,代码测试都没过自己那一关,总想留着让别人去测试,那个汗…
6、喜欢技术的程序员太少了,都想着三五年后转管理,赶紧摆脱技术圈
7、浮躁,简单的注释、命名、代码风格、代码重构、代码测试、业务理解都没做好,就想着做有挑战性的工作、想着转管理,怀着这种心态的兄弟们,你们真能把其他事做好?
8、项目经理很多,但大多经验不足,基本工作是了解需求并做初步分析,简单的工作计划,工作分配,进度跟踪,对系统发表几个观点、提几个问题。这些是必要的,但我觉得有很大的不足,项目经理应该更多的参与到项目的整个过程当中。让程序员开发系统,永远是从实现功能的角度去思考问题,这一点恰恰是开发系统的重伤,因为客户关注的是业务流程。程序员总把问题复杂化,如系统功能强大、支持N多种场景、界面内容丰富等等。没错,作为程序员,我们更多的是想展现并充分发挥自己的能力,但客户想要的确是简单易用、清晰而实用的系统。所以我想说的是,程序员重在功能实现,而客户关注的是结果,项目经理应该多从客户或使用者的角度去参与项目,这样做出来的系统才能够符合客户的要求,程序员才能少加班,因为业务流程清晰、简化实现,从而减少返工的确能够节省很多时间。
技术,将会一直陪伴着我,无论将来我处在哪个岗位上,因为我学习技术的出发点是兴趣,有时候自己想想甚至不知道为什么,反正就是喜欢。
程序员之路才刚刚起步,路还很远,但绝没有捷径,只有脚踏实地,一步一个脚印,程序员人生才会更美好!
写文章对我来说挺难的,想当年读高中的时候,还曾经语文考了倒数第一,所幸的是仅此一次。那时每次写作文的时候,我只写议论文,而且只会“总-分-总”,什么名言警句、典故之类的,都是瞎编,纯粹就为了凑篇幅。所以,这篇文章也花了几个小时的时间,时间虽长,内容却有限,但总而言之总结能令人反思与进步!
很多人表面上看着老实巴交的,实际上内心比谁都好强、自负、虚荣、甚至阴险。工作中见的多了,也就习惯了。
有一些人,什么事都写在脸上,表面上经常得罪人,甚至让人讨厌。但是他们所表现的又未必不是真性情。
我相信大多数人都看过《豪门夜宴》这部香港老电影。张学友、梁朝伟演的拍马屁的场景太有意思了,其中有这样一段:当两马屁精帮老板说出主意,老板马上叫停,然后拍一下脑门:“哦,我想到了......”,把别人的idea当成自己的说出来。我在工作中还真不止一次遇到这种事,我提出来的想法老被别人拿来当作自己的原创,当然个别小偷洋洋得意的描述自己的‘原创’时还会偷偷的瞄我一下,看我有没有不高兴,我并没有不高兴,大概是因为想到那个电影段子被逗乐了。天下学术都一大抄,更何况什么想法,什么创新,通通都是浮云!君不见创新项目一大堆,都被抄死化成灰!但是不能因此而放弃创新,大地不可以因为有畜牲吃草而不复生机,山泉也不会因为有王八偷水而不冒活水。第一点:保持有一颗生机灵动的心。因为这个东西是别人偷不走的,也是最大的财富。如果你不俱备这个东西,那么请用一颗善心去培养它。人人都是耀眼的珍珠,只是被灰尘蒙蔽了眼。
记得刚进公司那会踏踏实实工作,满怀激情。不过第一周就把自己的顶头上司给得罪了,我并没有做错什么,记得当时还有同事帮我说话,后来慢慢发现他是一个相当自负的人。不过话说回来搞技术的在技术方面有几个不自负。这次事之后我并没有学乖。对于别人设计不合理的地方,我会指出来,并提出该如何做。对于语言基础薄弱,设计模式薄弱的同事,我会好心推荐一些书籍,本是好心帮助别人,却并没有得到别人的感激。相反,大部分会觉得你看不起他们,更有甚者不但不会反思改进自己的弱点,反而打击报复”看不起“他的人。所以千万请记住第二点:不可以随便提意见。特别是新人,请务必保持低调。这一点在日常生活中同样实用。
与对二点相对,第三点:经常肯定、称赞同事的成果和进步。注意这里并不是要你去巴结讨好。常常看到别人的优点并加以肯定也是比较正面和必要的行为。这样不但可以增进关系,更重要的是可以鼓励别人。
我一直认为一个人没有自知之明就等同于垃圾。要随时随地知道自己小名叫什么。话说我有一位同事,基础相当薄弱,但又太爱去表现自己,经常到处指指点点,生怕别人不知道自己是“高手”。由于老开“黄腔”常被人背后偷笑而不自知。
第四点:低调一些,谦虚一些,不断提高自己的实力。
进公司时所在部门是刚成立的,工作一段时间后,我发现由于部门团队开发的特殊性很有必要在公司通用编码规范基础上再制定内部的编码和设计规范,于是向上司提了我的想法,他同意了。于是我起草了一个内部规范手册。但是执行过程中,有人按手册来,有人不按手册来。产生这种局面的根本原因是上司并没有支持。在这里没有必要分析原因,直接给出要记住的第五点:不在其位,不言其事。做好本职工作就好。无论在什么地方,开明而大度的好上司并不多,所以这一点相当重要。
经常在开会讨论设计方案的时候,会发现一个非常有意思的事情。会议本来进行的正常而和谐,当轮到某个优秀的人上去讲的时候,气氛一下子不和谐了。大家都迫不及待的想挑出他的毛病,就算没理解别人的意思也会乱说一气。秀才遇到兵了,以前实习的公司中也时常见到这种情况。每当此时我都会在下面感叹:好一幅百鸟”嘲“凤图。
请记住第六点:木秀于林风必摧之,要懂得韬光养晦,不要时时锋芒毕露。
公司里有个老员工,实力比较强,算是一个独挡一面的人。不过在一次部门改组中并没有得到提升,被提升为经理的反而是一个能力不算太强,还比他晚来的人。在此之前我听到过那个老员工在和其它公司接触并准备跳槽的传闻。
第七点:不到最后一刻,自己离职的想法决不可以和公司内部任何人分享。因为站在公司的角度来看你已经不忠诚了,不愿意重用你了。但是在员工自己的立场来看,公司给的待遇与能力不成正比、不认同公司的文化、想换个环境、想要一个更好的发展机会,这些都是合情合理的。我个人发现一个规律:在一般的公司里,凡是坚持到最后经受住了“考验”的“忠诚”者,往往都是没什么能力的庸才。如果你是一个公司高层管理者,那么你会如何对待类似的“叛徒”呢?
第八点:不得罪办公室里的女人。此处女人定义如下:(1)国宝级的女程序员;(2)女测试,这个不稀罕 ;(3)女助理,到处都是;(4)女上司,这个最要命! 男的处在一起,有什么冲突矛盾吵吵过了就忘了。但女的不一样,一不小心就得罪了,后边一逮到机会就会摆你一道,还没完没了!最要命的是:背地里狠狠的阴你,而当着面表现得像你温馨的亲人。
我们研发中心有个领导很可爱,不太清楚上面给他灌了什么迷魂汤,以至于自己职位被降了,职权被销了很大一部分,还整天手舞足蹈高兴得很。事后一两个月才反应过来不对劲,然后整天愁眉苦脸。以这种交际反应的速度,被撤是必然的事情,确实不适合搞管理。技术男大多脑袋是‘方’的,不太善与处理人际关系。
第九点:加强交际能力。程序员大多还算是聪明的,平常稍稍注意一下就没什么大问题。不过不要自我感觉良好,我们公司有个工作了十多年的IT男,几年前就开始被派除去和客户沟通,丫的,至今那一口吞吞吐吐的蹩脚的普通话让人听了就伤心。
第十点:若无特殊情况,一定不要跨级汇报。这一点细节很重要。某种意义上你的顶头上司就是你的老板,直接决定了你的发展,你就是他手下的兵。并不是谁官大就听谁的,要不然历史上那么多兵变都不可能成功,因为大家都只听皇帝的,呵呵。从另一个方面讲,你‘忠于’你上司的上司,他也不敢用你,因为谁知道提拔你之后,你会不会在越一次级!
第十一点:要善于向上司汇报工作。国家干部是不是人民的公仆本人不太清楚。但公司里那些大大小小的管理着一定是(如果不是这样那他就不是一个好上司)!那群夹板男,看着是个官,其实过得很苦。既要应付好上面的领导,又要充分调动下面群众做出业绩,整天搞得焦头烂额。上面的唱白脸,那么夹板男就唱黑脸。总之挺不容易。他们的猜疑心很重!时常会怀疑下面的人没尽心工作。虽然一般公司都有什么任务分配管理系统,但是那东西远远不够。你需要找准时机让他清楚你工作进展,你所做出的努力。
第十二点:不要轻易造成情绪污染。不要因为你一个人不高兴,而让别人都看你的脸色。要学会雪藏自己的情绪。你若是一个领导,那这一点就太要紧了。
第十三点:一举一动找准自己的位置、别人的位置。比如:吃饭时的座次,照相时的排列位置,群发邮件时收件人的排名顺序,文档作者的位置顺序等,这些都很重要。《易经》中有讲:明相位,立德业。要是你连自己在哪儿都不知道,你又如何到得了目的地。
第十四点:没有必要做一个愤青。刚毕业那会,我很愤青,看不惯这看不惯那。但是又能怎么样呢?弱肉强食的本质从来没有改变过,你要学会尝试去理解这个社会,理解种种关系。到某个时候你会发现:一切理所当然。你若真的不满意某个现状,那么就去尽自己的能力去改变它。势者,不均也!均则无势。
第十五点:记住别人的善,忘记别人的恶。一个人心里不应该有太多仇恨,仇恨是别人扔给你的垃圾,你又不是垃圾桶,老装着它做什么?在公司当算法工程师近三年了,别人怎么对我,我的心里跟明镜似的一清二楚。对我不好的人我并没太在意,更别说去报复。相反,他们有事要我帮忙的时候,我总能真心实意的去帮,甚至主动帮忙解决问题。这是这几年来,我对自己唯一满意的一点。我相信一句话:活着就是修行。但是你得清楚你修的是善行还是恶行。
毕业三年了,看看走过的路,总觉的有点荒凉。确实真正明白了许多道理。感谢帮助过我的人,也感谢打击过我的人。也许一个人只有亲身经历了困难才可能真正成长起来,由此我不得不感叹造化的残酷。
哎,又文艺了一把。
编辑注:对于产品经理和程序开发一职,在业内有一个生动的举例“产品经理好比打车的人,知道要去哪儿,并且知道哪条路最短;哪条路绕一点但是最顺畅;如果哪条路限行了,该走另外一条路。那么,程序开发团队就相当于是司机。打车的可以不会开车,但是要到目的地,知道上面的东西,可以省钱,省时间。司机可以接不同的人,不同的路线,只要能走到目的地就行。”那么司机如何变为那个打车的人呢?知乎上一群专业人士展开了精彩的讨论:
我是一名程序员,想转做产品经理,一方面觉得自己这方面更有天赋,另一方面我不想做只是面对机器的工作,热衷于做交流沟通性强的工作,对于转行谋职产品经理难度大吗?修改由于不清楚现在互联网公司对产品经理的需求是怎么样的,感觉大多只有大公司对产品经理职位需求比较突出,小公司需求不明显。
朱佳祺:
可能每一个搞程序的人,除了对编程有一种油然而生的爱的那种,恐怕有一个阶段都会觉得产品经理是一个自然而然的出路,无外乎几点:1,做技术太累,太枯燥(因为没有爱,编程和其他艺术或者技术一样,没有若干年的重复劳作和积淀是不会有大成的)2,觉得做技术比较卑微。3,做技术不容易找对象(nerdy look, 肥胖,其他各种不招人喜欢的因素,不潮。)4,虚荣心(产品经理好歹是个经历,有名片什么的。程序员就是民工等等)……所以想变成产品经理,多牛逼啊!可以使唤程序员,可算报仇了!有自己主导的项目了,可以和高层直接对话了。
说了一堆废话,我想说,这不光是我的想法,我身边有好多人都是这样从一开始就放弃了做一个技术。
现在我的想法是,做一个技术其实比做产品经理幸福很多。首先,你只需要关心你自己的东西,没有那么多杂七杂八的东西。第二,做技术的人比较单纯,更有利于思考。第三,其实产品经理的地位还不如你。你可以罢工,如果你的技术足够nb.但是他不可以,因为他上头有老板,下面有你。第四,产品经理一点也不比写程序轻松,有时候甚至比写程序要费劲的多。因为程序这个东西是一通百通,要搞出一个靠谱的产品可不是把一套模式复制就可以了。第五: 产品经理也是跟程序员一起混,因为圈子的影响,他们也可以看起来像nerd,肥胖,穿的很邋遢……
所以如果说只是觉得做程序太辛苦,想去当产品经理,那估计这个选择挺要命的。等于是用自己的短处在去搏别人的长处。但是如果是做程序做到一定境界了,想要更一步的努力,那么我想说这个转变还是很巨大的,对人也很锻炼。一般来说,最终产品经理想要完全不去写代码,那除非:你的公司极其的庞大,产品经理的团队可以组一个足球队。或者是你已经有了一个非常牛逼的团队和一个非常好的boss。
其实上面一大堆东西都可以总结为一句话:
因为小时候被老师各种虐,所以长大了也想成为老师去虐老师的娃。
跟这种想法是一样一样的。
最后祝各位想当产品经理的程序员能够让自己手下的it民工们都死心塌地的为你服务。
陈湛翀:
你不是一个好的程序员,可能是你没有发现程序之美,没有发现编程的魅力,没有真正爱上程序员这个工作,没有真正成为一个程序员。一个真正的程序员不会感觉到自己面对的是冷冰冰的机器,他面对的是一个可以实现他想法的朋友。
又或者是中国的这种环境导致你产生这类想法。
你的兴趣并不在程序员里,我觉得人就应该跟着兴趣走,应该毫无顾忌地转型去当产品经理。一个成功的产品经理确实需要有一定的技术功底,这样去判断一个项目一个功能是否有需要去实现,实现起来是否技术成本太大。同时,也可以避免受到下属的忽悠,你的技术功底足以判断出“这个功能实现起来很有难度”这类话的真伪。
最后,产品经理需要技术来实现自己的想法,程序员就可以自己去实现自己的想法了。不是产品经理才有创造力的,程序员同样有。我是认为,程序员是幸福的。
flamingtop:
“觉得自己这方面更有天赋”
我以前也觉得自己做产品有天赋,而且我发现不少技术人员觉得自己做产品有天赋,所以或者可以反观一下,如果真的是“天赋”的话,不会有这么多人都不约而同地这么认为;我觉得这实在不是什么天赋,只是你从事技术工作一段时间以后,开始有一些认识了而已;很多人都能对所谓产品说出个三五六来,就像一个画画画久的人,会自然而然的觉得自己对“艺术”有了“天赋”一样,不是很可靠的;
”不想做只是面对机器的工作,热衷于做交流沟通性强的工作”
这可能只能说明你不喜欢当前的技术工作,并不意味着你“适合”做交流沟通性强的工作,技术工作不总是有趣的,难免有厌倦的时候,但因为这个想去做产品是不太合适的,因为做产品也有和做技术类似的问题。
下面是我的看法:
- 我感觉国内的公司基本还没有这样的意识,能够真的让一个产品经理当起实职,对一个东西提纲挈领,有真正的职权去“负责”,因为不太可能被赋予这种职权;平时看到的所谓产品经理应该叫产品“专员”更加合适,但比其他的“专员”更虚;这个职位现在已经越来越像其他行业的各种经理了,比如保险行业人人都是经理,地产行业卖房子的都是经理,产品“经理”的语义差不多就是这个。
- 我认为如果其他职位的人转产品,技术职位的人应该是比较合适的,因为技术人员天天工作在产品的方方面面,对产品的需求和实现知根知底,信息的不对称问题在这里最小;另外一方面是市场人员,也很合适,也是技术人员转产品职位的最主要缺点,对市场的认知真的不够;很多情况下,技术人员转产品在管理层看来更难接受一点,因为一般管理人员不太懂技术人员的工作内容,习惯于自上而下的思考方式,觉得市场人员可能是更high level的工作,所以呢,“把握”起来更好,事实当然不一定是这样,但这是一个现实的难度。
- 和纯技术工作相比,产品工作在不同的abstract level上,需要的知识结构更宽广,单一的职位挺难获得这些需要的知识(和经验),所以就像一本书上说的那样“人人都是产品经理”,因为确实需要这样;产品是团队的高级目标,团队通常会在下意识的情况下一起完成对产品本身的认知和管理;这意味着其实无论是开发人员或者市场运营人员,实际上大家天天都在一起做产品,站高一点看,你做技术,不只是写代码,它还会确实地决定产品最后的工作方式,体验和面貌;来自市场和运营的工作同样最终体现在产品的最终形态里;所以产品就像是一个同时受内外(多方)环境决定的生命体,没有单一方面决定产品,但任何一方面都有重要影响;所以你从技术转产品可能是从“实际”在做产品到“看起来”在做产品。
我觉得再积累积累也是不错的选择,真的作为技术人员,把技术做好,未尝没有做产品的“实”。
另外,说的直白一点,要有真正的职权,真正地对结果和决定负责,要有把控方向的权力,仍然和团队一起做产品,但产品经理的决定不能够轻易地被override,这才叫产品经理。没有实权的产品经理,是没有做头的,会非常纠结的,技术人员转到这种角色,成本非常大,所以要看看你转到的职位是不是”实职“,还是只是“虚招”,我个人的经历,这个词现在很火,小心泡沫。
王宇鹏:
我是一名产品经理,我想转行成为程序员。 为什么呢?
- 产品经理没有实权,基本上很多小公司产品经理就是一个人,要与设计,程序,市场,销售,客服,各个部门沟通,而且如果产品没做好肯定产品经理是责任第一人。如果有一个好老板撑腰还可以,否则很难混下去。所以这也是很多国外ceo就是直接就管产品的原因,否则根本没有执行力, 同级别如何管? 这也是国内很多企业产品做的烂的重要原因, 产品经理实际就是打杂的。
- 技能要求高。 技术肯定要, 设计其实也要, 否则无法做原型设计。还有就是细节要求, 最重要的就是大方向要把握好。否则一个完美的产品没有市场也不行。word ppt excel 精通更是家常便饭、思维导图、原型工具/还要不停的研究新产品。如果遇到思维活跃经常变化的领导, 做PPT做到吐, 本来如果写程序写的多还有点用。 PPT做那么多根本没用。浪费脑细胞
- 产品经理前途渺茫, 除非你自己想创业, 否则产品经理实际没有太多升职空间, 国内的产品总监很多都是市场或运营的人来管的。 做产品的很少会做到总监级别。 当然国内腾讯还是很看重产品这个职位的, 但其他的公司基本没有看重产品的。
- 产品经理加班的确比程序员少, 但是产品发布测试的时候,也是忙死, 否则自己设计的产品非功能技术性问题其他人测不出来问题在哪。
程序员的优势
- 程序员以前的地位不行,但现在很多公司已经意识到技术的重要性, 程序员的薪资范围实际上限比产品高很多, 60万年薪不算什么, 国外公司年薪100万也是有可能的。 产品职位基本没可能。
- 现在世界已经不同了,程序员不再是苦力了,以前国内是渠道,销售、市场为王,产品、程序、设计都是苦力。现在产品做不好根本没人用,销售在忽悠也不行了。最后实现都是技术问题。而且现在例如 apple store 发行渠道成本很低,只要能做出来好产品不愁卖不出去,微博上一传就一大堆用户。程序员自己创业不是梦想,程序员一个配合一个设计产品就能做出来,产品经理就不行,毕竟自己不会技术就做不出来。
- 不创业也可以靠编程序活一辈子, 一个团队可能只有一个产品经理或没有,但程序员肯定要有两三个,程序员市场需求比产品大很多。 随着年龄提高程序员的经验壁垒比产品高很多。
- 程序员可以对产品经理说 “这个因为技术问题做不出来” 但产品经理无法对老板说“这个ppt因为我能力不行做不出来”。
- 最后还有程序员可以靠自己想做的技术,例如NB的技术 到达人生梦想, 而产品实际上都是从抄袭,在抄袭,最后创新也是技术创新带来的产品。
子陶
我觉得你的未来很无限。
你又懂技术,又有产品天赋,还善于沟通,很好的技能结合。
干不干产品这事,我真觉得不重要,生活之中皆是产品机会。无论你是哪种开发工程师,你都可以按照自己的意愿去做一个自己的产品。
何必非当产品经理呢?而且,按自己所想制作的产品,更专一,更有意思,更容易成功。
产品人员的郁闷你不清楚。很少有公司给产品人员极大的权利,你要被各种声音左右。同时,你又必须具有大量产品的深入的使用体验,并了解其然和所以然。这都是你长期积累的结果。现在去做一个产品执行者,有什么意思呢?
莫如以产品经理的心态,去做一款自己想做的产品出来,这才是你最对的路。
白云飞
先回答提问的问题:
我觉得你最好还是先查清楚什么产品经理和产品再考虑不迟。另外如果你已经了解了,你管别人说啥,大胆努力去促成转变就行。打击你的,劝你别转的,一般是根本没经验或者转失败的,要深入问问他们理由,要问的;鼓励你的,劝你转的,可能是忽悠你的或者识货的,自己要小心求证。
呵呵,通过提高程序员level达到贬低产品经理之目的,实在搞笑至极。
产品经理=产品+经理,前一个词描述范围,后一个词描述职责(经理并不专指职位)。
任何程序员写的代码,都是为了解决一个或者多个问题,我们统称产品。
而一个产品的诞生,不管耗费时间长短,必然有调研,需分,规划设计,驱动实施的过程,而这个过程,每个参与的人都应该全程参与,为了高效走完这个过程,必然会有所分工,每个人的任务也有所侧重。分工里面为了确保大家认知一致,委派产品经理全程负责文档和信息的传达,协调各个人的关系,以其按期按质完成任务。而团队每个人并没有因此失去充分表达的机会。
当然现实的情况未必有那么理想。
但平心而论,程序员可以傲慢,但是不要认为自己一直耕种就以为自己最懂行情,今年收成不代表今年收入。
产品经理可以傲慢,但是不要认为自己知道的东西多就一定会有人替你卖命耕种,那些东西不一定是真理,也有可能是谬论。
人就如围城反复,做或者不做,自己觉得值就行。听多数人的,和少数人商量,自己做决定!
本文系站长之家整理自知乎网,转载请注明出处链接。
每个人都熟悉这种作息规律:早上9点去上班,坐在电脑前面,编一天的程序,下午5点下班回家。如今,非常感谢蒂莫西·费里斯 (Timothy Ferriss)的《每周工作4小时》,我开始重新思考应该如何工作,如何让自己变成更有效率的程序员。
最近,我把我的从周一到周五的作息规律做了一次较大的调整。很长时间以来,我一直像所有其他程序员那样工作、休息。但就在2011年的下半年,我开 始了一项试验,想看看究竟什么样的作息时间能让我更有效率。这项实验目前仍在进行中,我并不是像军人那样严格遵守实验规定——例如,我也想会早20分钟、 或晚20分钟起床——但当前制定的作息规律是这样的:
早上4:30 到 7 点:冥想,写作,目标复查,和家人吃早餐
早上4:30起床其实并不是你想象的那么难。每个人的个人情况都多少有些不同,但人的身体基本上需要每天7到9小时的睡眠时间。保证你睡眠充足的一个方法是不用闹钟自然醒。你只需要早点睡觉,你就可以在早上4:30醒来。
起床之后,我会马上喝上16盎司的水——不是咖啡!我很长时间都不喝咖啡了,而且也不太想喝。事实上,不喝咖啡我感觉会更好。然后我会冲个澡;这样会让我感觉一个清爽的一天的开始。
每天早上我都会冥想30分钟。冥想的最佳时间是在日出之前或日出的过程中,也就是西方世界的早6点之前。我不打算解释为什么冥想会对你有好处;网上对此已经有了大量的研究。如果你想找一个关于冥想的书,我推荐《Meditation for Dummies》。尽管书名很怪,但它是我读过的最好的一本书。
冥想之后,我会花30-45分钟的时间写博客。我一般会写500到800字。我发现,冥想之后立即动笔,通常会一气呵成,写的很顺利。另外,大脑经 过了一夜的休整,状态非常好,在注意力转移到其它事务之前,把大脑里堆积的东西都倒出来清理一下是很有好处的。关于写作的一个技巧:把这段时间用作对大脑 的初步清理。不要去做研究、编辑等。这些事情放在以后再做。
然后是To Do List(待办清单)时间。我会查看邮件,微博,LinkedIn,等等,以及安排下一步要做是任务。说到任务,我遵循GTD做事方法,我用Omnifocus软 件来管理我的生活。我在iPad,iPhone和MacBook Air(我是苹果的粉丝)都装了它。不错,作为一个待办事宜管理软件,Omnifocus是有点贵了,但因为我的整个生活都和它有关,这个价格也值了。我 通览一下待办清单,想想每个事情上的预期目标——所有的事情,从今天要做的小事情,到长期的目标。清单中的每个条目都设定有一个目标,如果没有目标,我会 删除它。
接着是早餐时间。关于应该什么时候吃早餐、应该吃什么的问题上,已经有大量你可以借鉴的养生指导。我尝试过各种不同的东西。我发现那些富含纤维素, 低碳,高蛋白质的东西最适合我。你试过燕麦片加花生酱吗?好极了!我还喜欢吃一些水果、喝一点茶。还有,我尽量和家人一起吃早餐。有时事情能按照这种愿望 执行,但有时不行。我的目标是今年一年都要按照这个执行下去。
早7点到11点:4个小时的编程时间
这是我用来编程的时间。一天4小时也许你会觉得少的可怜,可是我却发现,在这4小时我做的事情能比大多数人一周干的事情都要多。研究显示,具有固定 工作时间表的人比那些随机工作的人更有效率。对于我来说,这个固定时间是早7点到11点,每天。这段时间我要做的事情就是编程,不做其它的。有几个基本的 原则:
首先,关掉所有的通信设施——电话,邮件,聊天工具等。没有让你分心的事。你可以给少数几个人保留一个联系到你的方法,以防有紧急事情发生。那些真 有紧急事情需要找你的人自有办法联系到你,我还没有碰到过这样的事。我甚至还教育我的妻子,她通常习惯对所有的请求都立即给予回应,我告诉她要尊重我这4 个小时的时间。在这段时间里你应该只干一件事。千万不要同时干5、6件事情。
第二,中间不要留下休息时间来查看邮件或上网,或干其它类似的事情。原因是:在一个小时里,我可以开发出x个功能。如果我要是连续工作4小时,我发现我的产量不是4倍,而是8倍或16倍。当你全神贯注的干某项事情时,相信你也经历过这样的体验。这就是我们所说的大脑的Flow(流)状态。在以后的博客里我打算多写一些关于Flow的文章。
那为什么不把这样的制度应用到整个8小时的工作时间里呢?这是因为人的有效率的状态是有限度的。人的大脑跟肌肉一样。你可以在跑步机上持续运动8小 时吗?就像我们的肌肉,大脑需要时不时的休息。这种限度依据个人的不同而各异。通过尝试和根据犯下的错误,我发现我的极限时间是4小时。
还有一点需要提的是,我并没有在11点设了闹钟提示。当我感觉大脑有些疲倦,工作效率开始下降时,我就停止工作。有些天我只工作3小时,有时我会工作5小时;4小时是平均值。
我在家工作是为了避开打搅。如果你需要在办公室里工作,看看管理部门是否允许你把最有效率的这段时间放在家里工作。你上班途中的折腾会把早上做瑜伽 和冥想获得的好处给抵消了。在经过了早高峰的喧闹,还有办公室里的嘈杂,你的神经会变的紧张,冥思带来的效果完全消失。在家工作必定会更有效率的多。
早11点到下午1点:健身,午饭,购物
我每天都要健身。John J. Ratey的书《Spark: The Revolutionary New Science of Exercise and the Brain 》 对每天锻炼的好处做了很好的论证,如果你想知道锻炼对大脑功能改进的科学机理,你可以读一下这本书。每天不做相同的运动,甚至不去相同的健身房。我每周在 一个瑜伽馆里做3次瑜伽,在一个spinning馆里上两天的spinning课,在健身房里做两天的举重,在健身房里我有个教练。教练帮助了我很多,有 人这样督促你会使你具有更大的动力。
我喜欢在健身房运动,因为哪里有额外的服务。你可以一下用掉5条毛巾而不担心老婆的抱怨。可以花30分钟冲澡而不用担心门外有人叫喊”你还没完吗?“…在家里你经常会遇到这样的事。
我还养成了一个习惯就是每天购物,通常是在Whole Foods, 一个离我家只有步行距离的超市。为什么每天购物?在很多国家,特别是亚洲,人们每天都去购物,而不是一次买足2个星期的东西储存在家里的冰箱或冷柜里。这 种方式,你只买了你需要的东西,避免了浪费。很多时候你会发现冰箱里有些不知是何物的东西,怀疑放在那里有半年之久了。我午饭在外面吃,Whole Foods超市里有不错的沙拉自助。因为我喜欢日本食品,有时我会来一点日本寿司或盒饭。
下午1点到6点:学习和交流时间
我尽量会把一些讨论、约会时间凑到一起,这样不必每天都去公司。通常,这些事情包括会议,面试,做报告,指导开发,代码审查等等。这段时间我不做任何的开发,除非有紧急的bug或特殊情况需要处理。
我还用很大比例的一部分时间去学习。我花了很多时间去阅读别人的东西,从书本到博格,大多与编程相关的东西。我每天都要学到新的知识。保持这样的学习劲头的最好的方法是对学到的东西做一些笔记,把相关的知识做写标记。像EverNote这样的软件很适合做这种事情。
同时我会看看市场上有没有其它的产品,最有效率的软件开发者是不用写一行代码就能把问题解决。我不想把别人已经做好的东西再做一遍。所以,在CodePlex, GitHub 和 Component Source这些网站上花时间是有好处的。
我从妻子的医院实习的经历中得到了一点启示。新入职的大夫每天早上看病,到了下午,他们会聚到一起讨论遇到的各种病症,讨论他们是如何应诊的。对于 我,我会事后反省一下自己做过的事,我会重新思考一下早上编程遇到的问题,在什么地方遇到了什么bug,或反省做报告时的表现,或如何主持的会议,等等。 我努力从过失中学到教训,避免它们再次出现。
下午6点到晚上8点:家庭时间
我妻子是个医生,工作很忙,但我们尽量一起度过这段时间。我们会一起做饭。然后我会和孩子一起做家庭作业。(一个二年级的学生竟会有这样多的作业,这是另外一个话题,我以后再谈。)
晚8点到8:30:反省和给大脑派活
我晚上不做冥思,而是换成坐下来反省一天的生活。如果你花上15分钟做在一个安静的地方反省你的一天,你会吃惊的发现这一天你学到了这样多的东西,获得了这样大的提高。
接下来,我给大脑安排工作。众所周知,当我们睡眠时大脑是在不停工作的。所以,你最好给它安排点工作。对于我,下面这些事情很有效:我把第二天早上要写的东西做了个大纲。就像写便条一样。我发现把它写到纸上比写在电脑里更有效。
或者,我会看一些编程/算法问题。同样,会纸上描述下来或写出框架。让人惊奇的是,很多时候早上起来你会发现已经有了解决方案!像这样的事情我是在 一个整洁的、没有格线的、信封大小的笔记本上写画的。在空白的白纸上写画会让我更有灵感。我在晚8:30到9点间上床睡觉。越早越好。
这就是我一天的作息时间。当然,当我外出旅行时会有些变化;在途中我会花大量的时间来工作。我还没有告诉你们在周末我都干些什么,我会在以后的文章里讲到这些。
我很想听到其他人关于他们的作息时间的故事,以及他们是如何提高工作效率的。
我们是这样的一群人:每天都在“努力”的工作着,每天都和计算机打交道,泡在网上,打游戏,查资料,发微博。可是有一天,突然意识到,我们的未来在哪里,每个月那点可怜的工资,一年加起来也买不了几平米,找个女朋友也那么难,即使找到了,她还总是跟你说,为什么别人挣的都比你多,你每天不停的写着代码,每天不停的掉头发,每天都在发呆的想那“不远”的未来。他们管我们叫“码农”,我们管自己叫“程序员”,出差的时候被叫做“工程师”,我们到底是什么? 对于我自己,我只想告诉每个人,我不是一个程序员,I’m not coder。
程序员到底怎么了,我们当然不否认有很多出色的程序员,他们生活的好,赚的也多,可是毕竟大多数都还是一般水平,很多还是挣扎在基本满足吃住的水平。特别深的问题,比如国家社会问题(总有人会说我们的社会把我们搞成了这个样子),我这里不想谈,我来结合自己的体会来讲讲我所认识的一些程序员都在怎样工作和生活。
我周围的程序员大都不喜欢程序员这个行业,总希望如果未来可能,一定要跳出这个圈,去做别的行业,有的说去做销售,有的说回老家开个小超市,有的说的更是离谱。我不知道为什么他们都在这么说,原因在于我从未见过他们努力过,如果没有努力过如何知道这个职业就是没有前途的呢?工作的时候,他们大都在谈论社会问题,昨天看了什么电影,谁也买了个 iPhone,她的爸爸给她在北京买了套房子等等无聊的问题,后来他们谈论什么我就不知道了,我带上了耳机,畅游在代码的世界里,享受着原来 100 行完成的功能,经过我重写,只要 50 行就能运行的比以前好,而且效率更高。
第一个问题,程序员和其他行业一样,最起码需要一个态度。如果你连基本的态度都没有,不要谈程序员没有前途,以为每个行业对这样的人来说都没有前途。
我做完一个功能,演示给我的同事看,然后告诉他我是怎么实现的,以及这样做的好处是什么。他的一句话像一盆凉水一样泼在我的脸上,“你费这么大劲干嘛啊,你不要想这么多,领导又看不见你是怎么设计的。”,“哦”。我很无语,也更不知道怎么答复他。听完那句话我彻底明白程序员没前途的原因了,和其他很多行业相比,软件不容易发现问题,也许你做个特效,让一个东西蹦来蹦去反而得到领导的赏识,而你自己花费了很多自己私有的时间来设计的结构没有人会采用,因为你的领导要向他的领导交差,他也希望能拿的出一点能看得见的东西。很多程序员被这样的领导强奸了,只做哪些表面工作来取悦领导,2,3年过后,发现自己什么都不会了。也就看不见前途了,做那点破东西,可以让你得到一会儿的“赏识”,计算机是个技术活,需要技术和经验的积累。
第二个问题,程序员的前途是程序员自己造就的,如果你觉得你现在没有前途,那只能说明你做的不够好。
计算机业界有很多好书,非常著名的书,比如《黑客与画家》、《Unix 编程艺术》,我不想说《算法导论》这种书,因为它确实枯燥无比,我自己也从未完整的看过一遍。但是像《黑客与画家》此类的书是不同的,它能打通你的思路,告诉你问题出在哪里,未来的方向在哪里。如果你想看看一个程序员的视野是否还算开阔,问问他是否听说过某本书,听说过,那就还可以,说明自己懂点门道,如果读过,那就太好了,可以问问关于书中的一些观点,这里没有对或错,完全是自己的观点。我问过我身边的同事,读过这些著作的人屈指可数,而读过的确实不一样,眼界比较开阔,不回局限在非常狭小的范围内,更不会跟你扯闲天。
第三个问题,要多读书,读好书,而且不要只读一遍。读书应该像高中老师说的那样,从厚读到薄,从薄读到厚。
我去年认识了一个朋友,这个人三句话离不开写程序,我们吃午饭谈程序,我们在电梯里谈程序,只要我们在一起我们就讨论如何实现某个系统,如何然让这个系统运行的更快,某个新技术的机制是怎样的,在什么情况下采用是比较好的选择。和他在一起待了 3 个月,我感觉自己的眼界比以前开阔了一倍。这三个月我感觉每天都非常充实,完全没有了以前浪费生命的感觉,因为感觉每天都在补充知识,懂的更多了,更有信心了。
第四个问题,如果你是个程序员,你必须认识一些在这个领域里比你强的人,并和他们交谈,去开阔眼界,去了解未来是什么样子的,哪怕只是听他们说,都能有很多收获。
公司来了个新同事,他还没有毕业,但是当我跟他讨论一些问题时,发现他知道的事情非常多,尽管技术不是非常好,但是他的方向很明确,而且基础知识掌握的非常好,比如位操作(读到这里的朋友,你能用你最熟悉的编程语言进行位操作吗?)。有一次他遇到一个问题,我过去帮助他,偶然间发现他的一个文件夹,这个文件夹的名称是 Daily Reading,里面都是一个个按照日期分好的文件夹,从他来公司的那天起,一直都记得很好,我简单的看了看,里面都是每天看了哪些网上的文章,以及他对这些文章的一个总结。这种方式也许不是最好的方式,用一些软件可能更好,比如 evernote,但是不是不得不说的是,他把自己曾经阅读过的资源都整理起来了。
第五个问题,你每天都会遇到问题,每天都会在网上查资料,或者查书,但是否总结过这些问题呢。总结,真的能让人进步。方式多种多样,比如写博客。
老板总说我没有计划,我也不懂的如何计划,老板说很简单,不需要太复杂,只需要一个 excel 文件,早晨来了以后,想想昨天的工作完成的什么样,今天要做哪些工作,然后添进 excel,把所有任务的背景色设置成红色的,代表未完成;下班的时候,完成的,背景色换成绿色的。第二天接着这样做。我跟一个朋友说了这个方法,这个朋友立马要我把这个 excel 的模板给他,我顿时无语了,然后告诉他,没有模板。
第六个问题,学会计划和安排。不需要太复杂,先从简单的开始,但是不要把自己局限死,再强大人都需要安排和计划,你应该听说过 bug 管理系统,它本身就是一种计划与安排工具,但是它更高级,你可以随时知道软件的 bug。当你每时每刻知道自己需要做什么的时候,你的效率会是最高的。
做到这几点,我相信你就是一个比较合格的程序员了,记住,也只是合格而已。程序员不是没有前途,而是很多程序员葬送了自己的前途。
电脑故障 | ps教程 | 设计 |
创业 | seo | discuz |
word | 配置 | c# |
数据库 | mysql | asp |
ShopEx | html | JavaScript |
模板 | Joomla | PhotoShop |
CSS | PHP | WordPress |
ECShop | jQuery | 用户体验 |
新闻 | 读书 |