程序员不去了解需求就进行开发正常吗?

接触过上万名创业者,开发上线过超过30款App,没有比我更适合回答这个问题的了。。

本文对想做好一款App项目的人来说这是一篇价值百万的回答!因为这是我们花了几百万试错成本试出来的经验!

在我们从事app开发行业以来每天都会收到大量客户的咨询。其中有创业者,公司的项目经理等等。前后2年左右的时间接触了上万名想做App的客户。发现80%的客户都容易犯一些致命的错误。

◆以为做个软件很简单,所以描述需求的时候及其模糊。

◆ 急着想要报价,在自己对需求不确定的时候就要报价。然后就按这个报价开始做。

◆不知道自己要什么,想做个商城说要做的是淘宝。

◆ 网站和手机App区别搞不清楚。要做手机App却说自己要做网站。

◆ 以为所有软件都有模板,而且模板都很便宜。

◆缺乏耐心,不明白也从未想过自己要做的东西有多复杂。

◆自己不知道要做的东西的具体功能,要靠开发商来猜。而且还这时候就要报价。

事实告诉我们,这些问题一定会导致以下结果。

◆ 项目做出来跟自己想的完全不一样。

◆根据一项国外的专业数据统计机构调查,在外包项目中,有52%的项目经理因为项目失控/失败而被迫离职/降职/开除。

◆ 项目上线的时候漏洞百出,反复修修补补解决不了问题。后面必须重做。(滴滴打车当年的外包就遇到了这种情况,找外包做的一塌糊涂。做出来没用过一次就直接报废重做)

◆ 误把自己都不确定需求时得到的不靠谱报价当做真实报价去开始做预算,导致后期资金预算跟不上继而导致项目失控/破产。

我们经常遇到客户第一次跟我们咨询的时候说,以前找的某某软件公司太坑爹。做的东西象一坨屎,仔细一问就发现。原来他自己在项目开工之前自己对自己的需求是完全不清楚和不确定的。就这样稀里糊涂就开工了,以为开发商会帮他完善剩余东西。实际这些客户告诉我遇到过的开发商没有一家会去帮他们中途完善。

原因很简单,需求想的越仔细开发成本越高。一般根据需求的细化程度,成本差出来几倍到几十倍都很正常。10万接的项目,真要扣细节100万的工资成本都不够。这也是一般客户们平时问报价的时候,不同的开发商报价会差出来这么多倍的原因。并不是仅仅是贵和便宜。根本原因是大家对需求的理解完全是不一样的。客户自己不清楚就没人会清楚了。

负责任的外包公司会仔细的问你需求细节,不负责任的外包公司上来就给你报价。

人总是有惰性的,一旦要想事情和要思考的时候都懒的思考。所以客户们一般反而会讨厌这种有耐心的会仔细问需求的开发商。反而喜欢这种什么都不问其实不知道你要做什么,但是先报个超低价吸引祝其入坑的开发商。最后带来的结果一般就是我们前面提到的那种情况,项目直接失败。或者中途被黑心开发商宰一把,中途狠狠加价(原来1万能做的功能中途要5万)。因为你已经选了他了,要么做到一半放弃,要么按他的继续加钱。大部分人都不想前面投入一半的预付款打水漂,而又不知道加这么一个功能到底会加多少钱。这时候已经没法再去选其他的开发商试了。所以会选择做下去。。。

我见过的最常见的例子,就是很多人上来就问做一个APP多少钱?或者问做一个简单的APP多少钱?或者说我要做个类似美团/淘宝/京东/滴滴打车。。。一样的APP多少钱?

第一种:问做一个APP多少钱?

其实你问这个问题就好像你到4S店问,一辆车要多少钱?车有10万的家用轿车也有1000万的超跑。车根据用途(轿车,越野,跑车,赛车,公交也是车),配置,引擎,装置不一样,价格和成本是天差地别。同理,你来问APP也是一样的。必须表达清楚自己要的是什么样的APP,用于什么场景,APP解决什么问题,怎么解决(具体需要哪些功能)。就来问价格,不亚于你去问汽车4S店,我就是要一辆车,你告诉我价格就行了。别人肯定会拿你当傻子。因为你踏马没告诉人家你到底要什么车啊魂淡!!!

如果你只问我做一个APP多少钱? 我只能告诉你,几百块到几个亿,都有可能。

第二种:我要做一个简单的APP,多少钱?

每个人对简单的定义是不一样的。你说的简单具体是简单到什么程度,你又具体是要做什么东西的,很多人觉得微信也挺简单的。。。建议你每次问的时候都说清楚具体功能。

第三种:我要做个类似美团/淘宝/京东/滴滴打车。。。一样的APP多少钱?

一般这么问的创业者有个特点,很多说不清楚自己要的是什么。可能只是看中了比如滴滴打车的地图功能,但是描述的时候说的是跟滴滴打车类似。而滴滴打车的地图功能本身实际只占了滴滴整个软件系统功能的百分之一都不到。同理,有的是看中了美团的团购部分,说自己要做的是美团。有的看到京东有在线支付,就说自己要的是京东。如果你直接这么问,我其实完全不明白你想要的是你举得例子里面的具体什么功能。因为不可能完全仿一个美团/淘宝/京东/滴滴打车。。。

为什么不能是完全仿做?你看到的貌似简单的美团/淘宝/京东/滴滴打车/微信......这样的APP,每个的软件研发成本都是过千万,乃至几亿的(特别是复杂的后台)。因为这些大公司APP的细节的复杂程度和后台的复杂程度超乎你的想象。现在所谓的很多软件仿京东,微信之类的,网上说能给你开发微信京东之类的公司,可以说真正能做的功能不到微信京东的百分之一。举几个具体的例子。比如就说最基本的注册登录,可能就分为邮箱注册登录,微信授权登录,QQ授权登录,微博授权登录,短信验证码注册登录,密码找回又分为邮箱找回和短信找回。这里就罗列了7种情况,你做一种还是做7种开发成本可能就差了7倍或者更高。

又比如搜索功能,最简单的搜索功能可能开发一下就是几个小时的事情,但是这种搜索可能在几千个,几万个商品数据的时候还能正常运行。但是如果商品数据有几百万条,这时候肯定会崩溃。而不仅仅是商品数据会起到影响,比如你搜索功能是支持模糊搜索(即输入的关键词可以有偏差)还是精准搜索。模糊搜索能模糊到什么程度,讲究都是很大的。淘宝京东这样大平台的搜索功能,很多大公司光一个搜索功能就是需要十几个人的开发小组常年去进行开发和优化,养这些人的成本一年就是几百万上千万。你现在就可以打开淘宝的搜索功能仔细看看它有多少细节(高级搜索,地域,价位筛选,搜索结果排序等等等等)。感兴趣的可以自己去查查这些上市公司的财报。每个季度在软件开发上的成本都是几千万到几个亿不等。大公司一定是招自己有需要的人,如果不需要肯定不会招这么多人。由于篇幅有限,更详细的原因和要注意的地方不做详述。

这里贴上滴滴打车的招聘广告,感兴趣的可以看看滴滴打车背后的技术团队有多少人。

仅3月份在招的技术职位就多大上百个。平均年薪都在20到40万之间。

现在诸位能理解为什么很怕这些问题了吗? 因为创业者的确是明明确确的告诉我,要做一个淘宝/京东/滴滴打车类似的APP,但是这种APP的成本是天文数字。你可能要的只是其中一部分功能,或者只是想模仿他的运营模式。

有些人可能会觉得,这是大公司所以才需要。我创业初期需要考虑的这么细吗?很明确的告诉你,非常需要。

等到错误发生了你再去解决,所要付出的成本是非常巨大或者会直接导致失败。

大公司不仅仅是因为他是大公司才做得细,是因为他做得细才能成为大公司。

而且你不考虑没人会替你考虑。不要寄希望于你在网上找的这些软件公司,他们只会告诉你这件事很简单,你快来吧,来了就能发大财,互联网人傻钱多。你不说清楚自己的APP具体需要的是哪些功能,最后吃亏的一定是你自己。因为你在不清楚自己要做的东西具体是什么样子的时候,你找的软件公司就更加不知道。

你寄希望于他们给你去思考细节,他们只会给你偷换概念,偷工减料。因为这样做就可以给你的报价更低增加你选他的概率。

之前有个真实的例子,一个客户跟个不负责任的开发商只说了有注册登录,而没和他说过要做找回密码,开发商也没有提醒他。而最后软件就是没有找回密码的。如果各位看官不想自己也遇到这样的情况而被坑,就请想清楚自己App尽量多的细节。

比如一个购物车功能包括,加入购物车,从购物车移除,添加/减少购物车内某个商品的数量,直接输入数字修改商品的数量,批量付款。这些功能里面你说了一个很多开发商就只会做一个,大部分开发商不会考虑其他的。而一般创业者会觉得,淘宝有啊,一般都有啊你为什么没做?(创业者看到的一般都是那种大公司很成熟的产品),你要知道,淘宝的开发成本是亿级别的。而且经过了很多年的迭代和更新。

阿里巴巴集团2015年Q3季度财报显示,2015年第三季度产品开发开支为人民币32.25亿元(约合5.07亿美元),占营收的15%。你没看错,一个季度32亿的开发成本。一年就是一百多亿。

大部分情况下细节方面你不和开发商提,一般就没有。如果别人会替你考虑的越全面,那么开发成本一定会很高。

这里我列举三大块最影响APP软件质量和成本的东西。希望大家一定要记在心里!!!方便找合适的开发商和掌控项目质量。

现在市场上存在的几种开发方式如下:

web网页加壳生成APP的开发方式,先花几百块钱买个现成的手机网站模板,在加壳打包一个APP只需要5分钟,但是做出来的效果很差,耗流量,浏览体验极差,访问速度慢等等。部分开发商利用客户不懂,把这种5分钟速成的东西,当成原生态开发的APP去欺骗创业者。卖几千到几万的价格。而创业者很多时候还自以为捡了便宜(问了十几家这家最便宜)。

b.Web网页+原生态混编(网页部分占80%以上)

混编方式的APP效果比第一种稍好。但是如果要做出接近原生态的效果,需要不断的优化和改版,花的钱不比原生态少。而如果不对网页和系统优化,只是简单的拼凑。那么做出来的效果和web加壳的差不多.

成本大概是原生态APP的50%到30%,也是比较接近原生开发能达到效果的一种方式。但受到很多限制。各大平台兼容性还不足,相对来说还处于过渡期,同时比较耗系统资源。在低配的手机上更卡。手机淘宝的APP目前就是HTML5+原生态混编的,相对来说在很多低配的手机上还是比较卡的。最近优化了很多,但是早期的表现很不尽人意。Facebook和京东都尝试过HTML5,同时也吃了不成熟的亏。HTML5的未来或许是美好的,但是这期间的试错成本小公司不一定承受得起。

是目前最常用和最成熟的方式。越重视细节成本越高。一般根据具体功能要求一个APP的开发成本从几千块到几千万不等。

2.功能的实现方式(功能的复杂程度和用户量)

比如上面说到的搜索功能,具体对搜索功能的要求成本会让成本差出来几万倍。不仅仅是搜索,再举几个例子。比如微信里面的聊天,分为文字,图片聊天,录音的语言聊天,语音及时对讲,视频聊天。

语音及时对讲和视频聊天只简单提一提。这些都是开发成本要用百万级和千万级来计算的东西。微信和QQ乃至现在自己的语言对讲和视频聊天都是有很多问题的,比如同时多人聊天会有很大的回声,电流,杂音。不是腾讯不知道,是知道了但是很难解决。

这里具体讲比如录音发送,一般来说我们听一段60秒的音乐是1M左右。而微信的一段60秒的语音压缩到了几十K,来保证发送和接收时的速度。同时还做了语音降噪(减少周围的噪音)等等。而如果这些不去考虑,只是简单的发送一段语音。两者之间的开发成本相差几倍到几百倍很正常。同样的,你的APP做出来你会发现,消息发送很慢,很耗流量等等。

3.APP在手机上的兼容性

相信各位在用手机APP的时候,特别是安卓手机。肯定发现有些APP会闪退,卡死之类的情况。这个就是因为APP的一部分功能在这台手机上不兼容或有bug。这些问题非常多而且很难解决。你只是一个用户的时候感觉不会那么强烈,因为你用的大部分都是大公司开发的很成熟的产品。但是你自己作为创业者的时候就必须要考虑了。因为没有人想自己的APP开发出来,10个手机上8个闪退。但是事实又的确如此。很多几十万成本开发出来的APP到处都是闪退。

兼容性是非常影响成本的(会对成本造成上下几倍到几百倍不等的成本)。仅安卓而言。安卓手机全世界有一万多种机型,各种不同的手机品牌,分辨率,操作系统版本号,都对程序的兼容性有影响。很多时候做兼容性调试的成本还要大于软件的开发成本,真要做到主流手机兼容,光买测试的手机就要花几十万去买。一个APP如果开发出来,不做兼容性调试开发。和做兼容性调试开发,成本也是会差出来N倍的。

另外在说说模板,很多时候一些项目如果有成熟的模板解决方案能节省很大的成本。

但是模板也一样价格存在巨大的差异。同样的一个商城模板可能价格也上下差出来几十倍,原因也是因为细节功能完全不一样,可能功能差了十几倍。如果你在买之前不仔细观察细节功能,那么一定会出现买了后大呼坑爹的情况。这个系统可能整个流程都是残缺的,更不要提你拿这个残缺的系统去运营了。

另外不是所有APP都有模板,一般来说只有商城相关的APP的模板比较多。而且模板有成熟不成熟的区别,真正成熟的模板开发成本和时间是巨大的,一个公司不可能同时有很多好的模板。因为数量多,必定不精。开发一个好的模板的成本已经巨大了,同时还搞多个,则说明每个模板上投入的成本和精力不会太多。

3月30日更新几个app外包开发常见的几个坑。

客户问外包公司你们有什么知名案例吗? 外包公司说有啊,美团,大众点评,携程,一号店(说出一个一二线,或者是三线有一定知名度app的例子)是我们做的/是我们的案例。

这种情况下90%是偷换概念或者纯骗。不管你找的这家公司是真有几百个人的大公司还是只有几个人的小公司。

客户喜欢听大案例,这样放心。但是在互联网技术领域,大公司的互联网产品是不可能外包给别人做的。

实际情况是,任何你但凡听说过小有名气的App,基本都是互联网公司自己招人做的 不太可能是找外包。你可以在百度搜索任何一家你听说过的app名字或者互联网公司名字+招聘2个字,都能看到他们长期在招聘大量的程序员工程师,同时公司长期备有几十到几百,甚至上千人的技术团队。

即使真的找外包,可能是最早创业初期的第一期找的外包,但是他们后来出名的那个系统跟最初找外包做的,已经完全不是一回事了不是一个东西了,业务代码已经完全不一样 。

外包做的东西就是前期低成本试错的一个东西,很可能一次都没用过就直接报废。滴滴打车之前最早就是找的外包开发的,但是基本没正式用过就直接报废了自己招人重新做。但是这家外包公司可能在N年后滴滴打车牛逼了后会跳出来跟客户说:滴滴打车是我客户案例,滴滴打车是我做的。利用的就是偷换概念和客户不懂不会较真。滴滴打车当前找他们做并不是因为他们牛逼,而是滴滴打车可能也被他们坑了。

还有的是,有些外包公司在这个很出名的App公司团队初创的时候,跟这个团队的创始人吹过牛逼,也只是吹过一点牛逼而已,可能并没有实际合作项目。然后这个外包公司N年后发现当年一起吹过牛逼的那小伙做成功了,这时候他跳出来说 XX是我客户,XXApp是我们客户案例。。

还有一种情况就是, 比如很大的互联网公司,比如携程或者大众点评或者一号店,他们平时开发的时候也会有忙不过来的时候 ,偶尔会找些外包公司进行一部分的人员外包,要几个技术员过来帮忙干几个月临时的杂活。一般都是打杂接触点边缘化的没有技术含量的东西,根本接触不到核心部分业务代码。 但是这时候外包公司又会说,大众点评是我们做的。都是偷换概念,显得自己牛逼。

还有的就是一点关系也扯不上, 强行欺骗来增强客户信任。揭穿了就算了。

其实你可以做个简单的实验,你在百度或者其他任何平台公司找app外包开发公司的时候,会遇到N家官网上有大众点评,或者在家点点,携程,美团之类的app是他的客户案例的,或者是他们的业务人员亲口跟你吹这样的牛逼。

其实这些被合作的互联网公司并不知道自己被合作了,以前有个梗是说吃了一次肯德基就是肯德基的战略合作伙伴了,加了一次油就是中石化的战略合作伙伴了。 而在app外包领域里真的这么干的公司非常多,不说小的,甚至大量已经上市的外包公司也吹这样的牛逼。偷换概念乐此不疲。

外包公司给你的合同一定要仔细看,很多时候被骗的客户自己公司是有法务的但是也一样被骗。因为你的法务和律师根本看不懂那些看似专业的技术词语。所以并不知道他是在扯淡还是合理的。由其是在验收标准和开发要求的这几大块上。基本如果甲方公司没有懂技术的,哪怕有专业的法务也太容易被骗。

一般体现在合同里对需求描述的不详细或者压根合同里就没有提到需求,只说要做个某某app,多少钱什么时候交付。 这样的合同其实压根没有一点卵用,你们之间商量的做个某某app只有你们自己口头讨论了需求,但是如果没非常详细的落实在合同里,最后外包公司随便给你个东西也能交付。甚至压根就不是最早你们商量的,因为合同里并没有证据能证明你们要做的到底是什么。

同样的还有开发方式(原生还是混编,H5还是加壳),验收的标准是什么这些如果不提,每一次都是提前被埋下的炸弹,遇到骗子你去法院都白瞎。根本就告不倒人家,就是合法的骗。

一般负责任的公司在合同里都会非常详细的给到一个很长的需求文档,根据项目的大小起码有几十页,里面有各自原型图和需求说明。用到的技术,项目架构,开发方式等等都讲的非常清楚。

这个文档是合同非常重要的附件,里面详细的描述了你们这次项目具体是要做成什么样子。如果没有这个,双方签完合同的时候其实都是蒙逼的。要做什么根本没个界定,到时候胡乱拿个东西交差也是不违反合同的。

这个看似常识的东西其实大部分外行都不知道,我每年都至少见到几十起外包开发被骗是被坑在这个地方的。

甲方如果不重视这个,哪怕被人骗了告到哪去都没用。 因为别人没违反合同。你们的合同压根就是一张废纸。

暂时就更新这么多,app外包坑非常非常深。最好的方式就是甲方自己公司有个懂技术的能参与进来选择开发商和逐步交接。以后有时间在慢慢更新,希望能帮到真正想创业的人。

}

传统互联网一个项目的完成,涉及到许多种类的开发人员,其中包括需求,测试,开发以及运维的协同合作,各职位干好自己的本职工作,才会使一个项目完美的收工。那么问题来了,在薪资待遇中,这些程序员种类哪一类更吃香呢?


首先要说的是需求,需求可以说是程序员群体中薪资待遇最好的了,虽然需求部敲代码,但是产品的设计都是这些需求进行设计的,一般需求的工资集中在10k到30k之间,但是有些稀缺的需求月薪10万以上,而且上不封顶,所以需求比开发吃香也是理所当然的。


测试这个工作从轻松程度上来说,也许是最轻松的,薪酬待遇也集中在10k-50k之间,但是薪酬不会太高,毕竟是产品和项目的结果出来了,才有你的工作,所以测试的薪资最高不会超过月薪6万。


开发对于程序员来说,区分的工种太多了,薪资集中在3k-100k之间,因为开发的活比较累,所以开发的工资相比测试高很多,同样工作年限的开发和测试,开发要比测试高5k-10k之间,工作能力和技术水平高的开发,比测试可能高50k。


运维对于程序员来说,可以说会的东西太多了,需要了解一点测试,懂一点开发,并且操作系统自己操作的很畅通,一般工资集中在10k-60k之间,关键是运维工作轻松,会运维的小伙伴可以说是一种吃香的饭碗了。


最后,无论从事程序员哪个门类,最后的薪资待遇绝对不低,主要是工作的轻松程度的差距,所以想挣钱的小伙伴可以从事这些职业,肯定能够解决温饱的。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

}

我和作者的经历一模一样,毕业那时就进了一家中小型公司,公司的项目都已经成型了,跟我一起进去的几个小伙都是维护旧项目,最多客户说加需求才会有新功能写,不然都是修修改改bug,美化界面。

但是我觉得我在维护旧项目能学到很多,比如说阅读别人的代码,是对自己的一种成长,从中可以看出代码的质量,提醒自己不能和他们写的一样,会经常遇到空指针的报错,各种小问题,学会排查问题,学的最多的是,优化别人的代码,我从一个3000+行的jsp优化,封装。

上面这些都是我实习时期的工作和收获




我也是一个java后端开发,工作了几年,也是从应届慢慢一路走过来的,说一下我的感想。

我记得刚开始的时候我是到了上海一家公司实习,因为刚出校门,在学校学习的东西在企业可能就用不上了,然后公司安排了我们三个月的培训,培训的内容涉及到了数据库,plsql,前端后端的基础,最重要的一点是公司自己研发的框架,这个有的小伙伴就学习了一周就被公司派去做项目了,这种框架都是底层封装的很厉害,只需要按照特定的步骤就能开发出客户需要的功能,业务层面更重要一点,所以只需要会sql,就能搞定日常开发,所以如果一直搞这个几年,我觉得出去都不好找工作,所以当时我们都不愿意去这个部门搞公司的新框架。如果进了公司,平常都不怎么敲代码,业务功能更强一点的话,我觉得这个还是别去了,因为这样的话,对于应届生成长会很慢,以后找一份技术开发都有点困难。

然后我运气比较好,第一个项目公司就派我去做java开发的工作,当然我那时候啥也不会,我也不知道去项目组干什么,在项目组两个月我基本上都是用模板写导入,导出,写一些页面,因为是实习生,所以就只是参与一些比较小的功能点,但是我已经很开心了,通过这个项目我知道开发是怎么回事了,知道大家是怎么协作开发项目,管理项目了,知道冲突怎么解决了,比我在学校里看着理论强太多了。

后面我又到了另一个项目组,是维护一个ssh老的项目,在老的项目上增加新的功能,这个项目我竟然做了8个月,当然在这个项目上我也学到了很多,不光是我的思维开发,碰到了客户的需求从哪里去想怎么做,还有数据库建表模型,遇到问题去服务器里面看日志,这些都是在项目上学会的。

当我实习完,我感觉公司里接的都是一些管理项目,我觉得再做下去我的技术也不会提升,所以我果断离职了,然后找了一家互联网的公司。

所以我觉得刚毕业的应届生维护老的项目也能学习很多,整个开发的完整过程,锻炼自己的业务逻辑,对数据库的理解,看错误日志都可以从这个项目中了解,平时不忙的时候还可以把自己的基础打牢固,好多知识都是自己去自学的,现在网上信息那么全,想要了解什么知识都是可以去自学的,当你觉得你在这个项目上学不到什么知识的话那就可以跳槽了。




个人认为,这是很正常的现象,维护老项目,做新需求,对工作经验的积累也是有帮助的;但同时可能会对你的发展有一定的影响,我来详细地谈谈自己的看法。

在大部分的公司,一个项目的生命周期,都是以年为单位计算的,短一些的两三年,长一些的十来年(我见过最老的项目已经运行二十年了);如果是传统行业的公司,一个项目运行五年以上再被迭代替换掉,是很正常的现象,说句不好听的就是:“哪有那么多新项目让你参加。”

要想维护好老项目,很关键的一点就是要了解业务,很多程序员只看中技术,而忽视业务,这种看法是不对的。

熟悉业务就需要了解行业领域的运转逻辑和流程,需要知道行业是如何发展起来的,现状是什么样子,未来趋势将会是怎样;用什么技术,有哪些解决方案。如果你只会敲代码,那你就是可以被替代的,因为现在会敲代码的程序员太多了,除非你技术超群,能达到大师的水平,但公司在招聘程序员的时候,更多的是看你做了哪些项目,是否能够用手中的技术解决某方面的业务问题。

现在很多IT公司喊“驱动、技术驱动”,但实际上,大多数时候都是被业务逼着前进,就比如阿里的飞天系统、中台战略架构,也不都是淘宝用户逼出来的。

  • 首先,维护老项目,也分侧重业务还是业务和技术兼顾,这要看公司的性质。比如我就职于一家金融公司的IT部门,校招进来的开发岗位,大多数还是以业务为主(很多时候开发都依靠外包),这些同学进公司几年下来,技术方面进步是非常有限的;在这方面,互联网大厂做的就非常好,对于校招的同学,公司都有成熟的培训制度,有些公司会一对一地安排“老师傅”带新人,而且新人的主要工作就是敲代码。所以,如果你在一个偏业务的公司,就要自己更努力一些,去提升编程能力。

  • 另外,“老项目”要看有多老了,需要分析一下项目组的技术栈都有哪些,近期是否引入过新的技术。如果项目用到的框架还都是五年前十年前的,而且长期保持不变,这时候就要小心了,你可能身处在一个毫无活力的项目。因为你是“新人”,第一年技术方面还能有所提高,后面的工作可能对你技术的提高毫无帮助。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。




这个看你所谓的Java老项目指的是你这个项目的架构太老了还是仅仅因为是上批人留下的旧项目,但架构还是当前主流。

如果你说的是项目的架构老了,那可以肯定的说对以后找工作没有什么好处。现在技术发展这么快,一不小心就会被落下,虽然不说要走在技术前列,但至少要跟上主流。我面试的过程中,经常碰到一些程序员在上家只是维护老项目,他们接触的架构太老,好一点的还知道Struts,更倒霉的有些进的是大公司,维护的是十几年前的项目,架构还是用的公司自已封装的,甚至连SpringMVC都没用过,更别说Springboot等等了。这些人换工作的理由基本都有一条感觉技术上落伍了,想要接触下新的架构。尤其是应届就进公司维护老架构,完全没有新技术的工作经验,对以后的发展很不利。

另一种情况,如果这个项目的架构还属于当前的主流,只不过是之前已经完成了,你现在只是维护,那可以说对你是一个很好的机会。静下心来,认真去学习这个项目,先从整体上把握整个架构,请求进来一步步怎么走的,每一步都用到了哪些配置、哪些技术,然后再掌握细节,可能这个地方用到了锁,那个地方用了多线程,等等。在有成型的项目参考的情况下,学东西特别有效果,千万不要忙时只顾写代码,闲时只会撩妹子。




这个问题其实真的值得好好思考。很多IT圈的朋友遇到过这样的问题,被安排到公司的一个老项目上,成天维护旧代码,学不到新东西,需求还总变,到底对以后有没有帮助?

其实,有时候还真不能通过辞职来解决问题,为什么呢?这是因为辞职虽然可以解一时之痛,但并不是上策,你从一家公司跳到另一家公司,如果不出意外,很可能依然是平级跳槽,即使在工资上稍微有些增长,但如果新公司的项目比原来的还坑那你是不是叫天天不应,叫地地不灵?

我们在职业生涯中,如何面对这种看似巨坑的Java项目?我的答案是,积极面对。

积极面对的意思是深入挖掘项目需求和实现之间的关系。

一个Java项目不论好坏,其背后的需求价值是值得肯定的。这样的价值在市场上也是值得肯定的。那么我们感觉老项目没有前途,只是我们自己由于认知的片面性导致对项目的错误认识。

我认为应该做的就是深入理解需求和实现之前的关系,挖掘需求是为了在所处行业中找到立足点,而挖掘技术实现是为了能够增强自身核心竞争力。

在深入理解需求和实现之后,我的建议是进行重构和调整,重构的意思并不是重新写一遍代码,而是让代码的健壮性更强,后期维护的项目,需要更强的健壮性来支撑,这样才能跑的更久。

需求的改变并没有什么关系,而我们应该视需求的更改为一种常态,不变的需求才是不对的。以这样的心态去面对老项目,新需求就不会那么痛苦。

让自己放平心态,才能学到知识,否则,就算你辞职辞职再辞职也不过是从一个坑跳入另一个坑。辞职是一种回避,治标不治本如果想真正有所成长,必须在一个坑中拼命的站起来。

以上,就是我的个人观点,希望对你有所帮助。




对于应届生来说,进来就要你做新功能,从0开始开发系统的比较少!一般就是要你进来维护系统改改需求。

前期要你改改需求还是挺好的,你说的老项目,可能技术都不是最新的,对于入手都不难。你可多学习下别人代码熟习下功能,多敲多练下。假设你开发,你能不能做出来,带着这样的想法去学习事半功倍。

后期公司一般要求重构,那样你的机会来了。有大神带着你从0开始解析需求,设计框架,新技术研发你都可能参与到,对你成长是很有帮助的!

即使不重构,你可自学其他技术!因为老项目改需求也不是很忙,对你后面可能分分钟解决!那样每天肯定有空闲时间,这时候你得利用起来,在网上自学参与一些实战项目多练习,对你很有提高!另外你也混的是经验,为何呢?本来应届生现在不好找工作,经验的积累对你找工作成功机会也是很高的!




作为一名IT行业的从业者,同时也出版过Java编程书籍,所以我来回答一下这个问题。

首先,在软件开发领域,尤其是应用级开发领域,改需求是一种常态,即使开发互联网领域的产品,也需要不断的迭代。随着大数据、云计算的发展,软件需求几乎每天都要进行调整,不少大型互联网企业甚至有多个不同的开发团队同时向多个不同方向进行产品迭代,以便于能够及时把握住用户的各种最新需求。所以,程序员在面对需求更改的时候,一定要有充足的思想准备。

由于Java语言已经有了多年的应用,所以目前有大量的项目都是基于Java语言编写的,随着技术的不断发展,这些项目如果想进一步延长生命周期,必然需要进行一定的修改,所以目前在Java传统项目的基础上进行开发也是比较常见的现象。

虽然是从事遗留项目的开发,但是由于Java语言目前依然是IT行业内最为流行的编程语言之一,所以对于开发经验并不丰富的应届毕业生来说,也能够积累一定的开发经验,毕竟实际的开发项目能够获得更快速的成长,同时也能够积累一定的行业经验,可以说是一举两得的事情。

对于应届毕业生来说,要想不断提升自身的职场竞争力,需要做好三方面的事情,首先是不断丰富自身的知识结构,重点在于能够紧跟技术发展趋势;其次是能够通过自主学习完成某个细分方向的突破,这通常需要一个扎实的基础学科基础,比如数学;最后是积累丰富的实践经验。所以,在工作的初期通过修改遗留项目也能够积累一定的开发经验。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言!




从事软件开发多年,对于刚入行的程序员来讲开始的工作都会觉得比较枯燥或者没有什么长进,技术类的职业一般对于新手需要一个很长的适应期,因为一旦新手开发做项目之后出现问题解决排查的时间还不如用一个成熟一些的程序员哪怕任务多一些,最后的结果也会比新手程序员要强一些,不同的职位的新手程序员经历的适应期也会不太一样,像楼主说的在以前的框架的基础上修改需求,这也是大多数公司的程序员要做的事情,因为不可能所有的项目都是从头再来。

在框架的基础修改需求不仅仅是新手程序员做的事情,也是很多成熟的程序员做的事情,一个程序员首先要会做东西,然后是更好的做东西,最后是搭建框架满足更多的需求。初级的程序员做点修修补补的事情也特别正常,不要觉得现在做的事情很无聊,这么多一是在适应环境一种是从简单的事情中提炼出自己要学习的编程技能,很多人觉得在一个框架上不停的修改点功能,重复的工作太多没有什么挑战性,任何一个功能需求点力求尽善尽美才是程序员要追求的境界。

程序员基本技能之一是项目开发能力,开发项目更是多种能力的考验,虽然是在一个框架上不停的修复,但修复的过程也对框架认知的一个过程,如果是好奇心非常强的程序员就会忍不住找到底层的代码进行研究,这些过程都包含在天天修改新需求的过程中,有很多人觉得java的开发就是增删改查,其实大部分的工作基本上就是这四个字,但真正要做好这几个字却是有有很大的难点,程序开发工作最大的忌讳就是好高骛远。

程序开发讲究的是水到渠成,前面积累的经验以及项目中遇到的问题,都能极大的扩展知识框架,对于后续找工作有非常大的好处,如果觉得修改需求是一件非常简单或者重复性事情,证明还没真正的领悟到编程的内涵,编程的学习无处不在,不同的需求延伸出来不同的知识点,应该会有学不完的感觉。

在任何一个岗位上想真正做出一点成绩需要付出十万个小时的努力,所以楼主提到的修改需求距离真正的修炼还差很长一段时间,善于从实践中找到自己的不足,然后拿出时间来修复基础,拓展自己的知识面,如果保持着这种积极的心态,早晚是编程高手,真正的高手都不是自己寻找工作都是公司主动来挖人。

编程这个行业算是非常公平的岗位了,开发一个功能模块如果下的功夫到位几乎不会出什么问题,如果是一门心思的完成任何,不去深层次的挖掘被淘汰也只是时间问题了。技能水平上去了工作手到擒来的事情,希望能帮到你。




分享一下个人的看法,仅供参考!

你要意识到一个问题,工作中大部分时间都是在维护老的项目。如果你进入一家公司,从开始就是开发新项目,才意味着你能学到的东西非常有限。

通过维护现有的,已经能稳定工作的项目,学习别人的编码方式,项目架构,来帮助你形成有一个正确的编码思维。软件具有工程性,就是说会有很多现存的理论来指导你如何开始,如何进行,整个过程如何尽可能正确顺利的进行下去。但是同时工程也意味着单纯的理论是不够的。你需要在实践中总结积累经验,理论指导实践,实践在反馈回来,纠正理论。本人是软件工程专业出身,曾经以为很牛很主流的的理论,比如瀑布模型,面向对象编程等,在实际工作了之后,才意识到理论就是理论,实践会根据自己的需要,以及长期的经验积累,有选择的做取舍。因此,多看看人家现在的一名上线的项目是怎么玩儿的,往往很有好处。让你从头开始写一个项目,我猜你必然会落入理论的圈套,最后无法自拔,项目延期,无限加班。如果总是自己在创造一些东西,听起来很酷,但是很多时候你也可能在错误的道路上走的越来越远!

当然,你也得多留心。现有代码也会存在各种垃圾code在里面,这也就需要你在维护这些项目的时候,思考那些代码是值得学习的,那些代码是应该改进的,通过这样的思考,你取得的进步绝对会大于你整天做些项目大的多。




未搞开发之前,总觉得以后肯定牛气哄哄,根据需求,万丈高楼一砖一瓦的搭建。而实际上,这是不允许的,需求不断的更改,开发周期不断地压缩,最终的结果就是开发之前,download一个,然后各种修改。同时还在维护前辈的代码,多少人,多少种不同的编程风格,到我手里的代码,看着惨不忍睹。

维护老项目其实对找工作还是挺有用的,毕竟大部分公司都一样,一大批老项目需要维护。

}

我要回帖

更多关于 程序员如何提升自己 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信