初级程序员如何进阶

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

疑问的无限递归

我刚入行时,用SSM写了大概5个月的增删改查,并且在实际工作中从未自己搭建过SSM环境。倒不是不会,毕竟网上已经有很多博客直接贴出了配置,拷贝黏贴就行了。

那么,我的烦恼是什么呢?

我想,每一个热爱进步的程序员都会有过这样的体会:

自己好像什么都懂了,但又似乎什么都不懂。

就像发痒时怎么都挠不到确切部位,让人抓狂且无奈。你自己也知道,即使把这行配置背下来了,又能怎样呢?为什么它就起作用了?

你发出的这些疑问就像掉进了一个无限递归,迟迟没有一个答案。

当前不懂的知识点,是由另一个你不了解的知识点实现的...无限递归,最终你觉得自己什么都不懂

这个递归的结束条件是什么呢?并不是说非要往下深挖,直到汇编语言或者晶体管,而是挖到某一处时你能和当前已学知识联系起来即可。

就好比我现在要推导一个新的数学公式,当我得证的条件最终只差证明另一个公式,而这个公式已经是公认定理时,这个新的公式就算推导成功了。

很长一段时间,我深陷SSM的配置地狱:

  • 为什么要配这个?
  • 为什么要配那个?
  • 为什么我没写xx却能xxx?
  • 这个注解什么意思,怎么起作用的?

有些人可能觉得:管这么多干嘛,用就好了啊。

这种人,一般做不到举一反三,只能有一学一。即使能熟练使用,等他遇到SpringBoot时,又会把它当做新的框架来学。而在我看来:

SpringBoot = Spring注解 + 自动配置

SpringBoot就是一个花架子,如果你已经熟练掌握Spring,SpringBoot上手是非常容易的。

递归的结束条件

重新回到问题上来。

关于SSM配置以及原理,以上种种疑问递归的结束条件是什么?

其实归根到底,我们之所以学不明白SSM,觉得隔靴搔痒,个人认为是因为“配置式开发”和我们之前“编码式开发”差别太大了。不论是xml还是注解,和我们平时写的业务代码相去甚远。作为一个开发人员,当你看到一个切实的功能被实现了,而自己却完全看不到for循环和if判断的身影,心里是不踏实的。对于一个“手艺人”,唯一能让我们感到踏实的,是if else for这样的编码,而不是@Aspect、@Controller这样的配置!

我很幸运,后来接手了一个金融借贷项目。那个项目虽然仅仅用SSM,但是代码质量还是很高的,各种封装和抽象,与之相比我之前写的项目代码都显得十分“扁平”。

环境真的很重要,如果我还待在原先的公司做SSM增删改查,还真的觉得自己挺厉害...典型的井底之蛙。

正是这段经历,驱使着我硬着头皮回炉再造,重新去看JavaSE和JavaWeb。我最大的感触就是,其实当前很多觉得难的知识,都已经在基础讲过了。如果真的掌握了,SSM是非常容易理解的。

比如:

  • 注解(有多少人完全不知道它怎么工作的?)
  • 反射(很多人会用,但是理解不是很深刻)
  • 动态代理(大部分人干脆是懵逼的)
  • JDBC(估计已经忘光了)
  • Servlet/Listener/Filter更不用说,稀里糊涂

就这样,还有很多人和我说,自己基础已经很好了,问我有没有好的SpringBoot视频推荐...我每次都会耐心地劝导说:把基础先打扎实。

以我自己的体会,要想后面对Spring/SpringBoot有较深的理解和掌握,必须把以下知识点吃透:

  • 对象与this
  • 反射机制
  • 注解
  • 泛型
  • 动态代理
  • JDBC
  • 适当了解数据源、线程池
  • ThreadLocal
  • Servlet/Listener/Filter

我不知道其他专栏是出于什么目的,可能是公众号引流或软文推广什么的,而我写博客目的很纯粹,就是觉得自己当时被欺负了,现在懂了于是拿出来,让后面的人别再被欺负了。

有时就是如此,前人挣扎彷徨所付出的努力得到的成果,后人只需垫垫脚就能收入囊中。

最后,要说一下我自己对初级程序员的定义:

  • 理解面向对象
  • 了解抽象类和接口的使用场景
  • 熟练掌握反射、注解、动态代理
  • 会设计泛型类
  • 熟练掌握IO、集合、常用API(String等)
  • 熟练Servlet、Listener、Filter、Cookie、Session、AJAX、JSON
  • 理解部分常用设计模式
  • 熟练使用SSM,大致了解Spring运行原理,能基于Spring提供的扩展接口DIY一些功能

这些都无法掌握,整天满口高并发、轮询、微服务...如果让我来面试,我不会问这些高大上的问题,只会和你聊基础,看你有没有自己的见解。

架构师遍地跑的浮躁时代,还是希望大家静下心来,好好重视基础吧。

后面的内容正是为了帮大家解决这些迷茫而写,预祝大家阅读愉快~

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

进群,大家一起学习,一起进步,一起对抗互联网寒冬

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/193292.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测

回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测 目录 回归预测 | Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测效果一览基本介绍程序设计参考资料 效果一览 基本介绍 Matlab实现HPO-ELM猎食者算法优化极限学习机的数据回归预测(…

【蓝桥杯选拔赛真题21】C++行李运费 第十二届蓝桥杯青少年创意编程大赛C++编程选拔赛真题解析

C/C++行李运费 第十二届蓝桥杯青少年创意编程大赛C++选拔赛真题 一、题目要求 1、编程实现 乘坐飞机时,行李超出规定重量后,会对行李进行托运且收取托运费。 以下是某航空公司行李托运的收费标准:“行李重量在 20 公斤内(含 20)按照每公斤 10 元收取费用,超过 20 公斤的…

麻将馆电脑计费系统,棋牌室怎么用电脑控制灯计时,佳易王计时计费系统软件下载

麻将馆电脑计费系统,棋牌室怎么用电脑控制灯计时,佳易王计时计费系统软件下 棋牌室电脑灯控系统,需要安装一个灯控器,软件发出开灯和关灯的指令,相应的灯就打开或关闭。在点击开始计时的时候,开灯&#xff…

后端技术知识点内容-全部内容-面试宝典-后端面试知识点

文章目录 -2 flink-1 linux of viewlinux查看占用cup最高的10个进程的命令; 〇、分布式锁 & 分布式事务0-1分布式锁--包含CAP理论模型概述分布式锁:分布式锁应该具备哪些条件:分布式锁的业务场景: 分布式锁的实现方式有&#…

如何使用websocket+node.js实现pc后台与小程序端实时通信

如何使用websocketnode.js实现pc后台与小程序端实时通信 一、使用node.js创建一个服务器二、pc后台连接ws三、小程序端连接ws四、实现效果 实现功能:实现pc后台与小程序端互发通信能够实时检测到 一、使用node.js创建一个服务器 1.安装ws依赖 npm i ws2.创建index.js const…

酷柚易汛ERP - 盘点操作指南

1、应用场景 盘点功能是定期或临期对库存货物进行清点,使账面记录与实际库存相符合,从而随时掌握货物盈亏状态。 2、主要操作 2.1 盘点商品查询 打开【仓库】-【盘点】新增盘点单,筛选需要盘点的日期范围、库存及相应商品 2.2 录入盘点数…

系列七、GC垃圾回收【四大垃圾算法-标记压缩算法】

一、原理 在整理压缩阶段,不再对标记的对象回收,而是通过所有存活对象都向一端移动。可以看到,标记的存活对象将会被整理,按照内存地址依次排列。如此一来,当我们需要给新对象分配内存时,JVM只需要持有一个…

Redis篇---第七篇

系列文章目录 文章目录 系列文章目录前言一、是否使用过 Redis Cluster 集群,集群的原理是什么?二、 Redis Cluster 集群方案什么情况下会导致整个集群不可用?三、Redis 集群架构模式有哪几种?前言 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分…

TG Pro v2.87(mac温度风扇速度控制工具)

TG Pro 是适用于 macOS 的温度和风扇速度控制工具,可让您监控 Mac 组件(例如 CPU 和 GPU)的温度和风扇速度。如果您担心 Mac 过热或想要手动调整风扇速度以降低噪音水平,这将特别有用。 除了温度和风扇监控,TG Pro 还…

hive sql 行列转换 开窗函数 炸裂函数

hive sql 行列转换 开窗函数 炸裂函数 准备原始数据集 学生表 student.csv 讲师表 teacher.csv 课程表 course.csv 分数表 score.csv 员工表 emp.csv 雇员表 employee.csv 电影表 movie.txt 学生表 student.csv 001,彭于晏,1995-05-16,男 002,胡歌,1994-03-20,男 003,周杰伦,…

基于SSM的古董拍卖系统

基于SSM的古董拍卖系统的设计与实现~ 开发语言:Java数据库:MySQL技术:SpringMyBatisSpringMVC工具:IDEA/Ecilpse、Navicat、Maven 系统展示 主页 拍卖界面 管理员界面 摘要 古董拍卖系统是一个基于SSM框架(Spring …

永久关机windows系统自动更新

1、打开cmd执行 reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsUpdate\UX\Settings" /v FlightSettingsMaxPauseDays /t reg_dword /d 3000 /f2、设置,打开windows更新高级选项 修改暂停日期,可长达十年。 3、你小子