创业前需要知道的5个编程谬论(转)

1.代码很重要 (功能和代码质量的关系。应该是功能满足的情况下,代码质量也需提升,如果建议3,4)

我在很多地方工作过,发现成功之中隐藏着这样一种普遍现象:早期的代码看上去像是一群程序猿喝醉之后写的。这听上去似乎有悖常理,那是因为你得竭尽全力让企业成长,所以就没有时间去追求软件的完美。从另一方面讲,失败的企业,却会花很多很多时间来修正其代码库。

打个比方:如果你是一个寿司师傅。作为你工作的一部分,你收集了一套绝版的刀具。你花时间花精力来完成收藏,它们提升了你作为一名厨师的竞争力。

但无论你每天用多少时间去打磨你的道具,你就不是一个铁匠。你的工作依然是做寿司。你虽然拥有了世界上最好的刀具,但如果做不好寿司,那么你的客户服务就是差评。你的餐馆生意永远不会成功。

软件也是同样的道理。当你运营公司的时候,你的业务目的是满足客户。代码只是一个能达到目的的工具,它本身并不是目的。你可以,也应当关心你的代码,因为这能有助于提升客户服务。但是,如果错将工具当作了目标,那么注定你将一败涂地。

经验教训:你的客户并不关心什么测试覆盖率、技术堆栈,版本控制系统,也不在乎你使用了什么算法。你的工作就是解决客户的问题,越方便越好。

2. 关注实现,而不是点子(时间长了,就无所谓产品整体情况了,做好自己的本职工作就好了;做了非职责之外的事情,会带来许多无形中的矛盾)。

这听起来似乎违背了传统的创业须知:快速发布!执行!迭代!执行,不需要创意!快速失败!

上面这些都是伟大的忠告。但是,“不需要创意”,并不意味着我们能通过卓越的执行矫正一个糟糕的点子。成功就是发现好的问题,再好好地解决这个问题。所以,点子好却没有好好实现或者完美实现了一个坏点子,都是不行的,当然前者还有得救。

很多程序员被困实现的死亡漩涡中,花了大量的时间去创建各种功能或者修复bug,相信再添一个功能就能成功。我告诉你,这是错觉。你只需要解决了某个重要的问题,否则你这样不断为产品添加功能根本是没有意义的,除非你添加的功能确实能解决需要的。

点子好却没有好好实现,总比完美实现了一个坏点子要好。 
经验教训:如果你添加的功能是用来修复一个失败的产品,那么最好先问问自己这能不能真正地解决问题。

3. 代码是写给计算机的

我总是想不通为什么这一错误会如此之历久弥坚。无论程序员是第几次因为同事的糟糕文档和沟通习惯而陷入困境,他们因此而得出的结论往往还是——程序员天生不擅长这类事情,也不应该做做这些事情。

大错特错啊。

如果你是一个团队的一部分,那么提升团队效率最大的一个障碍就是沟通——这不是夸张,团队面对的是O(n2)问题。如果代码是你的主要输出,那么你需要改变你对编程的看法:代码是写给人看的,然后又刚好能在计算机上运行。

很多时候,我看到程序员花了几个小时孜孜不倦地写代码,但是却省略了用于更新代码文档的十分钟。这是因为他们觉得:“杀鸡焉用宰牛刀,这种事情留给以后的人就行了,我的时间宝贵着呢。”从某种意义上讲,他们的想法荒谬至极。

经验教训:代码是写给人看的。没文档就不要写代码。

4. 这是代码编写的最后一步了。

你是不是认为,一旦你写完这个功能,投入产品,那就大功告成了?错了。每一个功能都有一个生命周期。你今天写的代码,如果成功,那么将会在你之后的多代程序员中耀武扬威。可能,就为了照料你今天写的代码,而不得不成立一个团队。

好好想一想。如果你的工作就是为了照料别人写的代码,你愿不愿意?

解决问题的关键是要有危机意思:写完第一个版本,并不意味着代码的完结。务必做好文档、注释、整理等工作。

经验教训:己所不欲,勿施于人。

5. 程序员的工作就是写代码 (点赞)

大多数的程序员认为利用时间的最佳方式是坐在电脑前,戴上耳机敲代码。但是,如果你写的每行代码都必须维护和支持整个产品的生命周期,那么算法就又有所不同了。

当你是因为爱好写代码的时候,那么你可以为所欲为,做任何你喜欢做的事情。但是如果你是在一个团队中生产产品,那么你的首要义务变成了维护现有的代码。其他的重要工作为:协调、沟通、规划和指导。

经验教训:程序员的工作是解决问题。指的并不总是写代码。

你不仅是程序员,也是产品经理。

有时候,你可能会想:这事情听起来像是产品经理的工作,而不是程序员的。但是,如果你拿的是写代码的薪水——尤其是在初创企业——那么把自己当成是产品经理吧。如果你也希望产品能获得成功,那么从大局出发是至关重要的。这不仅有利于你的初创企业,对你将来的事业发展也很有好处。

最后,如果各位什么不同见解,欢迎不吝赐教。

英文来自:Five Things I Knew About Programming Before I Did a Startup

http://www.iteye.com/news/30294

时间: 2024-12-18 04:55:43

创业前需要知道的5个编程谬论(转)的相关文章

每个程序员都该知道的10大编程格言

每个程序员都该知道的10大编程格言 编程格言1:无风不起浪 (There is no smoke without fire) 编程格言2:预防为主,治疗为辅(An ounce of prevention is worth a pound of cure:) 编程格言3:不要把鸡蛋都放在一个篮子(Don't put all your eggs in one basket) 编程格言4:种瓜得瓜,种豆得豆(As you sow,so shoul you reap) 编程格言5:欲速则不达(Great

在做自动化测试前需要知道的

转自: http://www.cnblogs.com/fnng/p/3653793.html 什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner.jmeter),或自己所写的一段程序,用于生成1到100个测试数据.狭义

2014年你需要知道的6种编程技能(转)

当开始编程工作时,就会有很多关于你必须学习哪种最热门编程语言的讨论.但跟任何程序员进行讨论的时候,他们会告诉你学习语言并不是学习编程的唯一.同样重要的是要理解组成基础编程语言的核心概念,即算法.数据结构以及学习如何使用技术框架,这些现已成为创造一个伟大的技术产品的精髓. 既然你可以在HackerEarth.com上学习和记录你的算法和数据结构,那么在2014年你应该学一学以下这些技术: Rails 业务逻辑!!有经验的web开发人员都很了解构建一个web应用程序的基本功能所花费的时间.Rails

使用Office 365前,企业必须要知道的10件事

目前的市场上充斥着很多关于微软Office 365的炒作,相信厂商.客户或者企业的都有自己不同的考虑.Office 365是微软云版本的Office,用户可以通过互联网创建一个帐户,付款.下载应用安装,然后使用,这一过程中不需要使用光盘.如果企业用户认为使用Office 365对于公司来说是正确的一步的话,那么管理者就有必要先了解以下由桌面解决方案顾问Sales Harkins所提出的10件事. 1.什么是云? 云是一个行业术语,指异地文件托管服务.当使用Office 365文件的时候,用户使用

[转]在做自动化测试之前你需要知道的

[转]在做自动化测试之前你需要知道的 2015-06-09 转自:在做自动化测试之前你需要知道的 什么是自动化测? 做测试好几年了,真正学习和实践自动化测试一年,自我感觉这一个年中收获许多.一直想动笔写一篇文章分享自动化测试实践中的一些经验.终于决定花点时间来做这件事儿. 首先理清自动化测试的概念,广义上来讲,自动化包括一切通过工具(程序)的方式来代替或辅助手工测试的行为都可以看做自动化,包括性能测试工具(loadrunner.jmeter),或自己所写的一段程序,用于生成1到100个测试数据.

【转】嵌入式程序员应该知道的16个问题

全面解析<嵌入式程序员应该知道的16个问题> ----Sailor_forever分析整理,[email protected] http://blog.csdn.net/sailor_8318/archive/2008/03/25/2215041.aspx 1.预处理器(Preprocessor) 2.如何定义宏 3.预处理器标识#error的目的是什么? 4.死循环(Infinite loops) 5.数据声明(Data declarations) 6.关键字static的作用是什么? 7.

今天才知道的JavaScript的真实历史~[转]

JavaScript真的继承自Cmm吗?JavaScript与Java有多少关系?JavaScirpt最初的设计是怎样的?这个文章是从一个叫编程人生的网站上看到的.不知道出处在哪.在许多资料,JavaScript的语源被追溯到一种名为Cmm的语言.同样是在这一溯源的过程中,人们发现“其实”JavaScript不是第一种网页中的脚本语言.现在一些所谓“公认”的情况是这样的:----------------大概在1992年,一家称作Nombas的公司开始开发一种叫做C减减(C-minus-minus

嵌入式程序员应知道的0x10个C语言Tips

[1].[代码] [C/C++]代码 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77

使用Yeoman你必须要知道的

不得不说,这年头写JS程序变得越来越复杂了.虽然大家都为了让写JS变得更简单而创建框架.创建工具,但是感觉已经开始偏离了最初的目的. 今天来说说Yeoman,一帮人为了让写AngularJS程序更高端智能而创建的一个工具.可以利用简单的命令行操作帮你初始化一个Angular App,CSS.图片.View和JS应该放哪都帮你决定好了,连复杂的Grunt都帮你配好了.前端同志只要用"grunt serve"就可以预览你的Web App而不用配置Web服务器,用"grunt bu