摘要: 每一个程序员、或者说每一个工做者都应该有本身的职业规划,若是你不是富二代,不是
官二代,也没有职业规划,但愿你能够思考一下本身的未来。复制代码
今天给你们分享的是一篇来自腾讯C/C++架构师对普通程序员的职业建议,但愿对你mysql
有启发。
对于大多数的程序员,能够分为如下三个阶段linux
我认为三年对于程序员来讲是第一个门槛,这个阶段将会淘汰掉一批不适合写nginx
代码的人。这一阶段,咱们走出校园,迈入社会,成为一名程序员,正式从书程序员
本上的内容迈向真正的企业级开发。咱们知道如何团队协做、如何使用项目管面试
理工具、项目版本如何控制、咱们写的代码如何测试如何在线上运行等等,积redis
累了必定的开发经验,也对代码有了必定深刻的认识,是一个比较纯粹的Coder算法
的阶段。一个比较明显的分水岭就是初学人员在用计算机的思惟写代码,而有spring
一部分人精益求精,开始在用艺术的思惟写代码,好比我接触到一个朋友在群sql
里问的问题:
设计模式
若是你认为这是一个初学人员常见的一个问题,而我是认为不少人染上了江湖
恶习或者梁山好汉的臭气同样,一者是喜欢在代码里耍酷,两者是随意随性,
只管实现了功能了事。因此一个程序员是否能继续深刻到第二个阶段,须要的
是系统地知识和阅读优秀代码的能力,好比数据结构、linux系统、各类组件
(如redis、mysql、zookeeper),了解了应用程序如何调用周边系统的接口,
以及学习了一点周边系统通常的抽象方法。
我认为五年又是区分程序员的第二个门槛。有些人在三年里,除了完成工做,
在空余时间基本不会研究别的东西, 热衷于研究各类技术实现细节、看了N多
好书、写一些博客、在Github上分享技术,可是大多都是人云亦云,没有技术
的鉴别能力,没有深度的思考能力。
好比出去面试的时候:
面试官:熟悉TCP不?
程序员:熟悉! 【PS心理活动】嘿嘿!我这几天在偷偷看了TCP的三次握手四
次挥手。
面试官:TCP的TIME_WAIT状态是怎么回事,如何解决?
程序员:TIME_WAIT,我记得书上是这么说的~~~。 【PS心理活动】妈呀,都
不按套路出牌啊,手心开始有汉,浑身开始不舒服......
面试官:大家这个游戏面临高并发时,网络IO处理的模型是怎么设计的。【PS
心理活动】没有深刻了解TCP也没有关系,可能业务不涉及,问点跟项目相关
的。
程序员:哦,咱们当时采用多线程的设计,每一个线程负责一个链接的socket,
并且用了缓存队列。【PS】终于问了我熟悉点的,这个项目的主程跟我关系
好,给我讲解了他的代码。
面试官:嗯,那你还熟悉其它的IO模型不?
程序员:咱们那个项目够用了,没有尝试过其它模型了。
这就是典型的菜B,你要说他菜他必定不服你,甚至口水战就要来了。
我想说“ 是故非澹漠无以明志,非宁静无以至远。” 一我的技术是否牛逼,在气
质上都会不同,虚怀若谷,大智若愚,不疾不徐,或者目光如炬,才思敏捷。。当你深刻了解,旁征博引,深刻思考和测试才能逐步深刻技术。
还有一类人觉得会一些设计模式就是架构设计,会用各类组件拼接就是架构,
跟你满嘴的springMVC,redis,mysql等等,但是当你提起系统性能、业务可扩
展性、系统一致性时,彷佛也听见过一些设计,可是当写起代码来全然不顾,
而后又一堆的BUG解都没有办法解。
这些人里只有一小撮人能在五年后具有在技术上独当一面的能力而且清楚本身
将来的发展方向,从一个Coder逐步走向系统分析师或是架构师,成为项目组中
不可或缺的人物,而其他绝大部分人会。中止不前,甚至陷入深深的忧患当
中,奈何已成温水中的青蛙。
十年又是另外一个门槛了,转行或是继续作一名程序员就在这个节点上。若是在
前几年就抱定不转行的思路而且为之努力的话,那么在十年的这个节点上,有
些人必然成长为一名对行业有着深刻认识、对技术有着深刻认识、能从零开始
对一个产品进行分析的程序员,这样的人在公司基本担任的都是CTO、技术专
家、首席架构师等最关键的职位,这对于本身绝对是一件荣耀的事,固然老板
在经济上也毫不会亏待你。
我认为随着工做年限的增加、对生活对生命认识的深刻,应当不断学习思考
关于专业技能
程序员应该具有的技能
我这里要说明一下,如下列举的内容不是都要会的东西。可是若是你掌握得越
多,那么你的架构设计能力就更强。
一.源码分析专题
数据结构:红黑树、平衡二叉树、B树和B+树、布隆过滤器、KMP算法
设计模式:责任链模式、发布订阅模式、Reactor模式、过滤器模式、代理模
式、工程模式
开源源码分析:nginx、zeroMQ
详细介绍源码中所用到的经典设计思想,看看大牛是如何写代码的,提高技术
审美、提升核心竞争力。
二.分布式架构
架构实战:斗鱼视频直播技术核心揭秘、网易门户高负载均衡实现、淘宝海量
数据存储引擎、open api设计。
架构中间件:分布式RPC框架 、分布式MQ
架构策略:一致性、可靠性、可扩展性、高并发海量数据设计。
架构原理:消息驱动式架构设计、动态域名作高负载均衡、P2P去中心化。
做为技术开发者,如何去应对技术变革带来的技能危机。基于传统架构到分布
式架构演变过程所带来的技术变革进行全面深刻讲解。在技术深度和技术广度
上获得飞跃的提高。
三.集群架构专题
mysql、redis、mongdb、nginx + lvs、zookeeper集群。
面对海量的数据、高并发的请求,集群保证水平可扩展性,保证系统可靠性是
惟一的途径。
四.linux系统
深刻内核层面理解系统,理解系统架构设计,使用一系列的工具深刻挖掘系统
瓶颈,而不是人云亦云的优化和架构设计。
五.工程化专题
六.性能调优
七.音视频专栏
不论是刚入门的小白,仍是才高八斗的资深开发、架构,你都须要从这里开始
对于来讲小白能够快速提高
对于资深开发人群能够加分
以上就是我要说的内容,但愿以上的内容能够帮助到正在默默艰辛,遇到瓶颈
且不知道怎么办的程序员们,但愿你们在日后的工做与面试中一切顺利。
如何快速学习,有没有免费资料?
当真正开始学习的时候不免不知道从哪入手,学习时频繁踩坑,致使效率低下
影响继续学习的信心,最终浪费大量时间。
为了让学习变得轻松、高效!今天给你们免费分享一套教学资源,帮助你们在
成为架构师的道路上披荆斩棘。
私信回复“资料”获取往期CPP高级架构资料、源码、笔记、视频
合理利用本身每一分每一秒的时间来学习提高本身,不要再用"没有时间“来掩饰本身思想上的懒惰!趁年轻,使劲拼,给将来的本身一个交代!