愤怒!竟然还有学校还在教 Java 的 Swing

昨天,有个读者私信我说,“老师正在教 Swing,这个知识点还需要学习吗?”

说句实在话,刚看到这个问题的时候,我是想骂娘的!不是骂读者啊,你懂得,骂学校,骂老师。但我硬是掐着自己的大腿忍住了,很客气地回复了一句“对,甚至可以不学”。

有点点到为止的味道。

我之所以这么委婉,是希望读者不要对学校的老师心存偏见,影响了后面的学习进度。但我内心其实是非常愤怒的,都什么时候了,Java 中的 Swing 早被淘汰了,哪个项目还会用这玩意编写客户端界面呢!

学 Swing、AWT 这些图形化组件纯属浪费时间!

可能有些老师也没真正在公司里实战过,拿本书就上来教,导致学生把大量的时间浪费在不需要学习的知识点上,以至于毕业找工作的时候,能力达不到招聘的要求。

有些学校很装逼的,老师都是拿自己的书来讲课的,反正我大学那会就是,觉得老师挺牛逼的呀,都自己出书了!后来等我自己出书了,才发现,原来出书也没什么难的呀(嗯,我在装逼)!

有些学校还不错,会选一些计算机专业的经典著作,比如说各种黑皮书作为教材。我只能说,能在这样的学校里待着的同学都是幸运的。

怕就怕,有些老师把教材直接拿过来不做过滤。不管是《Java 编程思想》还是《Java 核心技术卷 1》,里面都有大量的篇幅介绍 Swing、AWT 这些,但有工作经验的人都知道,这些在工作中是完全不用的东西。

我在推荐这两本书的时候,都会明确指出,不要去学这些东西,直接跳过,甚至可以直接撕掉。

希望出版社的编辑朋友们再版这些书的时候,能把这些不用的东西剔除掉,以免影响了初学 Java 的读者。当然了,我知道,这很难做到,删了等于书就变薄了,计算机专业领域的书都一本比一本厚,一本比一本贵!删了估计就卖不到这个价了,血亏。

那对于初学者来说,该怎么办呢?

当然是多关注一下真正有实力的编程大佬们,比如说我的好朋友 JavaGuide、江南一点雨等等,以及二哥我(加粗、加感叹号)!!!!!!!!!!

有问题,直接过来问,然后就知道学习的重点了!比跟着某些老师瞎学要强多了。

这不,刚好有编程新手过来问问题,二哥特别热情,还顺带做了一次心理按摩,帮助读者缓解压力,疏通脉络。

接下来,我来重点说说,怎么才能找到实习工作。

二哥的读者群体里有很大一部分都是大学生,所以如果你今天看了这篇文章,并且看到了这里,OK,恭喜你,直了,不不不,值了!

找 Java 后端的实习工作,首先要明白一点,校招不同社招,不会要求太多的项目经验,这一点,看似很浅显的道理,但往往很多学弟学妹容易在这一点上纠结,我缺项目经验啊,要狠狠地补,结果把计算机基础方面的学习给抛之脑后了,导致拣了芝麻丢了西瓜,得不偿失。

临到毕业季,很多公司就会到学校去校招,标准其实很简单,Java 方面能做一些简单的增删改查就行,但学习能力一定要强,基础一定要扎实,方便后面培养。因为刚入职的新人,靠谱的公司都会安排师父带,还会安排一定量的培训,公司是不怕你项目经验不足的,怕的是你学习进度跟不上。

我当年在外企实习的时候,就是,一上来,直接给两个月的时间,做个小项目,我当时被安排的是做个仿 Win7 的计算器(源码和成品还放在 CSDN 的资源库里),嗯,当时用的 Swing 做的界面,但那已经是 12 年前的事了!等过了辞退阶段,公司就安排了很多培训,培训编码规范了、开发流程了等等这些。

差不多工作了一年半的时候,我做了小组 Leader 的时候,还给新人培训过好多次,讲 Flex 是怎么用的。嗯,这玩意也被淘汰了!

(时不时就透露出我是一名 old 码农的浓烈气息)

好了,不废话了。来说下 Java 后端实习生的最基本的要求。

第一,经常用的工具一定要熟练

比如说 Intellij IDEA 一定要能熟练地使用。如果你想写出质量杠杠的 Java 代码,又想追求开发效率,用 Intellij IDEA 准没错!可以去 GitHub 上看一下 Intellij IDEA 中文版的教程,快捷键设置了、代码模板了、常用插件了,这些都有详细地说明。

https://github.com/judasn/IntelliJ-IDEA-Tutorial

我举个简单的例子,像 **CheckStyle、Alibaba Java 代码规范、SonarLint 这三个插件是一定要装的,可以极大程度上保证代码质量。**除了这 3 个,还有呢:

这些都能在很大程度上提高编写代码的效率。

比如说 Git 一定要能熟练的使用。大家都知道,版本控制系统非常重要!!!!!!

即便你只是一个人在编码,它也可以帮助你创建项目的快照、记录每个改动、创建不同的分支等等。如果你参与的是多人协作,它更是一个无价之宝,你不仅可以看到别人对代码的修改,还可以同时解决由于并行开发带来的冲突。版本控制系统有很多,其中最突出的代表就是 Git。

想要把 Git 学好的话,可以看一下 Pro Git 中文版 PDF,可以说是学习 Git 的最佳教程,因为作者就是 Git 的一个主要实现的贡献者。

第二,Java 基础一定要扎实

像 Java 的数据类型、Java 的运算符、Java 的流程控制、Java 的面向对象、Java 的异常处理,这些都是最基础的东西,是初学 Java 的时候必须掌握的知识点。

然后是 Java 集合框架、Java IO、Java 网络编程、Java 多线程并发、Java 虚拟机,这些是 Java 中比较核心的知识点,也是必须要掌握的。

大家可以先看看我整理的这份 GitHub 上星标 115k+ 的 Java 教程,里面涵盖了 Java 所有的知识点,包括 Java 语法、Java 集合框架、Java IO、Java 并发编程和 Java 虚拟机,内容不多,只讲重点

GitHub 星标 115k+的 Java 教程,超级硬核!

Java 集合框架中,像 ArrayList 与 LinkedList 之间的差别,HashMap 的数据结构、工作原理、哈希冲突、扩容过程、拉链法导致链表过深时为什么不用二叉查找树而选择红黑树、Java 8 时 HashMap 发生了什么变化、HashMap & ConcurrentHashMap 的区别等等,是面试的时候考察的重点。

多线程并发算是 Java 基础当中的难点之一,需要掌握的知识点我用思维导图列一下。

还有 Java 虚拟机,要学的知识点有:Java 虚拟机内存结构、垃圾收集策略与算法、内存分配与回收策略、Java 虚拟机性能调优、类文件结构、类加载机制等等。

怎么学呢?推荐大家一本书,就一本书,周志明老师的《深入理解 Java 虚拟机》,一开始啃起来可能会比较痛苦,但我必须得负责任的告诉你,多啃一啃,面试的时候很容易就把面试官给惊艳了。

第三,掌握 MySQL 数据库。

先来看一下 MySQL 的知识体系,还是用思维导图的形式。

对于基本的 SQL 语句,推荐《SQL 必知必会》这本书,很薄,很快就能学完了。然后是《MySQL 必知必会》,讲的很全,但很简练,非常适合零基础的学弟学妹。如果想更深入的学习 MySQL 的话,推荐两本书,《高性能 MySQL》和《MySQL 技术内幕:InnoDB 存储引擎》。

如果英语功底比较扎实的话,推荐看 MySQL Tutorial 这个英文网站教程,遇到阻碍的话,可以借助一下谷歌翻译。

https://www.mysqltutorial.org/

如果你有一台自己的服务器(学生购买的话也比较便宜)的话,可以到阿里云大学上学习,里面有 18 门免费课程,从 SQL 到 NoSQL,从自建到云上数据库,一站式学习+自测。

第四,掌握 Spring 系列框架

想成为一名合格的 Java 后端开发工程师,Spring 的系列框架是必须得掌握的,yyds。从 SSM(Spring+Spring MVC+MyBatis)到 Spring Boot,再到 Spring Cloud,都得会用。

事实上,Spring 早已成为 Java 后端开发的行业标准,如何用好 Spring,是 Java 程序员的必修课之一。由于 Spring 的快速发展,它逐渐从一个轻量级的开发框架变成了一个“庞然大物”,越来越笨重,导致搭建一个应用程序的成本越来越高,于是 Spring Boot 就应运而生了,它能帮助开发者快速搭建出一个独立应用,只需要很少的配置就可以了。可以毫不夸张的说,Spring Boot,牛逼!

Spring Cloud 利用 Spring Boot 的开发便利性,巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,可以说,Spring Cloud 的诞生,又一次解放了Java 程序员的生产力。

关于 SSM 的学习,可以看下江南一点雨在 B 站上的视频,能为后面学习 Spring Boot 打下坚实的基础。

https://www.bilibili.com/video/BV1NX4y1G7wx

我来简单介绍一下 SSM 具体是什么。

1)Spring 是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。它可以装载 Bean,也就是 Java 中的类,包括 Service、Dao 里面的;利用控制反转这个机制,我们就不用在每次使用类的时候用 new 关键字声明并初始化。另外,Spring 事务管理也是开发中常用到的。

2)来看一下 SpringMVC 的工作原理:

  • 客户端发送请求到 DispacherServlet(分发器)
  • 由 DispacherServlet 控制器查询 HanderMapping,找到处理请求的 Controller
  • Controller 调用业务逻辑处理后,返回 ModelAndView
  • DispacherSerclet 查询视图解析器,找到 ModelAndView 指定的视图
  • 视图负责将结果显示到客户端

3)MyBatis 是一个支持普通 SQL 查询,存储过程和高级映射的持久层框架。它对 JDBC 做了封装,让数据库底层操作变的更透明了。 MyBatis 的操作都是围绕着一个叫 sqlSessionFactory 的实例展开的,通过配置文件关联到各个实体类的 Mapper 文件,再由 Mapper 文件映射每个类对数据库所需要执行的 SQL 语句。

关于 Spring Boot、Spring Cloud 的学习,可以看纯洁的微笑的博客,访问量在千万级别以上,影响了无数的初学者,我也是被影响者之一。

  • spring-boot - 纯洁的微笑博客
  • spring-cloud - 纯洁的微笑博客

至于说 Redis、Dubbo 等等等等,我就不再强调了,就上面的这 4 个最基本的要求,就够喝一壶了。还有像算法与数据结构、操作系统、编译原理、计算机网络、计算机组成原理等等这些通用层面的,我也不再一一强调了。大学阶段,有时间就搞这些,如果学校已经安排了这些课程,那就更好了,学,一定要学!

大学时光说短不短,说长不长,作为过来人,真的是感觉一眨眼就过去了;对于正在读大学的学弟学妹们来说,正是青春的好时光,有很多事情要做,忙着社交,忙着拓展,忙着锻炼,忙着课业,忙着恋爱,忙不得开交。怎么在这么多事情的夹缝中努力学习呢?

就是一定要学会做减法,不该学的内容就不要再花时间学习了。像前面提到的 Swing、AWT 这些东西早已经被淘汰了,还有像 Applet、JSP 这种的,如果大学还在教这些,真的是学生的不幸。

与其把时间花费到这些没用的知识点上,真不如:

1)痴迷于数据结构与算法

算法题就好像科举考试时代背的八股文,是知识改变命运的代表作。你不刷,就很过算法题这一关,因为不仅要考,还能提高你的编程功底。我一直给大家推荐的 Java 版的 LeetCode 刷题笔记,一定要下载下来刷一刷(可以点击下面的链接去下载)。

吃完 300 道 LeetCode 题后,我胖得快炸了!

2)热衷于 ACM

3)尝试 Unix、Linux 环境下编程

4)醉心于网络编程和多线程编程,对 TCP/IP、HTTP 等网络协议有很深的理解

好了,今天的分享就到这吧。

我是二哥呀,希望能给学弟学妹们一些帮助和启发,记得点赞哟~

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

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

相关文章

现代软件工程 — 第三部分:文档

https://document360.com/blog/technical-documentation/ 文档是一个常年有争议的话题,因为根据我的经验,软件工程非常注重像源代码和运输功能这样的人工制品的商业价值,而不是其他。我经常听到有人说,我们应该只写敏捷实践中需要…

Go与神经网络:张量运算

0. 背景 2023年年初,我们很可能是见证了一次新工业革命的起点,也可能是见证了AGI(Artificial general intelligence,通用人工智能)[1]孕育的开始。ChatGPT应用以及后续GPT-4大模型的出现,其震撼程度远超当年AlphaGo战胜人类顶尖围…

Chat客服入门案例|商务智能对话客服(二)

ChatGPT是人工智能研究实验室OpenAI新推出的一种人工智能技术驱动的自然语言处理工具,使用了Transformer神经网络架构,也是GPT-3.5架构,这是一种用于处理序列数据的模型,拥有语言理解和文本生成能力,尤其是它会通过连接…

线状图

控制器 页面

python画图填充线状阴影

x np.linspace(-4,4,9) y -x plt.plot(x,y)# 填充绿色大色块 plt.fill_between(x, 0, y, whereabs(x)>2,facecolorgreen, alpha0.3)#填充白色搞阴影 for i in np.linspace(2,8,40): # 第三个参数调整间距a x np.linspace(-8,4,9) # 可以调位置b a ic a i - 0.1plt.…

matplotlib函数库使用plot绘制线状图

#codingutf-8 import matplotlib.pyplot as plt import numpy as np xnp.linspace(0,1,50) y12*x1 y2x**2 plt.figure(num1) #获取图片并命名 plt.plot(x,y1,colorblue,linewidth1.0,linestyle--,labelblue) plt.plot(x,y2,colorred,labelred) #设置存放x,y数据呈线状 并可以用…

python如何绘制线状图_Python数据可视化实例之绘制图表

Python数据可视化实例之绘制图表 原创 虫虫安全 2018-09-05 17:41:57 得利于语言的简单明了、丰富的数据结构、丰富的类和模块,Python如今成了数据科学中的香饽饽,成了matlab、R语言之外又一强大的数据分析工具。抛开其他方面的、今天虫虫带大家一起来…

线状地物图斑化全流程作业(使用ArcMap软件)

一、线状地物调整 1、添加全覆盖图斑数据 2、添加线状地物 3、添加地理图斑 4、添加村界 5、剪裁自己村界的线状地物得(地理处理/剪裁(输入要素为线状地物,剪裁要素为村界,输出要素是得到的新层位置) a、在新层里开始编辑(调整原有线状地物,添加新的线状地物) b、将线调…

电子海图系统线状符号表达及绘制方法

地图符号作为表现地理空间中各种实在物体和相关现象的图像化表示方法,已逐渐成为GIS(ge-ographicinformationsystem,地理信息系统)系统和现代地图学中的研究热点之一,尤其是在电子海图系统研制过程中&#…

python使用Pandas 绘制线状图,曲线图,条形图

今天的文章讲解如何利用 Pandas 来绘图,前面写过 matplotlib 相关文章,matplotlib 虽然功能强大,但是 matplotlib 相对而言较为底层,画图时步骤较为繁琐,比较麻烦,因为要画一张完整的图表,需要…

Python数据可视化---线状图、柱状图、箱型图

词云: import jieba from imageio import imread from numpy import unicode from wordcloud import WordCloud,ImageColorGenerator import matplotlib.pyplot as plt jieba.load_userdict("stoplist.txt") """seg_list jieba.cut(&q…

线状数组

线状数组是一个查询和复杂度都是log(n)的数据结构,主要用来查询任意两位之间的所有元素之和,但每次只能修改一个元素的值, 数组a[]— 用来存放原始数据,c[]–就是树状数组,c[t] – 表示t管辖区间…

在UnityUI中绘制线状统计图

Python微信订餐小程序课程视频 https://blog.csdn.net/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.csdn.net/m0_56069948/article/details/122285941 先来个效果图 觉得不好看可以自己调整 1.绘制数据点 线状图一般由数据点和连线组…

数据可视化 - 柱状图+线状图

import pyecharts.options as opts from pyecharts.charts import Bar, Line""" Gallery 使用 pyecharts 1.1.0 参考地址: https://www.echartsjs.com/examples/editor.html?cmix-line-bar目前无法实现的功能:1、暂无 """x_data ["1月&qu…

【ArcGIS微课1000例】0034:地图线状符号设计教程

地图符号是表示地图内容的基本手段,它由形状不同、大小不一、色彩有别的图形和文字组成。 地图符号是地图的语言,是一种图形语言。它与文字语言相比较,最大的特点是形象直观,一目了然。 本文讲解ArcGIS中线状符号设计方法。 文章目录 一、新建符号样式二、线状符号设计1. 点…

去除图像周期性线状噪声

本文主要讲述的是如何去除图像中周期性的线性噪声,尝试过的方法从空域的开关中值滤波到频域的陷波滤波等,在此做个总结,其中陷波滤波的尝试失败,效果并不理想,而开关中止滤波的效果很好。 图1:带周期性线条…

echarts_线状图.html

<!DOCTYPE html> <html> <head><meta charset"utf-8"><title>线状图</title><script src"echarts.js"></script> </head><body><div id"main" style"width: 600px;height:…

echarts线状图

<div id"mycharts" ref"chartBox"> <span v-html"loading"></span></div> //引入线状图import echarts/lib/chart/line //echarts配置&#xff08;挂载时导入图&#xff09;creatChartFun(){ this.myChart echar…

python线状图

import numpy as np import matplotlib.pyplot as plt xnp.linspace(0,2*np.pi,10) y1,y2np.sin(x),np.cos(x) plt.plot(x,y1,markero,mecr,mfcw)//mec设置折点处图形轮廓的颜色&#xff0c;mfc设置实心的颜色 plt.plot(x,y2,marker*,ms10) plt.show()

功能很全的图书馆管理系统

个人资源与分享网站&#xff1a;http://xiaocaoshare.com/ 1.需求 1.1 bootstrapspringspringmvcmybatis&#xff0c;用maven构建 1.2分管理员和用户两个角色。用户可以查询&#xff0c;借阅归还&#xff0c;修改个人信息&#xff0c;查看借阅信息。 管理员有图书管理&…