专栏首页Java编程指南java开发入职半年,对未来迷茫?那你该看看这篇文章

java开发入职半年,对未来迷茫?那你该看看这篇文章

今天我们讨论的是入职半年对未来的一些规划,如果你有更好的建议,欢迎下方留言评论哦。

网友一:

关于面试,关于技术的,我只能说有些路只能靠自己去走,没人可以帮到自己,哪怕偶尔帮一到两次,但是技术的路这么长,总归需要自己独自成长的。附一张自己藏书的照片,与各位共勉

-------------------------------------------------

工作三年多,就个人方面而言,很多的工作都是面试造核弹,工作拧螺丝。但是不要因为自己是个拧螺丝的就不学哪些难啃的技术。当项目出问题的时候,就是考验技术沉淀的时候。我也迷茫过好长一段时间,学了忘,学了没用,到底应该怎么成长才能成为一个别人眼中的大神,大牛。

个人建议,在JAVA方面,先学好JAVA SE。不管如何,基础才是上层建筑的一切。推荐去看jdk源码,推荐1.6或者1.7版本。因为1.8版本的源码中会有很多lambda表达式。如果这块不了解,看起来和看天书没啥区别。先看我们日常开发中最常用的类,util包下面的,list,map,刚开始看的时候肯定会非常的难受,举个例子,arraylist。很多基础操作已经写在父类中了。点来点去的会看晕。那么就先看list接口。看看它都定义了哪些操作,然后看abstractlist。看看其中实现了哪部分操作,哪些方法留给子类去实现了。刚开始看的时候力求每块代码都看懂,多问问自己为什么。作者为什么要这么写,用意在哪里,优点在哪里。看源码是一件很痛苦的事情,但是坚持下来会发现自己每天都在学习,每天都在成长,我自己hashmap源码看了足足一个月才大致理解其中的思想。我看jdk源码已经坚持了两年了,虽然做不到每天都看。但是有空就会点进去看看,并且把自己理解的代码和自己的理解都整理成笔记。我记得有人说过,阅读优秀书籍就如同在和优秀的人面对面交流。在阅读源码同样适用,在看jdk源码就是和一群顶级的JAVA开发者交流。我们去看,去理解,去体会,潜移默化,我们会模仿他们的写法,理解他们的思想。一个小建议,看源码的时候最好准备一份类图。比如util包,就去搜一下collect的类图。从顶向下看也行,从低向上看也没什么问题,不过一开始看的时候,最好就钻研其中的一个类,因为很多时候我们会发出疑问,为何要这样设计,感觉这段代码没啥用啊之类的。虽然从顶向下看这些问题会不在存在,但是刚工作半年确实理解不了。容易让人放弃。

看源码最重要的不是学习技巧,而是思想,换位思考,假如我们是jdk的开发者,我会怎么写,如何设计一个类,哪些方法是共有的,那些方法需要提取成共有方法,哪些方法可以使用模板模式,抽象两个字说起来简单,但是想要做好抽象好难啊。当你把你自己经常用的类看完之后,那么就可以按照包去读源码,四大包,lang,io,net,util包。

源码阅读一定程度之后,你就会发现继续阅读对于自己的提升好像不是很大了,这个时候,阅读源码将会成为你的一个习惯。你看到优秀的开源框架就会忍不住去阅读,不要克制自己。勇敢的去读吧。书读百遍,其义自见。

后面说一点学习技术过程中自己遇到的问题,希望能帮助到你。刚开始的时候,我会着急,会恐慌,这么多类我哪里学习的完啊,外面技术日益月新,我还在研究这个。怎么办,说不要着急有点站着说话不腰疼了,想学就去学。但是一定要有自己坚持的事情,哪怕因为某一段时间忙,没空。总会有空,有空就去研究,就去写笔记。水滴穿石这个道理永远不过时。技术这么多,我们确实学不过来。而且我们也不需要要求自己每一个技术都很精通。但是在用的时候我们要做到快速上手,快速精通。这个就靠内功了。我对于内功的理解就是基础+思想,基础就是我们对于计算机体系的理解和世界观,思想就是方法论或者说是经验。

在阅读到并发包的时候,结合JAVA并发编程实战这本书去阅读。你会看到不一样的并发世界,虽然很多人诟病翻译不好。但是我通过阅读源码发现翻译不好的地方不也是人生一大趣事。

后面就可以去学习jvm方面的一些知识,这个不冲突。你也可以继续阅jvm源码。jvm个人推荐深入理解jvm,那本蓝色的书,作者姓周来着。在地铁上突然想不起来叫啥了。还有一本深入g1 gc这个是主要讲解g1垃圾回收器的。jvm方面我研究的也不是很深就不展开说了。对了,有一本阿里出版的,揭秘JAVA虚拟机,红色的封面,有一头熊咆哮的这本书需要一些汇编基础,但是要求不高,看着很过瘾,很带劲。

计算机基础方面,我推荐

1.编码:隐匿在计算机背后的语言,个人十分推崇这本书,作者用灯泡,导线,开关实现计算底层的东西,不要被吓住了,作者写的浅显易懂。设想我们自己乳沟对于计算机的理解达到作者这个地步,那么真的可以做到手中无剑的地步了。

2.计算机是如何跑起来的,给自己的奶奶讲解什么是计算机的必备书籍,和编码那本书有着异曲同工之妙。

3.同上,如何系列的,都是一个日本作者写的,好几本,程序是如何跑起来的,网络是如何链接的。都是很不错的书籍

4.好吧,我也要说数据结构。不是说这个不重要。而是这个太重要了,我不知道该怎么去描述,自己能力有限,对于这块不敢过多言语。关于数据结构的书很多,我个人阅读是大学的那本JAVA实现的数据结构

5.算法 每次提到这个就想起来我买的那本算法导论,都是泪。推荐你去看算法 第四版,封面是红色,入门门槛比较低。

技术这条路有的时候很孤独,或许就你一个人在路上。但是一定要坚信,付出总会有收获

网友二:

关注这个问题有一段时间了,过来聊一下自己的体会。

1.心态上:不要太相信自我驱动。好的平台和环境,会大大提升你的成长速度

我看题主的描述,公司使用的技术相对整个大环境来说,还是比较落后的。你算是很努力的人了,私底下用功学习,骑驴找马,期望他日能去更好的平台。实际情况是,努力很重要,但最好不要太相信个人的努力。不知道你有没有这种体会:知道某些技术很重要,但是你不敢去碰它,或者不知道如何入手,又或者怎么学都学不深入,到头来还是只知道个别单词的中文意思。这些都是因为你始终仅靠自我驱动去学习,缺少相匹配的外在驱动或者环境鞭策。在岸上学习游泳,不保证下河不会淹死。

以我个人为例,之前觉得redis、SpringBoot这些很高大上。拦截器?算了吧,似乎根本用不上,不敢不敢。但是呢,去了北京,项目刚好用到。只好硬着头皮上了,什么都自己写,结果发现其实也没那么可怕。这个经历,让我瞬间开了眼界,胆子也大了不少。现在不管什么新技术,都乐于去了解。

所以,只有当外部环境和自我驱动相匹配时,你的成长才能效率max。

2.学习上:不要一直纠结于某个技术点,要“走三步退两步”

现在框架越来越多,且不说原理,就说很多配置的意义以及它为什么能实现各自的功能,你是否了解?

我刚学习SSM时,对于很多配置其实稀里糊涂的。比如web.xml中配置ContextLoaderListener的作用是什么,它是怎么实现的?DispatcherServlet是干嘛的,为什么还要配置contextConfigLocation。load-on-startup又是干嘛的,不配会怎样?为什么用了SpringMVC就不用设置utf-8了,乱码问题莫名其妙就解决了?

这些问题,其实你钻研框架本身,可能得不到答案。因为它的实现都是被封装了的。此时你如果“退两步”,回去看JavaWeb阶段的监听器,过滤器,就能理解得更好。另外,SpringMVC的拦截器和过滤器很相似,啥区别呢?你如果不了解过滤器,区别从何谈起。所以我一直觉得,学习应该是滚动来回地去学。不要纠结于某一点,这样会将你的眼光局限住。应该开放心态,多接触,然后回头潜心研究。你会注意到之前忽略的一些细节。而这些细节,会在以后的学习和实战中发挥作用。知其然知其所以然,会让你debug都比别人快一分钟。

3.该学习哪些技术,如何学习?

老实说,你要是一直待在现在的公司,很难说有长足的进步。它能提供给你的就这么多。你靠自我驱动,能弥补的仅仅是对新技术肤浅的了解。所以你陷入了一个恶性循环:公司技术落后→自我驱动学习不深入→无法应对更高平台的面试→换不了环境→公司技术落后→自我驱动学习不深入→...

你可以适当了解一些新技术,比如SpringCloud,消息队列就很好嘛。我知道我说得再多,你都无法对这些技术产生强烈的学习欲望,你还是觉得这些技术很陌生,离自己很远。有一种办法,你或许可以试试:面试驱动法。你可以试着投投简历,请个假出去面试,看看市场需要什么技术。等你被问懵逼时,就知道奋发图强去攻克他了。几十块钱赶一场面试,然后能找到前进方向,很值得!

大家都说面向工资编程,而我也要说,一定要面向市场学习,不要闭门造车。

回来学习下这些技术,然后找一些网上开源的项目去看看这些技术是如何被运用在项目里的。或者看看网上的项目视频,有些也是挺不错的,能帮你快速建立对该技术的感性认识,不至于面试时只能说“这个单词我会拼”。视频的话,其实某二手平台上很多人卖盗版的...你自己看着办。

我的建议还是好好提升一下,然后抓紧时间跳槽。

加油~

本文分享自微信公众号 - Java编程指南(JavaXxzyfx),作者:Java编程指南

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-03-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 设计模式之抽象工厂模式

    抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式...

    Java编程指南
  • 推荐 130 个令你眼前一亮的网站,总有一个用得着

    谷粉学术:https://gfsoso.99lb.net/scholar.html

    Java编程指南
  • Java代码片段之生成验证码

    今天给大家分享一个Java生成前台验证码的代码片段,有需要的同学们记得收藏哦!话不多说直接上代码:

    Java编程指南
  • 同是3年开发经验,为什么你的技术比别人差很多?

    你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多? 其实技术水平的高低和个人智商关系不大(毕竟能做Java编程开发大家都不会差),...

    Java高级架构
  • 移动 Web 最佳实践(干货长文,建议收藏)

    https://juejin.im/post/5d759f706fb9a06afa32adec

    coder_koala
  • 移动 web 最佳实践(干货长文)

    https://juejin.im/post/5d759f706fb9a06afa32adec

    前端迷
  • 基于 Vue 和 TS 的 Web 移动端项目实战心得

    来源:https://juejin.im/post/5d759f706fb9a06afa32adec

    ConardLi
  • 百度正在成为一家硬件公司

    昨天,百度“策划”了一个极具科技感的愚人节,一股脑发布了四项面向未来的“新技术”。“筷搜”、视频4D触感技术、dulife手环梦境还原,还有百度ib...

    罗超频道
  • 下载b站外挂字幕,用 potplayer 播放视频也能看字幕了

    今天分享的是下载b站外挂字幕 ,在本地用 potplayer 播放器播放b站视频也能看字幕了,需要用到 potplayer 播放器 和字幕文件。

    苏生不惑
  • mock打桩之EasyMock

    静儿

扫码关注云+社区

领取腾讯云代金券