C++ 程序员到高级架构师,必须经历的三个阶段
摘要: 每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。
每个程序员、或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来。今天给大家分享的是一篇来自腾讯C/C++架构师对普通程序员的职业建议,希望对你有启发。
对于大多数的程序员,可以分为以下三个阶段。
第一个阶段三年 : 代码里没有人的思维
我认为三年对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人。
这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发。
我们知道如何团队协作、如何使用项目管理工具、项目版本如何控制、我们写的代码如何测试如何在线上运行等等,积累了一定的开发经验,也对代码有了一定深入的认识,是一个比较纯粹的Coder的阶段。一个比较明显的分水岭就是初学人员在用计算机的思维写代码,而有一部分人精益求精,开始在用艺术的思维写代码,比如我接触到一个朋友在群里问的问题:
如果你认为这是一个初学人员常见的一个问题,而我是认为很多人染上了江湖恶习或者梁山好汉的臭气一样,一者是喜欢在代码里耍酷,二者是随意随性,只管实现了功能了事。
所以一个程序员是否能继续深入到第二个阶段,需要的是系统地知识和阅读优秀代码的能力,比如数据结构、Linux系统、各种组件(如Redis、MySQL、Zookeeper),了解了应用程序如何调用周边系统的接口,以及学习了一点周边系统一般的抽象方法。
第二个阶段五年 : 不够深,没有追求
我认为五年又是区分程序员的第二个门槛。有些人在三年里,除了完成工作,在空余时间基本不会研究别的东西, 热衷于研究各种技术实现细节、看了N多好书、写一些博客、在GitHub上分享技术,但是大多都是人云亦云,没有技术的鉴别能力,没有深度的思考能力。
比如出去面试的时候:
面试官:熟悉TCP不?
程序员:熟悉!【PS心理活动】嘿嘿!我这几天在偷偷看了TCP的三次握手四次挥手。
面试官:TCP的TIME_WAIT状态是怎么回事,如何解决?
程序员:TIME_WAIT,我记得书上是这么说的……【PS心理活动】妈呀,都不按套路出牌啊,手心开始有汉,浑身开始不舒服......
面试官:你们这个游戏面临高并发时,网络IO处理的模型是怎么设计的。【PS心理活动】没有深入了解TCP也没有关系,可能业务不涉及,问点跟项目相关的。
程序员:哦,我们当时采用多线程的设计,每个线程负责一个连接的socket,而且用了缓存队列。【PS】终于问了我熟悉点的,这个项目的主程跟我关系好,给我讲解了他的代码。
面试官:嗯,那你还熟悉其它的IO模型不?
程序员:我们那个项目够用了,没有尝试过其它模型了。
这就是典型的菜鸟,你要说他菜他一定不服你,甚至口水战就要来了。
我想说“ 是故非澹漠无以明志,非宁静无以致远。” 一个人技术是否牛逼,在气质上都会不一样,虚怀若谷,大智若愚,不疾不徐,或者目光如炬,才思敏捷。当你深入了解,旁征博引,深入思考和测试才能逐步深入技术。
还有一类人以为会一些设计模式就是架构设计,会用各种组件拼接就是架构,跟你满嘴的SpringMVC、Redis、Mysql等等,可是当你提起系统性能、业务可扩展性、系统一致性时,似乎也听见过一些设计,但是当写起代码来全然不顾,然后又一堆的Bug解都没有办法解。
这些人里只有一小撮人能在五年后具备在技术上独当一面的能力并且清楚自己未来的发展方向,从一个Coder逐步走向系统分析师或是架构师,成为项目组中不可或缺的人物,而其余绝大部分人会。停止不前,甚至陷入深深的忧患当中,奈何已成温水中的青蛙。
第三个阶段十年 : 登堂入室
十年又是另一个门槛了,转行或是继续做一名程序员就在这个节点上。
如果在前几年就抱定不转行的思路并且为之努力的话,那么在十年的这个节点上,有些人必然成长为一名对行业有着深入认识、对技术有着深入认识、能从零开始对一个产品进行分析的程序员,这样的人在公司基本担任的都是CTO、技术专家、首席架构师等最关键的职位,这对于自己绝对是一件荣耀的事,当然老板在经济上也绝不会亏待你。
我认为随着工作年限的增长、对生活对生命认识的深入,应当不断学习思考。
关于专业技能
程序员应该具备的技能
我这里要说明一下,以下列举的内容不是都要会的东西。但是如果你掌握得越多,那么你的架构设计能力就更强。
一、源码分析专题
数据结构:红黑树、平衡二叉树、B树和B+树、布隆过滤器、KMP算法
设计模式:责任链模式、发布订阅模式、Reactor模式、过滤器模式、代理模式、工程模式
开源源码分析:Nginx、zeroMQ
详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提升技术审美、提高核心竞争力。
二、分布式架构
架构实战:斗鱼视频直播技术核心揭秘、网易门户高负载均衡实现、淘宝海量数据存储引擎、Open API设计。
架构中间件:分布式RPC框架 、分布式MQ。
架构策略:一致性、可靠性、可扩展性、高并发海量数据设计。
架构原理:消息驱动式架构设计、动态域名做高负载均衡、P2P去中心化。
作为技术开发者,如何去应对技术变革带来的技能危机。基于传统架构到分布式架构演变过程所带来的技术变革进行全面深入讲解。在技术深度和技术广度上得到飞跃的提升。
三、集群架构专题
MySQL、Redis、MongDB、Nginx + lvs、Zookeeper集群。
面对海量的数据、高并发的请求,集群保证水平可扩展性,保证系统可靠性是唯一的途径。
四、Linux系统
深入内核层面理解系统,理解系统架构设计,使用一系列的工具深入挖掘系统瓶颈,而不是人云亦云的优化和架构设计。
五、工程化专题
六、性能调优
七、音视频专栏
不管是刚入门的小白,还是才高八斗的资深开发、架构,你都需要从这里开始:
对于来说小白可以快速提升
对于资深开发人群可以加分
以上就是我要说的内容,希望以上的内容可以帮助到正在默默艰辛,遇到瓶颈且不知道怎么办的程序员们,希望大家在往后的工作与面试中一切顺利。
如何快速学习,有没有免费资料?
当真正开始学习的时候难免不知道从哪入手,学习时频繁踩坑,导致效率低下影响继续学习的信心,最终浪费大量时间。
为了让学习变得轻松、高效!今天给大家免费分享一套教学资源,帮助大家在成为架构师的道路上披荆斩棘。
QQ群:C/C++ Linux服务器开发786035137
想要进一步深入了解技术,或者简历书写和面试技巧的可以加老师。
微信:Lee_ge_1024
Lee老师曾供职于华为和诺基亚通信长达7年时间,曾在某上市公司担任产品总监。10年(C/C++)开发经验和产品管理经验,研究过过多款C/C++优秀开源软件的框架,开发过大型音频广播云平台,深入理解需求分析、架构分析和产品管理,精通敏捷开发流程和项目管理。
合理利用自己每一分每一秒的时间来学习提升自己,不要再用"没有时间“来掩饰自己思想上的懒惰!趁年轻,使劲拼,给未来的自己一个交代!
点击阅读原文,加入学习,领取免费精品资料快速加入QQ群。
你点的每个“在看”,我都认真当成了喜欢
C++ 程序员到高级架构师,必须经历的三个阶段相关推荐
- 每个程序员都有的经历:从程序员到高级架构师,必须经历的三个阶段
程序员是我们国家一个庞大的群体,每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来.今天给大家分享的是一篇来自腾讯C/C++ ...
- 程序员到高级架构师,必须经历的三个阶段
摘要: 每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来. 每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是 ...
- 天天说架构师,到底什么样的程序员能称为架构师?
2019独角兽企业重金招聘Python工程师标准>>> 我曾问过很多自称热爱代码的程序员的发展规划,大多都回答说期望成为一名架构师.而在招聘一方,有的团队会过滤掉多次提起架构一词而一 ...
- 到底什么样的程序员能称为架构师?
我曾问过很多自称热爱代码的程序员的发展规划,大多都回答说期望成为一名架构师.而在招聘一方,有的团队会过滤掉多次提起架构一词而一点不提具体内容的简历.可见,虽然在大多数程序员眼里,架构师是神圣的,但又不 ...
- 从Java程序员进阶到架构师,6大核心技能要领详解
" java架构师技能将分为如下6大环节:数据结构和算法,Java高级特性,Java web核心,数据库,Java框架与必备工具,系统架构设计. 希望能真正帮助到从程序员进阶到架构师之路的朋 ...
- 从Java程序员进阶为架构师,全套16张图概括最全技能!建议收藏!
如何从程序员进阶到架构师?今天完整的把我积累的经验和技能分享给大家! 作者:陈睿|优知学院创始人 数据结构+算法=程序 数据是一切能输入到计算机的信息总和,结构是指数据之间的关系,数据结构就是将数据及 ...
- Java程序员怎么迈向架构师
怎样学习才能从一名Java初级程序员成长为一名合格的架构师,或者说一名合格的架构师应该有怎样的技术知识体系,这是不仅一个刚刚踏入职场的初级程序员也是工作三五年之后开始迷茫的老程序员经常会问到的问题. ...
- 程序员如何变成架构师,软件公司如何变成苹果
/*************************************************************************************************** ...
- 程序员如何向架构师转型?看完就明白该怎么做了
软件行业技术开发从业人员众多,但具备若干年开发经验的普通的开发人员往往面临个人发展的瓶颈,即如何从普通开发人员转型成高层次的系统架构师和技术管理人员.想成为一名架构师,应当具备全面的知识体系,需要进行 ...
最新文章
- 截取前四位字符串_Python的字符串切片
- 爱立信将在加拿大建立人工智能实验室
- python写小程序-你用python写过那些好玩的微信小程序?
- kimsoft-jscalendar 简介
- javascript实现图片轮播_第2章 第9节 JavaScript(四)
- python实现xmind_Python xmind库(生成框架图)
- HDU3788 ZOJ问题
- Python 手册——调用解释器
- 社会化生态农场品,社群+农产品,大有搞头
- 浅谈SnackBar(Toast大兄弟)
- 3 ELK收集nginx正常和错误日志
- java华容道swing_一道java的界面初级题目,已有代码,加几行即可,华容道游戏。...
- scrapy 处理动态加载,使用phantomjs
- md5加密、Des加密对称可逆加密、RSA非对称可逆加密、https单边验证、银行U盾双边认证...
- 苹果屏蔽更新描述文件_iOS屏蔽更新文件失效,教你两个技巧暂停更新
- java 对音频文件降噪_如何对音频文件降噪?闪电音频剪辑软件为音频降噪的方法...
- MIT 麻省理工学院公开课程视频下载方法
- java页面标签span_span标签跳转新页面
- 矩阵分析一子空间和特征分解
- Pycharm 报错 Environment location directory is not empty 解决
热门文章
- Allegro基本元器件库路径
- 异形焊盘、集成库的创建
- 满满的回忆,留在了潍柴汽车(我和小福的故事之七)
- Efficient Belief Propagation for Early Vision 论文翻译 对于早期视觉问题的高效信念传播
- c语言蜂鸟,一羽记账 - 蜂鸟般轻快
- 腾讯云 IoT 超级小程序来了!3 天极速开发物联网应用
- 面临四大挑战 再次被上市的音频APP喜马拉雅真是喜忧参半!
- axios+vue 小测试,随机生成笑话,天知道,小黑记事本,图片切换,悦动听
- VMware、CentOS7安装及静态ip配置和Xshell远程工具连接(个人学习笔记)
- 中国“最水”985,狂发顶刊!