程序员工作经验总结

在几年的后端开发及项目管理工作经历中,感觉有些关键点是工作中需要注意的。

首先从我自己的工作内容聊起,自己也负责开发了好几个系统,带过几个团队,但是静下心来了解自己的工作,我的主要工作就两个内容:解决问题,进一步把解决方案自动化。

这个也是我工作的主要思路。

一、用文件的形式固化工作成果,保证工作可复制性,最后进一步实现自动化

平时工作遇到一些问题,一定要转化为脚本和文件,保证下次遇到这种问题,可以快速解决。

而不能遇到问题解决问题,没有后续,这种慢慢就吃不消了。

在文件固定化的过程中,也会遇到一些问题,就是垃圾信息较多的问题,出现垃圾文件的原因是当文件较多时,信息变化时,文件中的信息不能保持一致。所以,有两个解决办法,一个是精简文件,另一个就是不断刷新,把垃圾信息清理掉。

不可用文件程序化解决的问题,后续都会成为你的累赘,慢慢拖得你很累,慢慢就走不动

查问题,清数据都要文件化,这样程序员的生活才能逐步提高。

要明确,我们是需要解决问题,但是不是无脑地、解决问题,而是要用系统、用工具快速地解决问题。

其实这个和下面的生命周期理论也是共通的,如果一个问题,不能系统化、工具化解决,那这个生命周期就没有结束,如果你需要同步处理几个生命周期的问题,那你肯定是崩溃的。

把自己的工作逐步自动化,是我的最主要的工作任务之一,把自己的工作自动化的过程是一个深刻认识自己工作的过程。程序员一定要不断挑战自己,把自己的工作尽可能拆分,然后自动化,只有这样,我们才能走的更远。

二、明码标价 – 工作具象化

做产品也要明码标价,当业务提出一个需求时,一般的产品会直接听业务的,合格的产品会把满足这个需求会产生哪些影响提示给业务人员,让他们有所取舍。就像做买卖一样,把自己的产品的优劣点都告诉业务,让他们做选择,或者自己来做选择。

明码标价是一个需要极高的能力。需要对项目特别熟悉,对表结构特别熟悉。对流程特别熟悉。

三、生命周期思维

做系统就要有系统化思维,看到一个点,就要想到这个功能的整个生命周期,也可以叫做生命周期思维。

一个功能需求,首先要想到如何实现,然后就是异常场景处理,然后就是数据处理,最后是历史回溯。这样就是整个作业周期。

四、UED(用户体验设计)前置

客户在接触到产品之后,才会真正明白自己的需求。一定要让客户尽可能早地看到问题。

五、好系统一定是简洁的

开发系统和做产品都应该学习苹果的产品理念,简洁、简洁、再简洁。

好系统永远是简洁的。

生活中好的示例是苹果手机,苹果电脑,我是一个果粉,反面示例就是电视遥控器,每当在办公室看到那个电视遥控器,我都很难受,密密麻麻什么玩意。

复杂是由简单演变的。复杂和简洁并不是对立面。产品的简洁恰恰是开发的复杂容错兼容实现的。代码的简洁是工具类、逻辑复杂抽象的产物。两者相辅相成。

六、抽象

抽象是从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征的过程。具体地说,抽象就是人们在实践的基础上,对于丰富的感性材料通过去粗取精、去伪存真、由此及彼、由表及里的加工制作,形成概念、判断、推理等思维形式,以反映事物的本质和规律的方法。

抽象思考的能力怎么强调都不为过。抽象是认识世界的通行证

只有对开发系统进行抽象,把握主要矛盾,在迷雾中找到珍珠,才能属于真正的成功。

现实的需求纷繁复杂,如果架构师不能够把这些乱无头绪的需求抽象成一些“概念”,在概念的层次进行思考,系统根本就无法设计。

但是抽象出概念以后还不够,还要看看这个概念是不是正交的,能不能独立变化,如果不能,考虑下新的概念抽象。

“正交”讲的是线性无关,非常重要,就像一个点(x,y),在x轴的变化不会影响y,y轴的变化不会影响x,这就是正交。

“正交”威力巨大,(x,y)可以表达二维平面的所有的点,如果增加一个z轴,不但能表达三维空间中所有的点,并且每个轴都可以独立变化。

如果能做出正交的设计,这个系统的开发和维护会非常舒服,以为可以放心大胆的修改其中一个方面儿不会影响其他。

设计模式一直强调的『发现变化并且封装变化』其实就是这个意思。

抽象能力的训练没有捷径,就是经验的积累,勤于思考和学习。例如:学习Android的程序员可以思考下Android是怎么对未知的,纷繁复杂的应用程序进行抽象的?为什么有Activity、Service、BroadcastReceiver、ContentProvider这四大组件?

七、成为技术专家

你在这个领域耕耘的越深,你越有价值。

成为一个长期主义者。

与时间做朋友。

八、好东西是打磨出来的

程序员就像一个艺术家,一个作家,对自己的作品要反复打磨,不可能一出来就是一个优秀作品,一定要让客户、测试、产品反复使用反馈,慢慢优化,从各个方面进行打磨。

九、优秀的人是筛选出来的,不是培养出来的

参加过几家公司,见过不少人,感觉人和人的差距实在是太大了,有的人一点就通,有的人整天稀里糊涂,不要想着培养人,出力不讨好,最好的方式就是优胜劣汰,不断优化,在抢人这一方面,遇到优秀的人,我一般都想抢过来再说,

优秀的人很多方面都是优秀的,根本不需要管理。

十、人员管理问题

在开发的过程中,有个不可避免的问题就是带团队,团队中的人参差不齐,如何好好利用人的资源,这是一个很严重的事情。如果一个好的流程的效率是不好效率的10倍以上。

现在的一个同事在这个问题做的非常好,对于外包人员的开发任务,就是先把接口和表先定义好,让开发人员进行填充,这样就很好地限制,同时对外包人员的代码进行review。这个是做的特别好的。就是一个思路。后续都要参考这个。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

善守的大龙猫

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

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

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

打赏作者

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

抵扣说明:

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

余额充值