想了解什么事java吗?想了解JAVA那些事儿-专栏目录索引,Java 程序员每天都在做什么?,荒废三年,大四自学7个月Java,找到了12K的工作,学习Java到底能做什么?? 吗?......本文带你一探究竟。
为了方便大家快速查找文章,增加本目录页,本专栏有一定的顺序性,建议大家按顺序阅读。建议先阅读:写在专栏前1、让人疑惑的Java代码2、Java字符串那些事儿3、说说Java里的equals(上)4、Java中的数组5、String是一个很普通的类6、Java基本数据类型和引用类型7、Java自动装箱/拆箱8、面向对象9、说说Java里的equals(中)10、ArrayList初始化 11、ArrayList底层数组扩容原理 12、时间复杂度 13、三顾、ArrayList的时间复杂度15、Arraylist与Vector的区别16、Java数据结构之线性表17、初探18、Java那些事儿专栏反馈 请大家到评论区积极反馈,根据大家要求可能会调整专栏走向19、元素的删除原理20、与ArrayList元素删除效率PK(写作中)21、自己写一个简单的Map22、HashMap底层实现原理(上)23、HashMap底层实现原理(下)24、HashSet的秘密25、Java中的二进制26、Java中的移位运算符未完待续。。。。。。上一篇:写在专栏前 - 知乎专栏下一篇:让人疑惑的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 开发者的工作看似平淡,但只要你爱好编程,爱好这个行业,每一天都能过的充实而有意义!
通过这个故事我希望学弟们不要像我一样,等到临近毕业后才醒悟要学习知识学习技术的重要性,能趁早尽量要趁早,过去应该做的事情没有去做,后面都需要你加倍补回来。我是一个二本院校,专业是机械工程,当时以为考上了就可以高枕无忧放开了玩,可以说我整个期间都是打LOL过来的。到了大四才发现,同学们都陆续去找了实习,有的做机械工作,有的在大三的时候就自学了Java或者web前端技术,然后他们通过秋招找到了一份实习的工作,实习的工资基本都在5K左右。从那个时候我开始慌了,但还是没有具体的行动,一直拖到了去年的8月份,也就是大四的上学期,这个时候学校已经要求我们实习,很多就到了毕业的时间。从去年8月份我开始自学Java,因为要面临就业,我这个机械专业的很多同学都是转行学习的软件开发,他们说这行发展的比较好,信息软件技术以后的空间会更大,各种薪资待遇也都不错。有的人建议我去学Java,说Java的岗位需求是最大的,一二三城市都可以就业。我从去年8月份自学Java到现在就业一共是用了7个月左右的时间,现在是在重庆的一家软件公司做产品的维护,技术部大约是50多人。薪资是12K,五险一金。我觉得自己还算幸运,毕竟荒废了那么多时间,临阵磨枪毕业还能找到一份月入过万的工作,真的是运气爆棚。所以我想告诉大家什么时候学习都不晚,但一定是越早越好。给还在的学弟们的忠实建议:出了社会才知道钱能挣屎难吃,在学校混日子过来的人,没有一个不后悔的。当你有一天在这个社会生存都成了问题的时候,你会发现自己所有的一切都是灰暗的,穷生奸计富长良心,我体会到了这句话的含义。所以奉劝那些还在上学的学弟们,抓紧在学校的日子学会一个顺应这个时代发展的技术,选择一个有发展空间的行业,毕业后能找到一份不错的工作,可以让自己有较高的起点,然后不断的向上发展。下面是我学习Java的一些小心得分享给大家:1、 千万别自己一个人闭门造车,不要认为自己可以解决所有问题,学习编程很抽象,尤其是在刚开始学的时候,很多时候你是无从下手的,所以我建议大家一定要懂得借力,找一些学的比较好的同学,或者你认识的朋友带带你,有人真的是事半功倍,效率会提高非常多。或者加一些学习氛围不错的Java交流学习群,跟有经验的人交流可以学到很多好的学习方法和技巧,提高我们的学习效率。如果大家找不到好的Java学习群,可以添加下方这个QQ群 工欲利其事,必先利其器。在确定了要学习Java前,你一定要有一个非常完整的Java技术栈的大纲体系以及还不错的学习教程,如果我们连一套完整的学习教程都没有,根本不可能学会Java。而很多人在开始时用的教程非常老,很多技术都已经过时,企业并不用这些技术,所以学了也是白耽误工夫。如果大家找不到合适的Java教程,可以添上面我推荐的Java交流群,那些大佬会定期分享一些比较新的学习教程给大家免费试用。3、 实践是检验真理的唯一标准,学习编程一定要记得多动手写代码,视频只需要看一两遍即可。有很多同学不懂得如何学习编程,盲目无脑的一直刷视频看,但你看完视频后很快就会忘记,其实是在浪费你的时间。学习编程的主要目的是能做出好的互联网软件产品。这是一个需要动手的工作,所以我们学编程一定要注重动手写代码。而很多人学习编程都是只看视频,这样的学习方式是非常错误的,所以大家对于这点一定要牢记在心。4、 项目作品是展现我们水平的重要因素,我们在学完一个阶段后,一定要记得针对这个阶段去完成一个项目实战。真正能让我们印象深刻,加深理解的学习方式就是参与到项目的开发中。项目才能检验我们这个阶段到底学的怎么样,所以大家在学习的过程中切记项目的重要性,很多人学习Java最后却不能独立完成一个项目模块,如果你达不到这个水平,那么你是不可能找到Java开发工作的。我认为新手在学习Java的过程中常见的误区:1.没有详细系统的学习规划,越学越迷茫,不知道应该往哪里走,特别有想放弃的想法。2.学习的技术并不是现在企业需要的技术,跟不上时代,不具备竞争力。3.学习效率非常低,遇到一个小问题解决起来很费时间,甚至有的时候会卡几个小时,导致信心受挫,对自己适不适合产生怀疑。4.没有掌握学习Java的方法和技巧,导致走的弯路特别多,钻进程序的死胡同出不来。如果你也有以上的学习困惑,觉得自己无从下手,学习的效率很低,学了后面就把前面的忘记这些问题,基本都是因为自己的学习方法不对。所以我建议你一定要找有经验的人多沟通,这些问题都是可以得到很好解决的。我强烈推荐大家加入到这个Java交流学习群
本篇文章由柠檬研发部整理,独家原创,谢绝转载。学前了解计算机硬件和软件系统:萌新怎样快速了解电脑?形成一个体系(ง •̀_•́)?求大神解答?柠檬李伟:什么是JAVA(原创)柠檬李伟:各编程语言用途及分类对于一个初学者来说,看完了上面四篇文章可能对Java就有了一个大概的印象,但肯定还不清楚学了Java到底能干什么。Java可以用来做网站,可以做软件,还可以做安卓,做游戏,超过三十亿的设备在使用Java。学习Java可以做网站Java可以用来编写网站,现在很多大型网站都用Jsp写的,JSP全名Java Server Pages它是一种动态网页技术,比如我们熟悉的163,一些网站都是采用JSP编写的。所以学习Java的同学可以找开发网站方面的工作,而且现在找这方面的岗位比较多。比如:网站开发,当然就是JSP+Servlet+JavaBean,一直以来都相当流行。学习Java可以做是一种基于Linux的自由及开放源代码的操作系统,其源代码是Java。所以市场上见到的手机系统例如MIUI ,阿里云,乐蛙等,都是修改源代码再发行的。Java做安卓不单单是指系统,还有APP对于更多的开发人员来说,他们更多的时间是花在开发APP上面。学习Java可以做游戏或者你不知道,在以前诺基亚还很流行的时候,你玩的手机游戏有90%以上都是Java开发的。当然现在已经很少人再去开发了,都转到安卓上去了。电脑上也有Java开发的游戏,最经典的是:《我的世界》(minecraft ,简称MC),当今世界最具人气和影响力的网络游戏之一《英雄联盟》(简称lol)。 一直以来都相当流行。学习Java可以做软件一般编程语言都可以做软件的,Java 也不例外,例如Eclipse,MyEclipse等知名Java开发工具.有关开发软件组件,可以了解Java Swing编程 或者 awt 相关知识。比如:企业级应用开发,这里是JAVA的天地,大到联网的系统,小到中小企业的应用解决方案,Java都占有极为重要的地位。另外还有移动领域,典型的应用是手机游戏(国内主要是这方面),这里是J2ME的天地,其实应用范围是很广的。Java已成为当今市面上最受欢迎的编程软件,对于处于信息高速发达的今天,Java技术已经无处不在,手机软件、手机JAVA游戏、电脑软件等等。可以这样说,只要你使用手机、电脑等电子产品,你就会用到跟Java有关的东西。由此可见,对于我们这些将要面临巨大就业压力的生来说,掌握这样一款最流行的编程语言是多么重要。嵌入式:Write Once,Run Anywhere。嵌入式领域仿佛为Java量身打造。大数据:Hadoop以及其他大数据处理技术很多都是用Java。科学应用:Java的安全性、便携性让Java在科学应用、金融服务、空间巨大。以企业级网站(JavaEE)为例,描述一下Java的实际应用:Java EE 是 J2EE的一个新的名称,之所以改名,目的还是让大家清楚J2EE只是Java企业应用。简而言之:JavaEE是一个由JVM + API +大规模+多层的+可扩展的+可靠+安全+网络组成 的应用程序。这样的描述对于初学者来说并不友好,我们再形象地描述一下。假如在一家电商公司,需要一个软件来管理客户,这个软件的数据要统一存放在服务器上,大家通过客户端浏览器登录操作。如上图所示,每个人都可以通过客户端电脑访问服务器,可以查找、增加、修改、删除客户信息。客户端是以视图(网页)的形式展示内容,这一块称为表示层。服务器是进行运算处理的,针对表示层传来的指令进行判断,再去操作数据库,这是应用曾。这种基于客户端浏览器/服务器的结构成为B/S架构。如下图,用户可以通过浏览器登录系统通过浏览器后台登录系统登录系统后可以对客户信息进行增删改查的操作。视频演示 Java零基础权威入学宝典Java构架师专题:Java架构师/微服务/分布式/高并发/性能优化/源码解析-学习视频
上述文章了解到关于JAVA那些事儿-专栏目录索引,Java 程序员每天都在做什么?,荒废三年,大四自学7个月Java,找到了12K的工作,学习Java到底能做什么?? ,让我们对什么事java 有一个直观的认知。我们发现,作为一个优秀的Java程序员是多么的自豪。
只要一个电话
我们免费为您回电