# 以后的路线 (技术方面)-- 2019年3月记

1. 不想成为架构师的程序员不是好的软件工程师

回顾起来,自己毕业三年来学习的侧重点还是“写代码” 本身。

   这两三年间,我曾尝试去学习多种编程语言;学习算法、设计模式;学习编译原理、编程语言实现理论;学习并发编程……

 当然,我也用心去学习过一堆框架、工具、服务器。。。等等形形色色的东西,

之前,我更注重学习一些所谓的程序员的“内功”,认为这些东西更“牛逼”…… 不可否认,学习那些东西确实提高了我对编程本身的理解。

可是现在,可能伴随着自己写代码知识的增长吧,我也逐渐意识到: 软件开发可绝不止"写代码" 这么简单

一个软件开发过程中涉及的方方面面的知识,远不至于写业务代码,业务需求分析、架构、测试、部署迭代 这些其实更重要、也更有价值。

毕竟,写代码的能力过了一个门槛后,对于大多数项目的业务代码来说已经差不多够用了。或者说,想发生质的提升是会越难越需要长久积累的。

我现在更想把学习的重点转移到 架构、业务场景及解决方案 这些方向上。

某种意义上 架构就像是盖房子搭房梁、搭脚手架,而编码就是码砖头。

2. 争取能参与进更有含金量的项目

软件工程师的成长还是得靠在实际项目中的积累。而所参与项目质量的高低、很能影响一个程序员的水平高低。

一个能参与淘宝项目开发的程序员 相比 一个参与传统的名不见经传的web项目的程序员,他们能够遇到的技术场景、技术栈可能天差地别: 在一个存在海量用户、高并发、庞大而复杂的业务项目中,一个程序员能够学习太多的东西,淘宝的程序员也很有可能去接触到大数据分析、云计算这些当下最具含金量的方向, 这实在不是一个普通项目的程序员能收到的机会。

事实上这就是一个软件工程师发展的必然道理。没有一个好的平台/环境,个人再努力也有天花板。

当然,为了有能力进入含金量更高的项目,还是得靠自己平时保持学习,这样才有机会去争取。

3. 扩宽自己的技术栈、注重积累 业务场景及其解决方案

我现在觉得什么框架啊、中间件啊, 其实都不过是"工具",就像git/svn 不过是我们用来进行版本管理的工具一样,Spring框架/消息队列MQ 这些都是工具而已。

我们开发一个软件项目,首要的是 完成业务方案,工具是为业务服务的。业务方案的解决才是软件开发本身的价值啊

以前觉得想掌握这些东西得去学它的实现原理、甚至只强调这个。

现在觉得以前真是too young了: 原理啥的先大致理解就行了,学开拖拉机,用得着先去深入研究柴油机的原理吗? 先把它学会使用熟练了再说,这才是首要的、有价值的。

当然,在掌握使用熟练以后、有那个时间精力的话还是建议去 深入研究其实现原理、源码的。  Spring升级换代N次,其核心思想还是 IoC 和 AOP, 以及以 Bean 为核心。 这些都是最根本的东西,显然都要深入理解。

4. 继续积累 Java并发编程 和 JVM虚拟机故障诊断和优化 这两块。

对于Java工程师来讲,这两块知识深入掌握还是很有意义的。

5 . 继续攒 github 和 技术博客

无他,找工作啥的还是挺有用的。

猜你喜欢

转载自www.cnblogs.com/nanlan2017/p/10428933.html