我与javaboy的10年-从小白到资深架构(代码片段)

老王随聊 老王随聊     2023-03-11     698

关键词:

 HI !  大家好,我是你们的新朋友老王随聊。正值Java的27岁生日之际,今年也恰好是老王与Java相识的第10个年头了, 而这10年老王从自己的亲身经历见证了Java技术的快速发展。

关于我与Java的故事,老王从Java技术学习的三个阶段聊聊这10年来我是如何从一个编程小白成长为一名资深架构师,我相信这些经历不论是对在校学生、或即将踏入职场的同学、亦或是正处于职场上升期的朋友都必然会有一些帮助和启发~~

文章末尾有来自老王送给Java Boy的彩蛋!🎂🎂🎂

目录

1、我与Java的初识

2、我的Java进阶之路

2.1 第一阶段:拓宽Java技术栈

2.2 第二阶段:实践Java大数据

2.3 第三阶段:走向Java架构师之路

2.3.1 熟悉Java相关的优秀框架设计

2.3.2 熟悉相关业务及周边系统

2.3.3 具备勇于担当的精神

3、对Java语言未来的展望

4、源代码——祝Java 27岁生日快乐!


祝JAVA  BOY 27 岁生日快乐!🎂🎂🎂

1、我与Java的初识 🎂🎂🎂

转眼毕业已经10年了,回想当年大学的生活,忙碌而充实。

我大学读的是计算机专业,有幸在大二的时候接触到了Java这门面向对象编程语言。起初主要使用的编程语言还是C和C++,真正爱上Java是在大三上半学期,当时参加了ACM东北三省级联赛并获得了第三名的成绩,这也让我下定决心开始研究Java。

在平时我也会参加学校和周边兄弟学校组织的各大小赛事,时不时的会获取些奖励。正是这些大大小小的比赛,让我对Java产生了更加浓厚的兴趣。

另外,我也会加入校内的一些实验室,跟着学长和老师去实践一些Java相关的实际项目,尤其是参与升级和运维学校内部网站这件事让自己学到了比较多的实战经验。这些经历也为后续自己面试大企业打下了很好的基础。

在最后毕设的时候,自己用Java Swing写了一个模拟百度浏览器的Case,通过这次毕设,将之前所学的Java零散知识点更加系统化,进一步加深了对Java应用的了解。虽然如今对Java Swing这种C/S模式的应用已经停留在教学阶段(实际生产开发已不再使用),但里面一些优秀设计思路依然值得我们学习借鉴。

2、我的Java进阶之路 🎂🎂🎂

这部分内容是关于我进入职场之后的一些经历,从技术发展层面可概括为三个阶段。

2.1 第一阶段:拓宽Java技术栈 🎂🎂🎂

用2~3年拓宽技术视野。

踏入职场后,我除了主语言Java一直未离手之外,期间也学习了其他不同的编程语言。从前端H5\\JS\\CSS、到Python、PHP等, 最后到底层数据库MySQL、Oracle等相关脚本开发和SQL优化。开发的应用类型也从PC端到延伸到了移动端。

我记得大概在12年左右,当时正是各种新技术层出不穷的时候。尤其是基于Java语言开发的Android应用甚是火热。可能天生骨子里习惯尝试新鲜事物吧,最后我转向这个新技术。对我而言只是技术的平移,学习门槛也不会太高。

日常也会学习与Java相关的优秀框架,比如 SpringMVC、Mybatis、Maven、RabbiMQ、Log4j、Ehcache等。另外我也会去读一些比较系统化的Java相关书籍,比如《Java23种设计模式》、《Java虚拟机》、《Java高并发程序设计》、《Spring源码深度解析》等等。

我很庆幸自己能持续不断的学习并运用到实践中,这为我走向Java架构师之路打下了坚实的基础。

2.2 第二阶段:实践Java大数据 🎂🎂🎂

用3~4年深耕技术和并落地到业务当中。

在15年左右大数据Hadoop技术开始盛行。在经历了3年左右的应用系统开发之后,想着转战这个全新的战场。带着一腔热情和不可知的未来,我最终踏入了大数据领域。

这一干就是4年之久。期间经历过准实时Spark技术和流式框架Flink技术的应用落地。处理的数据量也从刚开始的几百万,到上千万、上百亿的量级。在这期间,也阅读了很多技术书籍《Hadoop大数据存储与分析》、《Spark快速大数据分析》、《Flink原理实战与性能优化》等。

当然大数据技术的应用必须有业务场景的需求落地才能体现其价值。回顾自己做大数据技术的历程,让我收获到的不仅仅是与Java相关的大数据技术体系,同时自己对数据分析方面也有了新的认知,比如什么是数据挖掘,哪些数据有价值等等。另外在技术层面思考也更加全面,比如哪些场景下应该使用哪些设计模式,会结合公司实际业务发展乃至未来的发展,形成一套具有可操作可落地的技术选型。

2.3 第三阶段:走向Java架构师之路 🎂🎂🎂

不经一番寒彻骨,哪得梅花扑鼻香。千锤百炼还坚劲, 任尔东西南北风。

用3~4年完成Java技术人向Java架构师的蜕变,我根据个人经历总结以下三点:

2.3.1 熟悉Java相关的优秀框架设计 🎂🎂🎂

Java架构师之路非一日练就而成,首先要对行业相关核心技术栈比较了解,比如RPC分布式框架Dubbo、Thrift等。Dubbo前面我也讲过,是非常优秀的设计框架。尤其是它的设计模式、设计思路对于我们如何去做好系统架构设计非常有帮助。

另外也需要了解一些Java大数据方面的技术,学习里面的一些优秀设计思维。比ElaseticSearch、工作流引擎Activiti、消息中间件JMS编码接口、ActiveMQ,还有前面提到的Spark和Flink等等。这些都是基于Java语言写的,所以对于Java出身的开发者来说,学习门槛相对低不少。

只有对各种技术框架设计思路有所了解,我们才能设计出符合业务发展所需的系统。

2.3.2 熟悉相关业务及周边系统 🎂🎂🎂

作为一名优秀的Java架构师,除自身技术过硬外,还需要深入了解周边相关业务知识和业务系统,至少能对关键业务节点清楚掌握。这样在设计系统或做架构调整的时候,才能做到有的放矢、有章可循。技术选型一定是结合实际业务需求场景的,否则只能属于闭门造车,浪费时间。甚至有些时候需要架构师对公司业务具备一定前瞻性,这样才能很好的设计出满足未来业务发展所需的系统。

2.3.3 具备勇于担当的精神 🎂🎂🎂

除了有过硬的Java技术及丰富的业务知识外,责任心和勇于担当也是作为Java架构师必须要有的品质。

我参加并组织了多次618和双11大促系统备战,深知系统调用链路长,上下游依赖多等复杂性,即使如此,也必须保持系统性能高可用。基于此,尽管在前期准备工作非常充分的情况下,在大促获得启动之后,依然会有一些新的问题出现,比如秒杀导致系统性能出现了瓶颈,C端大量请求异常等。在这样紧张和高压的情况下,作为一名架构师有义务去担起这个责任,带领大家积极应对问题,并能快速给出相应解决方案。

3、对Java语言未来的展望 🎂🎂🎂

 随着5G技术已逐渐进入人们的视野,随之而来的是万物互联的时代。物联网产业的飞速发展,带动大数据、云计算、人工智能等领域的蓬勃发展,另外各种语言也应运而生,但相信Java语言会以其功能强大、简单易用、安全稳健等特性,在新的领域展现出新的风采。

我认为Java语言未来发展前景仍旧十分广阔。主要应用领域有三大方向:大数据、云平台和人工智能所以,什么时候学习Java语言都不会晚,想进入这三大行业的抓紧行动起来吧!

4、源代码——祝Java Boy 27岁生日快乐! 🎂🎂🎂

 Java Swing源代码:

import javax.swing.*;
import java.awt.*;

public class HappyBirthday extends JFrame 

    public HappyBirthday() 
        this.getContentPane().setBackground(Color.WHITE);
        this.setFont(new Font("华文行楷", Font.BOLD, 30));
        this.setBounds(500, 250, 500, 450);
        this.setContentPane(new Paint());
        setVisible(true);
    

    public static void main(String[] args)        //主函数
        HappyBirthday hap = new HappyBirthday();       //实例化主类

        java.awt.EventQueue.invokeLater(new Runnable()  //运行图形化界面
            public void run() 
                hap.setVisible(true);
            
        );
    

    class Paint extends JPanel 

        public void paint(Graphics g) 

            // //画出蛋糕的主体(下部分)
            g.setColor(Color.pink);
            g.fillOval(100, 150, 240, 120);
            g.setColor(Color.green);
            g.fillOval(110, 160, 220, 100);
            g.setColor(Color.red);
            g.fillOval(120, 170, 200, 80);
            g.setColor(Color.yellow);
            g.fillOval(130, 180, 180, 60);
            g.setColor(Color.pink);
            g.fillOval(140, 190, 160, 40);
            g.setColor(Color.orange);
            g.fillOval(150, 200, 140, 20);

            //画出蛋糕的主体(上部分)(分成椭圆和矩形)
            g.setColor(Color.orange);
            g.drawRect(160, 150, 120, 40);
            g.fillOval(160, 150, 120, 60);
            g.fillOval(160, 150, 120, 60);
            g.fillRect(160, 150, 120, 60);
            g.fillOval(160, 120, 120, 60);

            //描线
            g.setColor(Color.pink);
            g.drawArc(100, 160, 240, 120, 0, -180);
            g.drawArc(100, 180, 240, 120, 0, -180);
            g.drawArc(100, 200, 240, 120, 0, -180);
            g.drawArc(100, 220, 240, 120, 0, -180);
            g.drawLine(100, 210, 100, 280);
            g.drawLine(340, 210, 340, 280);

            //将上部分背面的线抹去
            g.setColor(Color.orange);
            //写字
            g.setColor(Color.pink);
            g.setFont(new Font("华文行楷", Font.BOLD, 30));
            g.drawString("JAVA27岁", 150, 310);
            g.setColor(Color.red);
            g.setFont(new Font("华文行楷", Font.BOLD, 20));
            g.drawString("生乐快乐", 180, 180);
            g.setColor(Color.GRAY);
            g.setFont(new Font("华文行楷", Font.PLAIN, 8));
            g.drawString("From 老王", 220, 200);

        
    

从linux零基础小白到linux云计算架构师的成长之路!

##从Linux零基础小白到Linux云计算架构师的成长之路很多大学生或从事网管、Windows运维、实施、网络的人员,想了解,一个小白应该如何去入手学习Linux。作为一个搞了15年左右Linux架构的老司机,今天我就给大家详细讲一下如何... 查看详情

推荐|资深架构师10年10条干货职场心得(代码片段)

出道这么些年,跳过好多公司,除了国企其他的基本上都去过,甲方、乙方、外包、外企、互联网公司、创业公司…总结下来有这么些体会,希望能对你和大家有些参考价值。1.保持学习可能离开了学校之后,... 查看详情

推荐|资深架构师10年10条干货职场心得(代码片段)

出道这么些年,跳过好多公司,除了国企其他的基本上都去过,甲方、乙方、外包、外企、互联网公司、创业公司…总结下来有这么些体会,希望能对你和大家有些参考价值。1.保持学习可能离开了学校之后,... 查看详情

13年资深开发者分享一年学习rust经历:从必备书目到代码练习一网打尽

Pine发自凹非寺量子位|公众号QbitAI如何学习Rust,HackerNews上有这么一篇教程火了。它不同于网络上类似的几小时速成教程,而是通过自己的学习经历向大家指出一条学习Rust的路径。教程发出之后,网友们也在HackerNews上... 查看详情

docker小白从入门到精通专栏上线咯!

各位51CTO的博友们、IT同仁们,你们好!我是吴光科老师,很高兴能够在这里和大家一起来交流IT技术,不知不觉在IT运维行业已经从事了近10年。曾在国企、京东、宜信等一线互联网公司担任过Linux运维架构师、运维经理,51CTO学... 查看详情

cnn网络架构演进:从lenet到densenet(代码片段)

...t到VGG,GoogLeNet再到ResNet和最近的DenseNet,网络越来越深,架构越来越复杂,解决反向传播时梯度消失的方法也越来越巧妙。新年有假期,就好好总结一波CNN的各种经典 查看详情

云智慧10年资深架构师带你了解:普通程序员向架构师成长必经之路

本文转录自:拥有10余年架构师经验的高驰涛,在云智慧AIOps社区第4期Meetup上进行的《普通程序员向架构师进阶之路》分享。PPT及回放地址:线上Meetup第4期|普通程序员向架构师进阶之路(内含PPT下载及回放&#... 查看详情

5年测试,从小白到主管,在开发的鄙视中野蛮生长

01、懵懂入行,当了5年测试小白还不会代码大家好,我是石头,14届大学毕业生一枚,学得是信息系统管理专业。毕业后,专业对口的工作没找到,却阴差阳错进了一家华为的外包公司。虽然是外包到华为&... 查看详情

一个小白的成长史

ai一个小白的成长史介绍博客地址:https://blog.csdn.net/shenfuli任何问题可关注获取https://github.com/shenfuli/ai作者介绍:高级算法专家,技术经理。先后就职国内大型上市软件公司、资讯类创业公司。先后作为JAVA技术专家、技术经理、... 查看详情

阿里8年资深技术专家谈企业级互联网架构的演进之路

沈询,阿里巴巴中间件&稳定性平台资深技术专家,在淘宝工作八年间,主要负责的产品有淘宝分布式数据库(TDDL/DRDS)、分布式消息系统(Notify/ONS)等,故对整个分布式的互联网架构比较了解。本文分享围绕阿里技术架构演进... 查看详情

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

每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天我给大家分享的是一篇来自阿里大牛对五年工作经验程序员的职业建议,希望... 查看详情

2020年,从架构谈起,到mesh结束

...油门,你从未想过这会是某个工程师的代码。当我们谈论架构时,我们到底在谈论什么?面向对象编程?函数式?模块化设计?微服务?这些词汇貌似都和架构这个buzzword有点关系,的确我们这个领域充满了很多难以理解的词汇... 查看详情

十年阿里资深架构师教你如何做到年薪50万的程序员

写在开篇不管是开发、测试、运维,每个技术人员心里都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。然而“梦想是美好的,现实却是残酷的”,... 查看详情

资深架构师的经验分享——软件项目开发和决策(代码片段)

这篇文章是关于什么的参与项目决策的人必须意识到他们的决定对项目的成功和成本以及时间和金钱的影响。对于我20多年的软件开发经验和10多年的咨询工作,我作为架构师或开发人员参与了许多项目-其中大多数成功,有些失... 查看详情

架构人生(代码片段)

...了,Mvc兴起了来到更大的团队,做了架构师在中专的4年我与计算的缘分应该追溯到1996年,那里我还在上初二,学校里组织了计算机的小小培训,当然那里还都是486的电脑,练练打字,玩玩8位机游戏,学学wps等,没什么其它的东... 查看详情

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。

淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。文章目录淘宝十年资深架构师吐血总结淘宝的数据库架构设计和采用的技术手段。本文导读1.分库分表2.数据冗余3.异步复制4.读写分离总结本文导读淘宝的... 查看详情

毕业一年我与java的故事(代码片段)

1自我介绍还有一个月就毕业一年了,从2020年7月开始暑期实习,辗转换了好几份工作,到今天2022年5月24日为止,满打满算有工作1年半了。科班出身,基础不扎实。2为什么选择Java科班出身,在大学里面基... 查看详情

一个大四实习生从安卓小白到可以独自承担安卓和web前端的一年奋斗之旅

...的学习方法和学习习惯,记录着自己从最开始的一个安卓小白,到现在可以独自承担原生安卓项目。记录着自己在工作之余学习H5前端技术,到现在可以熟练掌握H5前端技术独自完成WebApp混合开发。又到了每年的毕业季,这篇博... 查看详情