这是一篇从“人”(而非技术也非管理)的角度,聚焦于自身职业发展方方面面的文章,包括职业、学习、生产力、影响力等。
1. 拥有商业心态 你所能犯的最大错误就是相信自己是在为别人工作,职业发展的驱动力一定是来自个体本身,而不是领导、公司,因为职业发展是属于你自己的。如果你真的想在这个充满竞争的世界里脱颖而出,那么你首先必须制订一个坚实可靠而又深思熟虑的计划,学会主动管理自己的职业生涯。 职业生涯中要做的第一件事便是,转变你的心态。而商业心态对于管理职业规划至关重要。如果你已经习惯于领取一份固定的薪酬,便会很容易导致你产生:你只是在为这家公司打工的谋生心态。尽管在你的职业生涯的某个特定时间段里,你可能确实是在为某家公司打工,但是千万不要因此固化了你的整个职业生涯。 image.png 那么心态该如何转变呢?首先你要把自己当作一个企业去思考,然后把雇主当作是你这个企业的一个客户。当然,你可能只有这么一个客户,你所有的收入都是从这一个客户得来的,但是这种诠释雇用关系的方式可以将你从雇佣关系的弱势地位转换成为自我治理和自我引导的主动地位,同时,心态转变后能更有利于你做出良好的商业决策。 2. 作为企业,该如何思考 现在你已经把自己当作一个企业了,在这个状态下,其实你的收益并不大,至少物质上并没有给你太多好处。要想从中有所收获,你得先弄明白企业是如何思考、发展的?上个月跟我们的PMO@冰霖 有过一次闲谈,过程中印象最深的一句话是:一个企业要发展,首先要找到一个能赚钱的产品或服务,然后思考如何完善、改进,以达到更长远的发展。发展过程中,始终要考虑投入产出(成本、风险、收益、回报周期),将收益最大化。 image.png 把你作为一个企业,你目前以及未来能提供什么服务或产品呢?即使你刚开始思考这个问题,对你自己的职业生涯或许也会慢慢产生深远的影响。拿我来举个例子,我目前的职业是web前端工程师,那我售卖的就是前端开发技能,准确来讲,售卖的是把公司的想法实现成互联网产品人机交互的能力。企业需要持续不断地迭代、改进和完善自己的产品。你也应该这么做,通过不断学习升级打怪,去完善自我。 3.思考未来的目标 作为企业,出了要知道自己能提供什么服务或产品,还需要明确的业务目标。起步阶段最简单的就是在心中树立一个大 目标,然后再建立能帮你达成这个大目标的小目标。大目标并不需要那么具体,但是必须足够清晰,能够让你知道自己是在向它前进还是离它越来越远。 例如想成为一家公司的经理或主管?想在某一天走出去开拓自己的业务,研发自己的产品? 很多人认为目标太过于大,不容易实现,这也是为什么需要设立小目标的原因。实现目标的过程,就好比航海,小目标可以让你航行轨道始终控制在正确的方向上,激励你朝着更大的目标前进。大目标如果没有分解成小目标,你很容易偏离航向,迷失在茫茫大海之中。 举个例子: 职业上,我想成为一个能够影响互联网行业发展的专家。 在实现目标的过程中,我的必经之路是踏入行业,掌握行业的某种技能,考核的标准是:能够通过自己掌握的技能,实现就业。 经过在行业中的几年摸爬滚打,不断提升自己技术(专业能力)、积累人脉(交际能力),慢慢打磨自己向高手靠拢,衡量的标准是是否能跟其他高手/专家进行平等对话(这里的平等对话,并不是低人一等的意思,而是互相交流过程中能够相互传递信息,而不是不知所云)。 越往上走,你会发现你的视野正在变化,可以看到别人所看不到,能够影响甚至引领行业发展的东西正等着你去挖掘。 image.png 要实现目标的整个过程,那我可能会切割成如下小目标: image.png 4. 承担更多的责任 逼着自己一路前行的方式方法很多,但责任是永远是鞭策你自我成长最有效的途径。如果你自驱能力很强,那我恭喜你哈。如果不是,请你在有任何机会去承担更多责任时,主动去承担,接受挑战。 mysql5.7.22 show create table information_schema.tables\G *************************** 1. row *************************** Table: TABLES Create Table: CREATE TEMPORARY TABLE `TABLES` ( `TABLE_CATALOG`www.baikayule.cn varchar(512) NOT NULL DEFAULT www.baikayuL.com'', `TABLE_SCHEMA` varchar(64) NOT NULL DEFAULT '', `TABLE_NAME` varchar(64) NOT NULL DEFAULT '', `TABLE_TYPE` varchar(64) NOT NULL DEFAULT '', `ENGINE` varchar(64) DEFAULT NULL, mysql8.0.15 show create table information_schema.tables\G *************************** 1. row *************************** View: TABLES Create View: CREATE ALGORITHM=UNDEFINED DEFINER=`mysql.infoschema`@`localhost` SQL SECURITY DEFINER VIEW ` mysql5.7 中I_S中tables表是以临时表的形式存在的(查询该表就会创建临时表,创建的临时表过多,可能会导致mysql占用的内存暴涨,出现OOM) mysql8.0 中I_S中tables表以视图的形式存在(查询该视图,不会创建临时表,会使用到视图中表的索引) mysql5.7中获取表大小情况 SELECT table_name, CONCAT(FORMAT(data_length / 1024 /www.huashengyLe.com 1024, 2), 'M') AS dbdata_size, CONCAT(FORMAT(index_length / 1024 / 1024, 2), 'M') AS dbindex_size, CONCAT( FORMAT((data_length + index_length) / 1024 / 1024 / 1024,2), 'G') AS `db_size(G)`, AVG_ROW_LENGTH, table_rows, update_time FROM information_schema.tables WHERE table_schema = 'test' AND table_name = 'testse'; +------------+-------------+--------------+------------+----------------+------------+---------------------+ | table_name | dbdata_size | dbindex_size | db_size(G) | AVG_ROW_LENGTH | table_rows | update_time | +------------+-------------+--------------+------------+----------------+------------+---------------------+ | testse | 0.02M | 0.02M | 0.00G | 862 | 19 | 2019-07-10 10:52:02 | +------------+-------------+--------------+------------+----------------+------------+---------------------+ 执行计划中出现了where,未用到索引(存储引擎检索数据后,server层进行过滤) desc SELECT table_name, CONCAT(FORMAT(data_length / 1024 / 1024, 2), www.wanxinylegw.com 'M') AS dbdata_size, CONCAT(FORMAT(index_length / 1024 / 1024, 2), 'M'www.tdcqpt.cn) AS dbindex_size, CONCAT( FORMAT(data_length + index_length / 1024 / 1024 / 1024, 2 ), 'G') AS `db_size(G)`, AVG_ROW_LENGTH, www.dfyLdL2019.com table_rows, update_time FROM information_schema.tables WHERE table_schema = 'test' AND table_name = 'testse'; +----+-------------+--------+------------+------+---------------+-------------------------+---------+------+------+----------+---------------------------------------------------+ | id | select_type | table | partitions | type | possible_keys | key | key_len | ref | rows | filtered | Extra | +----+-------------+--------+------------+------+---------------+-------------------------+---------+------+------+----------+---------------------------------------------------+ | 1 | SIMPLE | tables | NULL | ALL | NULL | TABLE_SCHEMA,TABLE_NAME | NULL | NULL | NULL | NULL | Using where; Open_full_table; Scanned 0 databases | +----+-------------+--------+------------+------+---------------+-------------------------+---------+------+------+----------+---------------------------------------------------+ mysql8.0中获取表大小情况 SELECT table_name, CONCAT(FORMAT(data_length / 1024 / 1024, 2), 'M') AS dbdata_size, CONCAT(FORMAT(index_length / 1024 / 1024, 2), 'M') AS dbindex_size,www.xingyunylpt.com CONCAT(www.dfpigt.com FORMAT((data_length + index_length) / 1024 / 1024 / 1024,2), 'G') AS `db_size(www.qifeimn.com)`, AVG_ROW_LENGTH, table_rows, update_time FROM information_schema.tables WHERE table_schema = 'test' AND table_name = 'testse'; +------------+-------------+--------------+------------+----------------+------------+---------------------+ | TABLE_NAME | dbdata_size | dbindex_size | db_size(G) | AVG_ROW_LENGTH | TABLE_ROWS | UPDATE_TIME | +------------+-------------+--------------+------------+----------------+------------+---------------------+ | testse | 0.02M | 0.02M | 0.00G | 862 | 19 | 2019-07-10 10:25:16 | 主动寻找机会。通常没有人愿意涉足的领域是搜寻机会最好的地方。以程序员来说,可能有一个没人愿意碰的遗留应用,或者代码库里的某个没人敢去碰的模块。正因为没有人愿意碰、没人敢去碰,所以没人跟你抢,这就成为了你日益强大的阵营。如果你能把沼泽变为良田,你也就展现了自己的价值。 间接承担责任。最好的方式是成为团队中其他人的导师,自愿帮助新人加速成长,为任何有需要的人提供帮助。通过介入和解决别人的问题,你不仅可以学到更多自己专业之外的知识,而且随着时间的推移,你还能在团队中逐步树立影响力。 5.解决问题,而不是来抱怨问题 在任何组织中,总是有很多人会告诉你为什么这个想法行不通,那个问题太难,这个问题不适合我来做,更适合谁去做。这样的人不胜枚举。千万不要成为他们中的一员。相反,你要成为那个永远能为各种问题找到解决方案,并执行落地这些解决方案以获得成果的人。成为这种人也是获得晋升的可靠方法。如果你能解决别人无法解决或不愿解决的问题,无论在哪家公司,你都能轻而易举地成为最有价值的人。 6.掌握快速自我学习的能力 很多程序员被绕进了学习新技术、新编程语言、新框架的漩涡,感觉学习的压力很大,怎么爬也爬不出来。通常,这种压力是自我造成的。 在我刚出来工作的时候,我学习技术的主要途径就是买一本书,然后只有通读完全书后,我才会将自己学到的技术应用于项目实践中。这个方法,确实能学到东西,但是效率很低,在实践过程中,还得经常回顾书的内容,来弥补自己在学习过程中遗漏的问题。 通常在业务发展的过程中,技术选型是不会等待你学习好一门技术才投入到业务中的。这便迫使我们去寻找更好的自学方法,能在有限的时间内吸收、掌握所需内容即可。例如我在已有react开发经验的情况下,只花了1天左右零碎的时间,通过对比react与vue的语法区别,然后在JSBin(http://jsbin.com)中试跑demo,第二天便可以将vue投入到项目开发中去。 这其实是一个筛选学习内容、动手操作再到学以致用的过程,这个过程可以不断循环,不断吸收更多的知识。 这个方法可以高效地掌握一门技术,而无需通晓全部细节。通过在业务实践项目中不断暴漏问题、解决问题、总结问题,你会发现所有技术问题,慢慢都会收拢到一起,逐渐丰富你的经验,最终你便开始能够解决“某一类问题”,而不是“某一个问题”,随着你能够解决问题的类型越多,你融会贯通的能力就会越强。 7.找出自己的短板,并消灭它 专注于自身强项,这没什么不妥,但有时候,如果弱点得不到解决,通常会成为你的职业或生活的绊脚石。我们每个人都有弱点。我们能发现并消除自身的短板越多,长久来看我们从中受益越多----可以参考木桶效益。 很遗憾的是,每个人身上大多数的短板,自己只能隐约觉察到。对于自己不知道的,你很难清楚地意识到,也很容易忽略。 image.png 那么我们如何找到自己的短板呢?旁观者清、当局者迷的道理大家都知道,但通常人都不太喜欢逆耳的声音,所以别人往往也不会很直接的指出你的短板。 这种情况下,我们可以通过如下尝试: 自身主动与他人做对比:同样一件事情,人家做到什么程度,你能做到什么程度,人家是怎么做的,你是怎么做的,总的来说,不比不知道,一比吓一跳。通过比较你就知道自己的思路,行动的差距在哪里。 在反思中找到自己的短板:有时候做一个事情,不顺利,失败。这时候虽然很沮丧,但是如果能够在沮丧中反思自己,为什么会出现这样的错误,如果当时怎么样处理就会好一些,由此就知道缺少哪一方面的短板了。 有一两个知己朋友也会起到很大的作用,虚心吸收朋友指出的问题,并珍惜你俩的基友吧 专注于自己的领域的同时,也有扩宽自己的视野,涉猎不同领域渠道的信息 8.合理规划时间,提高生产力 多年来,我尝试过不少提升生产力的方法,目前我用的是四象限工作事项管理法和番茄时间管理法组合的方式。 8.1 番茄时间管理法 第一次使用番茄工作法的时候,我并没有严格做到它规定的要求。我只是每天用它来设置若干个“25分钟”的番茄钟。我并没有留意自己每天完成了几个番茄钟,也没有估算某项任务要用掉几个番茄钟;因此我并没有从中受益。只是简单认为整个方法就是让你在一个时间段内保持专注。 直到后来我决定严格地使用番茄时间管理法,发现自己潜移默化地逐渐有能力、可量化去真正评估自己每天可以完成的工作量。通过跟踪自己一天内完成了多少个番茄钟,并为每天要完成的番茄钟的数量设定目标。今后每次项目中,需要评估工作量、估算工时,便发挥了番茄时间管理法真正的威力。 image.png 8.2 四象限工作法 那四象限工作法如何与番茄时间管理结合使用呢? 使用番茄工作法,你可以把每周看作是由有限个番茄钟组成的。想在每周完成一定数量的任务?你要搞清楚自己一周能完成多少个番茄钟,并相应地设置任务的优先级。通过计算自己完成的番茄钟的数量,可以确切知道自己一周完成了多少任务。 这里有个有意思的问题:如果你没能完成自己设定的任务,但是却用完了足够数量的番茄钟怎么办? 某些情况下,我们总是幻想着自己可以在一周内完成超出自己实际能力许多的工作,过高地估计了自己的能力而低估了完成任务所需的时间。这个时候,我们就非常有必要给各个任务项设置的优先级了,将你每周需要完成的任务按照重要、紧急划分成四类:重要紧急、重要不紧急、紧急不重要、不重要不紧急。 有人过来问,这两个分别是什么软件? 这个给大家介绍下哈,分别是Focus Matrix和Be Focused。 这两款软件数据是可以打通的,同时提供了手机版。 当然也可以不使用软件的方式,这只是一个时间和任务管理的方法论,你也可以买一个沙漏⏳管理时间和便签管理任务,使用得当的话,也是可以达到一样效果的。 9. 打造个人影响力 事实上个人影响力的提升一定不是一朝一夕的事情,也不是光设定目标就可以达成的。确实有许多潜移默化和机缘巧合融合在里面。我所谈的也仅仅是方法论,需要大家去践行,再去提炼和总结。 这里总结了三步: image.png 第一步是分析自己,很多人觉得我怎么会不知道自己是个什么人呢?抱歉,绝大部分80%的人呢,都是无法认清自己,一个可以客观评价自己的人,在自我认知部分就会更精准。最简单可量化的方式就是从技能、性感等方面去绘画雷达图,从而客观的评价自己。 image.pngimage.pngimage.png 第二步就到了定位自己,这个其实跟产品的定位有点类似,为什么有些品牌可以成功,确实与其对于自身产品的高度认知和品牌价值的集中萃取,一眼就可以做识别和关联用户。那么对于我们人来说也是这样的,我知道自己是什么样的人之后,我也会清晰的知道,自己适合往什么样的方向去发展,找到自己的定位。 第三步是形成标签,在你过往的各种各样的人生经历中,你需要提取一些标签,固化自己,让自己成为斜杠青年,让陌生的人在认识你的时候,可以更快的识别。