看这里!5个新年目标助力职场码农


全文共3423字,预计学习时长10分钟

图源:Unsplash

伴随着午夜钟声的敲响,2020年悄然到来。有太多的事情要开始,也有太多的事情要结束。

 

每当这个时候,我们都会野心勃勃的立下誓言(flag),新的一年里自己要干嘛干嘛,完成什么什么。

 

在这个新年计划中,职场目标往往会成为人们所忽略的那一部分。这么做是很不慎重的,我们要像“慎重勇者”那样面面俱到,充分考虑,才能赢。而工作是我们人生中非常重要的一部分,我们应当尽全力提升自己的工作能力。

 

想想十年后自己应该在什么位置,再计划从现在开始怎么才能达到目标。十年的结尾是个复盘的好机会,想想自己哪些地方做的很好,哪些地方做得还不够,要在下一个十年实现目标,还能在哪些方面做出改进。

 

休息一下,花几分钟复盘,定下目标,之后再重新沉浸于代码的世界。

 

下面,小芯就为大家整理了一系列可以安排上的新年目标,仅供参考。

 

⭐️温馨提示:不要粗略地浏览这个清单。一边看一边想:“我应该在什么时候做什么事。”最好根据SMART法则制定目标。(SMART: Specific具体的,Measurable可量化的,Achievable可行的,Relevant相关的,Time bound设定好完成时间)

 

下面一起来看看这个新年目标清单:

 

图源:Unsplash

1. 做开发和运营思维兼顾的开发者

 

很多程序员认为自己的主要职责就是写代码,DevOps只是一个空洞的概念,并不能带来任何实质性的改变。这种想法从根本上就是错的,拥抱DevOps能为你的编程职业生涯带来显著提升。笔者的建议是从最基础的DevOps技能开始:

 

持续交付

 

持续交付(Continuous Delivery, CD)是产品从设计到成型,不断建造,测试,配置以及部署的过程。要向用户传递价值,必须不断快速地更新内容,并保证没有任何错误。笔者经常使用Atlassian的Bamboo,通过Jira产品很容易成型。这个链接中有更多信息。Jenkins也是类似的开源软件。

 

如果你还在手动部署软件,拜托别那样做了!熟悉这些工具带来的好处之后,持续交付就是小菜一碟!

 

自动化测试

 

现在,软件测试不再只是项目中质量控制(QA)专员的工作。在持续交付软件的过程中,不能只依赖随机和人工测试。笔者估计你已经掌握了测试驱动开发(Test-driven Development, TDD)的相关知识,建议再掌握几个测试技能,以及行为驱动开发(Behaviour-driven Development):

 

·       软件测试中学到的经验

·       行为驱动开发实操

 

应用监测

 

响应式软件修理方案并不理想,因为它们会中断为用户提供服务,所以每个机构会提供一种应用程序性能检测器(Application Performance Monitor, APM)。它能监测CPU使用情况,硬盘空间,SLA等等。要追踪记录应用程序的表现性能,解决问题,分析根本原因,复盘系统行为,预测未来可能出现的问题,保持监测并分析记录日志是很重要的,那么作为开发者,还有别的解决方案吗?

 

笔者建议重点关注Elastic(ELK),这家公司把开源和商用的人气记录管理平台整合在一起,推出了Elasticsearch,Logstash和Kibana。Elasticsearch能进行深度搜索和数据分析。Logstash能整合日志,对其进行补充并分析句法。Kibana能制作出精美的数据可视化。网络上有演示视频,值得一看。

 

 

DevOps对软件开发有着很大的影响。我们才只看到了冰山一角。在探索DevOps的旅程中,DZone也是个好帮手。

 

2. 关注用户体验

 

大部分后端开发者认为用户体验设计(UX, user experience)等同于用户界面设计(UI, user interface),应该属于前端开发者的工作。并不!笔者在《写给开发者的用户体验设计实用手册》(Hands-On UXDesign for Developers)在这本书中可以看到下面的图片,下列图片可以说明用户体验设计和用户界面设计之间的区别。

 

 

用户体验设计不(仅)是关于视觉效果,还关注整个软件开发周期中用户的整体感受,其中包括:软件多久中断一次,如何反馈给用户,界面使用是否简单,一批数据要运行多久,反应时间有多快,解决问题从研发到投放市场时间多长(没错,这也算)。

 

在这里分享五条简单原则,这些都是笔者和团队多年以来和难搞的银行家及风投经理打交道换来的宝贵经验:

 

·       软件设计阶段用户的参与度

·       软件的表现和性能一样重要

·       用户界面上最好有自助导航

·       保质保量是软件开发中不可或缺的一环

 

就用户界面设计这个话题,推荐下列资源:《101条用户体验法则》这本书和这期99%Invisible播客节目。

 

3. 学习软件合成知识

 

要让程序运行起来并不需要太多知识和技能,人人都能做到。要让程序运行起来并不难,运行对才更难!想想你在编程课上写的第一个程序,再和现在比比,看自己进步了多少?

 

下面介绍设计模型,这是个有着可靠原则和软件架构格局的魔幻世界,探索如何通过这些元素写出历久弥新的优雅软件,不但有高度的统一性和松散耦合结构,最重要的是,性能稳定,简单易读,具有良好的延展性。

“架构关乎所有重要的事情。任何事情都适用。” ——Ralph Johnson

必读经典:

 

《企业应用架构模式》(Patterns of Enterprise Application Architecture

《整洁架构》(Clean Architecture

《设计模式 - 可复用的面向对象软件元素》(Design Patterns: Elements of ReusableObject-Oriented Software

 

如果能把注意力集中在钻研架构上而不是最新的语言,当下流行的框架或者别的什么流行的开发者小插件上,软件开发就能更好地达到目的。当然,不是说这些东西不重要,反过来也是对的但如果你希望事业能再上一层楼,笔者的建议是:把精力放在架构上,在这个基础上发开软件维护成本会相对比较低。换言之:了解一些软件架构知识,老板会很喜欢你的!

 

图源:Unsplash

4. 了解商业知识

 

笔者年轻的时候曾做过软件工程师,在那种环境下,商业分析师(BA)就是商务和开发组之间的联络人。刚工作时,笔者坚信只要BA提出要求,软件工程师就能写出代码。但笔者后来意识到,商务根本就不关心代码怎么写!软件工程师不是代码的生产者,而是要为公司带来实际效益的。

 

花时间了解商业的运作机制是一项很重要但经常被忽略的工作。商场上没有简单的万金油答案,大家可能精通不同的领域,但你可以和商业领域人士进行沟通,向他们寻求建议,上个辅导班或者考个证。你的最终目的是要能在商业沟通中展现出能产出价值的看法!可以尝试着对某一项错误示范进行深入解释,再提出他们能接受的解决方案。

 

要解决问题,得先明白问题是什么。

 

如果想从程序员进阶到为开发组长,架构师,项目管理经理,向管理层进发,这会对你有很大帮助!

 

5. 提高人际沟通能力

 

开发者都是内向的怪客,只会独来独往,这一想法早就过时了。程序员也是项目的一部分,每天都要和其他同事、上司以及商业伙伴进行沟通。他们最需要提升的能力就是保持谦虚。你可能读到过笔者的看法业务能力还算过得去,软实力超强的程序员比专精技术的大师就业前景好得多!

 

这只是一方面,如果想要得到更全面提升,笔者建议阅读下列两本书:

 

《人件》(Peopleware

《软实力:软件开发者的生存手册》(Soft Skills: The Software developer’s life manual

 

图源:Unsplash

 

最后,以上那些仅供参考,其实你并不需要给自己设定一堆目标,只要有几个能对职业发展和思维方式有积极影响的就够啦。

 

小芯真心希望这篇文章能帮你开启一个有意义的2020!

 


推荐阅读专题

留言 点赞 发个朋友圈

我们一起分享AI学习与发展的干货

编译组:翁梦徽、殷睿宣

相关链接:

https://towardsdatascience.com/5-new-years-resolutions-to-amp-up-your-programming-career-175c4f9c7068

如需转载,请后台留言,遵守转载规范

推荐文章阅读

ACL2018论文集50篇解读

EMNLP2017论文集28篇论文解读

2018年AI三大顶会中国学术成果全链接

ACL2017 论文集:34篇解读干货全在这里

10篇AAAI2017经典论文回顾

长按识别二维码可添加关注

读芯君爱你

发布了738 篇原创文章 · 获赞 2404 · 访问量 35万+

猜你喜欢

转载自blog.csdn.net/duxinshuxiaobian/article/details/104085636