《致 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编程的初期,一定不要急于求成,要有计划的行动,跟着计划走会比自己摸索着更好。

写给Java 工程师们一封信相关推荐

  1. Java工程师居然不会写前端?这几本书帮你快速入门!

    早在几年前,JavaWeb工程师还几乎都是掌握全栈技能的程序员,然而随着技术不断发展,前后端分离已经成为大趋势,JSP早已被时代抛弃,json才是划分前后端的最好利器. 相反,大前端工程师越来越有全栈 ...

  2. 用一份JAVA工程师的求职简历来说说求职简历怎么写

    这是一篇我比较想看到的简历指导的文章. 但是我比较反对简历造假.我觉得会什么写什么把. 可以先看看我的这篇文章:刚实习结束,就要做面试官,谈谈我的想法 自己做过面试官以后,自己也总结了一下,作为开发应 ...

  3. 想面中高级java工程师,要怎么写简历?(附图)

    大家好~ 小仙女又回来啦~ 经过了N天的面试,最终选择了一家最中意的~ 过几天就要入职啦~ 现在把经验分享给大家~ 想跳槽的小哥哥小姐姐们可以参考一下~ 写简历要遵循的原则:整齐.简洁.多从阅读者的角 ...

  4. 一线互联网技术:Java工程师架构知识系统化汇总,面完45K!

    根据高端招聘平台100 offer发布的Java人才盘点报告,在过去的2018年,Java仍然是最流行.招聘供需量最大的技术语言. 在此基础上,互联网行业针对 Java 开发的招聘需求,也是近年技术类 ...

  5. 文件节点的linux指令,Java工程师必学的Linux命令(一)文件与目录管理

    从本篇文章开始,我将总结一些Java工程师日常研发工作中会使用到的Linux命令,在介绍这些命令的过程中,也会对Linux系统的一些基础知识进行普及.希望对大家工作和学习有所帮助吧. 本篇将从文件与目 ...

  6. 【金三银四跳槽季】Java工程师如何在1个月内做好面试准备?

    点击上方"蓝字", 右上角选择"设为星标" 周一至周五早11点半!精品文章准时送上! 本文来自石杉的架构笔记 目录 一.写在前面 二.技术广度的快速准备 三.技 ...

  7. Java工程师的成长路线图是什么?

    大家好,我是极客时间<Java核心技术36讲>作者.前Oracle首席工程师杨晓峰,今天,我想借自己的经历,跟大家分享Java工程师从新手进阶到专家的路线图是什么?有哪些阶段?每一阶段又该 ...

  8. 《Java工程师修炼之道》内容概览

    最近几个月由于工作和正在筹备<Java工程师修炼之道>一书的原因一直没有写新的文章.不过,忙里偷闲,自己陆续读完了<格鲁夫给经理人的第一课>.<架构真经>.< ...

  9. 面试的角度诠释Java工程师(一)

    2019独角兽企业重金招聘Python工程师标准>>> 原文出处: locality 前言: 我相信每一个程序员都是为了生活而努力着的.很多人因为兴趣,从此踏上了这条'烧脑大行动'的 ...

最新文章

  1. Django的ORM映射机制与数据库实战
  2. Webpack单元测试,e2e测试
  3. PyTorch框架学习二——基本数据结构(张量)
  4. [转]上海新东方vs新东方,SEO实战
  5. 基于WIKI中文语料·Word2Vec模型训练·Python
  6. 获取UI控件位置信息
  7. 大班音乐机器人反思_幼儿园大班音乐游戏教案活动《机器人》含反思
  8. 简单说下每一层对应的网络协议有哪些?
  9. yii mysql 查询 类型转换_yii2.0数据库查询修改等方法
  10. 缔造企鹅:产品经理是这样炼成的札记-技巧
  11. 原来古人也在写“爽文”
  12. cocos2dx+JAVA手游《全民挂机》全套源码支持安卓+IOS双端
  13. SpringBoot核心注解
  14. 图书管理系统java课设_JavaGUI图书管理系统(可作课程设计)
  15. java中代表人数的单词_计算列表中显示的单词数量
  16. 跟着Cell学作图|9.PPI分析(GeNets数据库)
  17. 婚恋社交项目,寻找创业合伙人,坐标上海
  18. 3D打印的钥匙几乎能打开所有的锁
  19. 软件工程之面向对象的设计原则
  20. uniapp微信小程序授权登录流程(代码直接复制可用)

热门文章

  1. UML之我做分析与设计时常用到的2种图
  2. 三类完整性规则mysql下规则实现短语_关系数据库有三类完整性规则,分别是参照完整性规则、用户自定义的完整性和()规则。...
  3. 遍历SD卡寻找自己想要的文件
  4. 微信小程序菜品做法展示数据库设计_微信小程序结合后台数据管理实现商品数据的动态展示、维护...
  5. 对标 Amazon Go,这家初创企业盯上了国内无人商店市场
  6. Mysql 单表查询where初识
  7. TensorFlow Lite编译Android so库
  8. python -- 计算 平方,乘方,平方根
  9. FineBI连接本地Mysql数据库
  10. codeforces900D Unusual Sequences