一个半路出家十年Java老程序员的真实经历

我是一个老java程序员,现在基本告别编码时代了,当然我现在还在写代码,不是为了老板写了,是自己在创业。回想起这么多年的人生路,作为一名老程序员感慨颇多,尤其是作为一名半路出家的程序员,其中的滋味更是感慨万分。下面我就自己说说我的经历,也许会给未来码农一点启发。

当时真是太高兴了,终于拿到了自己梦寐以求的本科学历。其中付出的辛苦,只有自己知道。每天要骑一个多小时的路去听课,而且由于南大那个讲信号与系统的老师实在太差了,根本听不懂不说还是个结巴。我和同学一起跑到天津师范大学去蹭课。要说天津师范大学的老师讲的真不错,人也不错,其实他是看出来我们是蹭课的,但看到我们这么臭不要脸的,下大雪都不迟到,也就睁一只眼闭一只眼了。

上班第一天没什么事情,就是装机器,搭建开发环境。我也很轻,因为哪天是星期五,星期六日就休息了。折腾了一上午,终于吧项目从cvs上下载下来并在本地运行起来了。当时版本控制就是用的cvs,哎,培训的时候cvs也没讲,我倒不是说这些东西不能自学,但是培训费花了9800,就学了这么点东西,根本不够用的,太不值了,感觉真的很坑。2003年的9800啊,不是一笔小数字啊!一看那些hibernate,spring的配置文件,马上就晕了。当时买了本孙伟琴的hiberate学的挺慢的,spring接触的也不多。终于快下班了,经理对我说,明天一起来加班吧,项目挺紧张的。我当时就晕了,我擦了,第一天上班就加班,我说,好,没问题!

第二天早上4点多,我突然惊醒,其实我一晚上都没怎么睡觉,想想明天要写代码就特紧张,怕完不成任务又让人开了。穿衣服爬起来,在床上打开电脑,弄了本书开始研究分页,说实在的分页对于一个没有开发经验的java程序员来说,确实是有点难度的。我想做项目肯定会有分页的,到了6点多,终于研究的差不多了。洗漱吃早点,去上班了。果然,第一个任务就是一个模块的增删查改,我模仿其他模块做了一天,hibernate的分页还是比较简单的。就是js有点麻烦,有个地方搞不定,还让项目经理帮了下忙,下班的时候,经理对我说,怎么样,我说还行,写完了。于是,他检查了下我的模块,看了下代码,有对代码中变量的命名,代码注释等格式问题,做了指导。下班后,我长出了一口气,终于找到工作了。两个月就过了试用期,工资4000.

在这里还是要推荐下我自己建的Java学习裙:574加上二五三再加上075,群里都是学Java开发的,如果你正在学习Java ,小编欢迎你加入,大家都是软件开发党,不定期分享干货(只有Java软件开发相关的),包括我自己整理的一份2018最新的Java进阶资料和高级开发教程,欢迎进阶中和进想深入java的小伙伴

这是我的第一份工作,万事开头难,工作中遇到了很多的困难,随时面临新的挑战,我觉得只要有毅力,这些困难都不是问题。两年后我跳槽了。去了一家国企做电力系统的项目。这个公司做了两年,感觉国企的氛围实在真的是受不了,项目很紧张,还要让你去开会,听什么领导讲话。讲我们集团以后要怎么怎么样,他大爷的,我手里的活明天要交差,干不完要加班,加班干不完要通宵,哪有功夫听你瞎BB。大大小小的会议特别多,领导说起话来特摆谱,我进公司两个多月,一直以为公司的副总是老总,公司的老总是副总。因为每次开会的时候,副总说起话来特像老总,老总到是笑嘻嘻的,还老征求副总的意见,但是副总说话都是命令式的,从来不问大家有什么意见。后来跟同事聊天才知道,我搞反了。也许是副总谱摆的太大了,最后让老总给撤了。

2007-2008年正好赶上互联网的泡沫,整个世界经济危机,中国也受到影响。帝都的写字楼里,也经常听到有的公司在裁员,有的在降薪。我当时想着回天津,在家里找份工作,要赶紧搞对象,结婚了,家里也是催的紧。赚钱已经不是首要目标了,程序员都是单身狗,难道这就是宿命。我辞去了北京的工作回天津找工作。2008年的天津软件公司特别少,在网上就很少,工资也特别低,回家找了两个月打击很大,工资太低了,而且都在华苑软件园,特别远。很无奈,我又回到帝都,拿着锅碗瓢盆,再次北漂。

后来在一个小公司干了两年,给农业银行做考试培训系统。突然一天接到老大的电话,就是我第一份工作的项目经理。他说他在做电商是技术负责人,让我过去帮他,特别高兴。去上班的头一天又见到了以前的同事,大家又在一起了。真不知道我走后发生了什么,是不是被马云挤垮了。在做电商项目的时候,确实应用了很多新技术,主要是解决高并发业务,比如秒杀之类的。当然那个时候主要是使用mysql的集群和主从同步,也就是在那个时候,我接触到了运维,并且参与到了网站的运维工作。当时使用的是Memcached作为缓存,ActiveMQ作为消息队列服务,单点登陆、首页静态化、lucene等技术都接触到了,并且在应用到了实际工作中。在这个公司我学的了很多java互联网开发的技术。

2011年底,我离开了这家公司,我想向上努力,我需要得到得到质的提高。这回找工作我不再面试程序员了,而是系统架构师。终于,我找到了一份系统架构师的工作。具体什么单位不能说,因为是涉密的,我们上班都不能上网,也不能使用U盘。我亲自架构了整个系统,我在整个项目组中算年龄比较大的,有一个领导大家都叫他猴哥,可能跟我差不多,还有一个经验丰富的程序员,不过他是c语言的。我们需要将飞机传送到地面站的报文进行解析,这个是c语言来完成的,然后存放到数据库中,由java程序进行处理。运用了google地图+js制作了飞机航线系统,解决了晨昏线和飞机转向算法,当然,这个算法是请教了专家,我就是通过程序实现他的算法。我负责技术选型,当时选择的是ssm,ssm和ssh我纠结了好久,最终选择了ssm。事实证明我的选在是正确的,现在的系统基本是ssm的摒弃了ssh,struts2这种多进程的mvc框架注定了它不适合处理大并发项目。后台使用springscurity做的权限系统,我负责核心模块和基础工具类的开发,数据库的设计,服务器运维优化。权限系统是每个项目的核心模块,整个权限系统,单点登陆功能是我独立开发的。当时由于还没有出现dubbo,spring cloud这种分布服务是架构,所以采用的是Webservice作为解决方案,确实存在一定的性能瓶颈。xml传输还是有点慢。但是基本满足了项目的整体需求,最后通过了专家组的验收。这个项目做了五年。

现在来总结从事Java一到十年必须要了解的技术知识点,这对你的职业生涯会有很大的帮助

感谢大家能看完我这么长的分享,希望以下的学习路线能对你有帮助

关注我:私信回复“架构资料”获取往期Java高级架构资料、源码、笔记、视频

Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

设计模式

设计模式是可复用面向对象软件的基础,学习设计模试是每个程序员从菜鸟走向大神的必经之路,巧妙地运用设计模式可以使我们的代码看似复杂实际简洁、复用性更高、更容易被别人理解等好处,同时也是学习软件工程的基础和必然。

并发编程

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

开发工具工程化

通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。程序员的战斗,往往不是一个人的战斗,我们如何在一个平台下高效的去重,进行代码review,对功能进行调整,debug,做到在统一的规划下步步为营,混乱的堆代码的过程中找到自己的记录。这一切都依赖于有效的工具。

性能调优

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

源码分析

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

那要如何正确的分析源码呢?

我们的目标应该放在最常用的框架上面,下面就介绍两个:一个是Spring,另一个是大家用来觉得一直不怎么出问题的Mybatis。

△spring源码

△mybatis源码

分布式架构

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

分布式架构(一)

分布式架构(二)

微服务

关于微服务架构的取舍

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

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

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

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

B2C项目实战

要想立足于互联网公司,且能在互联网浪潮中不被淹没,对于项目的开发实战演练是不必可少的技能,也是对自身能力的一个衡量,有多少的量对等于获得多少的回报。看似简单的一个项目需求图谱,其中的底层原理,实现原理又能知道多少?你搭建一个完整的B2C项目平台到底需要多少知识?这一切都是需要我们考量的。

关注薇信工宗号:程序员大牛,回复“Java”获取往期Java高级架构资料、源码、笔记、视频

Dubbo、Redis、Netty、zookeeper、Spring cloud、分布式、高并发等架构技术

往期架构视频截图


©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,198评论 4 359
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,663评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 106,985评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,673评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 51,994评论 3 285
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,399评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,717评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,407评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,112评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,371评论 2 241
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,891评论 1 256
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,255评论 2 250
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,881评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,010评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,764评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,412评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,299评论 2 260

推荐阅读更多精彩内容

  • 2017年即将过去了,努力过一年中的几天?问自己
    可以嗎阅读 145评论 0 0
  • 去银行办业务。是一个朋友推荐的,那个姐姐很温柔和蔼的样子,缓缓说话的腔调,给人一种岁月沉淀里羊脂玉的味道。 我只是...
    玲玲筱雪阅读 277评论 0 1
  • 当今社会的飞速发展,在满足人们需求的同时,又仿佛夹杂了一些充满未知性的东西。 我曾经问过一个朋友,问她对现如今生活...
    打酒小妖阅读 195评论 0 0
  • 1. main函数的概念 C语言中main函数称之为主函数,一个C语言程序是从main函数开始执行。main函数定...
    编程半岛阅读 515评论 0 0
  • 2018.09.24 星期一 ...
    时光极色阅读 80评论 0 1