写给Java 工程师们一封信

简介: 写给Java 工程师们一封信

《致 Java 工程师们》

一、写给Java初学者的话

在决定选择走Java开发这条路的过程中,相信大多数同学都会遇到一些困惑,得不到有效的解决,也得不到高手的指点;遇到问题更得不到及时的解决,从而造成有些同学就半途而废。我非常了解你所想的这些,因为我也亲身经历过。从刚接触Java到现在,我觉得会Java开发不重要,而经验是最重要的,今天就以一个过来人的角度来分享下经验。希望能帮到大家。

二、从头做起,从小事做起

“千里之行,始于足下”,意思是:事情是从头做起,从点滴的小事做起,逐步进行。这8个字就好比用“还没学会爬,就想跑”描述一个人一样。

学习任何东西都必须遵守这个规则,如果基础都不牢稳,何谈飞的更高,走的更远。学习编程也是这个道理,只有把一门语言的基础学好,才能写出更漂亮的代码。

说一个我的经历吧,有时候我在LeetCode刷一些算法题的时候,经常看到其他高手提交的代码中调用一些自己看不懂的JDK自带的API,例如力扣的第一题“两数之和”,我第一次写的代码如下:

public int[] twoSum(int[] nums, int target) {
        int[] indexs = new int[2];
        for(int i = 0; i < nums.length; i++){
            for(int j = nums.length - 1; j > i; j --){
                if(nums[i]+nums[j] == target){
                   indexs[0] = i;
                   indexs[1] = j; 
                   return indexs;
                }
            }
        }
        return indexs;
  }

而高手的代码如下:

public int[] twoSum(int[] nums, int target) {
     int[] result = new int[2];
      Map<Integer, Integer> map = new HashMap<Integer, Integer>();
      for (int i = 0; i < nums.length; i++) {
          if (map.containsKey(target - nums[i])) {
              result[1] = i;
              result[0] = map.get(target - nums[i]);
              return result;
          }
          map.put(nums[i], i);
      }
      return result;
  }

由于以前基础并不牢固,甚至都不知道HashMap还能这么用,不满大家说像Map,List,Set集合都是基础中所学过的;但是由于不常用就忘记了。所以说要把基础掌握捞还是很重要的,无论你从哪里得到的一张Java工程师路线图,或者规划之类的文章,都离不开Java的基础,例如:基础语法、面向对象等等。

可以随便去搜一下招聘信息,都会写:熟练掌握Java编程基础。

二、日积月累,循序渐进

“不积细流,无以成江海”意思是比喻学习必须日积月累,循序渐进。学习任何语言都是长期积累的,不仅学习编程语言需要长期的积累,学习英语、俄语等等,甚至中文也是学到老活到老,我敢说,几乎没有一个人能把所有的中文都认识完。

学习Java开发也是需要时间去积累的。可以参考以下十万为什么:

1、为什么架构师审核代码的时候,一眼就看出来你这里将来可能会有BUG,会抛异常?

2、为什么的代码出了BUG,其他人一眼就可以看出来是哪里有问题?

3、为什么自己改个BUG需要半天,别人只需要几分钟?

4、为什么别人开发需求的时候很快,自己磨磨唧唧半天过去了,还没动手?

这些都是“经验”,没有经验何谈“一眼就看出将来会出现BUG”、“一眼就可以看出来哪里有问题”、“几分钟就可以改完一个BUG”、“开发很快”。

不急于求成,不好高骛远,要明确学习目标,Java可以做的有很多,Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等。当你点开此文章的时候,相信大多数同学都看到过Spring的字样。没错这就是Web应用程序,也就是我们所熟知的Web应用程序(JavaWeb),Java在Web应用程序领域是非常优秀的,因为Java有非常好的生态圈。非常适合开发各种企业级应用和业务系统。

三、五大秘籍

山不辞土,故能成其高,意思是山不推辞一粒尘土,所以才能那么高;寓意一个人做事,不管多么小的事,只要去做,终能成大器。

(1)择兵器

工欲善其事,必先利其器。合理的使用好工具,可以帮你节省百倍的时间去学习其他知识。

现在开发工具也是很智能,例如IDEA, 有丰富的快捷键和智能的提示。我非常推荐初学者能够尽早的接触比较智能的IDE开发工具。这一点很多同学都有误解,有些同学认为我用记事本写出来不是更好吗。你写个HelloWorld用记事本还可以,你写个web程序可能比登天还难,如果真能写出来,也是件好事,说明你比99%的Java开发者都牛。还是推荐大家拥抱现代化科技。

可以看到用IDEA写个HelloWorld只需1秒的时间,如果用记事本,可能需要花1秒 * 100倍的时间。

(2)定目标

对于零基础学习Java的人来说,一定要有一个明确的学习方向,不能急于求成。很多人为了能快速入门Java,会直接入手项目,这不太实际,有的人不学基础,一看代码觉得Java很难就放弃了。所以我们在学习的时候一定要牢固基础,按阶段的学习,坚持下来才会有提高。

(3)制计划

初学者在学习Java时,往往会因为没有计划像无头的苍蝇一样乱撞,学习的内容不系统,最终导致学习效果低下,拖延进度。所以我们在学习的时候要制定好学习计划,按照计划走,从基础到进阶,一步一个脚印,只有这样,你才能学会怎么样解决问题,并加深自己对Java的理解。

(4)多实践

学习任何编程技术最忌讳的就是纸上谈兵,没有实际项目操作经验,这也是为什么很多人在学习完后迟迟找不到工作的原因。

我们学习Java一定要注重理论和实践相结合,在学习中尽可能的积累实战经验,这样才能在学完后与企业需求相接轨,达到用人单位要求。学习Java的过程虽然辛苦,但坚持下来终会带来回报。

(5)找方向

到了这个阶段,已经是根深蒂固了,或者说已经找到一些编程的感觉了。此时有些同学可能会懈怠,不知道自己学Java之后将来要做什么,不知道要从事什么样的工作,造成了很迷茫的现象。很多粉丝私信我都交流过很多这方面的内容,如何找准自己的方向呢?我给他们推荐了一个法宝,当不知所措的时候,就去招聘App或者招聘网站上去搜自己想从事的岗位,然后去看一下各个用人单位发布的招聘信息,里面有比较具体的岗位要求。如下:

例如查找:Java开发工程,可能会出来很多,去找一些薪资比较高的去看就好。

如上图所示,都有具体的要求,例如:了解分布式技术,熟练使用SpringBoot、熟悉Java网络编程,了解Java并发编程。熟悉HTTP、TCP/IP等网络协议。

我们知道了这些要求知道就可以照着这个方向去走就可以啦,肯定比自己东学一点,西学一点要强。

四、总结

我发现身边总有些小伙伴,刚学习Java的时候就去写JavaWeb了,但是没打好Java基础。有的小伙伴缺把Java基础学的很好,然后再去学JavaWeb。这就造成了2中现象,第一种看似学的很快,但是后来会遇到很多措手不及的问题,第二种现象,看似学的很慢,但是基础很牢,后来学习的东西就不这么费劲。

想给大家说的是,一定不要急于求成,如果总是急于求成,一定会吃哑巴亏的。相信很多人都懂;拿我自身来说,我以前算法学的并不是太好,但是我Java学的好,在面试的时候,就出现了很多亏,当面试官问到算法的时候,当然就会不知所措啦。所以提醒大家的就是,学习Java编程的初期,一定不要急于求成,要有计划的行动,跟着计划走会比自己摸索着更好。

目录
相关文章
|
4月前
|
监控 网络协议 Java
《Java工程师成神之路》阿里技术专家之作,囊括Java所有知识点!
很多Java程序员一直希望找到一份完整的学习路径,但是市面上很多书都是专注某一个领域的,没有一份完整的大图,以至于很多程序员很迷茫,不知道自己到底应该从哪里开始学,或者不知道自己学习些什么。
|
5月前
|
消息中间件 Java 应用服务中间件
|
7月前
|
存储 缓存 负载均衡
想成为一名顶尖Java开发工程师?这些优化手段一定要掌握!(六)
想成为一名顶尖Java开发工程师?这些优化手段一定要掌握!
|
3月前
|
Java
电子书阅读分享《Java工程师成神之路》
电子书阅读分享《Java工程师成神之路》
53 1
|
5月前
|
设计模式 架构师 Java
2024到来!一到五年Java工程师想跳槽,大环境不好,怎么破?
会不会因为裁员潮,市场上工作机会比往年跳槽季更少,同时求职者因为失业或裁员潮带来的恐慌心理,很多人在找工作时更怕错过机会而不做过多思考和选择就入职。这样的形势下跳槽或者求职时,该如何判断和做出选择?
|
28天前
|
人工智能 Kubernetes Java
Java开发工程师如何紧跟技术前沿对于保持专业竞争力、提升工作效率以及适应行业发展?
【4月更文挑战第4天】Java开发工程师如何紧跟技术前沿对于保持专业竞争力、提升工作效率以及适应行业发展?
25 4
|
2月前
|
消息中间件 Dubbo Java
互联网 Java 工程师1000道面试题(485页)
互联网 Java 工程师1000道面试题(485页)
30 0
|
2月前
|
人工智能 监控 Java
招个Java工程师,却发现了一个宝藏平台
招个Java工程师,却发现了一个宝藏平台
24 0
招个Java工程师,却发现了一个宝藏平台
|
3月前
|
Java
电子书阅读分享《Java工程师成神之路》
电子书阅读分享《Java工程师成神之路》
76 2
|
5月前
|
Java 数据库连接 数据库
Java大数据开发工程师__Spring学习笔记(待更新)
Java大数据开发工程师__Spring学习笔记(待更新)
29 1