C++天梯:前言

      一开始说要写博客,其实我是拒绝的,因为我知道这很耗费时间。我就会想,有时间写这个博客,不如多读本书呢。

      但吴军老师说要学会分享,我决定听他一次(我真的很欣赏、敬重他),因此我会在博客里把我“登梯”的过程和心得分享出来。

      此外,我非常非常感谢那些在互联网里把IT知识分享出来的前辈们,不仅仅是我,整个IT世界,几乎所有的IT人都从中获益良多。可以说没有你们的分享和付出,就没有当今IT的蓬勃发展。我的这些心得和文字,也向你们做迟来的致敬吧。

    以下是正文。

   

    最近在为自己的职业发展方向迷茫。想起了听吴军老师课时他说的一个观点:“百货商店里顾客的喜好远比经济学家的长篇大论更能反应实际的经济状况”,因此我也去了人才的百货商店:招聘网站。我在拉钩和BOSS直聘上研究了和我的未来可能相关的数百个招聘要求,再经过一轮轮的思考,最终决定了自己技术发展方向的下一站:Linux C++ 后台开发 架构师。

    在说理由之前,说下我的背景。

    我今年31岁,本科和研究生均毕业于中国最顶尖的P大计算机相关专业,差点去读了博士,现在是一家视音频集成方向拟上市公司软件部的经理,带着一个20人的团队。这个团队是我05年开始从几乎一无所有一手建立起来的,发展得比较迅速。20人里有一半是软件开发队伍,还有一半是含产品、UI、售前在内的技术支持团队。此外,我还在协助公司的运维团队(工程、部署、服务)做一些工作,比如做规范的《运维手册》。另外,部门还在扩张中,明年的任务更重,人员也会更多。

    随着部门内部流程的规范以及我的助手们一个个的成熟,我在下班和节假日的时间开始空出来了。我是个有危机感的人,决定把这些时间利用起来学点对未来有好处的东西。

    学什么呢?

    我当前涉及的工作包括了技术、管理和产品,也无意去开辟新领域了,因此我的学习方向也打算在这些地方产生。

    (1)产品。产品或许是我的未来,但不是我的现在。

      我不是做UI或市场或其他产品相关职位出身的,虽然2010年左右做过一段时间的产品经理,但所得较虚。包括我当前的产品相关工作我都没叫做“产品工作”,而称呼为“技术支持”工作。换句话说,与其说我在做“产品”,不如说在发现当前技术支持(包括售前、产品和解决方案)工作中的问题,并解决这些问题;我并没有去创造一个伟大的产品,因此也不好意思说是在做“产品”。

      我觉得,对于我这种背景的人来说,产品更像是“幸福”,是生活(事业)的副产物。只有我在某个行业、某个方向有了足够深的积累之后,才能厚积薄发作出真正的产品。在达到这个阶段之前,去刻意锤炼诸如画原型图、做竞品调研、写产品文档等能力有些得不偿失。而到了那个阶段,我会选择让更专业的人来帮我画原型图、做竞品调研(产品文档倒能自己写)。

    (2)管理。管理不是当务之急。

      一方面,和产品类似,除非去做职业经理人,管理也是个副产物。

     另一方面,当前我的技术水平及产品水平还太弱,即使有较好的管理水平也难以担当大任。换言之,我的短板不在这儿。

     第三方面,比起技术管理更像“艺术”,需要在工作和生活中感受、领悟;我更难像学技术一样通过书本、练习来提高到较合适的水平。

    (3)算法还是通用?

      确定了技术这个大方向之后,接下来的问题是从事“创造技术”的工作,还是“应用技术”的工作。前者贴近研究、科学、算法。很可惜我没有读博士,做不了;读了博士我或许也耐不住寂寞;中国的大环境也不如美国能出成就。因此我会从事“应用技术”的工作;而且我觉得,这个方向需要的人会更多,难度和机会也更适合我。

    (4)前端还是后台?

      这个看个人喜好和特点了。我个人觉得前端(包括客户端、Web端、移动端)偏“文科”,后台偏“理科”。我知识的广度不太够,记性也不是特别好,比较害怕汹涌而来的新框架、新特性什么的;我逻辑能力还可以,思维比较严谨,敲起代码来能做到真正的废寝忘食一个人坐得住,搞搞简单的通用算法、搞搞架构和优化也还行。所以还是后台吧。

    (5)Java还是C++?

    Java适合“快糙猛”,C++适合精雕细琢。Java在通用的地方用得很多(比如Web框架),如果要快速搭建一个可用应用,Java是有优势的;如果想往快速应用、通用性强的技术方面发展,Java比较合适。C++则多需要一些沉淀,通用性也没那么强,编程出错的可能性、出错的后果都更大,编程难度高。我觉得我还是喜欢“发现问题、解决问题”,而不是偏向“拿来用,就是干”的;此外,我也喜欢编程难度高一些(竞争可能会小一些)。

     另外,看了很多招聘要求,我判断七年内C++不会没落的。如果真没落了,我去写C吧。

    (6)C++的哪些方面?

     首先Linux。Windows端和Qt接触比较多了,而且Linux在大型后台几乎是必然的。

     其次,我把招聘网站里高频提到的技术点整理了一下,包括高并发、消息机制、数据库、分布式、高可用、性能调优、高可测试性、开源项目等,因为以后会不断去捋,这里就不正式列了。

     现在列出来11点,我打算在未来1年半到2年半的时间里一一攻克。

     最后我清楚,利用业余时间在短短一年半到两年半要攻克那么多热门的技术点是很困难的。但我也相信,这个梯子是通向我未来职业很重要的东西。我把这个称之为“C++天梯”。

   

猜你喜欢

转载自blog.csdn.net/LaggedThreeYears/article/details/82348933