java程序员五年工作学习经验总结

首先发这个贴不为什么,只是想总结一下自己这几年的经验,也感慨一下,毕竟也过了五年多了,梳理好自己的过去,才能更好的规划未来,也让各位能少走一些弯路,虽然我们很年轻,但毕竟时间是宝贵的,珍惜现在,把握机会才是真理。
  这几年来,我最大的感想就是一句话:多看、多写、多想、多问、多分享、多优化、多运动...
1、【多看】
  读万卷书,行万里路。多看书,多看别人写的代码,多看别人的问题,多看相关技术书,多看文档,多看.....  很多东西都需要我们用双眼来看,当然,很多人肯定会说,哪有那么多时间来做这些事,我只能回答:挤时间。 不管你是刚出校门正在迷茫,也不管你是工作几年,成就不菲,【多看】绝对试用任何一个阶段的人。有些人遇到问题不知道怎么解决,那是因为你遇到的少,怎么办:有空多去看看别人的问题,多去看看别人的技术分享,总有一个适合你,或者适合你未来将要遇到的问题(这里不止技术方面,也包括生活方面)。还有多看看一些技术书籍,丰富自己的知识真的很重要。 这里我推荐几本:《重构-改善既有代码的设计模式》、《架构探险——从零开始写Java Web框架》、《java编程思想》(这个确实是很好的基础的书,虽然我也没看完..)、《深入解析Spring架构与设计原理》 ,如果对分布式感兴趣的,也可以看看《大规模分布式存储系统》。还有最重要的:多看文档,对于开发来说,结合需求和设计文档做,开发能节省30%的时间(需求经常变动的不算...)
2、【多写】
  好记性不如烂笔头,站在岸上学不会游泳。光是看肯定是不行的,还需要写,对于不懂的技术,找资料,自己代码敲一遍,先跑起来,再来一步步研究原理,这样会更印象深刻。远比你一天到晚的研究源码强。对于自己独自研究学会的技术、解决的bug,或者解决方案,你都可以写下来,写博客、或是日志。我个人倾向于写博客,因为我知道记忆是有限的,此时我记忆深刻,以后总会忘的。但是只要我写下来了,以后遇到这种事情,我只要翻翻我的博客,看看我以前的记录,就能很快的解决问题。我喜欢写总结,不论是bug,技术心得、或是自己遇到的问题。我也会记录下来,以此激励自己。当然,这也是我为什么喜欢CSDN的原因,因为这里有我需要的资源,我帮别人的同时,也帮了自己..
3、【多想】
  想法,远比你的方案要多。工作中遇到bug是很正常的,有时候一种方案解决不了,不要死扣,可以换个方式解决,窗户被关上了,我们不是还可以打开门么? 遇到bug解决不了,一个方式不行我们换个方式继续,总有一个适合的。其实在做程序之前,拿到需求,我们不仅要看,更要仔细看,认真想,其实需求分析人人都能做,只要你敢想,对于业务多考虑,如果按需求这样做,会有什么不足,或者说有几种方式,为什么这样做?肯定有其中的可取之处,你想明白了,下次就知道该怎么去分析自己需要做的功能、模块,并且做的更完善,也许这样会让你在前期工作花费大量的时间来思考需求,但是一旦你全部确认完毕,真正开发的时间,其实只要原来约定时间的1/3 (某些特定场合除外)
4、【多问】
  不耻下问,虚心求教。工作遇到的问题,你不一定总能自己解决,查资料也找不到答案,怎么办?问!  问谁?怎么问?这是个问题。 问也有很多学问,比如如果是需求导致你做不下去,那就问需求分析人员,或者问你的经理,他们肯定是知道的,如果他们都不确定,那么你可以停下来休息会了,因为你继续做下去也是白用功。如果是项目开发出现bug,找不到资料也无法解决, 那么你可以问有经验的同事、或是到CSDN来发帖求助,茫茫猿海,总会有人遇到或者解决类似问题的。如果还没人能帮忙,那么换个方式实现吧。永远都不要自满,曾经我也骄傲自满过,然而现实给了我一巴掌。虚心求教、博学多问永远不会过时。这里教大家一个小点子:刚入一个新公司或者新项目组的时候,跟同事一定要打好关系,也许他就是某方面的大牛呢? 
5、【多分享】
  赠人玫瑰,手有余香,分享自己的技术,自己的解决方案,自己遇到的问题,分享一切觉得能对自己或者他人有帮助的知识或文章,都是挺不错的,之所以我们能在百度、google能快速的搜到问题的解决答案,不就是因为有那么对无私的程序先辈们的分享么?  替人解决问题也是一种分享,我知道自己很多都不知道,很多别人提出的问题,我也不能完美解答,但是我看到问题,我会去搜索解决方案,我会思考该怎么解决,哪怕不能解决问题,至少我知道有这方面的知识,我能大概知道有哪些解决方案。下次自己遇到了类似的事情,不就省下很多功夫了么,再替别人解决问题的同时,也在增长你自己的经验.....
6、【多优化】
  人生就是一个不断自我完善且没有终点的过程。不知道各位有没有看过自己以前写过的程序/代码,你会不会有一天觉得写的很烂,没错,就是很烂。 然后就想着去优化一下。我就是经常这样,有可能我刚刚写好的功能、项目,才过几分钟我就会想着去优化一下。借用spring 官网的标题:Let‘s build a better Enterprise ,技术总是不断优化才日趋完善,现在强大的spring亦是如此,我当然不奢望自己能达到那样的高度,但是我能做到的是让自己的项目更加完善。没事多封装、多重构下自己的代码,时间会给你惊喜
7、【多运动】
  人生就像一场旅行,不在乎目的地,在乎的是沿途的风景和观赏的心情。前面说了这么多技术该怎么做的问题,最后来说说轻松的话题,作为程序员,我清楚知道我们这个行业的行业病,所以我尽可能的去避免。怎么办?多运动,多出去走走,别总是闷在家里做一个技术宅(可能还有游戏宅),我也喜欢打游戏,包括现在大部分人玩的LOL我也玩。但是我也喜欢周末出去走走,骑骑车。骑行是我的爱好之一,为什么?因为我既锻炼了身体,又结识了朋友,又能看到自己想看到的风景,享受抵达目的地全身心放松看美景的愉悦,怡然自得,享受精疲力尽盼望立马到家的劳累,歇斯底里.. 这可不是宅在家嫩体会到的,说了这么多其实只是希望各位有个好对身体,身体是革命的本钱,照顾好自己,别让爱你的人担心你,这就是一件很幸福的事,当然,不管什么,开心最重要~

时间: 2024-08-13 22:13:21

java程序员五年工作学习经验总结的相关文章

Java程序员转Android开发必读经验

小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区别: Android是主流智能手机的操作系统,Java是一种开发语言,两者没有好坏优劣之分,只是两种职业岗位的选择.学安卓从事移动互联方向开发,学Java从事软件.网站开发.而安卓上的应用大多是Java编写的,所以建议在安卓前期的Java学习阶段中,要用心学好. 言简意赅的说说“转”前的准备: 其实

Java程序员转Android开发必读经验分享

摘要:DevStore小编最近几日偷偷的发现部分Java程序员想转安卓开发,故此加紧补充知识,为大家搜集资料,积极整理前人的经验,希望可以给正处于困惑中的你,带来些许的帮助. 啰哩啰嗦的说说Java和Android程序的区别: Android是主流智能手机的操作系统,Java是一种开发语言,两者没有好坏优劣之分,只是两种职业岗位的选择.学安卓从事移动互联方向开发,学Java从事软件.网站开发.而安卓上的应用大多是Java编写的,所以建议在安卓前期的Java学习阶段中,要用心学好. 言简意赅的说说

一名资深架构师规划Java程序员五年职业生涯指南

每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来.今天我给大家分享的是一篇来自阿里大牛对五年工作经验程序员的职业建议,希望对你们有启发. 第一阶段: Java程序员 Java初级程序员 第一阶段我认为对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发. 第二阶段: Java中级程序员 企业标准程序员 第二阶段—又是

《Java程序员面试宝典》学习笔记(基本语法部分)

这是我学习欧立奇<Java程序员面试宝典>第三版的笔记.这篇是基本语法部分. ClassLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象. 在Java中,字符只以一种形式存在,那就是Unicode.在JVM内部一切都由Unicode表示,而输出到外部后(JVM和OS的交界处就是各种输入/输出流)转换为其他形式的编码. Java用了中间缓存变量的机制,所以,j=j++可换成如下写法: te

java 程序员面试题、学习:指南--各人总结

作为初级程序员面试或者技术学习有时会盲目,没头绪,其实回头看一下,大体的方面还是比较清楚的. 1.java方面 (1)java语法 (2)数据结构,8种基本数据类型.String.StringBuffer.StringBuild,map.collection (3)多线程.锁.单例模式.线程池 (4) 消息机制 (5)代理.设计模式 (6)算法 (7)数据库.mysql.分库分表,集群,优化 ---------------------------------------提升java 水平JVM-

《Java程序员面试宝典》学习笔记(数据结构部分)

有一千万行重复的短信,以文本文件的形式保存,一行一条,有重复.如何找出重复次数最多的10条? 可以用哈希表的方法对1千万条分成若干组进行边扫描边建散列表.第一次扫描,取首字节,尾字节,中间随便两字节作为Hash Code,插入到hash table中.并记录其地址和信息长度和重复次数,1千万条信息,记录这几个信息还放得下.同Hash Code且等长就疑似相同,比较一下.相同记录只加1次进hash table,但将重复次数加1.一次扫描以后,已经记录各自的重复次数,进行第二次hash table的

《Java程序员面试宝典》学习笔记(设计模式部分)

UML图: 继承 指的是一个类(称为子类.子接口)继承另外的一个类(称为父类.父接口)的功能,并可以增加它自己的新功能的能力,继承是类与类或者接口与接口之间最常见的关系:在Java中此类关系通过关键字extends明确标识,在设计时一般没有争议性:  实现 指的是一个class类实现interface接口(可以是多个)的功能:实现是类与接口之间最常见的关系:在Java中此类关系通过关键字implements明确标识,在设计时一般没有争议性:  依赖 可以简单的理解,就是一个类A使用到了另一个类B

聊聊阿里社招面试,谈谈“野生”Java程序员学习的道路

阿里社招面试都问什么? 和之前一样,文章一上来,我们先来谈谈阿里的社招面试都问什么,其实这个话题并不是什么秘密,所有来阿里面试过的同学,都能回答一二. 两年前的时候,笔者在文章里是这么回答的. 这个是让LZ最头疼的一个问题,也是群里的猿友们问的最多的一个问题. 说实话,LZ只能隐约想起并发.JVM.分布式.TCP/IP协议这些个关键字,具体的问题真的是几乎都没记住.而且就算LZ记住了,也告诉你了,你也背会了,但LZ觉得,在面试中,你被问到一模一样问题的可能性依然很小. 甚至,就算你运气好被问到了

2020年Java程序员应该学习的10大技术

摘自:https://www.cnblogs.com/hollischuang/p/12170323.html 对于Java开发人员来说,最近几年的时间中,Java生态诞生了很多东西.每6个月更新一次Java版本,以及发布很多流行的框架,如Spring 5.Spring Security 5和Spring Boot 2等,这些都给我们带来了很大的挑战. 在2019年初,我认为Java 10还是比较新的,但是,在我学习完所有Java 10的特性之前,Java 11.Java 12.Java 12