在我们公司有buddy制度。每个新员工都会被分配给一个有经验的员工。老员工会在新员工6个月的试用期内给予各种各样的帮助。前几天我被分配到一个新buddy。在和他一起聊天的过程中,明显感觉到她有一些忧虑。“我以前主要做的是c++,没做过java,怎么能够快速上手那?”,“咱们这个办公室主要使用的是什么技术?”“如果换了项目组的话,使用的技术会不会变那?”。
从这些问题上,我可以感到他对自己不熟悉的技术、新知识很敏感,究其原因就是对学习新技术自信心不足。我想很多人可能都有这样的心态,在学习新技术上有抵触心理或畏惧心理。我之前曾写过一篇文章叫做《走出你的舒适区》,里面讲到抱着自己熟悉的技术就是呆在舒适区中。如果学习新技术就会走出自己的舒适区,很多人都会感到不适应。这种不适应很大程度上是由于人对未知事物的恐惧引起来的。
不要对自己不了解的技术存在偏见
记得去年的时候我已经有4年+的工作经验了(09年毕业,1年全职实习+3年工作)。但那个时候我一直把自己局限在C#程序员的范畴。看似有多年工作经验,其实只是一直吃老本而已。期间自己曾想自学下QT,但是最后还是不了了之。当时我和不喜欢用LinQ,偶然看某篇文章说LinQ执行效率低,这点就成了我抵制LinQ的理由。其实这就是一个典型的偏见。当我深入学习LinQ以后,才发现它是多么强大的语法,能大大提高开发速度,使程序更加简单可读。回想起来,正因为你不了解LinQ,所以才会有偏见存在。
还记得每个月都会在论坛掀起讨论的Java和C#优劣、工资比较的话题。换做以前自己很喜欢参与这样的讨论。而现在自己则不屑一顾。参与的最热烈的人恰恰是至少对其中一门一知半解的人。如果你深入了解了这两门语言,你自然知道它们各自的优劣、适用场景,自然知道这种话题没有多少实际意义。
不要对自己不熟悉的技术心存恐惧
我记得去年跳槽第一天上班,就被拉入了一个主要使用Java的项目组。而这之前我的Java经验为0。项目组里使用了Spring MVC、Spring WebFlow等开发框架,使用了Mockito、concordion、selenium等测试框架,使用了Maven构建工具……太多完全没接触的技术和框架让我手足无措。对于一个呆惯了舒适区的人极不适应。其实那段时间是我成长最快的时候,三个月内我学习、吸收了大量的知识,可以抵得上我两年的学习量。有的时候就是很奇妙,给了你压力才知道你的潜力有多大。正是这段经历使我完全消除了对陌生技术的恐惧。无论是以后学Haskell、Ruby还是JavaScript,我都是一种轻松加愉快的心态。
如何学习新技术
而了解和学习技术最快的方式是直接上其官方网站。一般官方网站都有简单的介绍和入门教程,能让你快速的建立其对这个技术的整体认识。另外还有详细的文档供你进阶。当然,如果要深入掌握的话还需要大量的实践经验才行,毕竟实践出真知嘛。另外这些官方网站十个有九个半都是英文的(谁让大部分的技术都是老外发明的),所以将英文练好还是很有必要的。
比如前段时间我在研究云计算,想学习下Chef-一个基础设施管理工具。第一步是访问其官网。从官网可以了解为什么要设计Chef、Chef解决了什么问题,进而了解了Chef的架构、实现策略,然后根据官网的基础教程走了一遍。短短两天就可以建立起对Chef的整体认识,甚至我还在办公室做了一次Chef知识的分享。
什么叫稳定?稳定不是你在一个公司一呆就是10年,而是你今天从公司离职,明天就能找到新工作。对于没背景的屌丝而言,唯一能跟别人竞争的就是自己的实力。能他人所不能,就是自己实力的最好实践。而坚持学习则是保证自己竞争力的唯一方法。