再谈软件工程师的核心竞争力

     发现一个现象IT行业都是做软件开发的, 如JAVA开发工程师, 我们看到大家简历上都做写熟悉Spring Cloud…, 那大家都一样的吗? 你的核心竞争力在哪儿? 如何脱颖而出? 之前的文章<<软件工程师的核心竞争力>>提及到, 今天我们再来看下:

1. 是否有计算机文献英文阅读能力. 大学英语不是白学的, 英文是个工具与门槛. 你需要越过它.   
    如: https://jcp.org/en/home/index

         https://docs.microsoft.com/en-us/
    在线学习资源:  https://www.english4it.com/
    多去看看英文原版书, 影印书, 如《Effective Java》 《C++ Primer》
2. 是否理解组件与框架的原理与设计思想. 如JVM, 微服务架构设计思想.
    https://www.geeksforgeeks.org/jvm-works-jvm-architecture/
    https://www.guru99.com/java-virtual-machine-jvm.html
    https://www.martinfowler.com/articles/microservices.html
    https://www.javainterviewpoint.com/java-virtual-machine-architecture-in-java/
    https://microservices.io/
    https://www.infoworld.com/article/3075880/microservice-architecture-is-agile-software-architecture.html
    https://dzone.com/microservices-news-tutorials-tools
    https://www.microservices.com/reference-architecture/
3. 是否具备前瞻性, 了解目前业务技术趋势, 接口标准的规范.
    https://www.gartner.com/smarterwithgartner/gartner-top-10-strategic-technology-trends-for-2019/
4. 是否有坚实计算机科学, 编码基础. 相关的有数据结构, 算法分析与设计. 
5. 是否理解软件工程过程, 从需求,设计,编码,测试, 运维方面,  系统工程方法论.
    可以参考: http://catalog.mit.edu/degree-charts/computer-science-engineering-course-6-3/

    还有 软件开发的专业化
6. 是否能编写高质量, 可读性的代码, SOLID原则

    参考图书<>, <>,
<>

7. 高效沟通能力, 能把业务使用技术实现并能演讲与分享, 能够与客户沟通, 能够与团队沟通. 高效沟通的5W2H和7步骤

8. 是否有测试思想,  编写可测试代码,  并了解软件测试与质量过程.

可参考 软件工程师为什么要懂测试

9. 架构能力.  权衡与取舍组件之件差异性. 模块设计, 架构设计. 如 分层的应用设计思想:SOA,事件驱动等, 分布式原理:CAP,最终一致性,幂等操作等.  同时兼具技术的广度(多领域知识)和深度(技术前瞻), 兼具思维的高度(抽象思维)和深度(问题到本质),兼具感性(沟通)和理性(平衡)

10.业务能力. 能够迅速理解业务, 并熟悉业务流程与体系, 能够记录与写作.基于自己的经验知识进行分析,把业务语言转换成产品语言、开发语言。这样在跟产品、研发团队的沟通中,才能完成信息的有效、高保真传递。
11. 是否超强的学习能力, 比别人学习得更快. 对技术充满热情. your potential our passion.
可参考  从积极学习的习惯漫谈