如何学习后端技术?

学习后端技术和学习其他的技术并没有什么大的不同。因此,题目换做如何学习技术也是讲的通的。概括来讲,有以下几点建议:

  • 扎实的计算机基础知识
  • 知其然更要知其所以然
  • 动手实践
  • 频繁练习
  • 持续学习
  • 自我总结
  • 学会规划

如何成为一名合格的Java工程师?

Java开发一直是当前互联网领域最火热的开发技能之一,Java工程师也一直是需求量非常大的开发职位。那么如何成为一名合格的Java工程师呢?一名合格的Java工程师又应该具有哪些技能呢?针对这些,笔者的新书《Java工程师修炼之道》做了一些经验性的阐述和讲解。

浅析区块链

从去年开始,区块链突然如火如荼起来,相关的新闻席卷微博、朋友圈、科技论坛、门户网站等各大媒体。业界大佬们更是频频发言,有宣称不做区块链就会被时代淘汰的,有说坚决不碰区块链的。国家队也是频频出手,管制、定性、做应用,央行更是默默地把区块链专利数量做到了世界前列。面对众多纷杂的信息、众多的技术分析文章,很容易让人脑袋嗡嗡,怕不懂,更怕懂了啥也都做不了。于是决定梳理一下相关的信息,看看这区块链到底是什么东西。

开篇之前,先抛出笔者的一个观点:区块链最合适的应用场景只有虚拟资产,除了虚拟资产的其他场景都是在蹭概念或者不是真正意义上的区块链,而且只要有人参与的业务流程都无法满足区块链设计的初衷。

正则表达式简明指南

公司使用的markdown解析类库一直有一些解析上的问题,最近给fix了。而markdown解析主要是对正则表达式的使用。中间恶补了一下相关知识,在此梳理一下。

什么是正则表达式

正则表达式就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。简单的一个例子:用字符串”a”来验证字符串s是否是”a”,形如s.match(“a”)。概括来说有以下作用:

  • 验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。
  • 查找字符串,从一个长的文本中查找符合指定特征的字符串,比查找固定字符串更加灵活。
  • 替换字符串,比普通的基于字符串的替换更灵活。

2017年读过的书

2017年一共阅读了九本书,包括技术和管理,并且参加了一次“高价值管理人”的管理培训课程,在技术和管理方面都有了一定的学习,得到了一些进步。

如何快速尝出毒酒?- 用bit解决问题

问题

国王有一百桶酒,比自己的生命还重要。结果有一天其中一桶被投了慢性毒药,喝了以后半个小时以后就会死掉。国王大怒,命令玩忽职守的侍卫去试毒。酒不能被混合,一个侍卫可以喝多桶酒,一桶酒也可以由多个侍卫喝,怎么样才能用最少的侍卫、在最短的时间知道哪桶是毒酒。侍卫可以理解为线程,即怎么样用最少的线程用最快的速度完成这个工作。

技术琐话2018-01-01

日常的工作学习中,经常会看到好的知识点,对自己有提示的一句话,或者是自己突然想通了一件事情。决定以博客的形式记录下来,以“技术琐话”作为主题。

2018年以“技术琐话”开篇,主要是整理了一下自己以前一些零散的知识点。

技术感悟

  • 阅读各种技术的使用/说明/示例/原理文档时,能不能快速吸收为自己的知识?能不能注意到细节关键点?是一个开发工程师优不优秀,能不能比别人更突出、更快成长起来的一个非常重要的地方。

  • 你东西学得广了,别人就会攻击你不够深入;你东西学得够深了,别人就会攻击你知识面不广;你专精在技术时,别人就会说你管理不好;你花心力好好做管理之后,别人就会说你技术没有跟上;你研究方法论时,别人就会说你很虚;你专心做项目时,别人就会说你没有提炼方法,没有系统。… 想挑你毛病,总有办法。但你自己知道自己在干什么最重要,那些你的「缺点」其实可能不是缺点,而是一件事物的另一面。你选择这一面,自然会缺另一面。这是取舍点,不是优缺点。(from 微博@蔡学镛)

技术琐话2017-11-26

日常的工作学习中,经常会看到好的知识点,对自己有提示的一句话,或者是自己突然想通了一件事情。决定以博客的形式记录下来,以“技术琐话”作为主题。

  • The interesting thing about performance is that if you analyze most programs, you find that they waste most of their time in a small fraction of code. If you optimize all the code equally, you end up with 90 percent of the optimizations wasted, because you are optimizing code that isn’t run much. The time spent making the program fast, the time lost because of lack of clarity, is all wasted time.《重构》一书的一段话,也是不要过早优化的意思,即在不确定这段代码真的会被频繁调用、真的是系统的性能瓶颈之前,没必要花时间优化此处的性能。

  • 这句话揭示了成为技术专家的一个关键特质: 理解一个系统应该如何工作并不能使人成为专家,只能靠调查系统为何不能正常工作才行。(From SRE ,by Brian Redman)

  • 技术书籍的出版门槛越来越低,该如何识别是否是一本烂书呢?在我自己看来,英文书籍质量远远好于中文书籍,翻译的版本一般来说质量也不错,不过作为一个互联网从业的技术人员,能够直接阅读英文原版是最好不过的。而对于中文书籍,如果是以公司名义或者书的序多于3篇,是一本烂书的概率非常大,写推荐语、写序的人名头越大,并不代表这本书的质量有多好。此外,现在某sdn专家真的是门槛低到不行,挂这个名头出的书更要慎重选择。对于InfoQ推荐的书,倒是可以值得一读。

Spring注解概览

从Java5.0开始,Java开始支持注解。Spring做为Java生态中的领军框架,从2.5版本后也开始支持注解。相比起之前使用xml来配置Spring框架,使用注解提供了更多的控制Spring框架的方式。

现在越来越多的项目也都在使用注解做相关的配置,但Spring的注解非常多,相信很多注解大家都没有使用过。本文就尽量全面地概括介绍一下Spring中常用的注解。