漫谈程序员安晓辉老师也是半路出家学编程,经历了一个痛苦过程,如今十年过去,一路从程序员、小组长、项目经理、部门经理就这么走着……今年他完成了两本书的写作、换了工作了,新工作也告别写代码……作为一名老程序员,在面对开发群里经常有学生问面试、择业等问题时,有感而发特开辟了《漫谈程序员》专栏,以幽默的笔调深受网友们的喜爱,由于文章诙谐指数高入云霄,在这里我们也请安老师以一个比较正式的口吻来分享,让我们来一起关注程序员成长。 CSDN:作为十年的程序员,你是如何看待程序员这一角色的? 安晓辉:程序员,就是手艺人的角色,吃的是技术饭。他当然有很多的酸甜苦辣咸,与其他行业并无不同。关键是我们自己的心态,你喜欢,你就有乐趣,如果你纯粹是把它当作一个挣钱糊口的手段,那可能就会慢慢厌倦这种高强度高更新频率的工作,要么麻木要么转行。 其实程序员没有比其它人苦逼多少。你说夜班出租车司机苦逼不,天天熬夜……你说建筑工人苦逼不,累死个人还被小市民鄙视……你说明星苦逼不,结婚了都不敢说,酒店开房还要被抓……你说国家领导人苦逼不,该颐养天年的时候还得四处奔波,还说不定哪天就被揪斗了……关键是心态,所谓此心安处是吾乡,每一行都有它的苦乐忧愁,花开富贵一季红,竹生平凡千日青,放平心态,一切都会不同。 CSDN:你也是中途踏入软件开发之路,程序员的门槛几何?与此同时,你认为普通程序员和优秀程序员的不同之处在哪里? 安晓辉:程序员没什么门槛,但是从普通到优秀,从优秀到卓越,这里面各有很长的路要走,对很多人来说,穷其一生也不一定能走完这中间的旅程。 关于普通和优秀的差别,从做事结果上看,优秀程序员做出来的软件可能有更好的易用性、健壮性、安全性、灵活性;从行为上看,优秀程序员会更积极一些,自我成就欲望强一些,最终表现在解决问题的思路、手段、能力等更强一些。 CSDN:一个程序员该如何学习技术以及选择技术方向? 安晓辉:对多数人来讲,你所做的事情决定你要学习的技术以及你将来会走的技术方向。当然有相对的一面,有些人,是先选技术后选事情,根据技术选要做的事情。但不管哪种,到最后,我个人观点,具体的技术都不再重要。重要的是,解决问题的能力。因为程序员的职责其实不是编写程序,而是解决问题。 如果非要讲如何学习技术,那还是奉行“实践出真知”吧。 至于选择技术方向,虽然说技术无高低,但还是要选择有发展潜力的吧,有些没落的,走下坡路的,就不要选择了,比如MFC之类的。需要说明一点的是,很多技术都有其特定的应用场景,我们在选择某一个技术方向时,实际上也选择了你工作的方向。这点可能会给将来的就业带来很大的影响,所以决定要学一门技术时,还是要了解一下它能解决什么问题,在什么行业得到了什么样的应用。 CSDN:有一定的技术后的准程序员们怎么找工作?以及有哪些职业风险? 安晓辉:这个话题比较大,我在漫谈程序员系列中也有谈及,感兴趣的可以 移步阅读。 其实干什么都是有风险的,对于开发人员来讲,最大的风险是什么呢?选错一门技术?干错一个项目?做错一个产品?跟错一个老板?……也许都不是,也许是没有在合适的年龄找到合适的妹纸…… 对于开发人员来讲,最大的风险是:在职业规划上没有延续性地乱跳槽。 有人跳槽为了涨工资,不跳不涨么。一年都能换几次,也不管工作内容、技术路线什么的。这其实也无可厚非,是吧。龙生九子,个个不同。理解万岁。桥归桥,路归路。 我是比较迟钝的人,到了 30 多岁才第一次正式地来审视“怎样找工作、找什么工作”这个问题,可能是年龄大了吧,觉得不能再玩从零开始的游戏了。有人早慧,可能大学没毕业就明白了这个道理。真的,我有一同学,毕业时放着微软不去,坚定地找嵌入式的机会,真给他找着了,并且干得风生水起……还有个小盆友,小学时就说长大了要当校长,原因呢,是因为他的老师老打他手心,他当了校长就可以直接开掉这个老师…… 当年我在参加一家公司的面试时对面试官说:要在两到三年内做到不可替代。结果被拒了……你懂的,单位都讨厌这个。可是作为开发人员,这是你时刻要牢记在心的:培养自己的稀缺性。 为什么这么说呢?物以希为贵么。如果你很牛X,干的活儿很重要,别人又替代不了,你自然受重视是吧。 CSDN:你做过五六年的项目经理,你对好产品的理解是什么? 安晓辉:说说我早前的经历吧,工作上回到老东家,是因为老板对我说要做产品,做一个视频相关的产品,具体是什么还不清楚。那时我虽然还有点儿糊里糊涂,听过很多道理,还没过好这一生。可毕竟已经不是懵懂少年,多少有了些自己的看法。觉得做产品比较靠谱,比外包靠谱,比外企有更大的可能性,没准一下子红了呢?风水轮流转,明年到我家,也许就可以鲜衣怒马走天涯…… 这是我当年的一个认识吧:
当然很多人与我见解不同,理解并支持你们!王小波是罗素的信徒,罗素说,参差多态乃幸福之本源。本来么,求同存异,不能视见解与己不合的人为异端,那是法*西斯。工作中其实也是一样的。 吭哧吭哧干到了 2014 年,从 08 年到 2014 年,发生了很多变化,老婆孩子什么的都有了,人生有几个六年呢……有了白头发了…… 如今,再来说一下我对好产品的理解,大概是这样的:
好产品加上靠谱的公司,基本上就是比较靠谱的工作了,甚至可以做成事业。 总的来说,能解决用户痛点的产品就具备了好产品的基本条件。如果还能给企业带来效益,那就是真正的好产品了。这就是好产品的两面。
CSDN:怎么判断公司靠谱呢? 安晓辉:我有一些经验,用来鉴别不太靠谱的公司或工作:
如果新公司靠谱,有实力(有一帮牛人、有资本投入)把这个产品做好,那是最好的了。 对于如何了解一家公司呢。我认为互联网搜索、熟人打听、公司网站、招聘要求等都是途径。还有一个就是面试,一定要牢记,面试是双向的,不但是公司选择你考问你,也是你最好的了解这个公司的机会,有时机就问一些思考过的问题:为什么自己要离开现在的公司、自己想干什么、将来的路怎样规划等。 我在面试一些应聘者时,通常在最后会留机会让他们问问题,经常遇到有些求职者说我没什么问题……这么好的机会都放过了,一般这种情况,这个人我就不再考虑了……
CSDN:对于那些正在大学的准程序员和初级程序员,你最想对他们说什么? 安晓辉:假如一句话来概括的话:
另外,作为开发人员,我们需要了解自己的能力边界,清楚自己能干什么不能干什么,多多发挥、打磨自己的长处。所谓自知者明自胜者强,有些短处倾其一生也是无法改变的,天生的,没必要在意。而有些长处经过打磨会越来越好,如果你不去发掘、培养它,那它也可能慢慢萎缩掉。 还有非常重要的一点,开发人员需要在软件开发之外建立另外的一个兴趣。人生需要多个支点,多样的生活会更加有趣。
未来畅想CSDN:你如今的生活节奏是怎样的? 安晓辉:上班就是朝九晚五。我一般五点多就起床了,或者看书,或者写博客,或者干点儿别的。这是上班之前的事儿。下班之后,基本上是陪女儿。女儿睡了之后,基本上是再看会儿书、写点东西,或者研究一些技术问题,或者录制我的视频课程。 周末的话,有时陪女儿上各种兴趣班,有时出去玩一下。 CSDN:谈未来和梦想,很多人都说太空洞,但还是想听下你接下来的规划,以及你的小说梦和技术梦。 安晓辉:大学时泡BBS,写小说多一些,当时想着将来出版自己的小说,也想过开一家温馨的小书店……不过随着参加工作,慢慢都淡忘了。有一阵子我的签名档是:琐碎磨灭梦想。 可我们真的有梦想吗? 梦想还是要有的,万一实现了呢……所以,还是捋一捋生活,放空一下自己,看看什么是想要的,然后为之努力。 那我现在有什么梦想呢?我这人其实比较随性,这也行那也行,走哪儿都行,要说具体的规划基本是没有的。近两年就希望入伙的公司的产品能成。再远一些就希望能财务自由。 其实我最大的梦想,还是出版自己的小说,写出有意思的小说来。前一阵子重读王小波,感觉又不一样了,刚好那阵子想法比较多,对软件开发这10年也有很多感悟,就和老婆说要续写王小波的未竞之作《黑铁公寓》,把我老婆吓了一跳,担心我神经也会错乱。其实我真的想做这样的事情。王小波的另一个身份,也是非常优秀的程序员,这从他的小说《万寿寺》《红佛夜奔》《未来世界》《2015》等等中都能看出来,你看他行文的节奏、结构,里面包含了很多软件开发的东西,循环、迭代、递归、跳转,等等,如果从软件开发的角度来解读他的文本,将是非常有意思的事儿。 另外,我最近几年一直希望能做一些可以给女儿玩的游戏,可是相关的技术都还没来得及了解,有时间的话会学习,希望不要我做出来时女儿都上了大学。另外Qt也还有很多东西不熟悉,有时间的话会继续学习,当然也希望使用Qt做出一个跨移动平台的重量级应用来。
CSDN:你是什么时候接触CSDN的?它对你学习和工作都带来哪些影响?同时,对CSDN有什么建议? 安晓辉:翻翻我的博客,最早的文章是2008年写的。其实从2005年我做开发,就接触CSDN了,不过那时都是搜别人的博客借鉴别人的经验。 CSDN是非常棒的平台,上面有很多不错的技术博客,给予我很大帮助。我写博客后,CSDN给了我更大的帮助,一是我有一个地方可以总结、回顾自己的技术之路,二是它也让我在客观上获得了一些机会。在此一定要感谢CSDN。 我对CSDN的建议么,一个是希望CSDN更多地甄选和推荐原创、优秀的博文、博主,另外还希望CSDN可以建立回馈博主的机制以便更多的人能够分享自己的经验。 |