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

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

相关文章

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Three.js构建一个 3D 商品展示空间完整实战项目

《Three.js构建一个3D商品展示空间完整实战项目》Three.js是一个强大的JavaScript库,专用于在Web浏览器中创建3D图形,:本文主要介绍Three.js构建一个3D商品展... 目录引言项目核心技术1. 项目架构与资源组织2. 多模型切换、交互热点绑定3. 移动端适配与帧率优化4. 可

sky-take-out项目中Redis的使用示例详解

《sky-take-out项目中Redis的使用示例详解》SpringCache是Spring的缓存抽象层,通过注解简化缓存管理,支持Redis等提供者,适用于方法结果缓存、更新和删除操作,但无法实现... 目录Spring Cache主要特性核心注解1.@Cacheable2.@CachePut3.@Ca

Python实战之SEO优化自动化工具开发指南

《Python实战之SEO优化自动化工具开发指南》在数字化营销时代,搜索引擎优化(SEO)已成为网站获取流量的重要手段,本文将带您使用Python开发一套完整的SEO自动化工具,需要的可以了解下... 目录前言项目概述技术栈选择核心模块实现1. 关键词研究模块2. 网站技术seo检测模块3. 内容优化分析模

SpringBoot通过main方法启动web项目实践

《SpringBoot通过main方法启动web项目实践》SpringBoot通过SpringApplication.run()启动Web项目,自动推断应用类型,加载初始化器与监听器,配置Spring... 目录1. 启动入口:SpringApplication.run()2. SpringApplicat

基于Java开发一个极简版敏感词检测工具

《基于Java开发一个极简版敏感词检测工具》这篇文章主要为大家详细介绍了如何基于Java开发一个极简版敏感词检测工具,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录你是否还在为敏感词检测头疼一、极简版Java敏感词检测工具的3大核心优势1.1 优势1:DFA算法驱动,效率提升10

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

在ASP.NET项目中如何使用C#生成二维码

《在ASP.NET项目中如何使用C#生成二维码》二维码(QRCode)已广泛应用于网址分享,支付链接等场景,本文将以ASP.NET为示例,演示如何实现输入文本/URL,生成二维码,在线显示与下载的完整... 目录创建前端页面(Index.cshtml)后端二维码生成逻辑(Index.cshtml.cs)总结