精华内容
下载资源
问答
  • 成为Java技术专家需要掌握的知识点

    千次阅读 2019-03-06 11:24:57
    总结了一下自己的现状就是基础太渣,虽然说下面罗列的Java很多东西平常都用不到,但是如果想要成为与Java/Scala相关岗位的技术专家,就必须对这些基础非常清楚,随便聊到一个点就能谈一个面。 所以就去找了很多Java...

    好久没有写博客了,前段时间一直忙着投简历、面试,现在也差不多告一段落了。

    总结了一下自己的现状就是基础太渣,虽然说下面罗列的Java很多东西平常都用不到,但是如果想要成为与Java/Scala相关岗位的技术专家,就必须对这些基础非常清楚,随便聊到一个点就能谈一个面。

    所以就去找了很多Java相关比较不错的学习材料,这边汇总了一下,在之后工作之余慢慢学吧。

     

    1、Javadoop 

    https://javadoop.com/

    作者大牛,虽然不是很全面,但是里面每篇都是精品,静下心来必须仔细研究学习。

     

    2、石杉的架构笔记

    https://juejin.im/user/5be0588ae51d452b0255727d

    作者大牛,包含了很多源码解析、项目实践经验、问题处理,也有一些面试相关的技巧。

     

    3、梦想空间-博客园

    http://www.cnblogs.com/ceshi2016/p/6506726.html

    作者大牛,写了对Java程序猿的发展建议,推荐一些阅读的书籍和成长方向,可以少走很多弯路。

     

    4、Java面试通关要点

     https://mp.weixin.qq.com/s/hiIBQu6mAPzYa7QgTNacUA

    作者大牛,整理了几乎所有Java需要掌握的内容,就是一个提纲,需要一个一个耐心去学习。

    微信链接怕丢,这边也把它贴过来存一下:

    基础篇

    基本功

    • 面向对象的特征

    • final, finally, finalize 的区别

    • int 和 Integer 有什么区别

    • 重载和重写的区别

    • 抽象类和接口有什么区别

    • 说说反射的用途及实现

    • 说说自定义注解的场景及实现

    • HTTP 请求的 GET 与 POST 方式的区别

    • session 与 cookie 区别

    • session 分布式处理

    • JDBC 流程

    • MVC 设计思想

    • equals 与 == 的区别

    集合

    • List 和 Set 区别

    • List 和 Map 区别

    • Arraylist 与 LinkedList 区别

    • ArrayList 与 Vector 区别

    • HashMap 和 Hashtable 的区别

    • HashSet 和 HashMap 区别

    • HashMap 和 ConcurrentHashMap 的区别

    • HashMap 的工作原理及代码实现

    • ConcurrentHashMap 的工作原理及代码实现

    线程

    • 创建线程的方式及实现

    • sleep() 、join()、yield()有什么区别

    • 说说 CountDownLatch 原理

    • 说说 CyclicBarrier 原理

    • 说说 Semaphore 原理

    • 说说 Exchanger 原理

    • 说说 CountDownLatch 与 CyclicBarrier 区别

    • ThreadLocal 原理分析

    • 讲讲线程池的实现原理

    • 线程池的几种方式

    • 线程的生命周期

    锁机制

    • 说说线程安全问题

    • volatile 实现原理

    • synchronize 实现原理

    • synchronized 与 lock 的区别

    • CAS 乐观锁

    • ABA 问题

    • 乐观锁的业务场景及实现方式

    核心篇

    数据存储

    • MySQL 索引使用的注意事项

    • 说说反模式设计

    • 说说分库与分表设计

    • 分库与分表带来的分布式困境与应对之策

    • 说说 SQL 优化之道

    • MySQL 遇到的死锁问题

    • 存储引擎的 InnoDB 与 MyISAM

    • 数据库索引的原理

    • 为什么要用 B-tree

    • 聚集索引与非聚集索引的区别

    • limit 20000 加载很慢怎么解决

    • 选择合适的分布式主键方案

    • 选择合适的数据存储方案

    • ObjectId 规则

    • 聊聊 MongoDB 使用场景

    • 倒排索引

    • 聊聊 ElasticSearch 使用场景

    缓存使用

    • Redis 有哪些类型

    • Redis 内部结构

    • 聊聊 Redis 使用场景

    • Redis 持久化机制

    • Redis 如何实现持久化

    • Redis 集群方案与实现

    • Redis 为什么是单线程的

    • 缓存奔溃

    • 缓存降级

    • 使用缓存的合理性问题

    消息队列

    • 消息队列的使用场景

    • 消息的重发补偿解决思路

    • 消息的幂等性解决思路

    • 消息的堆积解决思路

    • 自己如何实现消息队列

    • 如何保证消息的有序性

    框架篇

    Spring

    • BeanFactory 和 ApplicationContext 有什么区别

    • Spring Bean 的生命周期

    • Spring IOC 如何实现

    • 说说 Spring AOP

    • Spring AOP 实现原理

    • 动态代理(cglib 与 JDK)

    • Spring 事务实现方式

    • Spring 事务底层原理

    • 如何自定义注解实现功能

    • Spring MVC 运行流程

    • Spring MVC 启动流程

    • Spring 的单例实现原理

    • Spring 框架中用到了哪些设计模式

    • Spring 其他产品(Srping Boot、Spring Cloud、Spring Secuirity、Spring Data、Spring AMQP 等)

    Netty

    • 为什么选择 Netty

    • 说说业务中,Netty 的使用场景

    • 原生的 NIO 在 JDK 1.7 版本存在 epoll bug

    • 什么是TCP 粘包/拆包

    • TCP粘包/拆包的解决办法

    • Netty 线程模型

    • 说说 Netty 的零拷贝

    • Netty 内部执行流程

    • Netty 重连实现

    微服务篇

    微服务

    • 前后端分离是如何做的

    • 微服务哪些框架

    • 你怎么理解 RPC 框架

    • 说说 RPC 的实现原理

    • 说说 Dubbo 的实现原理

    • 你怎么理解 RESTful

    • 说说如何设计一个良好的 API

    • 如何理解 RESTful API 的幂等性

    • 如何保证接口的幂等性

    • 说说 CAP 定理、 BASE 理论

    • 怎么考虑数据一致性问题

    • 说说最终一致性的实现方案

    • 你怎么看待微服务

    • 微服务与 SOA 的区别

    • 如何拆分服务

    • 微服务如何进行数据库管理

    • 如何应对微服务的链式调用异常

    • 对于快速追踪与定位问题

    • 微服务的安全

    分布式

    • 谈谈业务中使用分布式的场景

    • Session 分布式方案

    • 分布式锁的场景

    • 分布是锁的实现方案

    • 分布式事务

    • 集群与负载均衡的算法与实现

    • 说说分库与分表设计

    • 分库与分表带来的分布式困境与应对之策

    安全&性能

    安全问题

    • 安全要素与 STRIDE 威胁

    • 防范常见的 Web 攻击

    • 服务端通信安全攻防

    • HTTPS 原理剖析

    • HTTPS 降级攻击

    • 授权与认证

    • 基于角色的访问控制

    • 基于数据的访问控制

    性能优化

    • 性能指标有哪些

    • 如何发现性能瓶颈

    • 性能调优的常见手段

    • 说说你在项目中如何进行性能调优

    工程篇

    需求分析

    • 你如何对需求原型进行理解和拆分

    • 说说你对功能性需求的理解

    • 说说你对非功能性需求的理解

    • 你针对产品提出哪些交互和改进意见

    • 你如何理解用户痛点

    设计能力

    • 说说你在项目中使用过的 UML 图

    • 你如何考虑组件化

    • 你如何考虑服务化

    • 你如何进行领域建模

    • 你如何划分领域边界

    • 说说你项目中的领域建模

    • 说说概要设计

    设计模式

    • 你项目中有使用哪些设计模式

    • 说说常用开源框架中设计模式使用分析

    • 说说你对设计原则的理解

    • 23种设计模式的设计理念

    • 设计模式之间的异同,例如策略模式与状态模式的区别

    • 设计模式之间的结合,例如策略模式+简单工厂模式的实践

    • 设计模式的性能,例如单例模式哪种性能更好。

    业务工程

    • 你系统中的前后端分离是如何做的

    • 说说你的开发流程

    • 你和团队是如何沟通的

    • 你如何进行代码评审

    • 说说你对技术与业务的理解

    • 说说你在项目中经常遇到的 Exception

    • 说说你在项目中遇到感觉最难Bug,怎么解决的

    • 说说你在项目中遇到印象最深困难,怎么解决的

    • 你觉得你们项目还有哪些不足的地方

    • 你是否遇到过 CPU 100% ,如何排查与解决

    • 你是否遇到过 内存 OOM ,如何排查与解决

    • 说说你对敏捷开发的实践

    • 说说你对开发运维的实践

    • 介绍下工作中的一个对自己最有价值的项目,以及在这个过程中的角色

    软实力

    • 说说你的亮点

    • 说说你最近在看什么书

    • 说说你觉得最有意义的技术书籍

    • 工作之余做什么事情

    • 说说个人发展方向方面的思考

    • 说说你认为的服务端开发工程师应该具备哪些能力

    • 说说你认为的架构师是什么样的,架构师主要做什么

    • 说说你所理解的技术专家

     

    展开全文
  • 如何成为Java技术专家

    千次阅读 2016-05-18 16:13:10
    首先声明,我不是专家。我还在路上,或许我永远也成为不了专家。不是我不够自信,而是对于知识应该保持敬畏之心。不知不觉工作快五年了,但仍然有很多困惑没有解开,写作此文,是为自己,也希望和与我类似的朋友探讨...

            首先声明,我不是专家。我还在路上,或许我永远也成为不了专家。不是我不够自信,而是对于知识应该保持敬畏之心。不知不觉工作快五年了,但仍然有很多困惑没有解开,写作此文,是为自己,也希望和与我类似的朋友探讨交流和分享。

            有些人或许生来就适合干这个行业,这也是大型互联网公司所希望的人才。假如你不是,当然我也不是,但是这并不妨碍我们在这个行业里实现自己的价值和理想。前提是我们需要更努力,更重要的是要学会思考,更更重要的是有上进心。

            亡羊补牢,为时未晚。假如从工作的一开始,我就去解决自己所遇到的所有困惑,我想我或许该是个专家了。当然,是没有假如的,虽然我最近才意识到这个问题,也不是说晚点就不行。通常如果想要再把自己提高一点,认识到自己的问题是第一步。然后再想自己的目标以及该做什么,其实就是自己想要什么,如何做的问题。

             我这里说的技术专家是狭义的专家,这是由我现在的层次决定的,仅是下一阶段的目标而已。没有解决自己所遇到的困惑是我存在的最大的问题,在工作中解决完实际问题之后,并没有及时分析和总结。不管问题是大还是小,都是不应该姑息的,这需要面对真正的自己,一个优秀的人就是不断改正自己的缺点。我所存在的问题其实就是没有知其所以然的问题,所以我要解决的问题首先就是这个。

             知其所以然就是了解更深底层的东西,去了解技术的实现原理。这样做的好处是为了更好的将一项技术应用于实际工作中。在开始去研究原理的东西的时候,是比较难的,涉及的东西也比较多,但是大多都是相互关联的,当真正理解后积累了一些知识点的时候,再去学习的别的东西时候就变得容易一些。如果有着这样的学习态度和求知欲,往往还会有更多的困惑,似乎不知道的东西更多了,时刻保持这样的心态是最好的。

             这种学习和研究不是一蹴而就的,需要坚持和专注,耐得住寂寞。知识需要温故而知新,多看几遍理解就更深,常看常新。以上所说没有什么干货,我在学习过程中发现的最好的学习方式就是做笔记,总结成博客,这不同于单纯的抄写,需要进行一番思考。如果过往累积的困惑太多,积重难返,需要给自己更长的时间和更多的耐心。

             Java的知识是很多的,很多人困惑从何看起,我开始也困惑过。我的意见是从自己最熟悉的学起。我就是从HashMap的原理开始看的,当然事出有因,因为之前面试的时候被问到过HashMap的工作原理。自此我也发现,Java集合类的源码是很好的学习工具,毕竟都是大师级的人物写的。其中涉及到数据结构和多线程的知识,然后再慢慢拓展的去研究。

             刚毕业的时候,偶然间喜爱上了台球,当时很菜,但是不懈追求,不断思考和感悟,现在偶尔也能一杆清台。

            具体做到什么样的地步才能成为Java技术专家,就看个人悟性了。我这个快而立之年的程序员,都不怕从头开始,还有什么是可怕的呢。

            别逼老子认真!

    展开全文
  • 大家口中的P8,通常都是阿里P8高级技术专家,是一线Team leader或者二级域架构师,需要对一个领域的业务非常熟悉并且能够将影响力辐射到其他合作团队。一般来说一些业...

    大家口中的P8,通常都是阿里P8高级技术专家,是一线Team leader或者二级域架构师,需要对一个领域的业务非常熟悉并且能够将影响力辐射到其他合作团队。


    一般来说一些业务架构、应用架构、产品功能决策、技术选型、协作分工等问题应该在P8层次终结,P8是一线作战的小队长,向下提供决策,向上提供有效的信息。


    P8 Java技术专家,不仅要具备优秀的编程能力和系统设计能力,在技术视野和业务洞察力方面,也要有很深的积淀。

    经过我半年多的整理,今天刚好有此机会,我整理了一份架构图谱,主要是针对2-5年左右的Java开发程序员提升的,不管是传统行业还是互联网行业,掌握这些技术基本都能拿到一个不错的薪资,希望对大家有所帮助。

    640?wx_fmt=png640?wx_fmt=png640?wx_fmt=png

    640?wx_fmt=png


    阿里是Java大厂,所以可以参考阿里的标准,而对P8的要求是什么呢,以下4个小结可以作为参考。

    1.代码能力

    代码能力是基本功,Java语言本身,包括语言的各个方面包括对并发的理解,对内存使用对理解,对Java运维的理解等等语言本身外,社区里常用的框架是否可以十分清晰的了解,包括spring,包括他实现的ioc,aop,orm,web机制是否有清楚的认识,有丰富的经验等等。


    2.对常用中间件的理解

    毕竟在一个大系统中,各种中间件是是否常见的,缓存中间件,消息中间件,例如 redis、memcache、rmq这些要理解常用中间件使用场景,使用姿势(例如redis的常用命令),甚至包括他的一些运维一旦出了问题,除了专门的运维人员,也需要你参与问题的排查,因为有时候这些中间件出现问题,是不当的使用姿势引起的。


    3.架构、业务落地能力

    前面提到了语言本身,各种中间件,如果你有很好的业务抽象能力和架构思维,就可以把一款部门内部产品很好的设计并实施了,这点蛮难的,想必都有过接手现有项目的经历吧,有时候真恨不得把之前的设计者拿出来批斗,作为一个设计者,你能否做到当下一个接手它的人会说一句,这个系统设计的真好,稳定又可拓展,理解起来也很容易。


    4.沟通协作

    毕竟一个部门内部产品,是不可能由一个人完成的,所以需要沟通协作,把设计好的方案,要和2-3个小伙伴一起实施,包括同样身份的后端人员,前端人员,产品等角色这个级别的人可能会参与带2-3个人,例如应届毕业等,所以你自己对知识的把握,分享精神,leadership都是很好的加分项。

    针对技术这一块,我自己除了整理了一份架构图谱,还找朋友录了一些视频,和自己收集了一些视频,讲解的都是一线大牛,里面包括了一些Java分布式、微服务架构、源码分析、性能优化、并发编程等技术视频,这段时间面试跳槽的朋友比较多,还有一套BAT面试题合集,我都分享在网盘里了,欢迎前来下载。


    第一阶段

    第一阶段主要从 svn/git 版本控制、Java高并发、JVM虚拟机、RPC架构实战、Redis、Hadoop、高并发分布式项目实战、Nginx、Tomcat负载均衡和调优的角度来学习。


    640?wx_fmt=png


    第二阶段

    第二阶段主要从架构设计、分布式、Niginx负载均衡、ActiveMQ集群、高可用MySQL、Storm流、Mycat分布式架构、分布式系统案例实战等方面来学习。

    640?wx_fmt=png


    第三阶段 第三阶段主要注重架构实践: 从高并发高级群分布式、高可用可扩展、Java高并发系统架构实例、高并发数据库设计、MySQL主从复制和高可用集群、海量数据库架构设计等方面学习。


    640?wx_fmt=png


    第四阶段
    第四阶段主要从互联网高并发解决方案、Java高级架构师、大数据、大数据底层算法、分布式数据库架构详解、等方面来学习。


    640?wx_fmt=png


    面试资料大全 珍藏多年的最全面的Java面试解答视频,今天忍痛割爱分享出来。


    640?wx_fmt=png


    Java电子书


    640?wx_fmt=png


    免费资料领取仅限100人,先到先得

    添加助理小姐姐微信
    暗号:“666”,否则不予通过好友

    640?wx_fmt=png

    640?wx_fmt=jpeg


    展开全文
  • 如何一步一步成为一个领域专家

    万次阅读 多人点赞 2021-01-30 12:58:59
    经常有人问我,为什么有的人工作10年仍然平台无奇,而有的人只用3年时间,就已经...有人说成为专家要靠经验 ,任何一个工作10年以上的人都很有经验,他们通常在本领域有1万小时的实践时间,但是现实是他们大部分并没有.

    经常有人问我,为什么有的人工作10年仍然平台无奇,而有的人只用3年时间,就已经脱颖而出,成绩斐然。我说,是呀,有些参加工作多年却仍然只会复制粘贴简单业务代码,有些人在大学就写出Linux操作系统。其实这种巨大的差异在我们工作生活中反反复复出现,同时很多行业专家在不断的与普通人拉开距离,就像穷人和富人的财富不断距离不断拉大一样。

    一个优秀的开发者只需要三个键

     

    原因在哪里呢?有人说成为专家要靠经验 ,任何一个工作10年以上的人都很有经验,他们通常在本领域有1万小时的实践时间,但是现实是他们大部分并没有做到领域内专家。记得好像有个每个的商学院有一项研究发现:比起只有少量经验的人,大体而言,更有经验的管理者并没有产生高效的效果。

    有人说要靠天赋,他们搬来爱迪生的名言 “天才就是百分之一的灵感,和百分之九十九的汗水。但是,这百分之一的灵感远比百分之九十九的汗水重要”,嗯,爱迪生说的当然有道理,后半句更有道理(好像小学老师刻意忘记教导我们后半句了),但是我们这里讨论的是如何成为专家,我们只是要成为专家,而不是要挑战爱迪生这样的天才或者他的手下“最接近神的男人”特斯拉。研究表明,天赋在成为专家这个普通难度的挑战中,并不是决定因素。

    那什么是真正的决定因素呢?

    著名心理学家艾利克森在“专业特长科学”领域潜心几十年,研究了一系列行业或领域中的专家级人物:国际象棋大师、顶尖小提琴家、运动明星、记忆高手、拼字冠军、杰出医生等。他发现,不论在什么行业或领域,提高技能与能力的最有效方法全都遵循一系列普遍原则,他将这种通用方法命名为“刻意练习”。对于在任何行业或领域中希望提升自己的每个人,刻意练习是黄金标准,是迄今为止发现的最强大的学习方法。艾利克森把他的研究成果写成了一本书,喏,就是这本。我想现在肯定有人会说,“这本书我看看过,里面的案例都是万年不变的背诵,钢琴,国际象棋,这些技能不太变化的领域,我有108种方式来反驳。。。” 好吧,我想说别那么知乎好不好(当然如果反驳我能让您高兴,那我也挺高兴的,好歹我的文字间接让人快乐了,当然你说这本书很啰嗦,这我倒是同意的),心理学大师的研究对我们是有帮助的,哪怕是在这个变化无比迅速的计算机领域。

    这本书真的很啰嗦

     

    首先 这里的“刻意练习”可以让我们成为专家,为什么普通工作经验不能,区别在哪里?

    区别在于这本书中提到的刻意练习是指为了提高绩效而被刻意设计出来的练习,它有明确的目标,并且要求一个人离开自己的熟练和舒适区域,不断地依据设定好的方法去练习和提高。这种刻意练习而不是单纯的工作经验(俗称摸鱼经验),真正决定了顶尖大师和一般职员的差距。有的人有10年工作经验,但是大部分时间都在无意识地重复自己已经做过的事情,其实可以说是将1年重复过了10次而已,他真正刻意练习的时间可能10小时都不到。有的人进入相关领域只有3年时间,但是每天花费大量的时间做刻意练习,不断挑战自己完成技能的边界,用于刻意练习的时间可能会有2000小时所以,为什么有的人工作10年,仍然不是专家,而有的人只用3年时间,就已经脱颖而出,成绩斐然。他们真是的差异可能是10小时和几千小时的差异,所以他们相应了获得10小时的成果和几千小时的成果,那谁更容易成为专家,结果很明显。

     

    好了,讨论刻意练习能够成为专家的文章很多,如果这篇文章就到这里结束,那我写这篇文章也就没有多大意义了,我们还是继续分析一下,如何在计算机领域成为专家,当然其他领域也适用,只是我们在程序员聚集地当然要讨论的是程序员技能,如果分析的例子是如何成为优秀的厨子当然就不是很合适了。

    如何进行刻意练习呢?

    我认为主要有下面几点

    1、激发刻意练习的意识

       人最最重要的是思维,思维指导你前进的方向,刻意练习也是一样。那所谓激发刻意练习的意识是什么呢? 我的理解就是你这个人,有不断努力自我提升的想法,然后你知道了刻意练习,并且相信它对达成你的目标有帮助,准备开始刻意练习。如果你不想努力,那你如何能够获得成功呢? 刻意练习不是鸡汤,它是确实可以帮助你成功的方法,但是它需要你信任它,并且为之付出努力。 

    2、识别出你需要什么做哪些方面的刻意练习

         有动力,有激情很容易。但是实操呢? 很多人懂得了很多道理,确依然过不好这一生。这关键就在实操上。    好了,我们怎么进行刻意练习呢。我认为最重要的是识别出你需要什么做哪些方面的刻意练习?只有正确的识别出来,达到目标的条件是哪些,然后我们刻意练习才有方向。很多人盲目的努力,不断的翻看着各种公众号,看着里面贩卖焦虑的文章,心里想着我该做什么好呢?其实没有那么麻烦你有有下面几步可以操作。

         1)摸清路线,善用前人总结的系统经验,

             当你初入某个领域,还摸不到方向时,你可以购买优秀书籍,或者到专业论坛,问答网站搜索这个领域的学习路线图,这些网站中优秀的文章不但会告诉你如何快速认识这个领域,如何在这个领域迅速成长,甚至连学习资料都给你收集整理好,而你只需要点个赞就能拿走,当然你也可以打赏,这是一种性价比最高的获取本领域成长路线的方法。比如你要学习Java,这里是CSDN,那我们就找一下关于如何学习Java的文章,比如我随便一搜索就能找到多篇优秀文章,这样我就能迅速知道大概学的的方向。

           但是有的时候,当我们研究的专业比较偏门,或者自己已经度过了中级阶段,正在往专家阶段冲刺,这个时候往往不能轻易找到系统性的前进方向,这个时候该怎么办?我认为这个时候你可以设法请教这个行业的专家(不一定非要专家,哪怕是你能联系上的高手也可以),让已经成为专家的人指点你应该如何去做,必要时可以付费请他指导,其实非常划算,未来收益极高,很多人缺乏这样的远见。其实很多时候你会发现专家会非常乐于无偿指点后辈,大多数情况无需付费,一杯咖啡就能换来交流的机会。另外如果实在无法联系到专家,你可以搜集专家的资料,发表的文章、演讲,观察专家做什么,你就做什么,复制专家的行为是你快速成长的好方法,当然成为顶级那需要有自身的独到见解或者开创新的领域,本文我们只是讨论如何成为普通专家。

        2)识别目标技能,将需要长期训练的技能分解成子技能

           当我们有了基本的前进路线时,我们需要根据自身情况对其进行调整使其更加适合我们自身当前的情况。更重要的一步是分解技能,将复杂的技能如需要耗时1年的技能,分解为若干个练习起来耗时较短的子技能,比如2周(学过算法导论的同学是不是很眼熟啊^-^),随手举个栗子,假如我们经过分析发现要成长为一个优秀的软件专家需要以下技能,随便分的不要纠结正确性完备性这里不是某呼。

         我们发现程序员的编程能力是一个核心能力,但是这个能力太大,太广泛了,如果我把它设定为刻意练习的目标,这显得太大了,一下难以达到,无法具体实施。那怎么办呢,很简单,算法导论,设计模式里已经介绍了啊,分解。比如我随便分解一下

     

          好了,看到了这里的第一项“开发工具使用纯熟度”很多同学就会眼前一亮了吧,这个我可以做啊。对的,现在很简单,无论你用Vim、Eclipse、VS还是什么IDE,你可以设定一个1-2周的刻意练习计划,找到相关资料,专门练习该项目,这样短期只能你的开发工具使用纯熟对迅速提升,后期如果保持日常使用的话,你的水平会稳定保持在一定水准。 对于下一项,数据结构类编程,我们一看,这个范围还是有点大,那就继续分解
    为树类数据结构编程训练,数组类数据结构编程训练等等。

         这里需要特别提醒,不要一直盯着硬技能,软技能同样甚至更加重要,我们也需要将分解,这个时候你可以回到步骤1,按步骤1的方式识别出子技能,当然软技能比较难以识别出子技能,但是也没有必要识别出区分度高的子技能,例如我随手将程序员沟通能力按以下分解^-^

            

     3)反思自己当前的工作是否需要刻意练习

              对于大的方向,明确的方向我们可以容易使用上述方法1,方法2寻找刻意练习的目标,但是还有一个关键点我们往往会忽视,就是很多我们日常习以为常的工作,我们认为没什么的小事情,其实经过刻意练习之后也会产生很大的价值,但我们总是觉得习以为常,而导致忽略。举个例子,眼神交流,有多少人练习过如何使用眼神表达支持,如何用眼神提升谈判的压迫力,如何用眼神制造聊天的亲和力,我想大多数人没有,那有眼神交流没有用呢,对你我不知道,但是我知道对我很有用。又比如,如何写邮件,对同一件事情,如何简洁又不失条理的描述清楚事实,如何优化表达获取领导更多的支持,这也是可以练习的。很多人就是忽略了日常工作中这些值得刻意练习的点,满足于现状,满足于把工作做到60分,而有些人却能发现这些值得刻意练习的点,不满足于仅仅完成工作,而是通过不断刻意练习提升自己,日积月累这些就和普通人拉开差距,更早的达到领域专家。

    感受到我眼神的杀伤力了吗

    3、 设定目标达成激励计划

            分解出了来了,然后怎么办,执行吗? 

           不不要着急,在执行之前,我们还有一个重要的工作要做。要知道,无论什么技能,无论你原来是多么热爱,在长期的刻意练习中,比如长达几千小时的重复训练,这些原来令你感到快乐,高兴的事情,都会慢慢的褪去光泽,变得枯燥,变得味同嚼蜡毫无乐趣可言。因此你需要还需要一份有效的激励计划

          一说到激励计划,很多人马上就说,这很容易啊。比如每次我设定目标时我都会告诉自己,如果达成了就送自己某某奖励,比如一场出国旅游,一个款最新的手机,或者某个心仪已久的东西。 OK,这些激励确实是可以的,但是它的效果很一般,你反思一下,是不是自己很多时候都达成不了目标,而你往往把原因归结为执行力上,其实这些效果低下的激励方式也拖累了你。

           那什么是比较好的激励方式呢? 我认为是即时反馈激励。什么是即时反馈激励呢,说白了就是你刻意练习的成果立马就有反馈,打个最容易理解的比方,比如你最近在减肥,练习了1周,你称重时发现自己轻了3kg这个时候你把自己的健身成果转发到了朋友圈,没过5分钟就有100+好友给你点赞,然后你心里有点小得意,这就是一个典型的即时反馈。研究表明正向的即时反馈可以有效的促进大脑多巴胺的分泌,让你产生喜悦情绪,这回让你产生强烈的刻意练习的动力。 又比如,你最近想要练习逻辑思维能力,你可以定期梳理自己最近的逻辑思维总结,写成文章发到朋友圈、公众号,或者直接找你的好友点评或者即时的反馈,通过不断的反馈,继续练习,反馈,再练习,你刻意练习的技能会迅速成长。再者,你刻意为你分解好的子目标设立激励,比如这周练习好了这个技能,就奖励自己XXX,这样将看起来遥遥无期的激励,分解为触手可及的奖励,这样对你达到长期目标会生成良好效果,当然另外记住分享时你要选对地方,负向激励同样会产生巨大的打击效果。

         总之,设法为你刻意练习的小目标设法找到一个能够获得正向即时激励的好方式,不断的非周期性的激励自己练习。

             

     4、设定练习计划

         在设定好了激励计划的同时,其实我们的练习计划也已经有了眉目。比如一个大目标,分解为若干短期的子目标,我们就不断执行,定期修正即可。但是这里需要补充几点。

         1)不要设定非人性的时间计划

         很多人一提起计划,就把网上哪些大神、学霸的计划表拿过来,比如早上4:30起床,4:50-5:30学习单词,5:30-5:35休息,5:36-6:00学习短句,6:00-6:15吃早饭.... 我想说的是这些时刻安排表大多数是非人性的,对于普通人几乎无法坚持,对于每天上班的打工人来说更难,说不定老板突然找你就会打断自己的计划,所以我建议你最好设定弹性时间表,比如今天上午计划设定3次刻意练习,每次25分钟,你可以在今天上午任何你可以拿出整25分钟的时段进行刻意练习,不用考虑将其固定在某个时间点上,你要你有进入刻意练习的条件,你就迅速进入状态,将其执行完毕,并且不用过于追求极度饱和的工作时间表,很多每天忙得团团转的人其实很多时候只是在虚耗光阴而已,你只要保证长期的刻意练习,超过这些人是迟早的事情

     

        2)练习的最高级别是教会别人

        有人问我练习的最高级别是什么,我认为是输出,准确的说是你教会别人。对于某项技能,其实你最快掌握的方式不是自己学习,而是设法教会别人。在设法教会别人的过程中你会反复的强化自己的掌握水平,如果有个东西你给完全不懂的人讲懂了,那说明你自己已经掌握,如果你自己还理解的半懂不懂,那你肯定无法教会别人。有很多方法可以参考,比如你最近对某项技术进行了分析总结,你可以写成材料,在小组或者公司内部开一场分享会,向同事分享的的经验,并且设法教会原来对此一无所知的参会者。或者你可以“练习给妈妈写信”假如你要给你的妈妈写信介绍你最近的学习成果,但是你的妈妈对这个领域一无所知,你就要用妈妈最能理解的方式向她阐述,如果你能写出这样一封信来,那你对这次的学习成果掌握程度肯定达到了较高水平。

     

     

    5 、让你的计划顺利实施的小贴士

     好了说了半天,让我们来到最后一个环节,如何保证你的计划顺利实施。其实在前面分解技能,即时反馈,时间表设计上已经和这个问题有交集了。这里我想说的是,没有什么人、什么方法可以保证你的计划完整顺利的实施。但是又些小贴士可以帮助你更顺利的完成,例如

     1)提升时间管理能力

       网上关于时间管理的讨论简直数不胜数,时间管理大师,也是比比皆是,特别是娱乐界楷模辈出。如果你没有深入研究过时间管理,精力管理,那你还是有必要系统学习一下(你看,回到第1,第2条了),但我就不多说了,简单推荐一下书籍吧,例如《小强升职记》这本书就不错,另外还有很多其他的优秀的书籍、论坛大家可以根据需要选择学习。

    2)时间先支付自己

       很多学习理财的同学往往都学习过这条道理“学会先支付给自己”,说的是每次是指首先把自己的工作收入和其他收入投入到自己的资产项目中,它是致富中最重要的法则之一。对于人生来说,时间其实就是我们的最重要的货币并且对于每个人来说它都是平等的,我们往往把自己最重要的货币支付率先支付给了错误的对象。所以建议你最好每天抽出固定时间,比如上班开始工作前,下班后某个时间段,排除干扰把时间先支付给自己,对某个领域进行刻意练习。

    3)学会延时享受

      这个就不多说了,即时激励很重要,但是同时如果能够提升延时享受的能力,这会帮助你更快抵达你的目标。

      好了,另外要有一定要记住要有耐心,方向正确慢就是快,祝各位早日成为领域专家。另外欢迎交流,建了一个个人博客http://www.chenxiaofang.site/,CSDN不再更新

     

     

     

     

     

          

     

     

     

    展开全文
  • Java 技术书籍大全

    千次阅读 多人点赞 2019-08-11 20:38:49
    本文档目前已收录 277本 Java相关领域经典技术书籍,从初级开发者到资深架构师,涵盖 Java 从业者的各个阶段。 涵盖领域Java入门书籍,Java基础及进阶书籍,框架与中间件,架构设计,设计模式,数学与算法,JVM...
  • 点击上方石杉的架构笔记,右上角选择“设为星标”每日早8点半,技术文章准时送上公众号后台回复“学习”,获取作者独家秘制精品资料往期文章BAT 面试官是如何360°无死角考察...
  • 求贤若渴(Java架构师、技术专家

    千次阅读 2016-03-08 11:35:13
    我们是阿里数据库技术团队,一个管理阿里巴巴集团淘宝、天猫、支付宝、余额宝、B2B、高德地图、钉钉等业务所有数据的技术团队,负责历年双11、双12、春节红包大型活动数据保障,主导阿里去IOE、数据异地多活等复杂...
  • 台上的讲师是一位浑身散发着女性魅力,有着近十年Java领域软件开发经验的李力(Ada Li)。李力目前是Sun Microsystems的高级软件工程师。依托着她本人深厚的软件开发功力,为我们带来了期待已久演讲内容。这次的主题...
  • java技术

    千次阅读 2020-07-21 20:49:04
    推荐: 《Java技术书籍大全》 - awesome-java-books 从初级开发者到资深架构师,看这些书就够了 数据结构 队列 集合 链表、数组 字典、关联数组 栈 树 二叉树 完全二叉树 平衡二叉树 二叉查找树(BST) 红黑...
  • java核心技术源代码完整版.rar Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写
  • Java之旅--如何从草根成为技术专家

    千次阅读 2013-10-10 01:17:49
    我个人觉得,不论什么领域,成为专家有3条是最重要的: 1、持续的努力,这是不可或缺的; 2、勤于思考,走了更少的弯路,这决定的是在路上的时间; 3、受到了高人的指导,或者自行模仿了高人,至少是仰望了一下,...
  • Java 技术新手入门

    千次阅读 2005-12-29 23:00:00
    Java 技术新手入门什么是 Java 技术Java 技术为什么重要?什么是 Java 组件技术Java 技术如何与 Web 服务联系起来?如何提高 Java 编程技巧?Java 编程人员可以使用哪些 IBM 工具和产品?developerWorks Java ...
  • Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。   2. Java编程思想 - 2003年《Software ...
  • Java研发技术学习路线

    万次阅读 多人点赞 2016-09-06 09:24:20
    作为一名Java研发者,深感Java技术学习是一个漫长过程,从一名Java菜鸟开始,加之持之以恒的耐心和脚踏实地的精神,不间断理论的学习,不停止技术实践,广泛学习,深入专研,终成为一名技术佼佼者。
  • Java核心技术 卷1:基础知识(原书第9版)

    千次下载 热门讨论 2013-11-13 11:04:38
    Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据JavaSE7全面更新,同时修正了第8版中的...
  • Java技术杂谈

    千次阅读 2012-08-11 08:15:37
    要是一个牛B的面试试仅凭JDK里面的东西大概就可以考察出一个Java程序员的功底。  记得以前笔试的时候一道题目是[String str=”a”+”b”+”c”,会创建几个对象];当时毫不犹豫的写了4个。一道题目就看出了我的水平...
  • Java技术本纪

    千次阅读 2005-08-30 18:36:00
    Java虚拟机的 10 年文/曹晓刚Java虚拟机的起源与构造当我们说到“Java”这个词的时候,指的是四个相互关联的概念:Java语言、Java API、Java Class文件格式、Java虚拟机。整个Java体系是基于Java 虚拟机构造的,正...
  • Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据Java SE 7全面更新,同时修正了第8版中...
  • ava领域*有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第10版根据Java SE 8全面更新,同时修正了第9版中的...
  • Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖)
  • 项目经验:能架构和负责多个系统,并规划系统的未来能力,在某个领域达到专家水平,可以是某个业务领域,也可以是某个技术领域 协作平台 在线协作平台(密码需要加微信确定参与领取): Github: 博客: 参与方式 ...
  • Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据JavaSE7全面更新,同时修正了第8版中的...
  • Java开发与技术挑战——关于技术技术思考   摘要:Java语言已经走过二十个年头,岗位和身份的变化,也伴随着Java的同步成长,其中也包含了对技术理解的思考与变化。主要体现在四个阶段:开发工程师、系统...
  • Java领域最有影响力和价值的著作之一,拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据JavaSE7全面更新,同时修正了第8版中的...
  • 技术领域 Linux 内核开发者大会 2012 第七届 Linux 内核开发者大会 2012 第七届 Linux 内核开发者大会PPT 1 Open Source - More than just code Hans Peter Anvin(HPA): Intel Open Source ...
  • 转载注: 最近Oracle起诉Google关于Android侵犯专利的事情,中文读者可以参考邵正强(Jason Shao) 2009年的一篇>。...完全遵守Java规范就可以免费使用;没有完全遵守,只部分使用规范,那JCP组织成员都有
  • Java领域最有影响力和价值的著作之一,由拥有20多年教学与研究经验的资深Java技术专家撰写(获Jolt大奖),与《Java编程思想》齐名,10余年全球畅销不衰,广受好评。第9版根据Java SE 7全面更新,同时修正了第8版中的...
  • 02-Java 技术职称

    千次阅读 2017-10-24 15:05:57
    公司技术职称开发系列包括见习程序员、初级工程师、中级工程师、高级工程师、资深工程师、技术专家六个技术职级,各级职称评定参考标准如下: 一、见习程序员 1、计算机相关专业毕业;英语通过国家四级。 2、具有...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 57,038
精华内容 22,815
关键字:

java技术领域专家

java 订阅