阅读本文大概需要 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,于是他们会觉得没必要读研,但是对于我这种跨专业的人来说,研究生才是我开始的第一步,跟他们没有什么可比性,所以对于从零开始的我来说,做研发比算法要靠谱的多,对于很多要转行做程序员的人来说,也是一样的道理,应该选择更加符合自己实力的岗位方向,不要好高骛远。

以上内容纯属个人观点!

为什么我会选择走 Java 这条路?的更多相关文章

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

    ​本系列文章将整理到我在GitHub上的<Java面试指南>仓库,更多精彩内容请到我的仓库里查看 https://github.com/h2pl/Java-Tutorial 喜欢的话麻烦点 ...

  2. 发发牢骚,觉得走c#这条路,不该太浮躁。

    发发牢骚,觉得走c#这条路,不该太浮躁.校园招聘结束了,腾讯,华为,百度,完美时空,网易,阿里,让我觉得.NET很受歧视.清一色的C/C++,JAVA,只有网易有一点.Net的,但是都是非核心的运维工 ...

  3. 1.前言-聊聊Java这条路

    一.解决大家的疑问 1.零基础学习编程? 有编程基础的比零基础的困难,毕竟有一些固定思维 目标:爱好.做网站.做游戏 2.英语不好能学吗? 程序并没有大家想象的那么多英语,天天都在用,慢慢就掌握了 3 ...

  4. IT这条路,适合什么人走。

    今天 ,到图书馆Study,呼,不知道为撒,看到那么多新书,那么多新技术(也不能说是新技术,就是自己没有学习过的技术),特别兴奋,学习的疲劳顿时间就没了,感觉什么都想学,都想据为己有,但是...... ...

  5. 前端这条路怎么走,作为一名后端er,说说我的见解

    近期都游荡在各大群里看大家的讨论,经常看到关于程序员生涯的一些讨论,颇有感触,最近的国庆的确过得有些堕落,都没怎么更新,仔细相信还是应该分享点经验给大家的!想必大家都经历过面试,这是进入一家公司的必要 ...

  6. [项目实施失败讨论Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn)

    [Case] “凭心而论,在这家公司很敬业的工作了3年多,老板最后给我下的评语,大家都看看吧,千万别和我走同一条路!”(摘自csdn) 原文:http://community.csdn.net/Exp ...

  7. 【转】JAVA自学之路

    JAVA自学之路 一: 学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟应该选择什么方向 ...

  8. java学习之路

    先来说一说我和it之间的不解之缘.准确来说,我接触it是从大二是我买的第一个手机开始的(国产的,展讯平台,能够运行mrp虚拟机),那时候还没有智能手机,或者说还不够普及,总之就是买不起.一次偶然的机会 ...

  9. 【转】Java自学之路——by马士兵

    作者:马士兵老师 JAVA自学之路 一:学会选择 为了就业,不少同学参加各种各样的培训. 决心做软件的,大多数人选的是java,或是.net,也有一些选择了手机.嵌入式.游戏.3G.测试等. 那么究竟 ...

随机推荐

  1. VS2017在Release下编译错误C1001

    在使用VS2017编译C程序时,Debug模式下编译链接执行都没有问题,但是一转到Release模式下就出现下列编译链接错误(IDE:VS2017 /VC++/MFC程序,目标平台x86+Win32位 ...

  2. Xmind 常用快捷键列表(官方推荐)

    XMind中文版快捷键指南 XMind是一款非常实用的思维导图软件,能够帮助人们快速理清思路,打开新的局面.熟练地掌握快捷键的操作不光能够提供便捷,更能很大程度上的缩短制作时间,提高工作效率.本文总结 ...

  3. Openssl pkcs12命令

    一.简介 pkcs12命令能生成和分析pkcs12文件 二.语法 openssl pkcs12 [-export] [-chain] [-inkey filename] [-certfile file ...

  4. Luogu 4705 玩游戏

    看见这个题依稀想起了$5$月月赛时候的事情,到现在仍然它感觉非常神仙. 游戏$k$次价值的期望答案 $$ans_k = \frac{1}{nm}\sum_{i = 1}^{n}\sum_{j = 1} ...

  5. Luogu 4245 【模板】任意模数NTT

    这个题还有一些其他的做法,以后再补,先记一下三模数$NTT$的方法. 发现这个题不取模最大的答案不会超过$10^5 \times 10^9 \times 10^9 = 10^{23}$,也就是说我们可 ...

  6. 【转载】java实现rabbitmq消息的发送接受

    原文地址:http://blog.csdn.net/sdyy321/article/details/9241445 本文不介绍amqp和rabbitmq相关知识,请自行网上查阅 本文是基于spring ...

  7. 【小梅哥SOPC学习笔记】设置Eclipse在编译(build)前自动保存源代码文件

    设置Eclipse在编译(build)前自动保存源代码文件 Eclipse 常用设置之让Eclipse在编译(build)前自动保存源代码文件 一.让Eclipse在编译(build)前自动保存源代码 ...

  8. JVM 方法调用之解析

    方法调用并不等同于方法执行,方法调用阶段唯一的任务就是确定被调用方法的版本(即调用哪一个方法),暂时还没有涉及到方法内部的具体运行过程.在程序运行时,进行方法调用是最普遍最频繁的操作,但Class文件 ...

  9. linux fdisk分区工具

    fdisk来自IBM老牌分区工具,支持绝大多数操作系统,几乎所有的linux的发行版本都装有disk,包括linux的resure模式下的依然能够使用. fdisk是一个机遇MBR的分区工具,所有如果 ...

  10. windows游戏开发中一个关于Visual Studio的编译链接成功,输出窗口却显示线程已退出。无法运行项目的问题

    可能是显卡驱动程序版本太高了,退回到以前的版本就ok了. 第一次遇见这个问题可把我给整疯了!! 后来又遇到一次,参考之前的解决方法,很快就搞定了!! 可见,经验可是很重要的一个东西啊.