单纯聊聊Java技术

java_wxid 上海梦创双杨数据科技股份有限公司 软件工程师  2021-11-11 14:25:33

技术深不只是停留在运用层面,更多的是对这门技术的使用场景,底层原理,遇到问题的处理方案,以及同类型的其他技术比较以及运用。除此之外还需要掌握他的广度,比如,你在处理这个功能的时候,有多少方案可以作为选择和参考的。

就拿行业覆盖面比较广泛的Java编程语言来说,作为Java开发工作者,你需要掌握的技术主要分几个大类,JavaSE,框架,中间件,数据库存储,高并发分布式集群,可持续集成开发,网络编程以及安全,面试及项目实战经验,数据结构和算法(应届生考察的比较多,社招生没那么严重)。

框架:主流的几套框架别的不说,至少要都会用,像Spring,Spring MVC,Springboot,Mybatis,SpringCould,Dubbo+Zookeeper,Struts+Hibernate(这套框架基本很少有公司会用了),级别稍微高一点的开发,基本都看过一些底层源码,知道一部分的底层运行原理,比较资深的基本可以实现基于这些框架进行定制功能。

中间件:这个就比较广泛了,不说其他中间件,就单纯拿消息中间件来说,国内在市面上流行的几个ActiveMQ(这个最近几年用的少了),RabbitMQ,RockerMQ,Kafka基本都要会用吧,从安装到使用这些都至少基本需求,除此之外,需要了解各个消息中间件各种的一些基本概念和差异,如何处理消息中间件带来的一系列问题,比如:各个消息中间件是如何处理消息顺序性,保证消息的可靠性,以及集群等问题。

数据库存储:这个也比较广泛,最常用的Redis,Mysql,Mongodb,Elasticsearch最基础的安装以及使用要会吧,除此之外一些基本概念和底层的一些存储方式等,一些大公司可能还会考察你对各种数据库之间的一些集群或者主从复制,分片,数据同步,海量数据等等问题处理方案。

高并发分布式集群:这块是比较考验项目经验的,很多代码并发量一高,数据量一大就会出现各种问题,所以这块的内容是比较多的,处理方案也需要有多种准备。

可持续集成开发:目前互联网产品的迭代速度是比较快的,很多公司都进入到了敏捷开发的行列,所以会需要开发人员了解并且使用可持续集成的开发工具等等。

网络编程以及安全:网络编程方面更多的是考察你的计算机底子,很多做游戏的对这方面要求会很高,比如需要你了解一些粘包如何避免等等。除此之外还有一些同时在线的项目可以对网络编程方面的要求比较高,同类型的比如:微信,QQ这种实时在线消息发送的。网络安全其实有专门的人员负责的,但是作为开发人员,这方面的知识也需要掌握,否则你开发的功能容易被人攻击到,国内其实网络这块做的还是比较好的,国外的服务器经常会被人攻击,这点我深有体会,本人之前在AWS的服务器上面搭建过一些项目,好死不死被人攻击了,被人勒索比特币,所以网络安全方面的知识需要了解。

面试及项目实战经验:做为开发人员,面试技巧很重要,因为行业在内卷,面试造航母,工作拧螺丝已经成为公认的事实了。项目实战经验决定着你的编程能力,遇到问题的解决方案是否有经验。

以上就是我的个人经验之谈。

...全文
10 6 收藏 2
写回复
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
java_wxid 11-11

我来打卡啦

回复
java_wxid 11-11

我来打卡啦

回复
相关推荐
发帖
编程新手村
创建于2021-11-01

6.5w+

社区成员

灌水发信息每周送书 灌水发干货每周送惊喜 谁最水过年送大礼 谁最硬核过年送大礼 谁最贡献过年送大礼
帖子事件
创建了帖子
2021-11-11 14:25
社区公告

我们“新手村”社区就是大家的孵化器

你们学习,我来评分

每周最高分送一本书

每月第四周送一份机械键盘

咱们新手村使用一切狂暴手段让优秀的人得到奖励