IT 时代的膨胀已经让编码工作如同文艺复兴时的印刷匠一样,编码门槛越来越低。
例如,遍地《一周XX速成》、《20天XX精通》,仿佛会写代码就成了程序员,这让很多人认为从事编码工作就是码农。
其实,印刷匠很多,成为大师的不多;码农很多,但程序员并不多。程序员不是码农,码农也不是真正的程序员。
程序员在英文里对应有三个单词:Coder、Programmer 和 Software Engineer。
我觉得这三个词,生动形象地描述了程序员所需要经历的三个阶段,或者说三个境界:
Coder:只要求能够熟练使用编程环境,精通几种编程语言、开发框架和开发库,擅长写代码就可以了。这个阶段的程序员能够按照既定的设计完成编码。
Programmer:要求在 Coder 的基础之上,精通设计模式、算法实现和编码技巧,并具备熟练应用的能力,这个阶段的程序员能够独立编码解决现实问题。
Software Engineer:要求在掌握业务知识的前提下,理解为什么这么实现,在综合考虑架构实现,权衡开发成本后,为解决业务问题提出最优方案,并能与业务人员顺畅沟通,让业务人员理解方案。
编码工作达到这个阶段,才能称得上是真正的程序员,才真正实现了从工作到职业的转变。
不可否认,这个世界上有一些天才的程序员,他们喝着咖啡,哼着歌,便完成了上面三个阶段的修炼。但绝大部分人,都需要为此付出巨大的时间和精力。
能否成为职业的程序员,影响因素和方法论很多,各种学习类、技术类的总结遍地都是:主动思考、及时总结、制定规划等。但我认为其中最重要的是能否做到专注。
许多没有达到第三个阶段的程序员,就是因为受到各种因素诱惑,变得心猿意马,不够专注。
因为不够专注,他们不在意做好自己本职工作,不在意锤炼自己的技能,不在意学习新兴的技术。
慢慢的,他们会认为从事编码没有出路,进而毫无例外地把编程看成是体力劳动,只会粘贴拷贝代码,知其然而不知其所以然,导致技术停滞不前。
在这样的状态下工作 5 年、10 年,对于他们来说,没什么区别,程序员真的就是吃青春饭的码农。
当我们向老板提出加薪的时候,或者跳槽去“捡”offer的时候,我们底气够吗?
敢不敢不给涨薪就“挥一挥衣袖,不带走一个bug”?是不是提出要求后你的主管、经理立刻
同意,为了把你留住。然而,现实往往是...
技术不过硬,其他的都免谈。
针对这样的情况
在这里为大家列出以下体系图
针对下面的技术我特意整理了一下,有很多技术不是靠几句话能讲清楚,所以干脆找朋友录制了一些视频,要做到知其然还要知其所以然。如果想学习Java工程化、高性能及分布式、深入浅出。性能调优、Spring,MyBatis,Netty源码分析的朋友可以加我的Java进阶君羊609164807,君羊里有阿里大牛直播讲解技术,以及Java大型互联网技术的视频免费分享给大家。
进:可以领取免费的架构师学习资料。
进:了解最新的学习动态
进:了解最新的阿里,京东招聘资讯
进:获取更多的面试资料
可以参考一下学习
1. 工程化专题
一名优秀的架构师必须有适合自己的兵器,也就是工欲善其事必先利其器,不管是小白,还是资深开发,都需要先选择好的工具。工程化专题的学习能帮助你和团队提升开发效率,让自己有更多时间来思考。
Git:可以更好地管理你和你团队的代码。
Maven:可以更好地管理jar包和项目的构建等。
Jenkins:可以更好地持续编译,集成,发布你的项目。
Sonar:一个开源的代码质量分析平台,便于管理代码的质量,可检查出项目代码的漏洞和潜在的逻辑问题(提升代码的质量,更加高效地提升开发效率)。
(团队大于3个人之后,你需要去考虑团队合作,科学管理)
2.源码分析专题
学习Java技术体系,设计模式,流行的框架与组件是必不可少的:
源码分析专题详细介绍了源码中所用到的经典设计思想及常用设计模式,先打好内功基础,了解大牛是如何写代码的,从而吸收大牛的代码功力。
结合Spring5和MyBatis源码,带你理解作者框架思维,帮助大家寻找分析源码的切入点,在思想上来一次巨大的升华。
(好的程序员,一行代码一个设计就能看出来,源码分析带你品味代码,感受架构)
3.分布式架构
有了大牛的代码功底之后,接下来可以更好地学习分布式架构技术。
分布式架构的好处和优点---->必然性,适应市场需求,能够去找一些更大的平台发展,提升自己的综合技术能力和薪资。
从分布式架构原理,到分布式架构策略,再到分布式架构中间件,最后会有分布式架构实战,让程序员可以在技术深度和技术广度上得到飞跃的提升,成为互联网行业所需要的T型人才。
(跟上技术节奏,扩宽技术视野,程序员要往上提升,要有自己的技术工具箱和技术认知。)
4.微服务架构专题
随着业务的发展,代码量的膨胀和团队成员的增加,传统单体式架构的弊端越来越凸显,严重制约了业务的快速创新和敏捷交付。为了解决传统单体架构面临的挑战,先后演进出了SOA服务化架构、RPC框架、分布式服务框架,最后就是当今非常流行的微服务架构。微服务化架构并非银弹,它的实施本身就会面临很多陷阱和挑战,涉及到设计、开发、测试、部署、运行和运维等各个方面,一旦使用不当,则会导致整个微服务架构改造的效果大打折扣,甚至失败。
微服务架构专题
5.性能优化
大家都知道,这个一直是让程序员比较头疼的问题。当系统架构变得复杂而庞大之后,xing能方面就会下降,如果想成为一名优秀的架构师,xing能优化就是你必须思考的问题。
(追求高效、科学调优,不靠碰运气)
6.高并发
从Java基础接触多线程,到分布式架构环境下的高并发访问,并发编程充分利用好各个服务器处理器,以最高的效率处理各个任务协同有序工作。透彻理解锁的应用
7.电商项目
电商项目目的是把所学的分布式,微服务,性能调优等知识运用起来,只有在项目中你才能巩固知识,提升自己。实践电商项目会利用云服务器搭建真实的开发和部署环境,让你从零到项目实战,体验真实的企业级项目开发过程,让你具备独立开发和搭建分布架构系统的能力。
这是高级Java开发人员最常访问的几个网站。 这些网站提供新闻,一般问题或面试问题的答案,精彩的讲座等。质量是优秀网站的关键因素,这此网站都有较高的质量内容。下面逐一介绍:
Stackoverflow.com可能是编程世界中最受欢迎的网站。 有数百万个好问题和答案。 学习API或编程语言通常依赖于代码示例,stackoverflow有很多代码段。
stackoverflow的另一件好事是它是社交的。 您可以在某些标签下查看问题,例如 “java”和“regex”,那么可以看到什么问题是最常被问及最多的投票。这可以作为学习的良好资源,也是编写Java博客热门话题的好资源。
网站URL:http://stackoverflow.com/
DZone这个网站很有趣,很多开发者分享他们的博客文章。 分类一般,所以您可能不知道会在这个网站下一步阅读什么东西。
网站URL:http://www.dzone.com
如果面试问题是java,比如“Java中内存中的数组看起来像什么”,那么可以从很多Java教程中获得答案。 但是,如果问题类似于“如何将已排序的数组转换为平衡树”,这此可以从LeetCode中找到。
leetcode是一个准备IT技术访谈的社交平台,并包含一系列算法相关问题。 可以通过提供不同大小的数据来检查你的代码是否正确。 要在技术面试中取得成功,他们认为主要是重复这三个重要步骤:代码→阅读→讨论。
网站URL: http://leetcode.com/
本网站包含您将需要使用Java SE的API的所有文档。 即使是高级Java开发人员,确信您会在这里找到一些有用的东西。 例如,您可以阅读“基本Java类”,“部署”等的一些教程。
网站URL: http://docs.oracle.com/javase/
您可以在Github上免费托管项目,但您可能不知道它是学习流行Java库和框架的极好资源。 例如,如果你想学习Spring MVC框架,可以搜索并找到一些开源项目。 可以通过示例快速学习框架,特别是如果您已经有了类似框架的一些经验。
网站URL: https://github.com/
这是视频学习的最佳网站。 可以从顶尖学校的着名教授那里找到很多很好的计算机科学课程。 其中一些甚至是一些计算机科学领域的发明者。
网站URL: https://www.coursera.org/
这个网站包含了大量关于各种主题的Java教程。 很多文章都写得很好,并有插图的图片/图表。 它可以用作深度学习的书。
网站URL: http://www.javaworld.com/