这个估计是每个开发人员和项目管理者关心的话题,宝玉老师分享了对他影响比较大的几个工作原则:
-
积极主动
-
以终为始
-
要事第一
积极主动
-
避免消极负面的情绪,做到不抱怨,以积极的心态对待实际工作的改进
-
面对不熟悉或者未知的事情,不立马打退堂鼓,而是提醒自己再想想,多尝试
-
减少关注圈,扩大影响圈,不要总盯着自己无法改变的部分,多花时间去扩大自己能影响的范围
关于这一点,我平时也会有负面的情绪,面对不合理的需求也会抱怨,但慢慢的我也发现抱怨无用,只有自己采取积极的心态去看待,扩展自己的能力,让自己能成为影响别人的人,而不是被动去接受一些东西,越积极自然也就越高效。
以终为始
接到需求里面就写代码的必然是最低效的,相比以前现在的我接到需求会先把需求hold住,我会仔细分析一下这个需求最终想要达到什么效果,然后再去跟产品经理讨论,根据目前的现状去定可行性方案,评估工作量,然后再开始按节奏去开发。
这里提到的以终为始需要注意三点:目标、原则和计划。
我们做每件事都有它原始的目标,如果现在做的事情不是围绕这个目前做的,那么你的方向就错了,需要停下来想想。
做事情需要给自己定一些原则,避免产生技术债务,比如:
-
先运行再优化
-
不复制粘贴代码
-
每个PR要尽可能小
-
…
有原则还不够,需要有计划去执行,设定deadline,让每件事都能够在限定的时间内完成。
要事第一
这里其实说的就是把事情按重要紧急程度排个优先级,也就是我们常看到的时间四象限:
-
重要紧急的事情马上处理
-
重要不紧急的事情,要多花时间
-
紧急不重要的事情延后集中做
-
不重要不紧急的事情尽可能少做或者不做
我们经常听到DevOps中的CI/CD,就是持续集成和持续交付,这节课还提到了持续部署,是一种更自动化的程度。我们该怎么理解它们之间的区别,首先它们前面都有共同之处——持续,就是把软件工程中让人痛苦的事情更加频繁的做,更低成本的做,从手动变成自动的过程就是持续。
把持续拆分出来就是集成、交付和部署,它们的概念如下:
-
集成:开发人员将代码从分支合并到主干,必须测试才能合入
-
交付:基于集成,测试完成之后构建生成发布包,部署到测试环境和生产环境
-
部署:特指环境部署,测试和生产环境
我们软件工程的发展就是从持续集成到持续交付再到持续部署,后者都是在前者的基础上,更高级别的实现自动化,对开发人员和工具都要求更高。
持续交付和用什么开发模型没有关系,它的好处有以下几点:
-
尽快暴露问题
-
极大提升效率
-
提升质量
-
降低项目成本
还有关于如何搭建持续交付系统,主要还是基于源代码工具和持续集成工具,然后配合自身业务去落地实施,大家可以去学习乔梁老师的持续交付:发布可靠软件的系统方法。
关于软件工程师的核心竞争力话题,估计大家都很感兴趣,我也一样,也一直思考自己所掌握的能力是否能成为自己的核心竞争力。这节课主要是讲了哪些方面的能力构成了软件工程师的核心竞争力。
学习能力
不只掌握一种语言和能够熟练使用工具、框架,能够快速掌握编程语言、框架、工具的学习能力。关于学习能力这一点,我的看法是业务不可能一直不变,技术不可能不会更新迭代,能让我们更快适应变化的就是学习能力。就好像现在做终端,你只会Android,不懂点iOS,面对跨端的问题你就不知道怎么解决,换做另一个两端都精通的同学,别人的竞争力就比你要强了。
解决问题的能力
关于这个点,我之前还专门写过一篇文章:
https://www.jianshu.com/p/bdd7e4927b2d
我们日常工作体现解决问题的能力核心在于:
-
发现问题(方案存在的问题,异常情况)
-
分析问题(分析故障的深层次原因,避免下次再发生,提出机制)
-
解决问题(学会提问,学会搜索)
影响力
-
经验总结分享,技术博客、论坛、技术社区
-
独特的项目、公司或者行业经历
-
技术大会、公开演讲等
以上就是我关于软件工程师核心竞争力的总结,个人感觉还是蛮有收获的。
上节课讲的什么是软件工程师核心竞争力,这节课讲的是怎么去做。宝玉老师分享了以下内容,我做了下提炼:
如何提升学习能力
-
深耕某技术领域,吃透领域知识,构建知识领域森林
-
横向扩展相近领域,利用已有知识,加速学习速度
如何提高解决问题的能力?
一套可行的方法论:
-
第一步:明确问题(分析问题本质,是否还有其他问题)
-
第二步:拆分和定位问题(复杂问题拆分成简单问题,逐个定位)
-
第三步:提出解决方案并总结
-
更好的解决
-
预防同样问题的方案
如何提升影响力?
-
在某个领域做出足够牛的成绩
-
做事情超出预期,期望值管理
-
帮助他人就是帮助自己
-
分析就是学习和打造影响力
宝玉老师提的这三点也是我一直在践行的,纵向深耕,横向扩展技术领域,日常思考更好的解决工作中的问题,总结经验沉淀方法论,这让我在技术这条路走得更加自信。
这一讲主要就是讲通过自动化测试来提升代码质量,以下是我的总结:
自动化测试其实就是用程序来代替人来做测试,我们测试一般包含以下几个要素:
- 测试用例
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Android移动开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:Android)
最后
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节
整理不易,望各位看官老爷点个关注转发,谢谢!祝大家都能得到自己心仪工作。
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门即可获取!
阶段就好。
下图是我进阶学习所积累的历年腾讯、头条、阿里、美团、字节跳动等公司2019-2021年的高频面试题,博主还把这些技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节
[外链图片转存中…(img-U0ZvzkwT-1711908382281)]
整理不易,望各位看官老爷点个关注转发,谢谢!祝大家都能得到自己心仪工作。