​为什么我会选择走 Java 这条路?

2024-02-28 05:10
文章标签 java 选择 我会 这条

本文主要是介绍​为什么我会选择走 Java 这条路?,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

​本系列文章将整理到我在GitHub上的《Java面试指南》仓库,更多精彩内容请到我的仓库里查看

https://github.com/h2pl/Java-Tutorial

喜欢的话麻烦点下Star哈

文章首发于我的微信公众号【黄小斜】也将同步到我的个人博客

www.how2playlife.com

阅读本文大概需要 2.8 分钟。

最近有一些小伙伴问我,为什么当初选择走Java这条路,为什么不做C 、前端之类的方向呢,另外还有一些声音:研究生不是应该去做算法方向么,本科生不就可以做开发了吗,为什么还要读研呢。其实吧,这个问题搁在不同人身上,回答可能也是完全不一样的。我可能还是主要以我的角度出发,结合一些读者的问题,来说一说为什么要选择Java这条路。

谈谈我的技术方向选择

我最早接触的语言应该是c,再后来又接触了前端、php、C#等语言,对这些语言的了解也仅限于懂得基本语法,写过一些小demo而已,那时候觉得掌握一门语言就是掌握它的语法就行了,于是会在简历上写,了解各种语言,现在想想实在是太可笑了。

不过真的很多初学者都会这么认为,觉得自己不管选哪个方向都可以,这是因为他们不知道自己的技术方向到底是什么,因为他们不管哪个方向都不精。

后来慢慢接触了Android开发,能自己写一些app,觉得这个方向还挺有趣的,于是想着以后干脆做这个吧。不过我那时候也明白自己离进大厂还有很远的距离,于是打算考研。巧的是,读研前的那个假期,去了一家公司实习,做的是Java Web,那时候才觉得Android比Java Web简单多了呀,完全不需要学那么多框架、技术啊,于是更坚定了做Android的决心,只不过那时候也同样发现了,Java web是更加热门的方向,岗位需求量也更大。

读研的时候,一开始也是打算做Android方向的,买了各类Android书籍开始啃,那时候刚好遇到了个实践课程,让我们选方向,有Java、Android、C 等等。当时妹子做前端,为了带上妹子一起做项目,干脆就选了Java Web这个方向,想着应该不影响我做Android啊,于是接下来的时间里就开始学Java Web了。

时间一长,发现这个方向也没有想象的那么难,相反还挺有意思的,毕竟能用到各种各样的框架,技术栈的内容也很丰富,看起来好像比Android的技术含量高很多,加上自己之前学过Java,也有Java Web的学习经历,简历上也能写的好看一点,于是一不做二不休,就开始做Java方向了。就这样,我找到了第一份Java实习,看了一遍Java后端书单,慢慢地在这条路上越走越远,后来我才发现,Java Web远没有想象中那么简单,Java后端技术栈也远不止Java Web这点内容,特别是对于大厂来说,要掌握的东西实在太多了,比如分布式、网络编程、中间件等等。

所以,选择方向这件事,有时候就是看兴趣,看机遇,看你能坚持多久,如果你对一个方向感兴趣,并且愿意持续学习,不断深挖,这个方向可能就适合你,当你在这个方向投入了一定时间之后,有了一定积累和经验,就不太容易再改变方向了。

谈谈各个技术方向的前景

之前也有很多读者问过这个问题,做哪个方向更有前景,更有钱景。虽然我只做过一个方向,但是对其他方向也有一些了解和涉猎,不敢说了解得非常多,但是结合自己身边的同学、朋友的情况,还是可以给出一些比较中肯的建议。

其实我最早打算做的是游戏开发的,所以我们先聊聊游戏开发这个方向。

网易游戏在前几年对游戏开发的招聘要求是985硕士以上学历,当时我就是冲着这个要求考了研,后来却没有去做游戏开发,主要原因是游戏开发主要用的是C ,并且主要的岗位要求是客户端方向的技术,比如图形学、引擎技术,以及对C 的掌握程度。

当时自认为有一些Java基础,不愿意转C ,同时也感觉游戏行业大厂太少了,除了腾讯网易就没有什么大公司了,职业发展的空间可能也不大。自己虽然爱玩游戏,但是做开发和玩游戏毕竟是两码事。当然,近两年游戏开发的岗位需求其实还是很大的,因为现在做游戏开发的人太少了,导致网易游

戏放宽了研发工程师的标准,只要求211以上即可,所以,想要从事游戏开发的朋友,其实现在进大厂的机会可能比之前更多了。

说完游戏开发,说一说C ,C 方向和Java一样主要是做后端的,虽然游戏开发大部分也用的是C ,但是C 服务端的需求量确实没有Java大,加上C 的学习难度稍微搞一点,所以我没有选择这个方向。

当然,现在做CV等算法方向的同学都会用到C ,所以相对Java来说,C 方向选择岗位的范围可能也更多一些。不过,正如Java也能做大数据开发一样,选择方向并不是选择语言,比如你做游戏开发或者算法方向,要学的远不止C ,做大数据方向,Java也只是很小的一部分而已。

除此之外,前端、测试、移动端等方向也有很多机会,这些方向的学习难度可能要稍微简单那么一点,所以有很多女生会选择这些方向,如果你想进大厂却对自己不是很有信心,那么这些方向也是很不错的选择。

研究生就应该做算法么?

再聊聊现在很火的人工智能、机器学习方向,这个方向说实话最难的地方在于理论知识,也就是机器学习理论、算法模型、统计学知识等内容。很多人对这个方向趋之若鹜的原因,很大程度上是因为这个方向的薪资高,并且相对工程方向来说,工作强度要低一些。

但是,这么热门的方向,竞争有多激烈就不用多说了,大厂的算法岗简历多到数不胜数,你没有论文、实习经历或者比赛为你背书,基本上连简历筛选都过不去,就算你的简历很漂亮,但是很多时候由于岗位需求量不多,只要你不是特别优秀,就可能被安排到研发岗位,这也是我身边很多同学亲身经历的。再有一点,就是有很多算法方向的博士毕业生也会和你竞争,这就有点吓人了,总之,算法方向还是比研发方向更加有难度的,不管是学习难度、面试难度,还竞争激烈程度,都更加明显。

很多人觉得读研就应该做算法,本科生才做研发,我对此不敢苟同,因为主要还是还看个人实际情况,如果你想进大厂,那么至少本科的时候就要有很扎实的基础实力,这对大部分同学来说都是比较困难的,如果你不是名校出身,我觉得进大厂的难度还是比较大的。

很多名校背景的本科生确实可以拿到大厂的研发offer,于是他们会觉得没必要读研,但是对于我这种跨专业的人来说,研究生才是我开始的第一步,跟他们没有什么可比性,所以对于从零开始的我来说,做研发比算法要靠谱的多,对于很多要转行做程序员的人来说,也是一样的道理,应该选择更加符合自己实力的岗位方向,不要好高骛远。

以上内容纯属个人观点!

微信公众号

个人公众号:黄小斜

黄小斜是跨考软件工程的 985 硕士,自学 Java 两年,拿到了 BAT 等近十家大厂 offer,从技术小白成长为阿里工程师。

作者专注于 JAVA 后端技术栈,热衷于分享程序员干货、学习经验、求职心得和程序人生,目前黄小斜的CSDN博客有百万 访问量,知乎粉丝2W ,全网已有10W 读者。

黄小斜是一个斜杠青年,坚持学习和写作,相信终身学习的力量,希望和更多的程序员交朋友,一起进步和成长!

原创电子书:
关注公众号【黄小斜】后回复【原创电子书】即可领取我原创的电子书《菜鸟程序员修炼手册:从技术小白到阿里巴巴Java工程师》

程序员3T技术学习资源: 一些程序员学习技术的资源大礼包,关注公众号后,后台回复关键字 “资料” 即可免费无套路获取。

考研复习资料:
计算机考研大礼包,都是我自己考研复习时用的一些复习资料,包括公共课和专业的复习视频,这里也推荐给大家,关注公众号后,后台回复关键字 “考研” 即可免费获取。

技术公众号:Java技术江湖

如果大家想要实时关注我更新的文章以及分享的干货的话,可以关注我的公众号【Java技术江湖】一位阿里 Java 工程师的技术小站,作者黄小斜,专注 Java 相关技术:SSM、SpringBoot、MySQL、分布式、中间件、集群、Linux、网络、多线程,偶尔讲点Docker、ELK,同时也分享技术干货和学习经验,致力于Java全栈开发!

Java工程师必备学习资源: 一些Java工程师常用学习资源,关注公众号后,后台回复关键字 “Java” 即可免费无套路获取。

我的公众号

本文由博客一文多发平台 OpenWrite 发布!

这篇关于​为什么我会选择走 Java 这条路?的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/754476

相关文章

java实现延迟/超时/定时问题

《java实现延迟/超时/定时问题》:本文主要介绍java实现延迟/超时/定时问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java实现延迟/超时/定时java 每间隔5秒执行一次,一共执行5次然后结束scheduleAtFixedRate 和 schedu

Java Optional避免空指针异常的实现

《JavaOptional避免空指针异常的实现》空指针异常一直是困扰开发者的常见问题之一,本文主要介绍了JavaOptional避免空指针异常的实现,帮助开发者编写更健壮、可读性更高的代码,减少因... 目录一、Optional 概述二、Optional 的创建三、Optional 的常用方法四、Optio

Spring Boot项目中结合MyBatis实现MySQL的自动主从切换功能

《SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能》:本文主要介绍SpringBoot项目中结合MyBatis实现MySQL的自动主从切换功能,本文分步骤给大家介绍的... 目录原理解析1. mysql主从复制(Master-Slave Replication)2. 读写分离3.

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java String字符串的常用使用方法

《JavaString字符串的常用使用方法》String是JDK提供的一个类,是引用类型,并不是基本的数据类型,String用于字符串操作,在之前学习c语言的时候,对于一些字符串,会初始化字符数组表... 目录一、什么是String二、如何定义一个String1. 用双引号定义2. 通过构造函数定义三、St

springboot filter实现请求响应全链路拦截

《springbootfilter实现请求响应全链路拦截》这篇文章主要为大家详细介绍了SpringBoot如何结合Filter同时拦截请求和响应,从而实现​​日志采集自动化,感兴趣的小伙伴可以跟随小... 目录一、为什么你需要这个过滤器?​​​二、核心实现:一个Filter搞定双向数据流​​​​三、完整代码

SpringBoot利用@Validated注解优雅实现参数校验

《SpringBoot利用@Validated注解优雅实现参数校验》在开发Web应用时,用户输入的合法性校验是保障系统稳定性的基础,​SpringBoot的@Validated注解提供了一种更优雅的解... 目录​一、为什么需要参数校验二、Validated 的核心用法​1. 基础校验2. php分组校验3

Java Predicate接口定义详解

《JavaPredicate接口定义详解》Predicate是Java中的一个函数式接口,它代表一个判断逻辑,接收一个输入参数,返回一个布尔值,:本文主要介绍JavaPredicate接口的定义... 目录Java Predicate接口Java lamda表达式 Predicate<T>、BiFuncti

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

Spring Security方法级安全控制@PreAuthorize注解的灵活运用小结

《SpringSecurity方法级安全控制@PreAuthorize注解的灵活运用小结》本文将带着大家讲解@PreAuthorize注解的核心原理、SpEL表达式机制,并通过的示例代码演示如... 目录1. 前言2. @PreAuthorize 注解简介3. @PreAuthorize 核心原理解析拦截与