本次访谈的主题主要围绕: 成长、个人经历、技术发展等几个方面。
安老师,您先向大家简单介绍下自己!
安老师:
大家好,我是安晓辉,一个老程序员,有十余年开发与管理经验,经历过软件开发工程师、研发经理、项目总监、研发总监等岗位。著有《程序员的成长课》、《 Qt Quick 核心编程》、《 Qt on Android 核心编程》、《你好哇,程序员》、《解忧程序员》等图书,电子工业出版社优秀作者,订阅号“程序视界”创建者。 CSDN 知名博主, 2014、2015两届博客之星,博客阅读量超 500 万,排名 100 以内。
1. 目前,您觉得对于现在的职场初中级菜鸟需要克服哪些技术难关或者应该如何做好自己的职业规划?
安老师:
技术难关和具体技术有关,我懂的技术不多,很难一一说到,所以,只提一个通用的点:一定要有一种技术,是精通的,所谓精通,是指你熟悉这种技术的原理,达到可以改善、优化、定制、扩展的程度。
关于开发者的职业规划,很多人只关注技术,嘴里说的都是 Java 、Python 、JS 、Hadoop 等语言或者框架,但实际上,你需要考虑三点:
- 行业
- 产品(服务)
- 技术
一句话来讲,就是:你要琢磨清楚自己想在什么行业发展,使用何种技术,做什么产品或服务,给自己设立目标,让这个目标指引着你前进。
2.安老师作为职场十几年的职场老兵,对刚入行不久的小猿们有什么想说的话?
安老师:软件开发是技术活,没有捷径,有些笨功夫必须要下。所谓“结硬寨,打呆仗”,你一定要在某种技术、某个业务上投入足够多的精力,才可能在某一天突破,为自己赢得一个标签。
3. 安老师对于T 型程序猿们和π型程序猿们怎么看?
安老师:
T 型,指在一个技术方向上有深度积累,达到精通的程度,然后横向上又有比较宽广的知识面。
π型,指了解或熟悉比较多的技术,但没有一个特别精通的,比如大家常说的全栈、爆栈工程师。
开发者是知识工作者,是技术工作者,是专业人士。专业的外在表现,就是你在某个领域超越大多数普通人,做事情做得比他们好;而这就要求你一定要足够深入该领域,深入到多数人进不去的地方,深入到多数人觉得艰难的地方。要做到这点,就必须有足够深的那一竖。
从这个角度讲,我认为 T 型是最理想的。而 π型 ,往往是被初创公司或产品逼出来的,或者是被低成本逼出来的。可能对某个阶段的公司、产品比较有用,但对开发者,不是最理想的状态。
4. 平时工作中,好多小伙伴反映过多的需要面对应接不暇的业务开发,对于此,安老师认为业务重要还是技术重要就对开发者而言?
安老师:
技术最终是为了解决业务问题,是手段,而不是目的。所以,要以业务来统领技术,要从业务出发来组合使用技术解决问题。
这是一般的开发者需要理解和接受的,因为一般的开发者,很难成为某个技术方面的专家,也很难成为管理者,其综合竞争力,就着落在“业务 + 技术”这个组合上,深入理解业务,合理使用技术,这是比较现实的。
所以,不要排斥业务,没有业务就没有技术,也不要轻视技术,没有技术,就无法实现业务。技术和业务,是开发者的两条腿,缺了哪个,都走不远。
5.随着目前人工智能的火爆,无数学基础的程序猿也应该去学习人工智能还是专注于某一个方向?
安老师:
先专注你在做的事情,把它做好,先看看你所在的组织,努力成为头部。这是比较现实的。频频追热点,往往是什么也追不上,最终凄惨收场。
6.安老师通过自己这么多年的经历来说,平时是怎么锻炼自己的身体的,或者说有什么好的方法?
安老师:
锻炼身体这方面我做得很差劲,只有创业那一年多,每天走路 50 分钟上班,算是锻炼,身体感觉也比较好。
7.程序员到CTO,如何快速成长?
安老师:
在我的新书《程序员的成长课》中,讲到技术管理角色时,介绍了如何成为技术经理、项目经理、研发经理等角色。开发者要先做好这一层,才比较可能往更高的技术副总裁、技术 VP 、 CTO 等高层去走。这个时候,有 3 条路:
- 加入初创公司,承担风险,收获未来
- 做好明星产品、项目,让它们为你背书,通过更换公司,获得更高职位
- 抓住某个技术趋势,在这个趋势中,迅速建立自己的地位,到急需这种技术的公司做高层
8. 安老师在之前的公司中,核心团队是如何组建的?日常是如何进行团队管理的?
安老师:
说说 2014 ~ 2015 我组建创业技术团队时的 2 点经验。
从了解的人选入手,比如朋友,比如前同事,比如你信任的人介绍给你的人。
要舍得花时间,聊到位,聊透。我用了将近四个月的时间,在软件园附近,找人吃饭,聊天,一次不行,就两次,两次不行,就三次……从技术,到产品,到职业发展,一点点聊,直到大家觉得彼此合适,可以一起搞事情。创业团队我在管理时,有两点:
- 大家参与。比如选择技术方案,比如定需求,都参与。
- 责任型授权。把事情授权给团队成员去做,设定结果和责任,让大家按自己的方式去达成目标,不过多关注中间的具体细节,只设置一些控制点。这样大家能发挥自己的主动性。
9. 安老师目前是自由职业者,创业维艰,最大收获是什么?
安老师:
自由职业之后,有几点变化:你真正为自己负责。以前在单位,事情搞不定,后面还有经理、有老板可以依靠,自由职业后,没了,你就是最后一道防线,必须想尽各种办法搞定事情。
自我管理能力提升。近期的目标是什么,每天做什么事情,几点开始工作,几点休息,和什么人联系、商谈,所有类似的事情,都得自己琢磨着解决,你的自我管理能力不得不提升上来。
真正形成了结果导向的思维。你得赚钱,你得保证长远发展,做事情就会经常想想结果。
学会了外包非核心或不擅长的工作。我的公众号“程序视界”,文章排版一直很差,甚至没有排版,不少关注者提过这个问题,我总是告诉自己,等我有时间了就学学排版,花点功夫就能做好,可是两年多过去了,都没什么变化……我总是想自己搞定各种事情,结果就有很多事情没时间搞,弄得自己和关注者都挺失望。所以后来我就学乖了,划定一些必须自己搞定的事情,其他的,交给别人去做,比如现在就有一个小伙伴专门帮我做公众号“程序视界”的文章排版。当你外包了自己不擅长的、非核心的工作后,你的效率会提高,个人的感受也会变好。
10. 技术能力、管理能力、领导力哪个更重要?如何权衡?
安老师:
这 3 类能力,无法直接比较重要性。谁重要,和你的目标有关。比如你就想做一个技术咖,那技术能力可能就最重要;比如你想走管理路线,那管理你能力就最重要。当你明确了自己的职业目标,权衡自然就不是问题。
11.听说你西安交大毕业,能简单介绍一下求学过程吗?
安老师:
我是保送西安交大,在教改班学习。这是我中学学霸生涯的结果。但是进了大学之后,我就失去了学习动力,陷入持久的迷惘之中——因为对将来没什么概念不知道学习那些高数啊数电啊有什么意义。所以我大学基本不上课,前两年在玩游戏,后两年在 BBS 上写东西,把四年时间荒废过去了,/(ㄒoㄒ)/~~。所幸运气较好,凭借着考试前一两周的突击,每门课都能及格,整个大学无一挂科。但是因为大学没怎么学习,毕业时就没什么竞争力,找了份售后技术支持的工作来做。这一做啊,又虚度了两年半时间。
其实,个人要想在职业上有所成就,有些功课是必须要做的,你不在这个时期努力,就得在那个时期努力,假如你任何一个阶段都不努力,将来就只有哭的份了。意识到这点后,我在 2005 年辞掉了售后技术支持工作,自学 C 语言,转型做开发,一直努力前进走到现在。十几年来,一直严格要求自己,不敢对自己放水。
12. 第一次创业失败之后又干了什么?
安老师:
2015年底创业失败时,我已经学习了职业规划技术。我分析了自己的成就事件,发现其实我还在亲自搞定技术问题时比较有价值感、成就感,于是我就进入全时云商务做软件开发了。
13.你怎么看待 Java 以后的发展?
安老师:
技术有一个特点:存在了多少年,其生命就可能再延续多少年。从这一点看, Java 还可以保持很久的生命力。Java 的发展历史也证明了这一点,企业级开发,电商,安卓,大数据,每一次新的趋势, Java 都有份。而且,围绕着 Java 也有很多新技术不断诞生,Groovy、Scala、MyBatis、Spring Boot 等等,Java 的生态成熟、完善,又不发新的生命力,我相信,它未来的应用和发展,依然向好。
14.你的新书《程序员的成长课》最近很火,各路媒体、各个技术社区都在推荐,它到底是怎样的一本书?
安老师:
这本书其实是在讲开发者的职业规划,内容包括技术方向选择、技术精进、转型管理、应对管理挑战、跳槽、简历优化、薪水谈判、转型等,涵盖了开发者职场生涯的各个重要主题,是我十几年开发、管理经验的思考总结和职业规划技术结合的产物,对开发者的工作成长会有非常强的借鉴意义。
想明白自己要什么,搞清楚自己的职业方向,这是比学一门编程语言更重要的事情,只是我们往往要工作上很多年后才会意识到这一点。所以,我在想通这点并切实受益后,就迫切地想要让更多人意识到这一点,于是就写了这本书,希望能让后来者有所借鉴。
结束:
非常感谢安老师,期待与您在 springforall 社区其他专题中的有更多的分享!
历史技术大咖访谈
《技术大咖访谈第一期:泥瓦匠BYSocket 的 Java 成长感悟》
原文作者:SpringForAll
转载地址:技术大咖访谈第二期:和大咖安晓辉老师聊聊迷茫的IT生涯 | Spring For All