JAVA程序员成长之路

Java程序员一年的成长和蜕变   我叫小肖,毕业于湖南农业大学,计算机科学与技术专业学生,从那年07月25日开始工作,距今也已经一年有余。从一个Java入门小白,到现在能独立开发并且胜任独立工作的能力,在此总结一下个人一年来的成长和蜕变,以此和大家共勉! 那年7月份到深圳,信心满满的以为自己找工作会一帆风顺,谁知这成了一部血泪史,带着一份servlet+jdbc做的毕业设计到深圳,简历上三三两两的写了“项目经验”:图书... 阅读详情

我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博,唯独喜欢百度贴吧,潜水很久了,手痒来给新人分享下从新手成长为老鸟的已见,也刷刷存在感,应该不比曝照差吧。

首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set map,然后是线程、IO和jdbc什么的,其余的,若是一时不理解,可以后边需要时再学。
这阶段完了,你可以写些能在控制台打印出来的小程序,锻炼下逻辑思维。也就是号称JAVASE毕业了,其实不过是入门而已,如果要往WEB方向发展,这些倒是基本足够了。

接下来要学HTML JSP SERVLET 数据库 JAVASCRIPT TOMCAT,目标,写出第一个动态网站,也许只是个登陆功能,只能展示下个人资料,但这是很重要的一步,你要弄清楚的是,一个用户的点击产生的请求,是从哪里发起,哪里接收,哪里处理,哪里返回,你得理解浏览器和服务器的关系和分工,cookie和session,request和response。这个是个WEB开发的学习初级阶段,这都是些JAVA诞生以来最原始的最官方的WEB开发技术,当然现在真正的项目很少直接采用这些技术了,为了不断提高技术的易用性、开发效率和可维护性、可扩展性,无数开源项目都是在这些原始技术的基础上封装、改进。所以这个阶段不要盲目乐观地跑去找工作或者对实习挑三拣四,你会被打击到的。

好,初始阶段完成,开始进入WEB开发的正题,首先是传说中的三大框架,struts hibernate spring成为熟练的增删改查程序员是必须的,在这个阶段你还要理解为什么要用这仨而不是那些JSP SERVLET JDBC,你要体会到写MVC、三层架构的好处。这个阶段不要轻易质疑三大框架的价值,也许刚开始你会觉得麻烦,觉得他们有时候是多此一举,一两年后回过头来你会觉得少了这些框架你已经很难干活了。这个阶段还要避免的心态是能熟练地增删改查了,就认为写程序不过如此,然后往简历上填个精通,这也是新手面试被批得体无完肤的原因之一。如果你学得好,这会应该能熟练地写个博客啊,小论坛啊之类的WEB项目了,也就是达到了就业的基本要求。


接下来就没有固定模式了,你的第一家企业对你的影响会很大,我见识过烂企业是如何毁新人的,用着设计恶劣的架构,老掉牙的技术,不断地耽误新人的成长,有的员工在这种企业一呆数年,思维已经完全被错误观点定型,深陷于公司业务和老系统中疲于奔命,看似能解决问题,却无法给公司带来真正的进步,就像一个用了数年砍刀的人,就算再熟练,刀法再好,也打不过用枪的。如果离开了这个公司,恐怕很难在这个行业再立足。记得有个说法很好,一个人用10年的时间重复做头一两年做的事,你的真实工作经验其实还是一两年。烂公司的老员工就是如此。在这头一年里,定个标准吧,你应该能做到的有:
1、把一些常用的琐碎技术学会了,比如xml的作用和实际运用,如何操作文件,如何运用日志,如何简化封装常用的工具类,比如日期操作、编码处理、分页模块等等,这些小东西会占用你大量的时间去处理摸索。
2、把数据库用好。数据库不是会增删改查就可以了的,你要关注事务设置是否合理,是否有可能产生脏数据,是否要动用乐观锁悲观锁等等,重要数据出了错,无论是技术上还是业务上都是很麻烦的事。
3、懂得什么是集群,什么是分布式,懂得怎么向别的系统发请求,交换数据,webservice。
4、如果你也写页面,你要会用JAVASCRIPT,不一定要很深入,你可以用JQUERY代替,做到无刷新的页面操作以及AJAX请求。

第一年能达到这个程度,你绝对已经在平均水准之上了。在我达到这个水平时,我有种似乎一切网站开发都不在话下的感觉,当然后来我很快就发现了我还差得太远太远....这个阶段想面个高薪的工作还是很难的,只能说达到温饱线了,不用为柴米油盐发愁。

下一个阶段,你应该考虑你的代码质量了。
1、多线程和异步、并发的概念会忽然变得很重要,因为在一个对性能有要求的系统里,是不会允许你把各种琐事都排着队一件件去办的,你不能老写些a方法调b方法再调c方法再调d方法然后返回的代码。你开始想起有队列这种东西,有runable这种东西,你开始觉得自己的代码高端起来了,和当年的增删改查程序员有天壤之别。但同时麻烦也来了,你开始遇到线程安全问题,尤其是当你的程序跑在一个多机环境而不是单机环境里的时候,你会对这些很头痛。对于这些问题,Jms技术是个很有代表性的东西,当然并不像ssh那么常用。


2、你会发现数据库性能实在不行,出于不甘现状,或者赶时髦,你该去了解nosql了,memcached redis mongodb,眼花缭乱,没关系,试着用用,能很好地缓解mysql之类关系数据库的压力。
3、出于公司某些业务需要,你可能会钻研一个特定技术领域,比如全文搜索技术,lucene\solr,比如工作流jbpm,比如权限系统,单点登陆之类的,又或者某些特定业务领域的算法研究,这些是你的加分项。
4、你开始发现你的代码很乱,久了以后自己都看不懂,重复的,难以重用的代码堆积如山,不想维护,BUG百出。于是你要开始重视设计模式,合理地改造下自己的代码习惯,不再被僵化的SSH,MVC三层架构束缚住。
5、Google和各种资料是你进步的动力,极少再遇到必须请教别人才能解决的问题,如果你这个阶段还老是问别人,你的技术生涯也就快到头了。

这个阶段,如果你的交际和自我推销能力不是太差,你的收入将是白领水平,至少接近了。

我觉得多数程序员在工作多年之后都能达到这个水平,有的人只需要两年,有的人却要用上五六年,在这个阶段落伍的人,有的是出于天赋和思维所限,有的是出于对技术缺乏热情,有的是出于工作内容的制约。等到年近中年,再也拼不过年轻人,被淘汰出局,只能在自嘲为屌丝和码农的无奈中黯然转行。
这是个很重要的分水龄,你能不能继续进步,能不能在30岁以后继续从事技术工作,能不能在公司里独当一面,我觉得就看你能不能超越这个阶段了。我前面提到的烂公司里的工作数年的项目经理,连这个层次都还没达到...

接下来又是个全新的阶段。
1、你要读读优秀开源项目的源码,你要搞懂一些当年不懂的基础知识,你开始理解thinking in java的精髓,你能写一些底层的代码,有时还会觉得自己封装的比某些开源工具更好用更简单。

2、WEB的难点和重点永远都在于性能、负载能力上,而现在网络的发达造成了数据量和操作密度的大大上升,硬件却没有相应的进步,你得试着更好地运用更多的服务器来协同工作,从WEB端到服务端到数据库,全都需要集群,需要分布式,需要合理的控制数据的流向,掌握好网站上下,一大堆机器的平衡,找出性能的瓶颈,找出稳定性和安全性的瓶颈,硬件出现故障,第三方技术出现错误,将被当成家常便饭融入到你的系统和代码里仔细考虑。
3、开始觉得方案无比地重要,一将无能累死千军将不断应验,一个不好的设计,一个不好的方案,会让一群优秀的程序员工作成果大打折扣。你要关注架构知识,不能再满足于SSH三层架构到底。领域驱动设计,面向事件开发,敏捷开发等等一系列的思想在关键时刻能决定你项目的生死,这个阶段不再有标准范例让你照抄,你只知道思想和原理,实践却需要自己不断尝试和改进。
4、多关注各种杂七杂八的开源技术,有些你可能前面已经接触过了,和通信有关的,和集成开发环境有关的,和架构有关的,各个领域你都应该能信口说上几个主流技术,虽然你可能只是听说过,了解,但关键时刻你得知道如何去选择技术,并快速掌握它。你还会去考虑尝试下别的语言,这里不是说转向什么C++ C#之类的,那和JAVA程序员不相干,我说的是一些运行于JVM之上的语言,比如scala和groovy,初识他们时你会觉得java真的老了。但当你回到一个综合性的大型项目中,又会觉得java积累下来的整个体系技术是如此完善,就像一个工业化标准一样。
你能把这个阶段实践好,胜任项目经理,乃至中小公司的技术总监都是可以的。

不知不觉写了这么多了,以上是我个人眼里的一般向JAVA EE发展线路,限于篇辐也不全面,实际个人成长路线可能因为工作内容的不同差异会很大,有的人偏向了底层研究,有的人偏向了业务需求设计,有的带有浓重的行业色彩,而且技术之外,还有很多知识也很重要.w做JAVA没有轻松的方向,但一个对技术抱有兴趣的人,走到这一步时,仍然会对开发抱有热情,想要写出好的项目。纯为了生计而工作的程序猿是走不到这一步的。

暂且收手,希望以上能让J8的新人们了解将来要面对的大致状况,同时也抱着打击下小朋友们幼小心灵的邪恶心理就此按下发表按钮。
能完整看完的同学,在此表示钦佩,我想当年的我也未必能看完这种又臭又长的叙述...

蒸汽属性查询 这是工程上使用的蒸汽属性查询软件,非常方便,直接使用! 立即下载

相关推荐

刷基带工具

一键刷入基带,只支持XP系统。需要基带的可以上网查找。还有不清楚的自己上网查找

JAVA学习个人总结

个人的java学习总结,是作业

m0_73803478的博客 973

BurpSuite实战:5分钟搞定Pikachu靶场表单爆破(附最新字典配置技巧)

本文通过Pikachu靶场实战,详细演示了如何使用BurpSuite的Intruder模块对Web登录表单进行暴力破解。从代理配置、请求捕获、集束炸弹模式设置,到载荷配置与结果分析,提供了完整的操作流程。文中还分享了2024年有效的字典获取与优化技巧,帮助安全测试人员快速定位弱口令漏洞。

weixin_29327977的博客 601

java中级工程师需要学习那些知识?

首先我是初级,正在往中级的道路上迈进。 最起码三个表的sql联查得会写,你可以不用,但你不能不会(少跟我提阿里规约) 给你一个框架集(一般整合了七八个小框架/插件,spring、ibatis/mybatis、activity、jcs/redis、springMVC/struts啥的),你得能从无到有在一个新环境上把开发环境搭起来,哪怕这些框架中的某一个或几个你从来没用过。 给你一个需求文档,立马就能开始干活。 你自己开发完成的产品上的任何bug都能在6小时内解决,或者至少拿出一个可行的解决方案,任何。 会写

2574

概述DeepLab系列(deeplab v1, deeplab v2, deeplab v3, deeplab v3+)

前言:图像分割是指像素级别的图像识别,即标注出图像中每个像素所属的对象类别。 语义分割更注重类别之间的区分,而实例分割更注重个体之间的区别。 DeepLab是由Google团队提出的一系列图像分割算法。 DeepLab v1 (2014年) Paper (ICLR 2015) Code 创新点: 空洞卷积(Atrous Conv); <解决编码过程中信号不断被下采样,细节丢失的问题> 全连接条件随机场(Fully-connected Conditional Random Field)。

ZSH12345678900的博客 5530

别再瞎调参数了!用MATLAB fmincon优化傅里叶级数,为你的机器人设计“完美”激励轨迹

本文详细介绍了如何利用MATLAB的fmincon优化器设计机器人激励轨迹,通过优化傅里叶级数参数,解决传统试错法的低效问题。文章涵盖了目标函数设计、约束条件转化及优化算法选择,帮助工程师实现高精度的系统辨识和动力学参数优化。

weixin_42613501的博客 242

2021Java开发面试解答:java后端解决重复提交问题

阅读源码 程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。 那要如何正确的分析源码呢? 分布式架构 随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的

m0_57983312的博客 425

OpenCV 开闭运算

开运算和闭运算是将腐蚀和膨胀按照一定的次序进行处理。 但这两者并不是可逆的,即先开后闭并不能得到原来的图像。 开运算 开运算是先腐蚀后膨胀,其作用是:分离物体,消除小区域。特点:消除噪点,去除小的干扰块,而不影响原来的图像。 闭运算 闭运算与开运算相反,是先膨胀后腐蚀,作用是消除/“闭合”物体里面的孔洞,特点:可以填充闭合区域。 cv.morphologyEx(img, op, kernel) img: 要处理的图像 op: 处理方式:若进行开运算,则设为cv.MORPH_OPEN,若进行闭

꧁༺ʚvv༒catɞ༻꧂的博客 949

Java程序员的成长路径

Java程序员的成长路径

流水账 293

Claude Code 100个真实案例 - 用AI设计Arduino PCB电路板(硬件小白也能画板)

本案例展示如何使用 Claude Code 配合 KiCad 的 Python 脚本接口,从零设计一块 Arduino 传感器扩展板 PCB。从原理图符号创建、网表生成到 PCB 布局布线,全程自动化完成,最终输出可直接发给工厂打样的 Gerber 文件。

yueyeguzhuo的专栏 447

“软开关”硬技术!ZVS和ZCS到底谁更牛?看完这个例子你就懂了!

❌ ZVS 和 ZCS 是万能的?→ 不,它们都有实现条件,谐振参数选不好照样硬拐弯!❌ 只要有谐振就一定ZVS?→ 不,一定要设计合适的死区时间和负载条件才行!ZVS 是让电压先“冷静”,ZCS 是让电流先“退场”。一个是开门不撞墙,一个是关门不甩门。懂了它们,功率设计就是在跳华尔兹而不是打架!💃🔌。

weixin_43199439的博客 1242

Java工程师技术成长路线,看完我悟了

怎么开始学?现在我们已经搞清楚为什么学习Java了,有了明确的目标之后,我们就要撸起袖子加油干了。但是万事开头难,很多人在面对现在网上海量的学习资料不知道该如何下手学习Java。学编程语言和我们现实中的学语文或者学英文的过程其实是大同小异的,首先我们得搞清楚它的本质是什么。语言的本质是什么?语言的本质就是人与人交流的工具。那么计算机编程语言的本质是什么?计算机的本质语言就是人与计算机的交流工具,所以变成语言实际就是工具,是我们教计算机做事情的工具。因此,无论是JavaGoC++

2401_84690353的博客 1038

大数据在电力行业的应用案例解析-【电力技术】(九)大数据在电力储能运维中的深度应用(含故障预测代码)

大数据技术为电力储能运维提供了“精准化、智能化、高效化”的解决方案,破解了传统运维的核心痛点,实现了储能系统从“被动抢修”到“主动运维”的转型,为新型电力系统建设提供了重要支撑。当前,随着储能产业的快速发展,大数据与储能运维的融合将更加深入,未来将结合人工智能、物联网、区块链等技术,实现储能运维的全流程智能化——从设备故障的提前预警,到寿命的精准预测,再到运维策略的自动优化、调度协同的实时响应,进一步提升储能系统的安全性、经济性与可靠性。

getusushu的博客 88

Java 程序员全面成长计划

作为一名 Java 程序员,全面而系统的学习是快速成长的关键。以下是推荐的学习路线和成长计划,旨在全方位提升你的技术能力和解决问题的能力。

人生嘛!无非是左脚比右脚前,右脚再比左脚前,明天比今天好! 11万+

YOLO系列专栏(十二):YOLO26行业落地实战(三):无人机航拍场景——户外巡检(机载边缘计算+YOLO26)

无人机航拍巡检场景,面临机载设备算力/显存有限、高空航拍目标小、户外环境复杂(风力、光线变化)、图像抖动等问题,对模型的轻量化、实时性、小目标检测能力要求极高。YOLO26相比传统模型,在该场景中具备三大核心优势:✅ 极致轻量化:INT8量化+模型剪枝后,模型体积可压缩至5MB以内,显存占用控制在512MB以内,适配Jetson Xavier NX等机载边缘计算设备;✅ 小目标检测能力强:优化检测头与锚框配置,可精准识别高空航拍中的小尺寸目标(如线路断股、绝缘子裂纹),检测准确率高;

qq_36130719的博客 262

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java程序员的成长之路

阅读本文大概需要 8.2 分钟。 tips:虽然题目是写的Java程序员,但对其他语言的开发来说也会有借鉴作用。 本篇介绍的是大体思路,以及每个节点所需要学习的书籍内容,如果大家对详细的技术点有需要,欢迎留言,后续我在写一篇每个阶段需要学习掌握的技术点。 工作一年(以内) 恭喜你,这个时候,你已经拥有了一份Java的相关工作。对于刚步入职场的新人,不要浮躁,用心提升自己,早点来公司晚点再离...

良月柒 1168

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java程序员的技术进阶成长路线

【这里想说,因为自己也走了很多弯路过来的,所以才下定决心整理,收集过程虽不易,但想到能帮助到一部分自学java想提升Java架构师技术的,P5-P6-P7-P8 的人,心里也是甜的!有需要的伙伴请点㊦方】↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓。

Netty711的博客 1020

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Java程序员如何成长?

程序员要如何成长这个问题,一直是各大网站、论坛的热点。对此网络上众说纷纭,一千个读者里面就有一千个哈姆雷特。LZ觉得想要让个人技能成长速度,大于公司规模或业务的成长速度,不断优化自己,成为一名“不错”的程序员主要需要掌握以下学习方法与实战技巧。

wdj_yyds的博客 522

Java程序员如何系统成长?

程序员要如何成长这个问题,一直是各大网站、论坛的热点。对此网络上众说纷纭,一千个读者里面就有一千个哈姆雷特。LZ觉得想要让个人技能成长速度,大于公司规模或业务的成长速度,不断优化自己,成为一名“不错”的程序员主要需要掌握以下学习方法与实战技巧。

wdj_yyds的博客 507

Java程序员的成长过程

在博客看到一个java程序员成长过程的文章,写得感觉不错,与大家分享下。一般都说程序员是青春饭,感觉似乎有他的道理。 1.修炼第一层境界:剑指四方,试问天下谁与争锋   此层境界的程序员,对Java开发技术尽数掌握,开发工具掌握的也较为娴熟。可以将第二层次交给的任务完成的很出

lyonte的专栏 1242

JAVA程序员成长之路的总结

JAVA程序员成长之路的总结 看了篇推荐贴,JAVA程序员成长之路的总结,大致适用于各种初级JAVA程序员规划借鉴之用, 原文地址http://tieba.baidu.com/p/2017010306

红桃峰峰 的博客 3915

一个JAVA程序员成长之路分享

我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉撒玩各种贷款信用卡 不为金钱过于发愁了。 我特别感谢当初贴吧遇见的那位大神, 虽然每个...

exodus3的博客 1万+

为什么阿里的程序员成长如此之快?看完Alibaba“Java成长笔记”我懂了!

前言 关于技术人如何成长的问题,一直以来都备受关注,因为程序员职业发展很快,即使是相同起点的人,经过几年的工作或学习,会迅速拉开极大的差距,所以技术人保持学习,提升自己,才能够扛得住不断上赶的后浪,也不至于被“拍死”在沙滩上。 近日,经过一朋友的透露,Alibaba也首发了一份限量的“Java成长笔记”,里面记载的知识点非常齐全,看完之后才知道,差距真的不止一点点! Java成长笔记主要是将Java程序员按照年限来进行分层,清晰的标注着Java程序员应该按照怎样的路线来提升自己,需要去学习哪些技术点。

如果频繁就私信一下呢 230
上一篇: 一个好的程序员养成攻略
下一篇: delphi 远程控制《1》
java漫步天下
博客等级 码龄15年 67粉丝 76原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值