工作了挺久,发现有个挺有意思的现象,从程序员、高级程序员,到现在挂着架构师、专家之类的头衔,伴随着技术和能力的提高,想不明白的事情反而越来越多了。

这些疑问有些来自于跟小伙伴的交流,有些是我的自问自答,有些到现在也想不清楚,这篇文章就来写一写这些年来自己的从业心得。

记得有人说过一句话,大体意思是:现在计算机技术发展那么迅速,日新月异,那些学计算机技术的人,要不断学习才能不被淘汰,那些人的脑子是不是坏掉了,干嘛要让自己活的这么累?表示不解。不想时隔几年,我也进入了这个飞速发展的IT行业。大概是随着时间的推移,个人价值观也随之改变了吧!

初入这个行业的Java程序员是迷茫的,处在金字塔的最底端,拿可怜的薪水,无休止的加班,被“高薪”和“码农”的代名词交替映射着,亦步亦趋的行进着,什么职业规划都是飘渺的空虚的,月光族都是向钱看的。直到无意看到一篇针对Java程序员的文章,感觉收获颇丰。似乎有一种拨开云雾见月明的感觉

一、认识现在自己,想要什么样的生活

当我们还不能确定自己的职业规划时,我们可以先确定一个目标,哪怕是以薪资为目标,为了实现这个目标,我们必定会为之奋斗,低薪时,只管低头学技术,当你成为资深程序员,才可以望向更远的发展线:专家线和管理线,一个跟机器打交道,一个跟人打交道。

把自己当做一种商品,商品必然存在价值,使用价值和交换价值。说的通俗点即你能给雇主创造多少财富。提高个人能力是一方面,还有一个技巧是选择更好的细分市场。感触很深的一点是通过网络提升个人品牌,一方面可以将个人所学知识进行梳理,同时可以锻炼自己的逻辑能力、语言表达能力,最重要的是可以分享,让更多的人学习,共同成长。

二、作为程序员,你首先要问自己一个问题:“我真的喜欢编程吗

我能确定我当程序员不仅是为了养家糊口,而是为了实现自己的人生价值吗?” 这一点非常重要。如果你的答案是为了养家糊口,那么很可能你成为不了一个优秀的程序员,而且在这条路上你越走越疲倦;如果你的答案是真心喜欢编程,那也很可能说明不了什么问题,除非你每天都在主动地学习和进步。

请先忘却它可能给你带来的奖励,而是切实的学习知识,充实自己,奖励只是你进步途中的副产品。如果你做一件事情前先考虑它有没有价值,会不会给你带来收益,那么你在当时的环境中很难看清楚一件事情对以后有没有价值。

永远不要把自己的成长完全寄托给公司,希望新人都能认识到这一点,公司好的项目会很锻炼人,但是每个人在项目中都只是一颗螺丝钉,只会负责某一个模块,自己不主动去探索,没有人会给你介绍整个系统的架构和工作原理。在我的成长过程中,一般有2个习惯,一个是搞清楚整个项目是做什么的,有哪些模块,整个系统是如何架构和设计的?另一个习惯是从自己负责的模块开始发散,找到一个又一个兴趣点利用业余时间进行深入地学习。无论做什么方向,都是可以不断积累和锻炼这些能力的,不用太过于关注某个方向有没有前途,个人综合能力提高了,切换方向很快的。

三、独当一面的能力

个人认为这是任何做技术的终极目标,在我的成长过程中,转过很多方向,但是无论做哪个方向,我都会不断地以这个标准来审问和要求自己,如果上面没有更大的大牛在,我能否独立搞定?为什么没有这个信心,哪方面还很欠缺?后面的成长过程中,则努力去弥补这块短板。

如今网络发达,很多功能都能在网上找到现成的代码参考,或者找到不错的开源项目,站在他人的肩膀上,我们往往能够快速地完成某些功能。但千万不要过早地洋洋得意,记住,快速做出来是一种能力,能深入理解原理又是另一种能力,它们并不相等。做技术不要浮于表面,得过且过,用完了某些开源库,完成某些项目之后,一定要抽时间深入去了解底层原理,这样才能真正得到升华和提高。

据不完全统计,截至目前(2017.07)为止,中国Java程序员的数量已经超过了100万。而且,随着IT培训业的持续发展和大量的应届毕业生进入社会,Java程序员面临的竞争压力越来越大。那么,作为一名Java程序员,怎样努力才能快速成长为一名高级的程序员或者架构师,或者说一名优秀的高级工程师或架构师应该有怎样的技术知识体系,这不仅是一个刚刚踏入职场的初级程序员,也是工作三五年之后开始迷茫的老程序员,都必须要面对和想明白的问题。为了帮助大家少走弯路,我总结出一个Java程序员的工作2-5年成长路线图。

针对上面图里的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,很多问题其实答案很简单,但是背后的思考和逻辑不简单,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶群:454377428,群里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。

一名Java架构师分享自己的从业心得,从码农到架构师我用了八年的更多相关文章

  1. 文章推荐一个Java程序员跟大家谈谈从业心得

    一个Java程序员跟大家谈谈从业心得 2017-10-21 java那些事 java那些事 java那些事 微信号 csh624366188 功能介绍 分享java开发中常用的技术,分享软件开发中各种 ...

  2. 一个工作三年左右的Java程序员和大家谈谈从业心得

    转发链接地址:https://mp.weixin.qq.com/s/SSh9HcA5PgMHv7xiolQkig 貌似这一点适应的行业最广,但是我可以很肯定的说:当你从事web开发一年后,重新找工作时 ...

  3. 阿里Java架构师分享自己的成长经历,教你如何快速成长为架构师

    架构师是公司的“金领”,很少需要考虑生存的问题,从而有更多的精力思考关键技术,形成“强者愈强”的良性循环.当然,冰冻三尺非一日之寒,成为一名合格的架构师是一个漫长的积累过程.对于大部分的软件开发人员来 ...

  4. 十年Java架构师分享

    看到一篇十年java架构师分享需要掌握的技术点,有时间对照一下,好好学习一下. ------------------------------------------------------------ ...

  5. 腾讯架构师分享的Java程序员需要突破的技术要点

    一.源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂. 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心. 我认为是阅读源码的最核心 ...

  6. 百度架构师带你进阶高级JAVA架构,让你快速从代码开发者成长为系统架构者

    百度架构师带你进阶高级JAVA架构,让你快速从代码开发者成长为系统架构者 1.

  7. 阿里钉钉技术分享:企业级IM王者——钉钉在后端架构上的过人之处

    本文引用了唐小智发表于InfoQ公众号上的“钉钉企业级IM存储架构创新之道”一文的部分内容,收录时有改动,感谢原作者的无私分享. 1.引言 业界的 IM 产品在功能上同质化较高,而企业级的 IM 产品 ...

  8. JAVA学习资源分享

    JAVA学习资源分享 最高端的JAVA架构师资源(来自龙果学院 价值¥1399元).JAVA互联网分布式架构(龙果学院 价值¥899元).Spring Boot(2017年最新 包括源码原理分析) + ...

  9. 作为一名Java开发工程师需要掌握的专业技能

    在学习Java编程完之后,学员们面临的就是就业问题.作为一名Java开发工程师,企业在招聘的时候,也是有一定的标准的. 为了帮助大家更好的找到适合自己的工作,在这里分享了作为一名Java开发工程师需要 ...

随机推荐

  1. caffe之路-SIGTERM信号捕捉

    Caffe在1.0版本仅支持两种信号的处理: 1) SIGHUP 2) SIGINT SIGHUP:caffe接收到此信号后进行snapshot,并不会中断caffe的训练. SIGINT:caffe ...

  2. 错误代码: 1242 Subquery returns more than 1 row

    1. 错误描述 1 queries executed, 0 success, 1 errors, 0 warnings 查询:SELECT t.id, DATE_FORMAT( t.statisTim ...

  3. WebService之CXF注解报错(二)

    WebService之CXF注解 1.具体报错如下 五月 04, 2014 11:24:12 下午 org.apache.cxf.wsdl.service.factory.ReflectionServ ...

  4. meta的各种参数

    <!DOCTYPE html> <!-- 使用 HTML5 doctype,不区分大小写 --> <html lang="zh-cmn-Hans"&g ...

  5. jQuery.isPlainObject()的作用

    jQuery.isPlainObject()函数用于判断指定参数是否是一个纯粹的对象. 所谓"纯粹的对象",就是该对象是通过"{}"或"new Obj ...

  6. 初入前端框架bootstrap--Web前端

    Bootstraps是一种简洁.直观.强悍的前端开发框架,它让web开发更迅速.简单.对于初入Bootstrap的小白,高效进入主题很重要,能为我们节省很多时间,下面我将对使用Bootstrap开发前 ...

  7. Python Cookbook(第3版)中文版:15.21 诊断分段错误

    15.21 诊断分段错误¶ 问题¶ 解释器因为某个分段错误.总线错误.访问越界或其他致命错误而突然间奔溃. 你想获得Python堆栈信息,从而找出在发生错误的时候你的程序运行点. 解决方案¶ faul ...

  8. 【BZOJ4403】序列统计(组合数学,卢卡斯定理)

    [BZOJ4403]序列统计(组合数学,卢卡斯定理) 题面 Description 给定三个正整数N.L和R,统计长度在1到N之间,元素大小都在L到R之间的单调不降序列的数量.输出答案对10^6+3取 ...

  9. [UOJ207]共价大爷游长沙

    UOJ sol 这题真是太神啦! 对于S集合中的每个点对,给他们随机附上一个相同权值. 两个点在边(x,y)的两侧当且仅当一个点在x的子树中,另一个点不在x的子树中(假设x是y的儿子) 维护一下子树点 ...

  10. 一个题目涉及到的50个Sql语句

    原博客地址 http://blog.csdn.net/maco_wang/article/details/6281484 Student(S#,Sname,Sage,Ssex) 学生表 Course( ...