软件开发技能复利性讨论
原文链接 https://comsince.github.io/2017/06/12/tech-improve/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。
复利性,这里引用程序人生里面程序员为什么忧虑自己的未来
中对复利性的解释:如同利息的计算方法一样,在本金相同的情况下,复利获得的利息会报有要高于单利,而年期越长,复利效应越高。职业一样有复利效应,一个复利搞的职业在职业生涯中后期会展先出越来越高的价值。医生,律师都是复利性很高的职业。
软件开发有哪些复利性高的专业技能
在大学中学习的计算机基础知识可以算是复利性比较高的,包括操作系统,计算机网络,数据结构与算法。可以这样说凡是研究性理论随着经验的增加会越来越深刻理解,并且有可能成为某一个方面的权威。这些理论或多或少需要长时间积累,不是一朝一夕能够完成的。
在软件工程行业,主要以应用开发为主,以解决实际应用问题为导向。可以有很多的框架。在每一个语言的领域中,总能找到适当的框架供我们选择,例如java社区中尤其以spring最为活跃。这些成熟的框架可以被很多人以最快的速度获取其技能,也就是说年龄和经验不再是决定一个人能力的高低,关键是是这个人是否有一颗好奇心,不断否定自己,挑战自己的极限。最终的结果是一个新人可以在最短的时间超越一个资历丰富的人。
如何提升自身的复利性
复利性无非就是通用技能,可以举一反三。它不受语言,环境的限制。甚至是高度提炼的通用性技能。 不断的总结提炼具有通用价值的特征并持续深入
复利性技能探究
对于复利性机能会不断的总结,最终会以博客的形式输出
- 计算机语言 设计的通用属性以及可以对比的高级特性
- 计算机网络
- 操作系统 熟悉linux
- 软件工程 软件开发思想,例如设计模式,软件开发流程,软件架构(微服务架构)
- 数据结构与算法
技能说明
下面以招聘的技能树说明那些具有复利性高的技能,可以作为研究方向
NOTE: 以下招聘岗位是以基础技能为例,说明了那些技能是具有复利性,以下是java web开发的专业技能
* 1、JAVA基础扎实,理解IO、多线程、集合等基础知识、对JVM原理有一定的了解;对于您用过的开源框架,能了解到它的原理和机制;
* 2、熟悉分布式、高并发系统的设计和应用,熟悉分布式、缓存、消息机制;能对分布式常用技术进行合理应用,解决问题;
* 3、掌握Linux 操作系统和大型数据库(Oracle、MySql);对sql优化有丰富的经验;
* 4、对互联网或J2EE应用开发的最新潮流有关注,喜欢去看及尝试最新的技术,追求编写优雅的代码,从技术趋势和思路上能影响技术团队;
* 5、在技术应用方面,希望能够深入发掘业务需求,充分梳理和抽象,能够引入新技术新思路来解决实际业务痛点,并独当一面;
* 6、适应能力好,具备耐心/细心的品质,持续优化技术及业务架构,提升效率降低成本;
* 7、有相关数据图谱、大数据技术、LBS大数据服务,实时流处理等方面的工作(部分职位)
* 1、本科及以上学历,计算机相关专业;具备5年及以上JAVA开发的经验,有互联网产品设计架构经验;
* 2、熟练使用springmvc、spring、ibatis技术框架;
* 3、熟悉Mysql,Redis,有zookeeper、metaq、rocketmq、dubbo等相关经验;
* 4、熟悉Linux环境及操作,熟悉Jetty,Apache,Nginx等开源的服务器;
* 5、有游戏或游戏SDK经验优先。
从上面的技能中,我们已经知道所有的技能主要以通用技能为准,是一种问题的解决方案,比如熟悉分布式,高并发的设计和应用。在框架层面,企业级开发框架spring系列占据了主要部分。从开源项目中学习通用的解决方案,开源项目历来是开源一种通用问题的解决方案,因其通用性强,所以容易被广泛使用,例如分布式框架dubbo
,微信开源的wcdb
,一个是流行的分布式RPC调用框架;一个是数据库备份与恢复,改进android db开发的最优方案。所以招聘需要中也有说明,你对开源项目的熟悉程度,不仅仅要会用更应该熟悉其原理,这些原理就是复利性很高的通用技能。
文章计划
- Go高并发设计
- Go网络通信
- 分布式系统设计
- 微信WCDB Android 版本分析
HTTPS 优化 √
Linux 操作系统