作为程序员工作两年的一些思考

我想能看到这篇文章的人,大概率是程序员,我们大多奋斗在互联网行业的一线,致敬我们为现代社会的“连接”写着一些微不足道的代码,尽管微不足道,但我还是为自己是一名程序员而感到自豪。

以下是我工作两年时间的一些述职及个人思考

存在的问题

工作了两年,很多地方开始暴露问题

  • 企业代码规范不同一,不同的小组,甚至不同的人
  • 在工作代码中不由自主的个人炫技增加项目复杂性
  • 所有业务需求都异常着急,没时间思考和沉淀更优实现方案
  • 技术人员相对封闭,在办公室无法真实接触代码带来的影响和用户体验

这四个问题是所有问题的root节点,我相信这些问题大多数开发都会遇见,至少有一两点是符合的,曾经我也被这些问题困扰,这些问题发生在两个阶段

刚开始接触企业项目

我刚入职的第一个项目,说实话我觉得从设计角度看非常糟糕,毫无规范,不管是当时还是现在,但从代码角度来看,很烂。但现在我不会这么想了,因为结合当时的场景和业务,以及产生的业务价值,烂是必然的。

但当时我几乎不受控制,我曾引以为傲的代码洁癖让我无法忍受那样的代码,我开始大面积重构,例如引入设计模式(理论级别)— 这导致了后面几乎不可逆转的失败

一名弹丸之地的建筑设计师讲过这么一句话“你的设计要给人一种这样就好的感觉,有一天,可能是一个风和日丽的下午,突然有一个点子,如果那样就更好了,如此你的设计才是优秀的,因为没有任何一样东西一开始就是完美的”。

我拿着从学校项目中的经验,用在里业务项目当中,各种设计模式,只要稍微有一点贴边就用上,对多线程的优化,对接口吞吐量的优化,用了很多本地缓存来提高系统性能

听起来还很不错,可实际上做这些事我几乎花费了60个人日,来重写一遍已经实现了的功能,极大的增加了系统复杂性,变成一个只有我一个人能开发新业务的“烂”系统,而实际带来的业务价值根本不值得花费这么大的代价

在公司一年后

工作一年后,产品经理这个职业对你带来的影响开始慢慢深入,这个阶段没有人跟你一起分析需求,你要自己对产品撕逼,这个阶段的冲突来自自己本身对业务的不理解,不懂市场,不懂用户。产品不知道技术细节,以为开发一个小功能很轻松(产品不会知道之前你为了赶需求给开发留下了多少坑,虽然是他们催需求造成的)

产品催需求,临时方案怼上,测试也草草了事,偶尔线上遇到bug,赶紧打个补丁,项目搞得千疮百孔,产品还一副不关我事的样子,有时候真想晚上找个麻袋套他,但真正的问题并不在这两个职业,第一是认知,第二是沟通,产品想的是业务带来的市场效益,消费者愿不愿意买账,横向对比同行,纵向延伸客户,早一天上线,我们就能更从容优雅的面对市场的变化,但开发想的是,妈的你这个事我咋落地啊,昨天A刚提一个,今天你又来,你想让我猝死在办公室吗。。。。

我曾经开玩笑说,放下idea,我也能当产品经理,而随后居然真的有本书叫做《人人都是产品经理》,我一想,产品每天干什么,不就是聊聊客户,怼怼开发,这活谁不能干啊对吧,我也来,以后你也别给我配产品了,我自己对客户,我去开发。

结果还真不是这样,感兴趣可以去读一读《人人都是产品经理》这本书,读完之后我就有一个感觉,人人都可以像产品那样去思考问题,但如果你想成为一个产品,那不付出时间和精力,是不可能做好的。

所以当我真正理解了产品这个行业,我们认知达成一致,我开始理解,不抱着敌对的心态沟通,我发现做事情的效率慢慢开始提高,无意义的争吵慢慢几乎不再存在,从他的嘴里,我了解到了更多市场相关的内容,了解到行业的发展以及各种花式磨人的客户

当然想让另一人跟你深度聊下去,这就是说话的艺术了,我希望所有开发人员,不管是问技术问题还是业务问题,都遵循StackOverFlow上的建议,其中最重要的一条,先思考!

比如问题1:
你承诺2000单一天,达不到怎么办?

鬼愿意回答你这个问题啊,你也不是我老板,凭什么让我立军令状,马上开怼的节奏

问题2:
你承诺每天2000单,但我看系统历史数据,这个业务上线可能只有1400单,你还有其他的计划嘛,如果有二期计划,可不可以先跟我聊一下?

自己有思考,尊重别人的思考,正确使用自己的时间,尊重别人的时间,让沟通变得有意义。

思考

现在,我越来越感受到作为一个程序员,对技术掌握只是基础内功,决定你是否从容面对工作中的挑战,而掌控了业务,能把理解业务,讲清楚业务并实现的程序员,才是好程序员真正的竞争力

甚至我们可以帮产品和运营丰富和完善方案和运营计划,提出他们想不到的平台支撑,数据支撑,这才是我们作为开发人员最牛逼的核心价值,代码谁都会写,现在一些不良机构批量生产“码农”,无非是技术深度不够,广度也是够的。

再牛的内功,如果不是客户诉求,客户也感受不到,总不会说,有一天客户在刷着动态,突然灵机一动,我靠,开发这个的程序员居然用了xx模式实现了这个动态,我要为这个付费。。。。by the way,who care???

那么现在这个时代,我们作为程序员,应该有哪些思考?

我们不妨把时间线拉长,看中国的互联网发展史。可以总结出一些脉络。
互联网行业现状的巨头是BAT,看他们都做了什么?百度 - 人与信息的连接,阿里 - 人与商品的连接,腾讯 - 人与人之间的连接

在百度腾讯阿里身后,开始有了细分领域的划分,比如,探探做陌生人领域社交、钉钉做企业内部沟通、抖音做短视频社交、拼夕夕夕夕做了三四线城市包围一二线城市的策略。但细分领域毕竟是细分领域,探探永远不会跟qq微信同台竞争

那么从这个角度看,未来会出现更多的细分领域,可以主打线下,可以主打饮食,类似美团,饿了么。。。但这些已经都是已有市场,业务人员讲存量市场,那存量市场是有天花板的。

那么是不是还有机会,看看最近火起来的这些概念 :5g、新零售、人工智能、无服务计算,物联网

每个拿出来好像就那么回事,那我们不妨组合起来看,5g+物联网 = 万物与万物相连,新零售 + 人工智能 = 智能化推动供给能力和效率的产业化链条精准投递信息。。。

那我们作为技术人员怎么样在变革中寻找自己的突破口,不让业务抛下是我们更应该在工作之余思考的问题,而不是一头扎进代码的海洋,技术解决业务难题,古往今来,都是当技术无法满足业务的需求才发生技术变革,变革也产生价值,要解决问题,那如果连未来业务都不知道,如何面对新业务所面临的技术问题?

举个简单的例子,人工智能领域为什么无法真正智能,因为我们现代计算机都是基于冯诺伊曼原型机理论,人脑不是用这种方式工作的,最简单的人脑中没有硬盘,缓存,人处理一件事的时候不会去根据硬盘目录寻址磁盘分片,然后把事件读出来到处理器中思考,现在计算机也没法模拟出真正的随机数。所以量子变成领域开始研发了,目的是解决这些问题

so,作为一个程序员,在两年这个时间节点上,在能充分掌握现有技术能力之余,不妨换一个角度,换一个角色和高度去思考同一个问题,人人都可以是产品经理,人人也都可以是程序员,区分的只有思维方式,像一个产品一样思考,像一个开发一样思考,像老板一样思考,加油!2020

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

你向着阳光奔跑的背影

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值