个人精神知识仓库
业精于勤荒于嬉,行成于思毁于随
专心致志,夯实基础
天道酬勤,要有匠心精神,要相信积累的力量,伟大的事业是撸起袖子干出来的。
奋思进取,实事求是
要避免故步自封,事物具有多面性,要站在客观角度去思考问题。
厚德载物,自强不息
加强身体锻炼,加强思想教育,多做事多参与多赞扬,少评论少旁观少批评。
# 经济基础决定上层建筑
企业家精神:挣钱不是贪婪,也不为谋生,是精神,是使命,是最大限度的使人生绚丽多彩,是改变个人命运的最好途径。
未来很长一段时间,都要虔诚的去学习企业家精神,作为鄙人终生的奋斗目标。
# 实力用“拳头”说话
以“枪杆子里出政权”为例,在软件开发过程中如何更标新立意地体现出个人价值,我认为主要体现一下在两个方面:
- 技术实力出价值,技术实力有多深,有多广。
- 产品实力出价值,产品功能全,用户体验好。
以下是我最近关于架构的思考:
微服务体系
- 管理体系
- 开发运维工作管理
- 开发运营规范标准
- 技术体系
- 基础设施(服务器、操作系统)
- 平台(虚拟化、容器化)
- 框架
- 架构
- 业务体系
- 业务架构
- 采集(结构化数据、非结构化数据)
- 存储(标准化、归一化处理,清洗治理【大数据生态圈】)
- 分析(算法【分类、聚类】、数学统计、报表服务)
- 传播(离线同步、实时同步)
- 展示
- 业务模型
- 业务架构
- 管理体系
大数据生态圈
- 数据存储:Hadoop、HBase、Hive、Clickhouse
- 数据处理:MapReduce、Spark、Storm、Flink
- 数据同步:Kafka、NSQ、RabbitMQ、ELK
- 大数据架构:Lamda架构
# 软件架构师职业发展
软件架构师是一个技术团队的灵魂人物,他必须在产品管理、项目管理、团队建设上有着丰富的实战经验,进而走向软件技术人才的顶峰—CTO,进行发展战略的制定。
软件架构师:产品管理 + 项目管理 + 团队建设 + 发展战略 = CTO
1、产品管理
软件架构师必须能够进行产品管理,产品面向的是一个有方向、延续性开发的软件。这需要面对以下几个方面。
- 管理理论:协冋管理软件蕴涵着组织行为管理理论和管理方法,没有管理思想的软件只能就事论事,不能称其为协同管理软件。
- 产品技术:计算机技术的发展日新月异,互联网和通信为核心的信息技术飞速发展,给整个世界带来了翻天覆地的变化。网络通过改变生活、空间和时间等物质基础来构建一个流动的空间。新的社会组织形式,正遍及整个世界,组织行为管理的方法也在不断推陈出新,只有与时俱进,才能使产品不落伍。
- 客户:协同管理软件产品的成熟很大程度上得益于是否在数量众多的、优秀的、典型的客户中成功实施,原因在于优秀客户在企业组织行为管理上都有自身的独到之处,而且对先进的管理理念和管理手段乐于接受和尝试。
2、项目管理
软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员( People)、产品( Product)、过程( Process)和项目( Project) 进行分析和管理的活动。 软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成 本按期、按质地完成软件交付用户使用。而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则、方法,同时避免前人的失误。 软件项目管理的内容主要包括如下几个方面:人员的组织与管理、软件度量、软件项目计划、风险管理、软件质量保证、软件过程能力评估、软件配置管理等。这几 个方面都是贯穿、交织于整个软件开发过程中的,其中:
- 人员的组织与管理把注意力集中在项目组人员的构成、优化上。
- 软件度量用量化的方法评测软件开发中的费用、生产效率、进度和产品质量等要素是否符合期望值,包括过程度量和产品度量两个方面。
- 软件项目计划主要包括工作量、成本、开发时间的估计,并根据估计值制定和调整项目组的工作。
- 风险管理预测未来可能出现的各种危害到软件产品质量的潜在因素并由此采取措施进行预防。
- 质量保证是保证产品和服务充分满足消费者要求的质量而进行的有计划、有组织的活动。
- 软件过程能力评估是对软件开发能力的高低进行衡量。
- 软件配置管理针对开发过程中人员、工具的配置、使用提出管理策略。
3、团队建设
软件开发中的开发人员是最大的资源。对人员的配置、调度安排贯穿整个软件过程,人员的组织管理是否得当,是影响对软件项目质量的决定性因素。
首先在开始软件开发的时候,要合理地配置人员,根据项目的工作量、所需要的专业技能,再参考各个人员的能力、性格、经验,组织一个高效、和谐的开发小组。
一般来说,一个开发小组人数在5到10人之间最为合适,如果项目规模很大,可以采取层级式结构,配置若干个这样的开发小组。
在选择人员的问题上,要结合实际情况来决定是否选入一个开发组员,并不是一群高水平的程序员在一起就一定可以组成一个成功的小组。作为考察标准,技术水
平、与本项目相关的技能和开发经验,以及团队工作能力都是很重要的因素。一个一天能写一万行代码却不能与同事沟通融洽的程序员,未必适合一个对组员之间
协作要求很高的项目。还应该考虑分工的需要,合理配置各个专项的人员比例。例如一个网站开发项目,小组中有页面美工、后台服务程序、数据库几个部分,应
该合理地组织各项工作的人员配比。对于一个中型农技110网站,对数据采集量要求较高,一个人员配比方案可以是2个美工、2个后台服务程序编写、3个数据采集
整理人员。软件开发中的开发人员是最大的资源。对人员的配置、调度安排贯穿整个软件过程,人员的组织管理是否得当,是影响对软件项目质量的决定性因素。
在组建开发组时,还应充分估计到开发过程中的人员风险。由于工作环境、待遇、工作强度、公司的整体工作安排和其他无法预知的因素,一个项目尤其是开发周
期较长的项目几乎无可避免地要面临人员的流入流出。如果不在项目初期对可能出现的人员风险进行充分的估计,做必要的准备旦风险转化为现实,将有可能给整
个项目开发造成巨大的损失。以较低的代价进行及早的预防是降低这种人员风险的基本策略。
4、发展战略CTO
技术总监(Chief Technology Officer,CTO,又常称为技术官或首席技术官)是企业团体里的高级主管职位之一,是企业内负责技术的最高负责人。
20世纪90年代,因计算机和软件公司热门,很多公司把CTO的名称给予管理计算机系统和软件的负责人。有时CTO和CIO( Chief Information officer,信息管理高负责人)
是同一个人(尤其在软件公司),有时CTO会归于比较精通科学技术的CIO手下。在不同领域的公司,CTO工作性质不同,即使在同一领域,工作性质也可能大不相同。
一般CTO会有以下责任:
- 长期技术方向(战略性)
- 短期技术方向(战术性)。
- 管理研究对公司经营活动和营利的影响。
- 公司中使用的软件。
CTO的工作职责主要面向以下方面:
- 制订并组织实施技术系统工作目标和工作计划。
- 组织制订并实施技术系统规章制度和实施细则。
- 组织技术、产品开发与创新。
- 组织建立并实施质量体系。
- 公司标准化、计量管理工作
- 定期进行技术分析和质量分析工作,制订预防和纠正措施。
因此,CTO面向的主要是企业在技术方向上的战略决策工作。
IT领域阶层(圈子)
IT领袖:年入过亿(例如任正非、马化腾、李彦宏、丁磊、马云等,包括期权股票以及投资理财等收入)
IT大哥:年入千万(级别次于以上几位大佬的公司老板,不缺钱,普遍对上一条里的人物羡慕嫉妒恨)
IT精英:年入百万(各IT公司副总裁级别人物,包括COO、CTO等,大多为职业经理人,赚够钱就跑)
IT人才:年入50万(各IT公司总监级别人物,有房有车,生活压力相对较小)
IT工程师:年入20万(高级经理级别,有房贷,生活压力大)
IT民工:年入10万(经理级别,基本无房,学会装一波,生活压力大)
码农:年入6万到10万(工作三四年,租房,继续混日子)
码奴:年入3万到6万(工作一两年,租房,混日子)
码畜:年入低于3万(刚毕业的,租房,傻乐)
2020年04月薪资参考,任何东西都是相对了。
束发读诗书,修德兼修身
麻雀虽小,五脏俱全。透过细节看各个组织模块,系统模块的建设方向,发展态势。
国之强,好战必亡,忘战必危。居安思危,常备不懈。
静水流深:保持一颗平和的心态。宠辱不惊,以有条不紊,井然有序的方式去面对生活和迎接挑战。
2
3
4
5
6
7