返学费网 > 培训机构 > 全国IT培训中心

13081913316

全国统一学习专线 8:30-21:00

想了解java研发工程师吗?想了解Java 程序员每天都在做什么?,自学5个月Java找到了9K的工作,我的方式值得大家借鉴,阿里秋招Java研发工程师岗:来自校友的面试还原(已拿Offer)?? 吗?......本文带你一探究竟。

1.Java 程序员每天都在做什么?

鱼皮是一名 在大、中、小微企业都待过 的 Java 开发者,今天和大家分享下自己在不同公司的工作日常和收获。包括一些个人积累的工作提升经验,以及一些 Java 学习的方法和资源。先从我的第一份 Java 开发实习工作说起吧~实习生工作日常我是在大二暑期开始了我人生的第一次实习,岗位正是 Java 开发,还混了个 title 叫 “助理 Java 工程师”!这家公司属于一家中型企业,作为第一份实习,我已经很满足了。刚进入公司的第一天,在导师和运维同学的帮助下,搞好办公设备,安装开发环境,本以为第二天就能开始写代码。但是整整两周,我都没有写下一行 Java 代码!而是先花了一周的时间熟悉企业的业务、我要参与的项目源码(Spring 全家桶 + Dubbo)、以及公司的各种办公套件和研发流程。这些几乎是每位刚刚进入新公司的同学都要做的事情。然后我就开始接需求了,面对前人留下的 xx 一样的代码和复杂的业务,我根本无从下手。那么这一周我做了些什么呢?在导师的指导下,我针对这个需求涉及的业务流程画了一个很完整的流程图,并且在流程图上进行了详细的标注。画完流程图之后,我突然感觉思路清晰了很多,接下来就是写伪代码,终于在一周后,我才正式开始写 Java 代码了。在此之前,我基本都是跟着视频教程写写简单的 Demo 程序,或者自己为了学习做做简单的小项目。从来没有像这次一样在写代码前进行如此精心的设计,第一次有了自己走出校园的感觉,这种体验和成长是在学校无法感受到的。这也是为什么我建议计算机专业的同学在学了一些开发技术后,趁早去找一份实习,不用担心自己的经验不足,通过面试和企业工作的磨练才能让你积累更多的经验、提升技术,也能帮助你明确自己的目标。现在也有很多帮助生找实习的平台,像 牛客网、实习僧 都是很不错的。实习的这家公司虽然不大,但是团队的氛围非常好。也正因为公司不大,和技术主管、CTO 等大佬的交流机会也非常多,我们每天开工前都会开站会(敏捷开发)来讨论工作,并且定期地举办技术分享。整个实习过程真的非常愉快,学到了很多技术和业务知识,也开拓了眼界,明确了我今后的职业发展方向。最爽的事是工作不忙的时候也摸鱼儿刷了一些算法,真的非常感谢公司和这段实习经历!然后分享我目前在 腾讯 做 Java 开发的日常。鹅厂工作日常没错,鹅厂并不是只有 C++ 这一门后端开发语言,其实鹅厂的 Java 程序员数量也是很多的!我从大三暑假开始就在腾讯实习,并通过答辩转正,虽然只毕业半年,但至今累积在鹅厂写 Java 已经一年半多了,那除了偶尔摸鱼外,我平时的工作都做些什么呢?起初我以为大厂程序员的工作日常也就是写代码、造轮子,在大公司,就得写更多的代码!结果在刚入职时,由于经验不足,再加上年轻气盛,有着莫名的自信。刚拿到需求后,我觉得特别简单,不就是 CRUD(增删改查)么?于是,我就懒得设计方案了,没怎么思考就直接上手写代码了,结果不断翻车,出现了很多细节问题,比如数据没有访问权限获取不到、和其他部门的同学接口字段没对齐等等,甚至还出现需求理解错误的情况!最后导致的结果就是做了很多无用功,把本来几天就能做完的需求一拖再拖,一度以为自己要被劝退了! o(╥﹏╥)o经历了一次次的翻车后,我开始思考自己的问题到底出在哪里,为什么我总感觉自己什么都知道、可以写出代码,但写出的代码却经常错误连篇呢?我向导师和其他的同事请教后发现,其实大家更多的时间并不是在写代码,而是在 开会讨论、核对需求、沟通对齐、设计技术方案、测试等。写代码的时间其实很少很少!导师对我说:“其实写代码并不难,关键是要明确为什么要写代码、怎么写代码、写什么代码。”原来,相比写代码,更重要的是写代码前的技术方案设计和写代码后的测试!技术方案设计当程序员确认完需求后,要先根据需求来给出一个清晰明确的技术方案,一方面是证明需求的可行性,另一方面是对自己之后的代码实现有一个大致思路。很多的问题其实是可以在设计阶段去发现和规避的,而不是等你写代码的时候,才发现之前的设计有问题、甚至是需求本身就不合理!到时候耽误了项目上线,背锅的就是程序员自己!之前有朋友问,在大公司,万一写着写着代码,没思路了、写不出来了怎么办?这种问题其实就是可以通过前期的技术方案设计来规避的。毕竟老板才不关心你代码写的怎么样,他只关心你的技术方案,换句话说,是关心你能不能按时完成项目!此前,我即使画了一些流程图,目的也仅仅是在于帮助自己写代码。觉得代码能写出来后,我就不再去考虑方案设计了。而在意识到技术方案的重要性后,我会在理解需求后,先写一份详尽的技术方案,包括需求的合理性分析、选用什么技术来实现指定的功能、怎么设计库表结构、怎么设计类之间的关系(用哪种设计模式)、怎么设计接口、计划工期是多久、有没有什么风险点等等。开发设计好方案后,就要投入开发。基本就是先利用一些数据库管理软件或者登陆服务器去配置一些库表,然后选用一些 Java 类库和工具来编写业务代码。说是编写代码,其实 80% 以上都是复制粘贴!复制别人的,复制自己的,积累的代码多了之后,简直爽的飞起!不能复制粘贴的,也可以用一些代码生成工具、甚至是低代码工具来偷偷懒。谁说 CRUD 工程师就没有技术?哼,咱偷懒也要有水平。写代码的过程中,你要遵循一定的规范,不断地将重复的代码进行抽象、封装和复用,可以利用一些设计模式,并且要多多编写注释,提高代码的可读性和可维护性。关于代码规范,建议参考 Google 开源的 Java 代码规范或者阿里巴巴的 Java 代码规范,非常专业!写好代码后,你要再次检查自己的代码,可以利用一些代码格式化和代码检查工具来提前发现一些规范问题以及 bug,还要在本地编写单元测试来最细粒度地保证代码的可运行性和正确性。Java 的单元测试类库一般用 JUnit 就行了,本地自己测试请求接口的话可以直接用 IDEA 自带的测试插件,也可以选用 Swagger 或者 YAPI、Postman 等接口管理工具,甚至还可以直接使用命令行 curl 等。测试在写完代码之后,要经过非常非常非常充分的测试才能提交代码!这个阶段也是非常花时间的,需要配合测试同学,提供一些测试的细节和补充说明,并且对测试中发现的问题进行修复。很多程序员应该都有这种感受:写 bug 一分钟,改 bug 一小时!这些就是我目前在鹅厂的日常工作,其实和其他公司不会什么区别,无非就是你负责的业务量级越大,你在设计、测试等环节上投入的时间和精力就要更多;业务团队越大,你在需求沟通和合作上也要花更多的时间。这些工作看似和写代码关系不大,但对于程序员的经验积累以及职业素养、工程能力的提升是至关重要的!优秀的程序员,不只是有能力写得一手好代码,更多的是需要具备一些工程师素养,比如:对技术有独特的兴趣和追求,持续学习有全局观,总能站在一个更高、更全局的视角去考虑问题处理事情小心谨慎,而不是凭直觉和过去的经验主观臆断沟通能力强,能够用方便他人理解的方式来描述问题强大的设计架构能力刨根问题,深究问题本质代码洁癖,精益求精不止技术,还注重业务底层逻辑,关心用户执行力强,有责任心懂得利用自动化工具提升效率善用绘图、图表来描述技术架构和问题乐于分享,积极为他人指路在工作之余,我也在朝着成为一名优秀工程师的路上而努力。因此,我会利用公司提供的知识平台、问答平台和技术资源进行学习,并且多和身边的技术大牛们交流。大公司技术好,大佬多,提供的资源也真的非常多,这是我认为很多同学应该去大厂的一个原因,而身在大厂的同学更应该利用好这些资源。我还会积极参与一些公司内外的开源项目,和优秀的程序员朋友一起合作,互相学习进步,提升代码的水平。这里也建议大家多看 GitHub 上的开源项目,先在本地运行并熟练使用它,然后尝试分析源码和贡献代码。不会找开源项目?我之前分享过一篇文章,能帮到大家:【硬核干货】如何高效找到优质编程项目?此外,提升个人影响力也是很重要的,我认识很多 Java 开发工作者都喜欢写技术文章,并且一些朋友开通了自己的自媒体平台来分享文章,甚至有一些大牛靠自媒体收入还实现了财富自由!在写文章的过程中,我进一步锻炼了自己的文笔,向很多朋友学到了知识,也督促我来不断输入知识、提升自己。以上就是我的 Java 开发日常,你可能会好奇,鱼皮在哪家小微公司待过呢?这是个秘密!Java 开发者的工作看似平淡,但只要你爱好编程,爱好这个行业,每一天都能过的充实而有意义!

2.自学5个月Java找到了9K的工作,我的方式值得大家借鉴

我是去年9月22日才正式学习Java的,因为在国营单位工作了4年,在天津一个月工资只有5000块,而且看不到任何晋升的希望,如果想要往上走,那背后就一定要有关系才行。而且国营单位的气氛是你干的多了,领导觉得你有野心,你干的不多,领导却觉得你这个人不错。我才26周岁,实在的受不了这种工作氛围,情绪已经压制了很多久,一心想着要跳出来,却一直找不到合适的机会。因为身边的朋友有在北京做Java开发的,他工作了四五年的时间,可以在北京拿到3万的月薪,说心里话我是真的羡慕,这远超出了我的认知范围。所以经过朋友的推荐,我开始学习Java,一共学了大概5个多月的时间,今年的3月6号在天津找到了一份Java开发的工作,我包装了一年的工作经验,月薪9K五险一金,这算是成功上岸了。在刚开始学习的时候我考虑过去线下培训班,但是我朋友不建议去,因为他就是培训出来的,他和我说去培训班几乎没作用,你去了之后会发现全程都是靠自己自学,老师上完课就走,不如自己看视频学有效率,如果再有一次机会,我绝对不会花3万块钱去培训。因为朋友是过来人,他的建议我不得不听,而且我在网上查了一下,培训班的口碑似乎都不好,这就让我直接放弃了培训的想法。况且3万的培训费用是我不吃不喝半年的工资,确实有点舍不得。于是我开始自学,因为有朋友是做这行的,所以自己在开始的时候少走了很多弯路,他给了我很好的建议,所以学习Java有个大佬带是尤为重要的。因为做软件研发的都有一个圈子,所以经过了朋友的引荐,他让我加了他们那个圈子的Java技术研讨群。里面大部分都是自学成功的大佬,在整个学习期间,我在他们这里真的是得到了不少的帮助。因为他们每个人都积累了很多资源,所以平时都是相互分享资源,如果公司有内推就业的名额也会相互推荐工作机会。当然里面也有一些还在学习中的人,这都是朋友相互推荐聚到一起的。所以我建议那些还在学习Java的初学者,一定要多结识一些行业内的大佬,可以加一下这个Java交流群,对于一个初学者来说可以获得非常多的帮助,平时有一些问题发在群里,他们中有人工作不忙的时候就会出来解答,效率很高而且每个解答都讲解的非常透彻。我之所以能在5个月左右的时间自学Java就业,确实是得到了这些大佬不少的帮助。 Java主要的学习内容:一、JavaSE基础篇JavaSE就是一种标准版,是Java语言的基础部分,Java衍生出来的各种框架(如Spring系列)各种产品都是基于JavaSE标准,JavaSE是Java向上发展的基础,Java任何高级产品的底层基础都是JavaSE,通俗来讲这是所有孩子的”爹“。JavaSE如果学不好,理解不透彻,后面学习框架时就有如天书一般,所以JavaSE这部分的重要性是不言而喻的,希望各位初学者铭记。主要包含内容:数据类型、基础语法、运算符、流程控制、数组、面向对象、常用类、异常处理、集合、IO流、多线程、反射、注解、解析、网络编程。二、数据库篇数据库是学习Java语言必学的一项内容,常见的数据库就是MySQL和Oracle这两种,作为初学者一般都是学习MySQL为主,一般情况下中小型企业都会选择MySQL数据库,比较大型的互联网公司会选择用Oracle,而学习Oracle相对于MySQL也要复杂一些,建议是主要学习MySQL数据库,Oracle作为了解即可。学习数据库较为简单,基本的操作就是增删改查。三、Web开发Web前端内容:HTML/CSS//(前端页面)注意:Java后端开发可以不用过多关注HTML页面及CSS的处理,但是最起码要会用简单的HTML,是必需要会的,因为Javaweb后端程序员毕竟要接触使用AJAX方式处理数据及显示。当然如果只关注服务器端实现而不考虑任何用户界面,则HTML、CSS、都不用关注,但是完全脱离前端的开发现在虽然也不少,但是绝对不关心前端是不可能,尤其是,但是前端却可以完全不关心服务器后台的任何实现。JavaEE内容:Servlet/JSP虽然现在网上在传JSP很少用了,可能是被一些模板或JS AJAX方式代替了一些,但是我认为还是应该接触一下,万一要用到不会怎么办,而且它是Java EE的动态网页实现标准组件。学习JSP过程也能更好的帮助我们理解web会话的过程,掌握web会话都有哪些我们必需知道的。如果学习Javaweb、JSP都不接触那就相当于学习使用而一点不接触一样,岂不是稀里糊涂。包括开发Javaweb 我们必需知道的概念诸如Web应用上下文,请求对象,响应对象,,Cookie等都是在接触学习JSP和Servelt中体现的,还有一些比较少见的EJB JSF JMS 以及 Java Felix等。一些初学者不清楚这些难免会有误区,尤其是有些较成熟的工程师也这么说,我只能说他们很无知,只是代码机器而已,其实对于应用开发设计也就稀里糊涂,人云亦云罢了。永远没有被淘汰的技术也没有永远流行万能的技术,要看在什么环境和场合应用,符合我需求的技术和工具就是好的,就是对的。四、高级框架1、 核心IOC容器2、Spring boot 在Spring基础上的更全面提升效率的Spring工具3、ORM 框架当今流行使用较多的是Mybatis 和 MP(Mybatis插件),Hibernate是可选性学习的4、模板技术,比较成熟的、Spring Cloud 微服务框架,Spring Cloud提供的全套的分布式系统解决方案。五、工具maven 是构建管理项目的工具,svn 和git是团队协作开发的项目源代码及相关文档资料管理工具,需要学习者初步掌握其应用。像Tomcat,jetty ,resin,JBoss,GlassFish 等都是部署运行Java web应用的服务器。以上就是初学者大概学习的内容,我是尽量站在初学者的角度来说的,没有写得特别复杂,怕初学者看不懂,没有实质性的帮助。所以我尽量用白话把话说的简单一些,给大家罗列出主要学习的Java知识点。Java学习 - 知乎有任何关于Java相关的疑问,随时私聊我。

3.阿里秋招Java研发工程师岗:来自校友的面试还原(已拿Offer)

前言本篇题材来自我的校友投稿,他在最近的秋招校招中拿到了蚂蚁金服的实习生Offer,整体思路和面试题目由面试本人——小林提供(译名)由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目。经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑、痛苦自不必说,知道被录取的那一刻,一整年的阴霾都一扫而空了。笔者面的是阿里的Java研发工程师岗,面试流程是4轮技术面+1轮hr。文末可以获取面试资料参考一面(基础面:大约60分钟)自我介绍对象相等的判断,equals方法实现。 Hashcode的作用,与 equal 有什么区别?Java中CAS算法?G1回收器讲一下?HashMap,与的区别如何在多线程环境下使用Map,原理,如何加锁。多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a部分代码再一起向下执行,如何实现。TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。aio,nio,bio的了解和的区别。Java有哪些悲观锁的实现?Java有哪些类实现了乐观锁?二面(二面就死抓多线程问)线程池有哪些参数?分别有什么用?如果任务数超过的核心线程数,会发生什么?阻塞队列大小是多少?数据库连接池介绍下,底层实现说下hashset底层实现,hashmap的put操作过程说说HaspMap底层原理?再说说它跟HaspTable和他们之间的相同点和不同点?说说B+树和B树的区别,优缺点等?算法题,对一个链表进行归并排序,链表可能有环怎么实现一个线程安全的计数器?原子类实现原理是什么?和你设计的计数器优劣比较?CAS怎么实现原子操作的?Java中的锁有什么?与Lock的区别?公平锁和非公平底层怎么实现的?AQS原理详细介绍一下?你在项目中一般怎么调优JVM的呢?说一下GC吧,什么时候进行Full GC呢?你了解哪些收集器?CMS和G1。详细谈谈G1的优点三面(Redis和mysql也要掌握,面试也是必问)了解哪些排序算法,讲讲复杂度手撕归并排序Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?redis的hash数据结构最多能存储多少个元素自己如何实现RPC?mysql默认存储引擎?MyISAM、InnoDB、MEMORY的区别什么是幻读,如何解决事务隔离级别有什么?通过什么来实现的?分别解决了什么问题?乐观锁与悲观锁的使用场景四面(这里问的技术问题就较多了 分布式架构 dubbo spring cloud Kafka 数据库)介绍对你技术能力帮助最大的项目,重点讲架构设计思路分布式全局唯一ID怎样来实现?dubbo的生产者如何发布服务,注册服务,消费者如何调用服务?dubbo负载均衡的策略有哪些?一致性哈希详细聊一下?分布式session如何实现的微服务你的理解?以及常用的微服务方案dubbo、spring cloud的比较?Kafka怎么保证数据可靠性?数据库主从同步数据一致性如何解决?技术方案的优劣势比较?分布式锁的实现方式你知道有哪些?主流的解决方案是什么?Spring两大特性?AOP和IOCSpring的初始化过程?Spring bean的生命周期?多个RPC请求进来,服务器怎么处理并发呢?HR面(见招拆招)常规问题为主遇到什么挫折这种问题主要考察面试者遇见困难是否能坚持下去,并且可以看出他的解决问题的能力。可以简单描述挫折,并说明自己如何克服,最终有哪些收获。职业规划表明自己决心,首先自己不准备继续求学了,必须招工作了。然后说下自己不会短期内换行业,或者换工作,自己比较喜欢,希望可以坚持几年看自己的兴趣再规划之类的。对阿里的认识这个比较简答,夸就行了。有什么崇拜的人吗我说了詹姆斯哈登,hr小姐姐居然笑了。这个可以说一些IT大牛。希望去哪里就业这个问题果断回答该公司所在的城市啊。其他问题有什么兴趣爱好,能拿得上台表演的有吗 记忆深刻的事情总结面试建议是,一定要自信,敢于表达,面试的时候我们对知识的掌握有时候很难面面俱到,把自己的思路说出来,而不是直接告诉面试官自己不懂,这也是可以加分的。以上就是蚂蚁技术四面和HR面试题目,以下最新总结的最全,范围包含最全MySQL、Spring、Redis、JVM等最全面试题和答案,仅用于参考如何获取免费面试参考资料?资料获取方式:私信我 【面试资料】即可免费获取!

上述文章了解到关于Java 程序员每天都在做什么?,自学5个月Java找到了9K的工作,我的方式值得大家借鉴,阿里秋招Java研发工程师岗:来自校友的面试还原(已拿Offer)?? ,让我们对java研发工程师 有一个直观的认知。我们发现,作为一个优秀的Java程序员是多么的自豪。

温馨提示:为不影响您的学业,来校区前请先电话咨询,方便我校安排相关的专业老师为您解答
  • 热门课程
姓名不能为空
手机号格式错误