为什么程序员的开发项目总是半途而废?

2024-09-01 20:58

本文主要是介绍为什么程序员的开发项目总是半途而废?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

很多程序员的项目常常半途而废。他们有那么多的好点子,但是很多都流于空想。几乎每一个软件开发者都有一个这样的文件夹,里面很多都是些还没完工的项目,而这些程序里有不少在它诞生初期真心是个超棒的点子。和这些人一样,我也有很多好主意,有的甚至就是现在有些企业在用的。比如正决定着在eBay上还是在Amazon上做电子商务获利、做一个以业务为基础的社交网络(水管业、电子行业、软件开发等)、比特币搜索引擎、开发一个CSS框架来取代Bootstrap、从Instagram上找出最有魅力的那些人、开发一个实时访问统计引擎,这样的例子举不胜举。几乎每一个项目我都着手去做了,但是没见到一个是完工了的。当我和我的同事朋友聊起这个话题的时候,他们也普遍反映,他们也是如此。很多很多的好点子都夭折在他们的文件夹里。为什么会这样?

因为成功所以缺乏动力

首先要谈谈我们的职业,拥有着让人眼红的高就业率。用事实说话,全国的失业率约为6.7%,而WEB开发员的失业率还不到1%。而且我们的工资水平也比平均值高。2012年软件开发员的平均年收入就已经超过9万美元。当然现在你要是足够优秀,完全可以远远超过这个数。看着跟着我学习的新手菜鸟成为入门级程序员,心中有一种莫大的个人成就感。而这个职业的薪酬也让他们很满意:起薪4万5千美元到7万美元。

所以,和其他大多数人相比,特别是那些在工作岗位上碌碌无为做一天和尚撞一天钟的,因为岗位薪资不高而不断跳槽的,软件开发员还是比较成功的。这里请允许我冒昧的做一个概括,如有雷同纯属巧合。可以说,半路出家的程序员相对于这些人是比较成功的了。也就是这种成功的优越感麻痹了我们的神经,使得我们缺少了完成目标的动力。

知识范畴不同

我们知识广博。对于几个城市之间旅行怎样便捷,我们可以侃侃而谈。我们知道怎样把一个复杂问题分解成一个个小的子问题逐个击破。我们是真正的“世界通”,因为我们可以用任意一种语言说“Hello World”,面对即使需要成千上万的计算,我们也不皱眉头,因为我们懂得递推的方法。我们知道的很多,但是又是否足够多呢?伟大的科学家爱因斯坦曾经说过:

浅学误人,所以危险;博学自负,更加危险。

牛顿,大家都知道,誉为那个时代最聪明的人之一,可以准确预测离我们上百万千米远的天体的运动。他说,他是站在巨人的肩膀上才能看的更远。而物理学并不是他唯一的兴趣,他还给我们留下了微积分学等等宝贵的知识财富。由此思彼,那么他应该也对资本和市场运作很了解咯?

1-j6CUvYBqScHxK-jlyLmalw

哈哈,那你就大错特错了!在1720年南海股票泡沫的高峰期,他投入的所有现金化为乌有,然后破产了。因为他不了解市场,所以即使他知识再多再渊博,也帮不了他一点忙。因为他的知识领域是独立的,不相关的——他发现了物体运动的规律,但是这些规律对他掌握投资者心理毫无帮助。我们也是这样的情况。我们可以花一整天时间去解释算法,研究数据结构,但是我们却不懂得用户想要什么。当twitters刚出现的时候,我想当然的认为不过是个昙花一现的流行事物。事实证明我错了。当我们在解决问题的时候,往往只追求解决方案是否吸引人,却忽略了联系这个问题的世俗看法。

不断跳槽

我敢保证,其他任何一个主要城市都是这样的,但是在这里,我仅代表我自己和我的同事朋友们在纽约工作时的经验。我们不断跳槽。但是也不是每个人都是这样。我在网上一篇文章的评论上看到有的人已经在同一个岗位上干了19年。我也发现了,那些很容易被别的项目所吸引的人,往往不会停留在同一个岗位上太久。就是因为这个原因导致很多项目不得不中断。

中断项目有很多原因。比如,刚进入新工作,并且需要专心致志做那里的项目,就不得不把原来的先搁置一边。又比如,因为做的这个项目和我们以前做过的可能差不多,于是顿时失去了兴趣。距离也是原因之一,特别是如果你隔个几年就要跳槽的话,坚持就愈加困难了。在这里,我需要提一提,转变心态很重要。如果你打算在三年后辞职,那么为什么不不能在3个月里搞定你的项目?如果你能保持着这种激情,当你在项目上一筹莫展的时候,灵机一现,好点子就来了。

赋予夭折的项目新生

因为这样那样的原因,我没有让我的好点子“出世”。首先我们承认了这点,然后我们找出了原因。现在第三步就是要修复它们了。这不是一朝一夕就能完事的,而且可能我的很多项目仍然会是这种半死不活的状态,然后我思索许久,终于想出了一些步骤,可以避免这些项目永远成了文件夹里的摆设。

你最棒

首先,要明白每一个项目都能让你稍微——或者在某些情况下是大幅度——成长为一个更佳的开发人员。技术需要靠时间的积累,所以你开发的项目越多,你就越棒。以学习新技术,新的编程语言,新的框架为动力去开发一个项目,那么即使你完不成,也能学到不少知识。而且如果你有其他要事要办,你可以立即暂停这个项目。

构建项目组件

你开发了很多项目,变得越来越熟练,不知道你是否知道这个小窍门——复用代码?构建模块和库,而不是每次需要使用的时候都去重新写一次。假如你现在在做的项目不是最后一个,那么我劝你最好构建一些项目组件,而不是光写那些只能用在这个项目里的代码。在文档里给自己写点注释,这样下次要用在下一个项目中就方便了。

和大家协作

现在我们已经有了能让那些夭折的项目重生的好方法,是不是蠢蠢欲动,跃跃欲试了?你的点子可能精妙无比,就像你的孩子一样宝贝,也或许价值数十亿美元,但是到目前为止——它一文不值。你需要和其他人分享你的点子,并且越多越好。这种自然而然的兴奋能促使你不断致力于这个项目,推动它的发展。甚至你可以开源,邀请大家参与进来。这种相互协作的方式会让你有种使命感,专注于此,不轻易放弃。

解决你手上的问题

不要好高骛远,也不要眼高手低,试着去做一些对你真正有用的东西。如果你是程序开发员,那解决程序问题,如果你在公司工作,那制作那个公司需要使用的程序什么的,即使是你个人方面,也一定会有一些可以用技术解决的问题。那么为什么不先下手为强呢?不要等到问题积累起来了再去解决,一步一个脚印,同时你还可以得到一些有用的程序什么的,何乐而不为?

勿以事小而不为

有句俗话,不要想着去创立需要时限8个月才能办起来的公司,把时间放在可以在4周内甚至更少就能做好的事情上。无论多么简单,每个月固定日子发布你的最新成果。这样做会有很强的心理暗示,能激励你的工作。相反,如果你坐在笔记本前捣鼓了8个月想干件惊天动地的大事,但是却毫无进展,有多么沮丧是可想而知的。量变会导致质变,一件件小事办好了可能会有大大的成功。因为人生的旅途是一场马拉松,而不是短跑。

吹牛也是项技术活

社会压力是真实存在的,与其偷偷摸摸工作,还不如告诉大家你的工作内容。你得到的反馈有可能会有助你改进产品。或许你担心别人会把你的点子占为己有,但是我可以保证,绝对不会有这种事发生。因为即使是很简单的想法别人想要去执行,也是很困难的一件事。所以没必要讳莫如深。说出来,你还可以从大家提出的建议中提炼出有意义的加以改进自己,而更加重要的是,这样做会促使你不得不去实现它。不然牛皮吹破面子就不知道放哪里了,哈哈。

写到这里,要告一段落了,不知道你有没有学到什么诀窍能对你的项目有所帮助?记得:行动最重要。

这篇关于为什么程序员的开发项目总是半途而废?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1128029

相关文章

基于Python开发电脑定时关机工具

《基于Python开发电脑定时关机工具》这篇文章主要为大家详细介绍了如何基于Python开发一个电脑定时关机工具,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 简介2. 运行效果3. 相关源码1. 简介这个程序就像一个“忠实的管家”,帮你按时关掉电脑,而且全程不需要你多做

Java中的Opencv简介与开发环境部署方法

《Java中的Opencv简介与开发环境部署方法》OpenCV是一个开源的计算机视觉和图像处理库,提供了丰富的图像处理算法和工具,它支持多种图像处理和计算机视觉算法,可以用于物体识别与跟踪、图像分割与... 目录1.Opencv简介Opencv的应用2.Java使用OpenCV进行图像操作opencv安装j

Python 中 requests 与 aiohttp 在实际项目中的选择策略详解

《Python中requests与aiohttp在实际项目中的选择策略详解》本文主要介绍了Python爬虫开发中常用的两个库requests和aiohttp的使用方法及其区别,通过实际项目案... 目录一、requests 库二、aiohttp 库三、requests 和 aiohttp 的比较四、requ

SpringBoot项目启动后自动加载系统配置的多种实现方式

《SpringBoot项目启动后自动加载系统配置的多种实现方式》:本文主要介绍SpringBoot项目启动后自动加载系统配置的多种实现方式,并通过代码示例讲解的非常详细,对大家的学习或工作有一定的... 目录1. 使用 CommandLineRunner实现方式:2. 使用 ApplicationRunne

使用IntelliJ IDEA创建简单的Java Web项目完整步骤

《使用IntelliJIDEA创建简单的JavaWeb项目完整步骤》:本文主要介绍如何使用IntelliJIDEA创建一个简单的JavaWeb项目,实现登录、注册和查看用户列表功能,使用Se... 目录前置准备项目功能实现步骤1. 创建项目2. 配置 Tomcat3. 项目文件结构4. 创建数据库和表5.

Python项目打包部署到服务器的实现

《Python项目打包部署到服务器的实现》本文主要介绍了PyCharm和Ubuntu服务器部署Python项目,包括打包、上传、安装和设置自启动服务的步骤,具有一定的参考价值,感兴趣的可以了解一下... 目录一、准备工作二、项目打包三、部署到服务器四、设置服务自启动一、准备工作开发环境:本文以PyChar

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

SpringBoot项目删除Bean或者不加载Bean的问题解决

《SpringBoot项目删除Bean或者不加载Bean的问题解决》文章介绍了在SpringBoot项目中如何使用@ComponentScan注解和自定义过滤器实现不加载某些Bean的方法,本文通过实... 使用@ComponentScan注解中的@ComponentScan.Filter标记不加载。@C

基于Qt开发一个简单的OFD阅读器

《基于Qt开发一个简单的OFD阅读器》这篇文章主要为大家详细介绍了如何使用Qt框架开发一个功能强大且性能优异的OFD阅读器,文中的示例代码讲解详细,有需要的小伙伴可以参考一下... 目录摘要引言一、OFD文件格式解析二、文档结构解析三、页面渲染四、用户交互五、性能优化六、示例代码七、未来发展方向八、结论摘要

javafx 如何将项目打包为 Windows 的可执行文件exe

《javafx如何将项目打包为Windows的可执行文件exe》文章介绍了三种将JavaFX项目打包为.exe文件的方法:方法1使用jpackage(适用于JDK14及以上版本),方法2使用La... 目录方法 1:使用 jpackage(适用于 JDK 14 及更高版本)方法 2:使用 Launch4j(