Java三年15K,第四年突破30K!是天大的运气还是超人的努力?

268 阅读7分钟

前言

分享一位铁粉跟我说起的事情,小编略做改编排版发出来分享给大家,希望大家看完之后对自己会有一定的启发,如有不好的地方还请纠正提出,谢谢大家~~

正文

本科毕业,三年弹指一挥间,回头看看才知道时间过得快。

进入软件开发这一行,就意味着永无之境的学习。

我不得不承认,自己这三年,有些失败(失策)。

不是技术不好,也不是不够敬业,只是,低头拉车的时间太多,抬头看路的时间太少,

当“一个人战斗”的工作习惯成为一种束缚,下一个突破点在哪里?下一步的策略是什么?

有过两年工作经验的人想必都有体会,软件开发行业压力大,

经常是时间短,任务重,需求还总在变。

整天的加班,冲向一个又一个的里程碑和deadline。

虽然我现在做反思和调整,也不算太晚,但如果早一点醒悟,能够静下心来想想,现在一定更轻松。

所以结合自身的情况我总结了以下几点让我在技术和薪资达到了一个质的突破。

1、可以执着于技术,但不要把技术当作全部,有一个清晰的钻研路线;

2、工作2年后,要有未来3-5年的“动态”系统学习规划;

3、定期总结计划执行情况,及时修改“动态”规划;

这个时代不缺信息、不缺好的资源,甚至只要你稍微用点心都可以接触到任何领域优质的内容。但同样一份技术教程,有的人看完就可以熟练掌握,而有的人却一点收获都没有。有的人越学技术越厉害,而有的人越学越觉得编程非常痛苦,学了好久还是写不出程序。

就传统观点来讲,也许学历的高低在一定程度上影响了程序员的初期就业,但是不论如何,对于用人单位来说,对经验的看重更胜于学历,在业内真正重视的是实际的经验与能力,而学历仅是入门的一张“名片”。否则证书就只是一纸空文。其实真正决定薪资待遇的根本因素应该是用人单位的实力和程序员自身的素质。

和做人的基本道理一样,程序员自身的综合素质影响了自己的价值。很多学程序的学生试图从自己的学历或所学的语言来确定自己今后能拿到多少报酬,这也有一定的道理,因为编程语言的难度和产品范围在一定程度上也影响劳动价值。就北京来说,大多数软件工程师的入门月工资大约是在5000元左右,几年后成为熟练程序员大约在10000元-15000元以上。

首先在软件行业中,敬业精神尤为关键。程序员工作是相当枯燥并且辛苦的,是否具有忍耐力、快速学习能力、沟通能力以及团体合作精神,是敬业素质的重点。一个好的程序员到哪都是抢手人物,但一个好程序员的背后则需要他拼命地工作和不倦地学习,有时还要借助于灵感,而灵感来自于经验的积累和广阔的视野。现在许多公司都是由一两个优秀的程序员在支撑,整个公司的业务都会注视着这少数的“领头羊”,薪酬也自然会向他们倾斜。即使在同一个公司里,程序员之间的能力差距所造成的月薪差距会在数千元之多。竞争中永远是弱肉强食的,要想在待遇上遥遥领先,至少应当具备一直往前跑的阿甘精神。

我最开始学习编程的时候也是如此,摸索了非常久的时间,才慢慢找到适合自己的系统的高效学习线路。

一、JAVA架构基础

掌握 JAVA架构基础相关的知识是为了后续的学习打下坚实的基础。这一部分是针对小白或者对 JAVA 还不太了解的朋友,当然入门了的朋友也可以巩固一下。

二、阅读源码

程序员每天都和代码打交道。经过数年的基础教育和职业培训,大部分程序员都会「写」代码,或者至少会抄代码和改代码。但是,会读代码的并不在多数,会读代码又真正读懂一些大项目的源码的,少之又少。这也造成了很多错误看源码的方式。

三、分布式架构

随着我们的业务量越来越大和越重要,单体的架构模式已经无法对应大规模的应用场景,而且系统中决不能存在单点故障导致整体不可用,所以只有垂直或是水平拆分业务系统,使其形成一个分布式的架构,利用分布式架构来冗余系统消除单点的故障,从而提高整个系统的可用性。同时分布式系统的模块重用度更高,速度更快,扩展性更高是大型的项目必不可少的环节。

四、微服务

关于微服务架构的取舍

1、在合适的项目,合适的团队,采用微服务架构收益会大于成本。

2、微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。

3、需要避免为了“微服务”而“微服务”。

4、微服务架构引入策略 – 对传统企业而言,开始时可以考虑引入部分合适的微服务架构原则对已有系统进行改造或新建微服务应用,逐步探索及积累微服务架构经验,而非全盘实施微服务架构。

五、性能优化

我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。除了性能优化之外,也能提供通用的常见思路以及方案选型的考虑点,帮助大家培养在方案选型时的意识、思维以及做各种权衡的能力。

六、并发编程

主要培养编程者深入了解最底层的运作原理,加强编程者逻辑思维,这样才能写出高效、安全、可靠的多线程并发程序。

七、常用的设计模式

总体来说设计模式分为三大类:

创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。

结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。

行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。

其实还有两类:并发型模式和线程池模式。用一个图片来整体描述一下:

八、实践一个双十一电商项目

在这里插入图片描述 电商项目目的是把所学的分布式,微服务,性能调优等知识运用起来,只有在项目中你才能巩固知识,提升自己。实践电商项目会利用云服务器搭建真实的开发和部署环境,让你从零到项目实战,体验真实的企业级项目开发过程,让你具备独立开发和搭建分布架构系统的能力。