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

2023-05-16

我搞JAVA也有些日子了, 因为我比较贪玩,上进心不那么强, 总是逼不得已为了高薪跳槽才去学习, 所以也没混成什么大牛, 但好在现在也已经成家立业, 小日子过的还算滋润, 起码顶得住一月近万元的吃喝拉撒玩各种贷款信用卡 不为金钱过于发愁了。 我特别感谢当初贴吧遇见的那位大神, 虽然每个月也就聊那么几句, 但是他总能在我不知道该学啥, 该怎么走的时候, 给我方向, 毫不夸张的说,我现在的衣食无忧, 技术马马虎虎, 都是拜他所赐。 所以 我也想分享一些自己的成长过程 以及技术路线 希望一些迷茫的新人,或者想转行但是踌躇不前的老哥老弟们 能够得到一些建议吧

其实这行的工资待遇和前景,比起一些风吹日晒的苦逼行业 还是要好不少的, 很多人说程序员累, 加班 , 掉头发 但其实在生存压力面前 这都不算什么, 有哪一行是轻松的呢?起码程序员技术到位了,工资还是比较可观的。

那么 入门的新手 要达到一个什么水平才能找到工作养活自己呢?

首先 JAVA基础语法 集合类 线程 IO操作, 这些掌握了 基础算是过关了, IO操作有点麻烦 被搞晕没关系 知道什么时候用 用到了 再去搜索就行

其次 web部分 servlet jsp session cookie mysql数据库 都要知道怎么操作怎么用 前端页面的话 html不必太深 能看懂就行 js或者jquery会操作dom能够把后台数据放到合适的位置就可以 现在前段js技术五花八门 基本很少有项目让后台弄前端了 如果有并且很长时间了 你可以考虑跳槽了……

学到这个阶段,你需要知道一个请求从页面或者移动端发起之后 经历什么样的过程再返回去的 知道ajax是什么 会发起异步请求到后台 。

框架方面 别学struts hibernate了 很少有项目用了 学springmvc spring mybatis就可以 ,不必清楚实现原理 会搭框架 搞一个增删改查出来就行了

到这里,大约就是初级阶段了 你可以去找工作了,期望别太高,如果有人要你 工资大约是5到6k 如果是成都西安这些二线 还要低点。之所以说如果有人要,那是因为这两年行情不太好……这些基本技术需求已经没法找到一个比较靠谱的工作了。

这个初级阶段,其实是最苦逼学的东西最多的阶段,你没有太多的时间,顶着没有收入还要吃喝拉撒的压力,也许还有你父母家人 朋友的不理解和嘲笑,在他们眼里,你念书那么多年出来,却连个靠谱的工作也没有,还在穷折腾,如果你不幸已经进了培训机构,两万多的学费加生活费,等你上班后你会知道攒钱两万是多么多么的困难……种种压力面前,你需要在四到五个月杀出一条血路证明自己的价值,怒怼所有嘲笑,将来工资傲世亲朋好友,让你的父母欣慰,让你能够挺起胸膛做人,铺垫好你后面二三十年的路,让你的父母老了能够老有所依。 如果你正好在培训机构学JAVA 看到我这些文字 希望你能坚持一下,拿出你的热血来 咬牙学它四个月,所有苦难的日子,在拿到高薪offer的那一刻都是值得的。

如果你看到以上 还是无动于衷,我只能说,别学了 该干嘛干嘛去吧……去享受青春吧 然后腐烂吧……啃老吧 … 不用我骂你废物了 自然走人骂……随着年龄的增长 你会知道你当初多么的愚蠢不堪,你甚至有可能会丧失做人最基本的繁殖权利,因为没有女人会愿意和你在一起…即便是现在有图你帅气外表的 也会离你而去……因为你连稳定的生活也没法提供。

这些话说的极端了点…天下行业多得是,但我就事论事,你已经进了培训机构,八成说明你真的是找不到什么出路了……真的……希望能够骂醒一些迷途少年吧。

扯远了,接下来继续说技术干货。

上面说 如果有人要你……这个可能要吓到很多新人了,我特么那么拼命的学出来,结果还是没人愿意要,怎么办??别担心 你只需要把下一阶段的技术,学一部分 伪装一下经验,就可以了。

初级阶段之后,你能够用tomcat和ssm框架弄一个简单的项目出来了, 这时候 你可以注意一下编码规范,变量命名用英文,状态变量用枚举 常量等 你这样做是最低成本的伪装经验,因为新人写的代码往往和狗啃的一样……不要在controller写逻辑 只接收检验数据 调用service和返回信息 不要把request传进service里 那样会破坏依赖分离的初衷,dao基本没啥说的 就是查数据 我见过无数新人写代码都是 service和dao就一个干巴巴的方法 逻辑全写在controller里……这种的不用看 都是菜鸟。

你会框架的CRUD之后 你可以看一下nginx 可以尝试做一个负载均衡玩一下,这个不需要你写代码 只需要配置下 但是能有效的提高简历质量,你还可以学习下MQ 就从activeMQ开始 尝试怎么用对接把任务异步出去, 你还可以试试redis 做个简单的数据缓存或者会话缓存,这时候你再去找工作就立马不一样了,学这三个可能也就用两三周不到,但是你的简历会体现出一个中级程序员的水平。

那说到中级技术水平 个人觉得应该掌握的技术有 负载均衡 apache http 或者nginx均可, 队列 ActiveMQ 就行(这个是java语言写的比较贴近java ),缓存 redis就行 memcache用的越来越少了感觉,还有精力的话,可以看一下mogoDB 做个简单的demo存个json进去玩一玩。 然后你的简历又丰富起来了………你工作里肯定用不到那么多,但是你就往你简历里写,糅合进你的项目里去,反正你知道什么场景用这些就行,问不出来的。 初级和中级界限很模糊的,只是一些中间件的使用而已。

如果你已经学到这个地步,那你要是再说找不到工作, 我是不信的 这时候你找工作 如果在北上广深 应该有机会破万了,至于具体拿多少,看你的表达忽悠能力了。

接下来就是比较高级的部分了,这个阶段 你大概又陷入苦学的阶段了………因为你不能只会用,你要知道原理,不至于让你自己实现一个出来,但是基本原理要知道。

到了这个阶段,你要懂得jvm基本结构,要知道垃圾回收机制,常用垃圾回收算法,jvm简单调优参数, 数据库也是个重头戏,你要知道mysql事务隔离机制的实现,怎么优化sql , 要知道springmvc流程 spring的原理 事务传播机制,mybatis流程原理, 乐观锁悲观锁什么情况用,你要学会考虑系统瓶颈,系统容灾,单点故障, 你要懂得一致性是怎么回事,cap理论 paxos算法 以及zookeeper干嘛用的,能解决什么问题? 你要懂得soa架构,dubbo , 微服务 spring boot spring cloud 这些高级框架 尝试用一用,谷歌,开源社区 将要取代百度成为你解决问题的主要动力和前进的方向, 你会有种一览众山小的感觉,你会觉得弄个百万并发的系统其实并不难,难的是后续问题,日志处理 运维问题, 关于运维我给不了太多建议,可以了解下 zabbix 之类的 可以去学习下 docker 微服务加docker将是未来的趋势。

学到这个地步,你大概已经不用担心工作问题,这种三五年经验的高级程序员需求永远很旺盛,注意 我说的是三五年学习实践经验,不是三五年一直crud经验。这个时候你如果在北上广,你的工资大概会接近20或者更多,成都西安这边大约15到20 你已经不用为钱太过于发愁了。但是请不要太安逸,因为上面说的那些也只是初窥门径而已。

到了这个地步,工资已经比较难以提高了,但是大部分程序员是走不到这一步的……因为他们眼里只有薪资,对程序没有一定的热爱,是很难坚持到这一步的。之所以说三十岁是程序员的分水岭,就是因为很多人在艰难的学习实践路上或是倒下了或是满足了…或是踏足管理 产品 等等岗位 这也是一种出路 只不过我这里讨论的是技术,我个人危机感比较强,技术抓在手里,永远后顾无忧…脱离了技术,你八成会被绑定在某个岗位或者公司上……跳槽?别人未必要你,凭啥你过去就是管理岗位?

又扯远了,到了这个阶段,你以为到头了?太年轻了……上面所说的高级阶段,只是构建一个比较大型比较稳定系统的必须而已,问题还是很多的,比如上面说的日志处理,如何利用庞大的日志产生商业价值?如今的淘宝 京东这种系统,你去买个鼠标 它就能给你推荐个键盘等周边外设, 那么它为啥不给你推荐个内衣内裤呢? 想明白这些,你需要进一步学习, 大数据要来了。

flume 日志处理 hadoop hive presto hdfs storm spark 大数据 流式计算 ,这些够你喝一壶的了,学到这个份上,也不需要别人指点你什么了,你能到达这个阶段本身已经证明了自己的学习和技术能力。到达这个阶段,你八成已经成为一个跨语言程序员了,因为处理数据,并不是java擅长的,你要非用java………那我只能说 人生苦短,何必折磨自己。 你应该已经学会了python scala 也可能有些R语言, 这时候你会发现,语言真的只是工具而已,学个语言很快的,来来回回就是那么些东西而已,思想最重要。

到了这个阶段 你会觉得技术不过如此,妈的学也学不到头,学来学去也都是跟着老外屁股后面用框架而已………恭喜你 你的无聊和孤独求败心态 将会成就你的下一个阶段……

下一个阶段 也是目前的终极演进状态了 那就是 机器学习 深度学习 神经网络 人工智能 楼主目前正在往这个阶段进军……因为真的有点无聊,又想提高水平 只好继续学了。

到了这个阶段,你会有很多挑战…

首先的挑战 来自于 数学…是的 你没听错 数学… 线性代数 概率统计 高等数学 …都是你面前的拦路虎,曾经觉得编程只要一加一等于二的美好时代一去不复返了……你想继续前进,请先去学线代 概率……不然寸步难行什么也看不懂…… 先从机器学习开始吧 这个是最简单的…但是光就基本的机器学习几个算法 看懂的人没几个……基本的k-means算法 decision tree 朴素贝叶斯 这三个 就需要线性代数 概率统计 以及信息熵相关知识。真的相当抽象……后面的深度学习 神经网络 楼主粗略看了下 没点数学功底 还是放弃吧,天书一样的……

到了这个阶段……全中国能帮你的人 也不好找了……开源社区能帮到你的也越来越少了…一切靠自己。到了这时候,你会发现,当初甚嚣尘上的 大学无用论,编程数学无用论 是多么的可笑, 代码是最没价值的,核心是数学理论……公司不敢开源不是因为代码值钱…是因为开源就没人敢用你们公司产品了 因为全是烂代码……

等你一窥终极阶段的门径的时候,你会发现 你危机感越发的强烈了…妈的机器这么吊炸天,围棋都暴虐人类, 以后编程距离取代的日子也不远了………说实话 恐怕真的不远了……人类社会自从有了计算机,越来越发展的快, 人工智能将会在你我的有生之年发展壮大,近处说,你怎么保住饭碗,怎么提高待遇改善生活呢?……啥也不说了 学吧……

感谢大家能看完我这么长的分享,希望能够对大家有所帮助。


欢迎转载 版权所有 http://aiprogram.top

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一个JAVA程序员成长之路分享 的相关文章

  • 简单分析@NestedConfigurationProperty的作用

    看源码的时候 xff0c 碰到这个注解 64 NestedConfigurationProperty xff0c 之前知道 64 ConfigurationProperty是设置值的 xff0c 但是nested就不清楚了 分析如下 查看源
  • java开发的正常开发步骤和进度总结

    项目规范 需求排期阶段 1 业务提需求 xff0c 业务与PD和技术初步探讨业务背景和需求 在此阶段 xff0c 开发人员的目标是提前的了解需求 xff0c 想业务之所想 xff0c 丰富和优化需求 所以 xff0c 开发人员 xff0c
  • 降级、熔断和限流———一看就会

    设定 xff1a A上游系统 B本系统 C下游系统 服务降级 服务降级是从整个系统B的负荷情况出发和考虑的 xff0c 对某些负荷会比较高的情况 xff0c 为了预防某些功能 xff08 业务场景 xff09 出现负荷过载或者响应慢的情况
  • 高保链路分析——一看就会

    高保链路分析 本身接口 超时降级 调用本接口耗时超过规定时间立马返回超时报文 限流降级 调用本接口QPS超过规定数值立马返回限流报文 兜底返回 xff08 代码容错 xff09 trycatch未知异常 xff0c 兜底返回报文 业务逻辑
  • android应用层操作底层硬件

    app操作底层硬件没权限的解决办法 xff1a 1 若机器已经root过 xff0c 可直接在应用层中操作 xff1a String apkRoot 61 34 chmod 777 34 43 getPackageCodePath Syst
  • ARM 安装中文输入法

    TX2 为嵌入式开发板 xff0c 系统架构为ARM xff0c 普通的PC上的Linux系统安装中文输入法的方法不适用 xff0c 所以这里提供ARM上的中文输入法的安装方法 步骤1 xff1a 打开终端 xff0c 输入以下命令 sud
  • cordova 打包步骤

    年底了 xff0c 好多资料都在整理 xff0c 为了避免遗忘 xff0c 也为了利益他人吧 直接上步骤吧 xff1a 增加运行环境的模板 cordova platform add android 编译android的程序 cordova
  • BlueROV-7: Keep Learning Dronekit

    The motors can spin now by using the following program from dronekit import connect VehicleMode import sys import time C
  • BlueROV-8: Functions to Drive the Vehicle

    Some functions like goto function or speed setting function are limited because they are GPS dependent GPS is not availa
  • BlueROV-9: Driving Control

    Home location http python dronekit io guide vehicle state and parameters html The Home location isset when a vehicle fir
  • 人工智能发展简史

    人工智能发展简史 第一章 xff1a 起步期 20世纪50年代及以前1 1 计算机象棋博弈 xff08 Programming a computer for playing chess xff09 1 2 图灵测试 xff08 Turing
  • 对角度滤波时0-360度跳变的解决办法

    对角度滤波的过程中会发现 xff0c 视觉direction方向会发生0 360的数值跳变 xff0c 为了解决这个问题 xff0c 需要将0和360度之间的间断点变成连续可导的函数 xff0c 经过摸索 xff0c 想出一个办法 xff0
  • 电机控制 龙伯格观测器 永磁同步电机无传感器控制 全C代码程序

    电机控制 龙伯格观测器 永磁同步电机无传感器控制 全C代码程序 成熟产品方案 DSP28335 xff08 1 xff09 全C程序完成由电机参数 电流微分方程构建dq轴误差模型 控制参数逻辑变换 低通滤波器转速滤波和转子角度积分等控制环节
  • ROS学习笔记-1: 构建工作空间-创建catkin包-编写发布器与订阅器

    1 ROS文件系统介绍 http wiki ros org cn ROS Tutorials NavigatingTheFilesystem 2 Installing catkin http wiki ros org catkin Inst
  • 信息安全重点知识

    一 信息安全概述 网络空间安全的重要性 xff1a 没有网络安全就没有国家安全信息安全 xff1a 防止数据未授权的访问 xff0c 数据有意和物一的威胁 网络安全是信息安全的子集 信息安全的三要素 xff08 CIA xff09 xff1
  • 海天注塑机KEBA系统数据采集

    本文章只针对海天注塑机的KEBA系统 xff0c 因为其他注塑机厂家也用KEBA系统 xff0c 他们的采集方式可能不太一样 xff0c 所以后续有时间我将写其他文章来解释 xff08 默认你已经向海天采购了OPC组件 xff09 一 采集
  • Axure基础:事件和动态面板

    这一篇文章我们主要是将如何做系统左侧的导航 xff0c 并且告诉大家如何动态的切换各个页面 一 事件 1 事件基础 事件的核心就是什么时候做什么事 其中的什么时候可以是如下 xff1a 能做的事情如下 xff1a 2 远程监控云中的事件 监
  • 设备联网调试三板斧

    在实际的工业互联网项目中 xff0c 设备联网所占的比重越来越大 有的一期项目为了简单快速上线 xff0c 让客户直观体会到工业互联网的效果 xff0c 直接会把设备联网放在一期项目的重点 那么在做此类项目时 xff0c 设备联网调试就显得
  • 光立方完全解析

    转载请注明出处 xff1a http blog csdn net ruoyunliufeng article details 37903899 这个4 4 4的三色光立方是我在初学单片机的时候做的一个小项目 很适合给初学单片机和C语言的同学
  • 远程视频监控之应用篇(mjpg-streamer)

    转载请注明出处 xff1a http blog csdn net ruoyunliufeng article details 38515311 这篇文章将主要结合源码介绍mjpg streamer xff0c 使小伙伴们了解视频监控的实现

随机推荐

  • Matplotlib 入门(三):多图合并

    一 多合一显示 1 subplot方法 xff1a 设置行 列和起始点 plt subplot 2 1 1 分成两行一列 xff0c 起始点为1 2 代码 coding utf 8 34 34 34 Created on Sun Sep 2
  • python毫秒级延时

    一 毫秒延时 近期有一个ms级别延时的需求 xff0c 实际测试了一下 xff0c 环境 xff1a win7 64位 xff0c python2 7 13 结果 xff1a 毫秒级别的延时是能够支持的 xff0c 微妙是不支持的 二 de
  • 数据分析之乳腺癌预测

    零 定义问题 1 1 数据介绍 http archive ics uci edu ml machine learning databases breast cancer wisconsin breast cancer wisconsin n
  • px4通过mavros+wifi+板载计算机连接地面站

    px4通过mavros 43 wifi 43 板载计算机连接地面站 https blog csdn net zouxu634866 article details 106835967
  • 关于mongodb占用内存过大的问题

    一 现象 最近发现自己服务器内存越来越少 xff0c 查了一下原来是部署的mongodb使用内存在线性增加 不查不知道 xff0c 一查吓一跳 xff0c 竟然占用了3G的内存 二 分析 1 内存增加的原因 mongo为了优化他的读写效率
  • 软件开发生命周期-3-每个阶段的输入输出

    记录下一点自己的心得体会 xff0c 分享给大家 xff0c 有不足之处 xff0c 望指教 第一阶段 xff1a 假想阶段 本阶段是整个软件开发的开始阶段 xff0c 输入可以是为了提高工作效率的某个好的想法或者是公司领导为了帮助管理发出
  • 【HP Cloud Recovery+暗影精灵4】 换固态+恢复惠普原厂系统

    软件工程专业 xff0c 电脑里自然会安装各种软件 用了一年零几个月 xff0c 不插电开机后进入桌面后得等一会儿才能打开应用程序 xff1b 插电开机稍微快一点 xff0c 但是文件管理有时会崩溃 趁着处于假期 xff0c 于是决定换个固
  • Jetson TX2 安装 Realsense D435 SDK

    Jetson TX2 安装 Realsense D435 SDK 一 主要内容 Jetson TX2 重装系统重建内核并安装SDK 二 Jetson TX2 重装系统 三 重建内核并安装SDK realsense官方提供的SDK安装方法无法
  • Nuxt 状态保持

    最近工地没啥砖头搬 找找可以研究的地方 业务需求在Nuxt的SSR状态下 需要记录用户的登录状态 状态保持有两种方案 1 使用vuex persistedstate将本地缓存的数据和vuex的数据合并 只能在客户端内拿到token状态 2
  • C++:类和对象: 友元

    概念 1 xff1a 程序中 xff0c 某个类的私有属性 可以让类外 一些特殊函数或者类进行访问 xff0c 这个就是友元技术 2 有元的关键字是 xff1a friend 3 xff1a 友元的三种实现 xff1a 全局函数做友元 类做
  • C++笔试题目大全

    1 new delete malloc free 关系 delete 会调用对象的析构函数 和 new 对应 free 只会释放内存 xff0c new 调用构造函数 malloc 与 free 是 C 43 43 C 语言的标准库函数 x
  • 视觉里程计(VisualOdometry)原理及实现

    一 视觉里程计 VisualOdometry 介绍 目前 xff0c 有不止一种方式可以确定移动机器人的轨迹 xff0c 这里将重点强调 视觉里程计 这种方法 在这种方法中 xff0c 单个相机或者双目相机被用到 xff0c 其目的是为了重
  • 布谷鸟算法详细讲解

    今天我要讲的内容是布谷鸟算法 xff0c 英文叫做Cuckoo search CS algorithm 首先还是同样 xff0c 介绍一下这个算法的英文含义 xff0c Cuckoo是布谷鸟的意思 xff0c 啥是布谷鸟呢 xff0c 是一
  • Linux c socket 实现http

    include lt stdio h gt include lt sys socket h gt include lt sys types h gt include lt time h gt include lt errno h gt in
  • 在latex中自动调整单词换行

    在latex中自动调整单词换行 xff0c LaTeX 特殊符号 加帽子符号 横线和波浪线 LaTeX 特殊符号 加帽子符号 横线和波浪线 xff1a https blog csdn net qq 17528659 article deta
  • 磁力机航向角计算与补偿

    地理坐标系下该点的磁场强度为 xff08 M 0 xff0c D xff09 xff0c 磁力计测得的三轴磁场强度为 xff08 mx my mz xff09 当我们认为飞机是完全水平放在地上的时候 xff0c 即Z轴和Zb轴是平行的时候
  • 自定义串口通信协议

    原题叙述 有若干个温度采集器 xff0c 每个温度采集器可实现8路温度的测量 试设计一个通信协议 xff0c 用于温度采集器与上位计算机的串行通信协议 xff0c 可实现温度采集数据上传 上位机控制每路温度测量通的开启功能 作业提交方式 x
  • APM:参数设置与启动

    APM agent 参数 Delastic apm service name 61 my test service Delastic apm application packages 61 com yiz Delastic apm serv
  • matlab入门4-mdlInitializeSizes解析

    文章目录 1 DirFeedthrough的设置2 DirFeedthrough的帮助文档3 参考链接 xff1a 1 DirFeedthrough的设置 sizes DirFeedthrough 61 0 1 简而言之 xff0c 只要在
  • 一个JAVA程序员成长之路分享

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