编程初体验
CSDN:你何时开始接触计算机,又如何走上编程道路的?
蒋宇捷:小学的时候,父母单位的苹果机、386和586都可以让我在空闲时候使用。而在那时代彩色显示器非常少见,即使一个小小的黑白屏幕的计算机,对我来说都非常神秘,有着巨大诱惑力。从那时起,我抱着一本Basic入门书籍就开始了学习编程,编写一些小程序和打飞机一类的简单游戏,觉得非常有成就感和有趣。
本科填报志愿时,最热门的专业是信息与通信工程专业,比计算机专业还高出不少分。我个人觉得这个领域很有前途,就选择了这个专业。但由于小时候的经历,一直对计算机情有独钟。后来在选择研究生方向的时候,最终选择进入计算机领域。
CSDN:谈谈你是如何不断提高自己编程技术的?
蒋宇捷:编程技术的提高需要不断的学习、总结、提炼、分享,这是一个环,也是一个迭代的过程。大学教给我们很好的学习能力,编程技术领域发展又快,日新月异,这要求我们通过各种方式来吸收新的知识。总结是在不断的项目实践、代码实现中,反思和归纳自己技术实现里的优点和缺陷。例如重构的过程、模式的使用等。提炼是提升的过程,从量到质,从更高的层次思考编程之道。分享是自己把经验和思考的结果传播出去,让别人认知,产生共鸣,给予反馈的过程,从中我们获得了别人的经验和能力,形成有效补充,又再次进入了学习的过程。
技术管理者的成长之路
CSDN:你是如何从技术层提升到管理层的?期间有什么有意思的回忆?
蒋宇捷:我于2007年7月进入傲游,一个月转正,2个月担任项目负责人,3个月就被提升为技术Leader。这个过程非常顺利,我的经验是要快速的做出成绩,展现出自己的能力。我当时第一次接触Perl这门编程语言,一边学习一边开发项目,共花了一个多星期时间,完成了一个类似于百度知道,包含全文检索功能,从前端到后台功能齐备的网站,这一次的经历为我晋升打下了很好的基础。
CSDN:你认为一名技术经理或是技术管理者,应具备什么样的能力?
蒋宇捷:我认为技术管理者有几个必备的能力:
1. 沟通说服能力:作为管理者,每天做的最多一件事情就是沟通,向上、下级,以及横向沟通,要让团队、项目按照正常的方向前进,要能够说服别人按照你的想法去执行,这点非常重要。
2. 分析判断能力:进行技术决策时,要冷静、全面的思考和分析,给出正确的技术方向,是每个技术管理者必备的能力。方向的正确程度决定了项目开展的速度与质量,正确的方向和优秀的架构即便在多年过后仍然焕然如新。
3. 产品架构能力:技术管理者必须要对产品有很深刻的认识,要充当技术和产品之间的桥梁,否则永远只能孤立的从技术层面看待问题,而无法从整个产品、项目的高度评判需求,以及技术实现的合理性。
CSDN:你现在是否坚持每天编程,这对你有何帮助?
蒋宇捷:我现在大部分时间都用在沟通、协调、思考、解决团队和项目中的问题,以及产品的方向上。不过前段时间我还主持并亲自参与了产品前端重构的项目,由此也对一些新的开发技术和框架有了新的了解和认识。技术来源于一线,永远不能脱离一线。
CSDN:在用技术手段完成某战略或运营目标的过程中,有何常见的难题?身为技术管理者,能不能分享下都是如何解决的?
蒋宇捷: 常见问题有3个,需求的不确定性、需求方面和时间与质量的平衡点。
1. 需求的不确定性:需求的变化永远是无法预估的。有两个问题可能每个人都有亲身的体验。
第一个是“作为产品经理,你被技术问的最多的问题是什么?”,答案是“你确定以后不改了?”。
第二个是“作为工程师,你问产品经理最多的问题是什么?”,答案是“这个功能是不是可以放到下个版本再做?”。
解决方法:需求的不确定造成技术实现有很大的不确定和后期变更风险,这个时候我们要做的是先确定技术方向、技术框架,通过拆分模块、利用设计模式容纳变化,以及在产品层面细分story等各种方法,来减轻每个迭代时需求变化的风险。
2. 需求来自方方面面:有时候完成目标的过程中,需求会来自方方面面,而不仅仅是单纯的产品需求。
解决方法:这时候就需要技术管理者评估成本、抵挡一些需求,或向对方明确预期。我的经验是最好开诚布公的讨论代价和收益,也需要管理者从更高维度的战略层面来考虑,否则有可能违背公司的整体战略。
3. 时间与质量的平衡:完成目标的过程中,常常遇到时间与质量的平衡之困。例如,经常版本早已确定了发布日期,但是由于时间有限,开发和测试时间都严重不足,这会导致产品质量不可控,是否按时发布就变成了一个难题。
解决方法:管理者除了在流程上整体把控外,还需要向上、下级,以及和各种角色沟通,降低时间和质量的预期,并结合一些保障机制。例如,核心用户群、灰度发布来减轻风险。
CSDN:做产品的过程中最惨痛的失败教训有哪些?
蒋宇捷: 创业的经验和教训告诉我:产品好不好用,用户很快就会投票。如果用户量迟迟不能增长,那是产品本身的定位出现了问题。需要尽快改变产品方向,迅速试错。从最近一些成功的产品美丽说、唱吧中,我们都能找到同样的轨迹。另外创业初期,渠道没那么重要,运营却是非常重要的一部分。
移动互联网现状
CSDN:你从事的工作涉及到移动互联网,你认为移动互联网现在处于一个什么阶段?
蒋宇捷:移动互联网还处于初级发展的阶段,它会在我们的生活中发挥越来越重要的作用,让我们的生活变得越来越便捷,成为不可或缺的水和电。
移动互联网、云计算、物联网的结合,会极大的改变我们的生活和商业模式,诞生新的技术革命。一些老旧的企业和商业模式将会受到很大挑战,被超越,被取代,被颠覆;而新的数字英雄将会崛起。
CSDN:传统互联网企业转变到移动领域,你觉得技术难点在哪里?有何好方法能克服困难?
蒋宇捷:传统互联网企业转变到移动领域主要有几个门槛:意识门槛、技术门槛和商业模式门槛。意识门槛指没有意识到抢占移动领域的重要性和紧迫性;技术门槛是指企业里没有对移动领域有很深了解和专门的开发人员;商业模式门槛指在移动领域变现较难,要花很大力气去探索。
我的建议是传统互联网企业要从意识上加深认识,从技术上加大投入,从商业模式上加强对全行业和用户的调研,以及和移动互联网企业合作也是不错的选择。
CSDN:对于移动开发的未来,你觉得哪些技术最值得开发者关注,或者需要开发者掌握?对于希望学习开发的初学者,你有什么建议?
蒋宇捷:抛开比较成熟的Android和iOS开发技术,HTML5是未来移动开发的趋势。开发者应该或多或少认识到它的力量和作用。关注HTML5的初学者可以多参加一些HTML5的沙龙或者讲座,关注一些优秀的技术博客,或者阅读一些入门书籍。
CSDN帮我结识更多朋友
CSDN:你在学习或工作中,是怎么接触到CSDN?CSDN对于你的工作或学习有什么影响,起到过什么帮助?有没有故事可以分享?
蒋宇捷:CSDN作为国内最大的技术社区,有非常大的技术影响力。2010年,我在CSDN博客上发表了自己的第一篇技术博客,通过CSDN博客我积累了一定的关注度和技术影响力,并获得CSDN博客之星称号。在《程序员》上我曾经发表过《HTML5之美》和《创业公司如何招聘优秀工程师》等文章,分享对于HTML5、创业的经验和想法。
CSDN主办的一些活动也非常有价值,例如CMDN、TUP等有很多有价值的Topic,而CTO俱乐部提供给技术管理者一个认识和交流的平台。而今年我受邀作为讲师参加了CSDN主办的中国软件开发者大会,分享了对于HTML5安全方面的一些经验和心得。
通过CSDN我认识了很多朋友,例如创始人蒋涛、总编辑刘江、副总经理曾登高等。记得今年我去广州参加技术会议,当时的东道主专程为我们把酒接风,席间又认识了两位CSDN的朋友,原CSDN副总经理韩磊和CSDN博客专家魏祝林,是CSDN这个平台把我们聚合在了一起。
CSDN:你对CSDN有什么建议,以及你对CSDN的未来有什么期待?
蒋宇捷:CSDN平台太大,各个子平台和品牌需要更好的整合和统一展现。CSDN社区里的牛人非常多,我希望有机会能和里面各领域的专家更多交流。另外希望《程序员》这本杂志与时俱进,越办越好。