学习阶段:带着兴奋和不安,开始了学习。心中一阵自豪,什么java是很简单的语言,企业级开发的首选,多线程也是想开就开,一个网页也可以这样弄出来。
学习后期:带着疲倦和恐惧,继续学下去。感觉一入java深似海。什么网络,数据库,各种框架满天飞。只感觉需要记住一个又一个的配置,一段又一段的模板代码,各种注意事项和步骤。但是大脑是记不住的,从头到尾发生了什么,为什么会这样。虽然不明所以,但是还是需要学下去。
工作阶段初期:原来工作中没有必要掌握那么多,好神奇,我的代码可以运行了。同时更多的是要去熟悉项目和业务,各种开发工具的使用。总之,是一个略显紧张和有趣的阶段。
开发初期:安逸和舒适。很多问题自己也不知道怎么处理,但是就是那样,按照常规做事情。很多时候不用想太多,无脑编程,照着样子就可以编程,没有太过兴奋的感觉。编程只是一份工作。
开发一段时间:厌烦感随之而来。项目大同小异,配置,技术,开发方式都差不多。变的只是业务流程,就是增删改查,统计报表,定时任务,接口调用。会觉得开发就是另一种苦力,只是赚个辛苦钱。工作中无需用到太多新鲜技术,但是一看外面的招聘需求,那真是让人惊叹。技术进步更快,对基础和原理要求更高。你会怀疑是不是面试造火箭,工作拧螺丝。多线程似乎是一个魔鬼,诡计多端,从来没有什么统一的说法,一次次的冲击,一次次的失败。mysql也变得复杂起来,光是一个查询,也不得不从多方面来考虑,存储引擎的细节需要掌握。同时jvm这个八竿子打不着的东东,现在也有什么内存模型,垃圾回收等东西了。更不用说什么高并发,nio,各种缓存,服务治理框架。每一样都是遥不可及,很可怕的存在。厌烦于现在的工作,恐惧出去了能不能找到工作。
开发了好几年:终于,常用的框架,用也能用起来。终于有一点明白,所有的原理和底层是很有必要掌握的。操作系统知识,数据结构和算法,软件工程思想,设计模式,网络通信。这些不同的思想和组合,才能让人更加理解为什么,自己如何改进。虽然学习痛苦,但好歹比不学强很多。了解的越多,更加不敢大言不惭的说精通,只能说熟悉。在技术迭代越来越快的世界里,学习底层,可能是一个更加稳固和有益的。

网友评论