首页 程序人生 写给那些想要自学成才的java程序员

写给那些想要自学成才的java程序员

自学java没那么难

一:个人经历

我的大学:第一年泡在图书馆看杂七杂八的书,跟学习毫无关系。第二年疯狂打LOL,从白银打到黄铜(黄铜守门员)。第三年上半年,被某人点醒,学习了整套C#知识体系,某马。下半年又决定转行,又开始了为期半年的自学java路程。所以我的经历可能适用一些正在学校的学生或者准备转行做java的。

二:建议

  • 如果你还没毕业或者想转行做java
  1. java基础,不得不提,重中之重!你需要把每个知识点都记录下来,通过实战去强化,可以借助外来的视频资料,但是记住视频为辅(一般都不是很深入),看完对应的都必须要看一本书:"java编程思想或者java核心技术",建议都看,十分经典,可以在你的笔记基础之上再次提升文章质量。
  2. 对于有了java基础的小伙伴来说,那么不得不提的就是算法与数据结构以及设计模式这两大块内容,重中之重!依然先入门,你需要了解常用的数据结构,知道他们的使用场景以及性能分析,需要具备一定的算法能力,常用的排序算法等等之类,可以去leetcode网站去找一些算法题目去练练,java语言也可以在这个阶段再一次提高,你要注意你写的代码的逻辑性和美观性以及性能。设计模式不得不提,随处可见,23种设计模式都必须了解并知道之间的区别以及常用的场景,比如抽象工厂与建造者模式的区别,常用的单例模式,门面模式,适配器模式等等,spring源码能看到很多运用。headfirst设计模式(适合入门)和算法4(需要你耐着性子去看)。
  3. 接下来看你什么方向了,如果是web端,那你可以尝试去学web开发相关的一些内容了,主要包括了Html/css/js,J2EE ,mysql相关的一些知识,对于如果以后专门要做java后端的小伙伴,前端相关知识可以稍微的花一些时间,因为不需要很久,可以入门。J2EE相关的你都必须掌握,servlet的运行原理等等很关键,mysql同样是你必须要非常深入的去学的内容,你必须要能熟练的写出SQL语句。你不仅仅要会写SQL,更要配合业务写出可重用,性能高的sql语句,建议深入的看一下高性能mysql,你不能仅仅停留在简单的增删改查,如果连数据库的设计都不会,性能优化都不了解,那么真的需要再逼一下自己,让自己懂的更多。
  4. 之后你必须靠着自己做出一个简单的网站并且搜寻一些项目资料,跟着练手,至少要有两个练习经验,巩固所学的知识点,在这个过程中你能学到很多,会碰到各种各样的bug,请记录下来,对你有用。
  5. 做完了这些项目,你可以继续去学习一些常用的web框架,比如spring,springboot ,springmvc,mybatis,什么hibernate还有structs2就不要再碰了,你必须熟练掌握这些框架的基本用法,要能明白常用的一些配置,有兴趣的可以进入里面看看源码,记着:研究源码是你做这份工作不能停下来的事。spring重中之重,不断的探索,不断的去研究源码。顺便再学一下maven如何管理项目,还有git的一些pull,push ,merge,rebase等简单用法,公司很常用,不要仅仅停留在svn,很多公司都是用git的。
  • 准备找工作
  1. 海投简历,不要不好意思,刷足面试题,最好自己要有个比较懂的技术点。
  2. 如果碰到让你培训再工作,培训期间再打生活费这种,尽量别去,我有几个朋友吃过大亏,后来都放弃了这份工作。
  3. 面试要自信些,展现自己的特长。其实公司很多,没了这家还有下家。
  • 工作了的小伙伴
  1. 应该尝试了不少crud的滋味了吧,也接触到了复杂业务的情景了吧,加班成了平常事了吧,是不是开始又觉得漫无目的了。可能在开发中你会接触到新的知识,比如,springboot ,springcloud ,dubbo,zookeeper,linux,rabbitmq,redis,mongdb,kafka,elasticsearch等等,你需要学会去用好这些工具。
  2. 对于已经工作了3年左右的小伙伴,可能你不再需要写简单的crud了,但是你能否自己搭建框架,能否写出可复用的模块代码,是否能写出优雅的代码,如果不能,还得继续学,必须重新拾起设计模式,要能对业务封装,对工具类封装,要能重构代码,要把设计模式运用到项目中去,你需要去看《重构 改善既有代码的设计》、《effective java》,久而久之,你可以写出比较出色又优雅的代码。但这还不够,你必须要对java虚拟机有深入的理解,要能解决项目中遇到的内存溢出异常等等,这部分内容比较枯燥,但是你必须要啃下去,还要会模拟场景去制造异常,因为很多异常你真的不知道从何下手,只能从日志里去看堆栈的打印信息,去看虚拟机的日志信息,去分析,你才能解决问题。所以必须学好,必须死磕这方面的内容。与此同时你还需要研究jdk的源码,就跟着你一开始学java基础的来,从集合开始,去深入的看源码,这时候你会发现java基础和数据结构和设计模式有多重要。还需要去学习并发相关的知识,要对Java并发包java.concurrent有深刻的认识,这些内容需要你摒弃浮躁的心,慢慢看,不能急,急你也看不出什么效果。如果已经接触过很多分布式相关的技术了,分布式缓存,分布式消息队列,分布式计算,负载均衡,大数据等等,你可能都已经用过了,所以现在的你既有了基础知识的架构支撑,也还没到退休年龄(哈哈),建议你深入的去研究一门技术,是很深入,不要既搞分布式计算,又搞分布式缓存,又研究大数据等等,说自己懂的那么多,花里胡哨的,真正懂得基本都能拿下你。所以你必须开始确定自己的研究方向,专门的去研究某个内容,让这一块成为你的优势和强项,这也是为了避免大龄被淘汰的法门。你应该朝着某个领域的专家去努力。有了自己深入研究的方向,你应该去帮助更多的人,去发表更多的优质文章,也可以去打造属于自己的开源项目,做出对别人,对自己有价值的东西。所以这个阶段的你应该提高自己的影响力,帮助更多的人,更多想学习的人


站心网

自学java没那么难一:个人经历我的大学:第一年泡在图书馆看杂七杂八的书,跟学习毫无关系。第二年疯狂打LO..

为您推荐

程序员职业发展与技能要求

程序员是从事计算机程序开发、维护和优化的专业人员。他们通过编写代码,设计软件系统,解决技术问题,推动技术创新。以下是程序员的一些关键信息:核心技能编程语言:掌握如Python、Java、C++、JavaScript等语言。..

程序员离职时删除代码注释算违法吗?

程序员离职前删除代码注释是否违法,取决于多个因素,包括雇佣合同、公司规定、法律条款以及删除行为的动机。以下是几个关键分析点:1. 合同与公司规定劳动合同或保密协议:如果合同或公司规定明确要求代码的完整性..

创造型职业程序员的无奈

编程是为数不多的一种既能满足个人爱好,又能赚钱的职业之一。烹饪是另一个这样的例子。在一般情况下,大多数职业要么不可能让你待在家里(例如医生和电工),要么你没有兴趣在家里做(例如清洁)。同样的,大多数好..

程序员副业探索之电商

目录一、小程序化妆品1.1 小程序准备(营业执照&微信支付&小程序appId)1.2 小程序开发二、拼多多电商三、跨境电商四、总结在腾讯广告工作期间,我主要负责小程序电商与广告业务,见证了互联网电商行业的剧变,特别..

谈程序员如何做好业务

前言技术能做两种事情,通过技术实现业务和通过技术支持技术。我们大部分时候做的是前者,养活我们的大部分也是业务。 近两个月,作为项目负责人角色从0到1经历了新项目的几个版本迭代,跨入了部分新领域,也有一定..

程序员增加收入的几种方法

在这个互联网飞速发展的社会,学会如何make money很重要。咱们是个俗人,赚钱才是社会生存的头等大事。这不是高山流水的世界,而是能力创造财富,对于程序员来说,更是如此。作为程序员,我们有更多挣钱的姿势,注意..

程序员跳槽到对手公司,被前老板设计陷害

这件事发生在2007年,我就职的第一家公司。今天把它整理写出来,希望它对程序员有一个警醒的作用。永远要记住,程序员的世界除了有代码,还有被套路。资深工程师的苦恼第一天到公司,是浩子带着我办理了入职手续。浩..

程序员如何提一个好问题

提出好的问题是在编写软件时的一个非常重要的技能。这么多年来我对此也算略有小成。这里有一些我用着觉得很棒的指导方针!开始我实际上是那种总是会问出愚蠢问题或“不好”问题的大信徒。我一直在问人们一些愚蠢并且..

我是李玉宝,我是个程序员!

听说今天我的名字很火,那我也来凑个热闹。在2015年的时候,我做过一次人生总结,当时写了:为了理想,我放弃了一切! 转眼到了2019年,说说最近一年多的一些事情吧!做的好的!坚持把权限管理框架OpenAuth.Net做了..

程序员失业日记1:工作五年,交接半天

最近发现越来越多的小伙伴被公司裁员,有的是因为公司业绩不景气被裁员,有的是因为压力太大离职。很多公司都在裁人、减员。找工作也比之前难。刚好去年我也被上家裁员了,正好做一个系列的日志,希望能帮到在找工作..

改善程序员生活质量的 3+10 习惯

一封离职邮件2017年的一天,代码伴随着手指极具节奏感地输出在IDE上,突然某Chrome插件弹出一封邮件提示:“今天是我在ThoughtWorks的最后一天”。遇到这种离职邮件,我都会点进去,一来看看是否是自己曾经共事的小..

倾听程序员的心声真的很重要

说到开发产品,没有人比程序员更了解产品。程序员知道产品的优点、缺陷、用途和潜在用途。说起这些,程序员了如指掌,如数家珍。在这个似乎无所不在的数字时代,倾听程序员必须要说的内容非常重要,而且也许比以往任..

助力程序员成功的几个好习惯

老实说,如果你google搜索“程序员的好习惯”这方面的内容,那么就会有很多大同小异的文章映入你的眼帘。但是今天我想从一个略有不同的角度来探讨这个主题。不是关于如何更擅长编程,而是如何使程序员更有市场竞争力..

倔强的程序员

对于程序员来说,大多数人公司都有技术和管理两条发展路线,通常在同一家公司,管理路线的发展可能性,要相对广阔一些;但是技术路线也有技术路线的好处,比如相对而言更依赖于硬实力,因而工作机会丰富。我相信有不..

程序员如何在当今就业市场中让自己脱颖而出

俗话说,钱不是万能的,但没有钱是万万不能的。可见钱对于生活的重要性。不管你从事什么职业,实现财务自由才能让你无所畏惧地应对挑战。但是还有一点是值得开发人员所关注的:如何脱颖而出与众不同。毫无疑问,软件..

领域驱动设计,让程序员心中有码(七)

-设计原则和设计模式,互联网开发者们共同的追求 前言多年来,笔者一直从事传统软件企业的软件开发和项目管理工作。笔者发现在众多的传统软件企业中,评判优秀开发者的标准往往是技能的熟练程度,基本上都是以梭代码..

如何成为一名成功的程序员

编程是一个仅靠兴趣仍不足以抵达成功彼岸的领域。你必须充满激情,并且持之以恒地不断汲取更多有关编程的知识。只是对编程感兴趣还不足以功成名就——众所周知,我们工作起来像疯子。编程是一个没有极限的职业,所以..

写作路上的这些小成绩,铸就了一个不平庸的程序员

01 好的写作平台可以加速我们的成长“路漫漫其修远兮,吾将上下而求索”,在写作这条漫漫长路上,我已经求索了将近5年的时间;在这5年时间里,有过兴奋,有过迷茫,但幸好,我未曾放弃。2014年的4月初,我在ITeye(..

程序员如何讲清楚技术方案

最近在评审技术方案,和代码review的时候,遇到刚入行的同学们,很多都讲不清楚技术方案。具体表现是:上来不说需求,直接说算法实现。台下一头雾水,根本不知道设计方案是否合理。描述完需求后,又直接看代码,看表..

排除万难,我终于入了程序员的坑

“恭喜你,成功的避过了所有的正确答案,选择了错误答案”。没错,我是一个数学专业的普通大学生,排除万难,我终于还是入了程序员的坑。1. 生活爆锤了我一顿我是一个平凡的人,人生也一直都是平淡且稀里糊涂的!像..

发表回复

返回顶部