初级Java程序员如何成长为高级?

用户65969511


我觉得从几个角度来说吧,而且这个原则也基本上适合于所有领域程序员的成长路径,当然这里我不会设计任何技术书籍、或者技术栈,毕竟这些东西已经被说烂了。

提示:文章中涉及到的阿里Java手册、Java官方API文档如果大家找不到可以私信我,我可以上传云盘分享分享给大家!

文章开头先给大家推荐一本手册

这本手册是阿里巴巴团队出的《Java代码规范》,这是阿里巴巴这么多年的亿级用户经验积累出来的经验,该踩的坑都帮大家踩了,留下的基本上都是精华。可以说阿里用这么多年的苦和累给大家带来了这么好的手册,你只要按着这个走,一定会养成好的代码习惯的,即使你不能去阿里,也是受益匪浅的。这本书就是目前最好的Java代码规范,至少是我见过的最好的Java代码规范,就好像《Google C++ Style》值得你去阅读。

  • 为什么要推荐代码规范?

很多人可能不理解为什么要推荐代码规范,不是算法、不是设计模式,如果你以后进入企业,尤其是大公司、做大项目,你就知道我推荐的价值了。

多研究源码

这部分我把这个称之为基础,对于任何一个程序员来说,技术基础永远是最重要的,毕竟你每天真正需要最多的知识积累。

多研究源码我认为主要有两方面;

一方面就是Java官方文档,任何技术官方的API文档都是最精华、最有价值的资料,这个文档的名字大家可以直接去Java官网下载,当然如果你网络状况不太好,浏览甲骨文官网有压力,可以私信我,我上传云盘分享出来。

另一方面就是多看大牛的源代码,比如多研究研究为什么你写了几重循环、上百行代码,人家几行代码、一个算法就解决了,学习你身边大牛、包括网上大牛们的源代码,看看人家怎么写的,怎么处理的。

算法、设计模式等技术进阶

任何时候,想要在技术做精,算法、设计模式等等一定要多了解,怎么做内存优化、怎么提高性能,这些都是你要了解的,技术越往深走当然就越值钱。

多了解业务

你几乎不可能一辈子都在技术一线做开发!即使你是如此的喜欢写代码!!!

请记住这句话,这是非常现实的,尤其是在国内,竞争环境日甚一日,每年有无数的计算机人才涌向这个行业,包括科班的、非科班的,可以说中国的程序员是全世界面对竞争压力最大的程序员族群。

多熟悉业务有两个标准,一个是开发业务,一个就是具体的我们通常说的业务,我觉得任何一个技术从业者要钻研技术,也要多了解业务上的事情,只有这样你才能走得更远,千万不要停滞不前,或者把自己禁锢在一个框框内。

这就是我对程序员成长的建议,希望对大家有一定的价值。



EmacserVimer


我是一个10年+的程序员,从程序员进阶到架构师用了7年多时间,关于1-3年工作经验的初级程序员如何进阶,分享如下的经验与建议,每个人都有自己成长的方式,仅大家参考。

1、 研究源代码

有时间就多研究Tomcat/Resin/Jetty的源代码;

2、 学习相关知识

譬如,高性能/高并发,并在项目中应用实践,提升技术广度:

  • Socket编程

  • 多线程的知识

  • I/O库和异步I/O库

  • TCP/IP 协议

3、 程序员进阶必看书籍

我早前罗列的java程序员进阶书单明细:https://www.toutiao.com/i6461884735961432589/

涵盖了不同阶段程序员进阶必看书单:

  • 工作1-3年java程序员

  • 工作3-5年java程序员

  • 工作5年以上计划往架构师方向发展的java程序员

4、 多向身边的大牛学习

通过学习别人多年沉淀的知识与经验,能够让自己少走弯路,更快达成目标。

5、多争取项目实践机会

知识需要经过项目演练,最终才能沉淀。


最后,希望程序员们都能找到一条适合自己的学习路径,持之以恒、早日进阶!

优知学院【专注分享BAT面试+架构进创+CTO进阶等知识干货】。领取BAT面试真题239道,私信【bat】给优知学院,立即领取。领取80期架构师学习专题资料,私信【架构】给优知学院,立即领取。如果您有不同见解,欢迎留言探讨,如果觉得内容有用,请点赞支持。

优知学院


我可以说算是一个Java入门新人,因为之前没有写过Java,校招签的工作是Java后端。最近入职开始学习Java开发。虽然我没写过Java,但是我对Java的学习路程规划是非常清晰的,其实学任何一门语言或者其他知识都是想通的。我就简单聊一下自己对这个问题的一些简单看法吧

1、需要学习Java这门语言本身的基础知识,比如常见的数据结构map,set,list等;基本数据类型int等。还有一些Java本身的语言特性啊,如反射机制啊等。第一步简单的说,就是学会用。第二部的话就是需要深入学习语言本身,这个时候就需要结合源码本身去学习,对内部结构非常了解,这样你才可以用的非常合适。然后就是学习一些并发编程技术,这个非常重要,作为后端开发必须懂

2、学习Java的一些生态体系,利例如框架spring啊,开始肯定也是需要会用然后慢慢深入学习spring,结合源码本身学习。

3、学习一些mq,如kafka;rpc框架,例如thrift等。我最近也在学习这些东西。还有一些中间件啊,如zebra,这个是美团内部的中间件。

4、前面的内容如果你都掌握的,然后就可以学习一些架构的知识,当然这个要看你自己对职业规划了。如果想继续做技术可以学习啊。


张顾远


回答过几个类似的问题,总是在说需要学什么新框架、新技能,今天我想讲讲每一个级别的程序员应该有的能力,然后我们再有的放矢,去寻找成长为高级程序员的方式。


初级程序员

  • 在我眼里,可以按时的完成项目经理指派的开发任务,就是一个合格的初级程序员。

  • 这里的开发任务,是指有明确的需求和业务流程,大部分时候功能可能比较简单。

  • 能够完成和测试人员的沟通,支持测试过程中遇到的各项问题。

  • 把项目中每项技术用到的地方,都可以熟练的使用。


中级程序员

  • 这个阶段需要负责的开发任务,会更复杂一些,有可能要涉及到多个模块的修改,这就需要对整个项目有着整体的了解。

  • 在开发过程中,充分理解需求,并且可以站在整个业务流程的角度上看待问题。比如这次需求的一些修改,会不会对其他功能造成影响,都是需要了解的。

  • 因为对项目的深入了解,所以需要参加到前期的需求讨论中,可以提出自己对需求的意见。

  • 技术方面,应该对项目技术框架有一定的了解,比如项目用到了Spring的某项功能,那么中级程序员应该对Spring的其他功能都有一定的了解。

高级程序员

  • 到了高级程序员,不仅仅需要负责一些复杂、核心功能的开发,也需要带领和协助中级初级的伙伴完成开发工作。

  • 不仅仅是要了解本系统,应该对系统的上下游系统都有一定的了解。

  • 会做一些设计方面的工作,面对一个需求,应该可以很快的拆分出功能点,每个功能点在哪个模块开发,都应该心里有数。

  • 高级程序员会和更多的项目成员沟通,包括测试、需求、项目经理、组员。有可能需要协助项目经理管理几个中级初级的程序员。

  • 技术方面,不局限于项目所使用的技术和框架,要对同类的和比较前沿的框架有一定的了解。比如项目中ORM框架用到了Mybatis,那最好是可以了解一下其他的ORM框架,了解不同框架的优缺点。

  • 如果项目需要引入新的技术,那么应该很快的搞定。


现在再回来看这个问题:初级Java程序员如何成长为高级程序员?其实可以从几个方面出发:

  • 技术能力:技术的深度和广度都要提高。

  • 业务能力:全流程的了解业务,要参加需求讨论和程序设计的工作。

  • 沟通能力:从需求到开发到测试,全流程沟通。

  • 管理能力:协助项目经理管理中级初级开发人员。


希望我的回答,能够帮助到你!

我会持续分享Java程序开发、架构设计、职业发展等方面的知识和见解,希望能得到你的关注今日头条【会点代码的大叔】,转载请注明出处。

会点代码的大叔


这就是一个用时间花精力慢慢成长的过程,当你通过不断地做项目增长了经验丰富了技能,自然就会成为高级程序员。这期间离不开你的努力,也没有捷径可走。


芝麻加哥


掌握java基础知识的同时,多了解目前主流框架的源码,jvm运行原理,多做项目,了解项目架构


惧愁人大师哥


主动承担更多的责任,写更多的代码,踩更多的坑。反正代码就是这样,做的多bug多,做的少bug少,如果为了bug少而少写代码,成长之路必定漫长。


歪脖贰点零


多学点实例项目。必须要学会自学。多去网上学点东西


itkeji综合


多想逻辑,多写代码。


分享到:


相關文章: