从前,一直以为学习编程基础知识才是王道,就像数据结构、算法、设计模式、计算机网络、编译原理等等,这些提升理论境界的内容才是一个真正的编程高手,后来,去公司面试,问的却是一些框架内容,印象比较深的一次是问我spring的内容,我就回答了IOC和AOP,然后大概解释了一下,然后又问我具体的实现内容,具体是什么我已经记不清了,就是一些配置上的内容,以及Jsp的几个内置对象和四个域对象,我回答的也是模模糊糊,因为这些概念我根本就不清楚是什么,有什么用处甚至自己都没写过相关的框架方面的代码,我擅长的是一些算法和数据结构方面的内容,可是他根本就没有问,问的完全都是一些应用方面的内容,我很清楚自己在应用方面的知识欠缺,因为我很少去完整的写一个项目,所以这方面是短板,本想着公司不会太介意这方面的内容,无非就是薪水低一点而已,再加上那时候刚毕业,对薪水的要求并不高,只要公司愿意要我就行,薪水无所谓,但总是事与愿违,并非是所有的公司都会去培养一个没经验的毕业生,而我面试的公司恰恰都是这类型的公司,导致我最终只能向生活妥协,找了一个服装行业的运维,暂时积攒一下自己各方面的经验,也算是让自己安静一下,好好思考一下未来的规划,同时,积累自己的知识水平。
转眼间,两年时间已经悄然流逝,我对服装行业也有了基础的认识,同时在运维期间使用的ERP软件更是让我意识到软件开发中,比较重要的不仅仅是数据结构、算法、设计模式等等这些内容,还有行业的业务经验,一个不懂业务的开发者,很难设计出一个可扩展性强、可维护性强的软件,数据结构和算法以及设计模式是应对所有的软件开发的一个模型,而这些大多数是高级开发者或者架构师才会涉及到的内容,而对于初级者来说,使用各种便利的框架以及舒适的软件才是最重要的,然后是熟悉业务,而我是花了近一年的时间才将服装行业的业务逻辑梳理完善,这期间我又学习了各种框架,并尝试做了一些方便公司使用的小应用程序,感觉框架都是拷贝的配置文件,丝毫不需要自己理解什么,但是,总感觉学习一个框架特别吃力,不管是读英文的官方文档还是跟着视频学习,好像就是有一股阻力或者说是一个门槛,让自己学习起来不是那么的顺利,缺少了触类旁通的能力,印象比较深刻的一次框架学习是学习shiro的时候,就只有五部分内容,可自己硬是花了一周时间才搭建起来自己的shiro框架,而且还是缺少自己设置密码加密算法的内容,因为官网上没有这部分的内容,说是太深了,不作介绍,最后才下定决心来培训一下,一来是梳理自己掌握的乱七八糟的知识点,二来是打通自己感觉阻塞的知识点,三来就是分布式和高并发知识的学习了,因为未来的职业生涯中,要么不接触分布式和高并发,要么生涯中途接触,但公司不会冒险去聘用一个没有实际经验的人来做这部分的内容,最终导致的结果就是有多年的开发经验,想要冲击更高的技术却不得志,只能平庸下去。
算算时间,来黑马也快四个月了,已经学完了几个框架,收获还是可以的,从前比较阻塞的技术栈,现在已经解决,核心的问题还是自己学框架的方式不对,太急于求成了,只注重效果,不注重底层实现,而几乎所有框架的底层实现逻辑都是相似的,无非就是封装封装再封装,最终完成一个只需写很少代码就能完成各种功能调用的程序,更进一层就是开发者只需关注那些需要处理各种复杂业务的逻辑代码就可以了,不用关心底层的具体实现,这也是编程语言从汇编到C/C++以及现在的JAVA/PYTHON/R/PHP等等各种高级语言百家争鸣的繁容景象,而框架也是遵循这种模式一步一步发展起来的,这才是框架存在的意义。
从最近做的项目中我也是越发的感觉业务逻辑是一个软件的灵魂,而各种数据结构、算法、设计模式就像是为这个灵魂添加了有趣的元素,让它成为一个有趣的灵魂,这样才是一个好软件,相同的功能可以有无数种实现方案,而给它添加上数据结构、算法、设计模式之后,这个灵魂才变得丰富起来。
|
|