前言

大家好,我是码农小胖哥。今天聊一聊如何提高自己编码能力。授人与鱼不如授人与渔。这里说的我有点膨胀了。只是分享一下自己的心得和体会,希望对你有用。觉得可以的话点个赞关注一下。

进入java开发之初,我也是菜的抠脚。记得曾经不少次被组里的大佬吐槽的代码。有几次甚至不给面子,当着同事的面吐槽。我是个很爱面子的人,这样当然很不爽。为了这种情况不再发生,决心改变自己。一路走来,也走了不少弯路。不过还是有很大收获的。起码收入和工作不用担心,这个是比较实际的。言归正传下面就简单说一些自己的经历和见闻。如果言辞有些犀利,切莫对号入座。

勿好高骛远要脚踏实地

如果你不知道怎么开始那么就从你自己正在参与的项目开始。我开始也看了一些人的经验。说去看基础和一些源码。但是如果一上来就这么做,道路是非常曲折的。毕竟大佬们的编程思想不是我们这种菜鸡一下就能明白的。所以就从你参与的项目开始最好,对组里你认为的大牛的代码进行review。看看为什么人家这么写,换了你自己会怎么写,分析一下差距,当然不要迷信大牛,你也可以找出他这么写的弊端,这样更好。阅读别人的代码多了自然你读码的能力就会熟练很多。间接也提高了你对本项目的业务理解能力,如果有机会很可能接触项目的核心开发。我当时这么做半年时间从一个边缘业务开发进入了核心业务组,当然有运气,运气也是给用心的人准备的,即使没有也不亏啊。

他山之石可以攻玉

如果你坚持上面一段时间相信代码的阅读能力会增强很多。可以尝试阅读一些简单的源码,从jdk的源码挑一些你认为简单易懂的去看。也可以从 apache commons 系列工具类库甚至guava类库去看你常用的工具类的源码,国产的hutool 也不错。一个出色的java程序员,不,任何出色的程序员对常用类库都是了如指掌的。注意!看这些源码就不太一样了,可能会涉及到不少设计模式,期间要通过这些源码学习设计模式。设计模式对高级程序员是必备的技能。不要面试问你,你只能说出工厂模式,单例模式,这种在我看来是很菜鸡的表现。相信看了这种真正大牛的代码后你的编程思想和编码能力会强很多。

循序渐进

一鼓作气再而衰三而竭。一定要在自己的能力之内从最好做的地方开始。上来你就看thinking in java,上来就看spring源码、netty源码 必然会有很大的阻力,而且很大程度影响自己的自信心和持久力。所以由简到难是最好的开始,先吃容易消化的。

学以致用

学东西都是用的,如果不用时间长了必然生疏。我去年花了不少业余时间自学了kotlin。因为实际自己用的太少了。现在已经忘记了很多,但是kotlin 还是一门好语言,我个人看好它的潜力。所以你学到的东西如果实际开发中能用得到一定要用,但是一定要确保自己能用好。长期脱离实践,一定会假大空。我面试一些候选人经常遇到这种面试夸夸其谈,一但讨论到落地就哑火或者回答的不够专业的情况。

君子动手不动口

这里其实跟上面学以致用是有区别的。遇到很多同事,经常只是看一些东西,并不去动手去敲去实际模仿。这种都是过眼云烟。俗话说得好,书上得来方觉浅,深知此事要躬行。提高个人编程能力永远都是代码量。上面的几条都是为了代码量服务,高质量的代码量才是提高你实力的保证。没事可以尝试自己造一些轮子,可以从模仿开始。路都是自己一步步走出来的

要有代码洁癖

代码的规范性,可读性,可扩展性也是一个程序员牛不牛的标志。自己编写代码一定要避免有将来看到这段代码的人问候你祖宗十八代的情况。一些良好的开发规范,比如阿里的java开发规范、谷歌的开发规范都是建立在几万人的经验甚至严重的事故的基础之上的。即使时间紧张一定要在不紧张的时间抽出一点点来review自己的代码。

一定要有自己的笔记和代码仓库

实际开发中遇到的问题一定要记录自己的踩坑经历和思路。学习一种新的技术也最好记录下来。日常遇到好的代码片段也收集起来,建立自己的代码仓库。可能有的代码就能解决你开发中的问题。我前几日遇到的问题就是我三年前的笔记帮我搞定的,如果没有记录估计要花上两天时间。

形成或者参与一些编程的圈子

所谓的圈子就是一群志同道合或者趣味相投的人的一个集合体。编程很多情况不是你一个人的事情,是一个团队协作的事情。所以参与一些共同爱好兴趣的圈子,分享你的技术心得,对你的眼界、技术、人脉都是有利无害的。高级程序员找工作很少通过简历都是通过人脉。

扩展知识面

一定要在平时扩展一些编程的知识面,多读一些it资讯。这样你容易抓住一些技术走向,是保证你与时俱进的不二法门。我前几日面试一个11年的java程序员居然不知道docker ,甚至微服务都不清楚。这种人的上升空间非常有限,这种情况下他的年限基本对他帮助不大。要知道这些技术已经不是什么新技术了,埋头只当一个sqlboy是不行的。要学会“喜新厌旧”,甚至走别人没走过的路,很可能你就是一种新技术的布道师。

坚持不懈

这个应该是最重要的。不管上面的经验合不合适你。这一条如果做不到就容易失败。只有坚持才能达到或者接近目标。

这就是我这些年的走过的路,相信对一些迷茫中或者刚刚入行而且至于在编程这条路闯荡出一片天地的人会很有帮助和借鉴。如果有问题可以留言讨论,不妨关注我,以后会分享更多的IT心路历程。

三年java现在还是菜的不行_你java开发几年还是那么菜是因为你没有做到这些相关推荐

  1. java web开源项目源码_适合Java新手的开源项目集合——在 GitHub 学编程

    作者:HelloGitHub-老荀 当今互联网份额最大的编程语言是哪一个?是 Java!这两年一直有听说 Java 要不行了.在走下坡路了.没错,Java 的确在走下坡路,未来的事情的确不好说,但是瘦 ...

  2. java制作一个简单的画板_【Java】Thymeleaf一个简单示例

    Thymeleaf简单介绍 Thymeleaf是用来开发Web和独立环境项目的服务器端的Java模版引擎 Spring官方支持的服务的渲染模板中,并不包含jsp.而是Thymeleaf和Freemar ...

  3. java 必须try catch的异常_【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!...

    @ 1.异常 1.1 异常概念 异常 :简单说就是不正常运行,最终导致JVM的非正常停止. 在Java等面向对象的编程语言中,异常本身是一个类,产生异常就是创建异常对象并抛出了一个异常对象.Java处 ...

  4. java如何从屏幕输入数字_关于java的从键盘输入,从显示屏上输出?怎么做?为什么?...

    看了一本java的入门书,但是其中居然没有讲到java的泛型编程,其实现在我学习java陷入的困境,很迷惑.java中有无数的类,尤其是关于流的那块,类数之不尽,但是关于从键盘输入和从显... 看了一 ...

  5. java基础入门课后习题答案_《Java基础入门》课后习题及答案

    <Java基础入门>课后习题及答案Java基础入门,课后习题,答案 博学谷--让IT教学更简单,让IT学习更有效 第6章JavaAPI 一.填空题 1.在Java中定义了两个类来封装对字符 ...

  6. java带参数的方法笔记_具有Java参数的方法的类声明

    类声明可以包含在Java中具有参数的方法.演示此过程的程序如下: 示例class Message { public void messagePrint(String msg) { System.out ...

  7. java中随机数怎么定义类_浅析Java中的随机数类

    Java中的随机数是否可以重复?Java中产生的随机数能否可以用来产生数据库主键?带着这个问题,我们做了一系列测试. 1.测试一: 使用不带参数的Random()构造函数 * @author Carl ...

  8. java语言中声明布尔型_【Java初探02】——Java语言基础

    本篇博文就Java语言的一些基本元素进行一些记录和阐述,主要讲解一下Java语言的一些基本构成元素和Java的主类结构. Java语言基础的大致组成 java主类结构 基本的数据类型 变量与常量 运算 ...

  9. java 待在原页面 代码_现在java后台,只要修改一点点代码,前段页面就报500,必须重新登录才行?...

    哪怕是加一行注释,前段也一刷新也会报500错误,必须重新登录系统才行,以前的时候没问题呀? message description The server encountered an internal ...

最新文章

  1. 在iOS端如何使用Charles用作http调试
  2. DFT实训教程笔记2(bibili版本)- Scan synthesis practice
  3. 常用的绘图约定——提高绘图和读图的效率
  4. 文件服务器(虚拟目录)配置步骤
  5. 我们如何意外地将Hibernate的JDBC流量增加了一倍
  6. 工作292:数据绑定逻辑处理
  7. 代码质量管理工具】——sonar
  8. c语言 关键字const_C ++ const关键字| 查找输出程序| 套装1
  9. SQLServer Profiler 跟踪器
  10. hashmap面试问题
  11. 不显示删除回复显示所有回复显示星级回复显示得分回复 由于扩展配置问题而无法提供您请求的页面。如果该页面是脚本,请添加处理程序。...
  12. fifa15服务器位置,《FIFA 15》系统菜单界面图文详解 各游戏模式详解
  13. mongodb and ssis
  14. [20150228]Delayed Block Cleanout 2.txt
  15. VMware虚拟机下Ubuntu系统安装VMware Tools
  16. 2021年中国巴豆酸市场趋势报告、技术动态创新及2027年市场预测
  17. LWIP 以太网先启动后插入网线无法入网的解决办法
  18. matlab grab cut,matlabGrabCutS graph 算法, 编写,可以运 能直观看到结果。 272万源代码下载- www.pudn.com...
  19. 离散数学:用python实现关系闭包的计算,即自反、对称与传递
  20. [转]英文中的偏旁部首及其记忆

热门文章

  1. WordPress插件开发教程1:开发第一个WordPress插件
  2. 证券从业考试科目如何备考?出题方式是什么?
  3. Keras中Dropout的用法详解
  4. Laravel Eloquent 小技巧
  5. 逃离一线城市程序员的Plan B
  6. python不支持的函数string_Python字符串string常用方法和函数
  7. 创客集结号:3D打印技术原理
  8. 计算机组成-无符号数乘法
  9. centos 使用nslookup命令问题
  10. 采用busybox的嵌入式Linux根文件系统的的制作方法