`
qwzs112
  • 浏览: 121204 次
文章分类
社区版块
存档分类
最新评论

开发者必知的五大编程谬论

 
阅读更多

关于开发者的一些谬论,笔者看到一篇文章,认为还不错,就像分享给大家,希望可以对大家有所帮助。

我是一名黑客。在我还就膝盖那么高的时候就开始用一台古老的 Commodore 64 写代码了。直到今天,也没有什么比戴上耳机,破解东西更让我着魔的了。所以在我创建我的第一家企业时,我就已经知道了很多有关于编程的事情。是不是谬论,且听我下面一一道来:

1.代码很重要

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

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

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

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

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

2.关注实现,而不是点子。

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

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

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

点子好却没有好好实现,总比完美实现了一个坏点子要好。

经验教训:如果你添加的功能是用来修复一个失败的产品,那么最好先问问自己这能不能真正地解决问题。

3.代码是写给计算机的

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

大错特错啊。

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

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

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

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

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

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

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

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

5.程序员的工作就是写代码

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

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

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

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

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

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

你可能会喜欢:4个工具提高你的 Android 代码质量

2
1
分享到:
评论

相关推荐

    Java开发者必备的六款工具

    Java开发者必备的六款工具 xmlmarker_1_1_setup sqldeveloper portecle-1.7 Notepad_6.7.9 KeyTool_GUI_1.6 工具和教程 jad v1.5.8g eclipse 官网:http://www.eclipse.org/downloads/

    华为应用开发者高级认证-20240712

    华为应用开发者高级认证-20240712

    《2020-2021中国开发者调查报告》

    本报告是基于一年一度的CSDN开发者大调查数据分析结果形成。CSDN最早从2004年开始针对中国开发者进行大规模调查,是迄今为止覆盖国内各类开发者人群数量最多,辐射地域、行业分布最广的调查活动。该调查旨在全面和...

    寒武纪BANG C开发者手册-v2.11.0.pdf

    本手册是寒武纪BANG C开发者手册的详细指南,旨在帮助开发者了解寒武纪BANG C语言的编程模型、硬件架构、编译和链接过程等方面的知识。下面是本手册中所涉及的重要知识点: 一、寒武纪BANG C语言概述 寒武纪BANG ...

    VSTO开发者指南(中文版)

    《VSTO开发者指南》为有志于将技能迁移到下一代Office开发的VBA开发者提供了深入的指导和实用的介绍。本书不仅涵盖了如何编写Word 2003、Excel 2003和Outlook 2003的托管代码程序,还详细讲解了如何使用VSTO 2005 SE...

    苹果开发之Cocoa编程原书第4版

    1. **Objective-C与Swift选择**:Cocoa最初是基于Objective-C的,但随着Swift的推出,许多开发者转向了这个现代、安全且高效的编程语言。本书可能涵盖了两种语言的使用,让你能够根据自己的喜好和项目需求选择合适的...

    WINDOWS高级编程指南.pdf

    Windows高级编程指南在技术深度和细节上提供了丰富的内容,让开发者能够编写出更高效、稳定的Windows程序。 书中详细讲述了Win32应用程序接口(API)的高级使用方法,以及如何在32位Windows操作系统上,例如Windows ...

    Linux-UNIX系统编程手册.pdf

    系统编程允许开发者执行诸如进程控制、文件操作、信号处理、进程间通信(IPC)以及网络编程等任务。《Linux/UNIX系统编程手册》是一本旨在深入介绍Linux和UNIX系统编程接口的权威指南,该书由经验丰富的Linux编程...

    软件开发者路线图:从学徒到高手

    《软件开发者路线图:从学徒到高手》完整版,以前下载过6.3M那种,只有1、2章,此为完整版,旨在分享好东西

    C++编程实例100篇

    这本书的每个实例都精心设计,旨在帮助初学者和有经验的开发者巩固和提升C++编程技能。 在C++编程中,基础知识至关重要,其中包括变量、数据类型、运算符和控制结构。变量是存储数据的容器,数据类型则决定了变量能...

    java:并发编程的两本书《Java并发编程实战》 《Java并发编程的艺术》 PDF

    本书自2012年出版以来,深受全球Java开发者的喜爱与推崇,被誉为Java并发编程的必读佳作。它不仅深入浅出地介绍了Java线程和并发的相关知识,还从实战角度出发,提供了丰富的代码示例和最佳实践,帮助读者快速掌握...

    Windows图形编程(pdf)

    GDI+则是在GDI基础上的增强,引入了矢量图形、高级渲染和面向对象的编程模型,使得开发者能够更方便地创建高质量的图形内容。 首先,我们需要理解窗口和设备上下文(DC)的概念。窗口是用户与应用程序交互的基本...

    WPF编程宝典PDF下载

    **WPF编程宝典**,这是一本专为初学者设计的全面介绍Windows Presentation Foundation (WPF) 技术的指南。WPF是.NET Framework的一部分,由Microsoft开发,用于构建丰富的桌面应用程序。这本书深入浅出地讲解了WPF的...

    VB编程工具箱.pdf

    VB编程工具箱的主要目的是为了帮助开发者更快速、更高效地进行VB编程,提高开发效率和质量。 VB编程工具箱中的工具涵盖了VB编程的各个方面,包括项目设计、开发、测试、调试、发布等多个方面。这些工具可以帮助...

    Java网络编程第三版.pdf

    《Java网络编程第三版》是Java开发者深入理解网络编程的重要参考资料。这本书主要涵盖了Java平台上的网络应用程序开发,从基础概念到高级技术,为读者提供了一套全面的学习路径。以下是本书中涉及的一些关键知识点:...

    QT高级编程中文.pdf

    QT,全称Qt,是一个跨平台的C++图形用户界面应用程序开发框架,由Trolltech公司(现为The Qt Company)开发,后被Nokia收购并开源。...对于想要深入QT编程的开发者来说,掌握这些内容将极大地提升其开发能力。

    ios编程实战中文版

    《iOS编程实战》是受开发者喜爱的iOS进阶图书。它包含大量代码示例,主线是围绕如何设计、编写和维护的iOS应用。开发者可从《iOS编程实战》学到大量关于设计模式、编写可重用代码以及语法与新框架的知识。

    EVC编程

    EVC,全称为Embedded Visual C++,是...EVC编程不仅要求开发者具备扎实的C++编程技能,还需要深入理解嵌入式系统和Windows CE平台的特性和限制。通过实践和学习,开发者可以利用EVC创建高效、稳定的嵌入式应用程序。

    QT高级编程(中文版+英文版+源代码)

    《QT高级编程》英文版则为英语环境下的开发者提供了学习资料,对于想提升英语阅读能力和了解QT最新进展的开发者来说,是一份不可多得的资源。英文版可能包含了更新的技术细节或者与社区同步的最新变化,有助于开发者...

Global site tag (gtag.js) - Google Analytics