2024-03-16 运动记录

饮食 早餐: 玉米、牛奶、鸡蛋 午餐: 公司食堂 晚餐: 玉米和酸菜捆饭+三四根巧乐兹雪糕 无氧 无 有氧 总结 巧乐兹雪糕突然买多了,好大一箱,天啊!然后才发现一根就260卡路里,吃一根基本不能乱吃东西了,只能慢慢控制了。 早睡早起,没得说的。

2024-03-16 · 1 分钟 · 13 字

2024-03-15 运动记录

饮食 早餐: 玉米、牛奶、鸡蛋 午餐: 公司食堂 晚餐: 凉菜 无氧 无 有氧 总结 凉菜还是吃太多了,而且还是重油重辣的。 晚上早点睡觉。

2024-03-15 · 1 分钟 · 13 字

ARTS Week 21

Algorithm 本周的算法题为 565. 数组嵌套 索引从0开始长度为N的数组A,包含0到N - 1的所有整数。找到最大的集合S并返回其大小,其中 S[i] = {A[i], A[A[i]], A[A[A[i]]], ... }且遵守以下的规则。 假设选择索引为i的元素A[i]为S的第一个元素,S的下一个元素应该是A[A[i]],之后是A[A[A[i]]]... 以此类推,不断添加直到S出现重复的元素。 示例 1: 输入: A = [5,4,0,3,1,6,2] 输出: 4 解释: A[0] = 5, A[1] = 4, A[2] = 0, A[3] = 3, A[4] = 1, A[5] = 6, A[6] = 2. 其中一种最长的 S[K]: S[0] = {A[0], A[5], A[6], A[2]} = {5, 6, 2, 0} 实现代码如下: const arrayNesting = function (nums) { // 使用visited数组来记录访问过的元素 let visited = new Array(nums.length).fill(false); function getNumValue(index, nums) { // 设置count,用于记录最大集合长度 let count = 0; // 直到为false,也就是已访问过,出现重复元素,则跳出循环,返回最大集合长度count while (!visited[index]) { visited[index] = true; index = nums[index]; count++; } return count; } let longestSubArray = 0; for (let i = 0; i < nums.length; i++) { // 因为前面如果已经访问过,那么后面再次访问时,获取数组长度值一定是比之前的小的。比如当i=0时,触发了后面i=3的递归遍历,当真的执行到i=3时,又重复进行,所以没有意义。 if (!visited[i]) { let subArrayLength = getNumValue(i, nums); // 每次遍历,比较大小,获取最大值,赋值给到longestSubArray longestSubArray = Math.max(longestSubArray, subArrayLength); } } return longestSubArray; } 解题思路: 我一开始的思路是使用递归,依次将nums各个元素都执行一遍,虽然也解出来了,但是无法满足力扣的解题需求,毕竟是暴力解法,不够优雅。然后使用ChatGPT,让它诊断了下代码,提出特别好的解法,就是上面的代码。最核心的一点就是,使用visited数组来记录访问过的元素,因为如果前面已经访问过,那么后面再次访问时,获取集合长度值一定是比之前的小。比如上面的示例1,当i=0时,其值为5,触发了后面i=5的递归遍历,当真的执行到i=5时,又重复进行,所以没有意义。 Review It once rained for two million years, say scientists 农民在干旱时期祈求降雨。我们大多数人都有过这样的经历,即希望上天为我们的花园降雨以便浇灌植物。然而,我们谁也无法想象一场持续200万年的长时间降雨。英国地质学家和法医科学家阿拉斯泰尔·鲁菲尔发现,在2亿至3亿年前,在盘古大陆分离成大陆之前,地球确实经历了一个长达200万年不间断降雨的时代。鲁菲尔博士说,这有助于促进全球动植物的发展。他认为,降雨可能是由一系列大规模火山喷发后湿度的大幅上升引发的。 鲁费尔博士及其团队是基于在欧洲东阿尔卑斯山脉进行的研究,该研究于20世纪70年代和80年代展开。数据显示,在可追溯到2亿多年前的古老岩石中沉积了不寻常的地层。鲁菲尔说,这导致越来越多的证据表明,雨季可能是“使恐龙和可能是我们现代陆地动物群其他成员多样化并占领陆地”的触发因素。他补充说:“这可能是生命史上最重要的事件之一,因为它不仅在允许恐龙时代的同时,也促成了大多数构成现代动物群的关键类群的起源,包括龟类、鳄鱼、蜥蜴和哺乳动物。” Tip Flutter国内环境配置 ...

2024-03-13 · 1 分钟 · 179 字

2024-03-12 运动记录

饮食 早餐: 玉米、牛奶、鸡蛋 午餐: 公司食堂:吊烧鸡 晚餐: 鸡排+捆饭 无氧 无 有氧 总结 继续,先保持去健身房,不中断。 晚上早点睡觉。

2024-03-12 · 1 分钟 · 13 字

《程序员职业规划手册》课程笔记

企业作为一个商业组织,大多动作的基本前提都是看成本和收益。所以一个朴素的理念是,当你创造的价值超过你的薪水,你就一直有竞争力。 想要更好地发展,除了了解路径和能力要求之外,还要回到一个本源问题:理解自己岗位对于公司的价值。 其实“要不要转管理”这个话题,你可以从三个角度来问自己。第一,意愿,也就是你愿不愿意?第二,特质,也就是你的个人特质适不适合做管理?第三,能力,你当下的能力能不能成为管理者? 现在此时此刻的感悟就是,管理真的不好做,光能不当众破防暴走发脾气这一条,就可以卡住很多人。因为你发脾气并不能解决问题,事已至此,你指责对方,人性本就趋利避害,对方也只会千方百计去找各种借口,互相推诿,到头来,事情没有解决,反而变得更糟糕。每次准备发脾气的时候,就默念一百遍“宰相肚里能撑船”吧,哈哈哈。 技术管理者只是减少了写代码的时间,不代表我们放弃了技术,反而是从一个更高的维度看待技术。 一个人再优秀,每天也只有 24 小时,也只有一双手,也有很多能力短板和盲区。但当我们有了自己的团队,就可以能力互补,可以互相激发,很多原来一个人干不了的事就有可能干成了。因此,从职业发展角度来看,管理是放大个人价值的杠杆。 在当下的职场,没有任何人是孤岛,每个人都需要跟人去沟通,在协作中完成任务。 哈佛商学院克里斯坦森教授在《你要如何衡量你的人生》中说过,“如果你想要帮助他人,就要做管理者。管理者是最崇高的职业之一,没有哪一个职业能像管理者一样为他人提供学习和成长的机会,让他们懂得承担责任并取得成就,以及为团队的成功做出贡献。”这是我看过对于管理者最好的诠释,送给所有已经是管理者,或者未来希望成为管理者的你。 《远见》一书中说,“在老板面前表达你的野心是一件健康而有益的事”。你需要主动跟老板去争取机会,能够承担更大的挑战,大多数人的成长都是在事上练出来的。 前年和领导谈心,说到团队的未来发展,我脱口而出,团队发展状大,成立子公司,为什么一定要比其他部门差呢?就要做第一。现在想起来,不免心虚,且不说公司层面、外部市场瞬息万变,单是部门自身就存在很多需要解决的问题,只能说躬身入局,才知深浅,很多事情人一多,关系一复杂,难度成倍数增加,但是我不后悔,敢想就敢要,越挫就越勇,未来的事情谁说得准呢。 绝大多数技术人发展的瓶颈在于只看到了自己手中的代码,只关注正确的实现和高效的交付。但写完代码,这一切才刚刚开始。综合能力的发展会让我们拥有宏观视角,更理解企业的价值传导链路,自己在这个链路上可以贡献的价值是什么,突破这一层,未来的职业发展才会有更多可能。 了解自己适不适合做技术专家,有没有持续钻研的兴趣。分享一个自测小方法,思考两个问题就好。 你下班后会不会去主动研究? 没有项目的要求,没有老板的压力,你会不会持续在某个方向精进学习? 在这个瞬息万变的时代,任何对于未来的预测行为都是徒劳的。但我们可以换个角度思考这个问题,产生这样的困惑,最主要的原因,就是没有看到在变化的市场需求背后,技术提供了哪些不变的价值。反过来讲,只要未来的市场依然有这部分需求,技术岗就依然有发展前景。 唯一不变的就是变化本身,不自我设限,你的人生存在无数个可能。 数字化、规模化、智能化、以及技术底层能力的建设,这是在变化的市场中,技术一直在发挥的价值。 当下很多技术人对于产业数字化不感冒,因为所做的工作跟原来互联网红利期时做的技术工作差异很大。 能用技术帮助真实世界解决疑难杂症,提升效率,技术的价值就得到了很大的发挥,你的岗位价值也是毋庸置疑的。 做一个终生学习者,持续精进专业技术能力,向行业学习。 怎么学习一个行业? 这个行业的商业模式是什么,也就是靠什么赚钱的? 行业的规模如何?头部玩家有哪些?它们的模式有哪些特色? 这个行业的上下游是谁?有哪些经典的作业场景?业务操作流程是什么样的? 技术的本质是一个工具,未来技术的价值不会局限在互联网行业,而是在更多不同的行业、场景下去开花结果。 市场永远在变化,在当下的时代,没有任何能力可以帮你安身立命,安稳一生。唯有不断学习,提升专业能力,向行业学习,方能适应不断变化的市场。 在心怀“技术改变世界”梦想的同时,更需要脚踏实地,从市场的需求中去思考技术的价值。 技术人的务实,从来不是只在办公室里冥思苦想,在大脑中自嗨,而是要走出实验室,回到真实的世界,敢于把自己的手弄脏,用技术这个犀利的工具解决真实世界里的一个又一个难题。 实践是检验真理的唯一标准,写代码的工作也是一样的,不要纸上谈兵。 知名人才发展专家薛毅然老师说,“职业发展无非是如何更好地实现个人能力和价值与市场需求的整合,以及通过你个人能力的提升,去创造下一个被整合的机会”。 在人生的重要事情上,需要一种魄力,抛开我喜不喜欢,先考虑应不应该。 在大环境动荡的当下,我们能做的就是把自己当作一家公司,不断做销售,积累客户。换句话说,就是主动通过各种渠道去了解市场的变化,了解自己的行情,给自己增加备选机会。同时还要长年累月地给自己做宣传,做出自己的代表作,积累自己的职场口碑,建立个人影响力。 每个岗位的工作,都承载了公司体系内的一部分功能,最终形成合力,实现整个体系的目标,而我们就是每一个部分的工具。 任何一个岗位,都是围绕企业目标服务的,围绕为客户创造价值服务。所以在职场,一定是结果导向的。这个结果,不是你做了几个项目,写出了多少行代码,引入了多么新颖的技术,而是看你做的事情给公司创造了什么价值。 给你举个例子,小 A 是一个非常优秀的技术人,年年拿高绩效,今年她从一线升为技术管理者,每天工作比之前还努力,却只拿了普通绩效,特别委屈。我告诉她,你现在是技术管理者,你的考核结果是团队拿到的结果,以及团队拿结果的能力。那时她才意识到,自己虽然很拼,但团队并没有成长起来,才意识到管理者的角色要求是什么样的,找到了接下来的努力方向。 管理者前期肯定要亲力亲为,冲在最前面,毕竟这个时候是要起带头作用的,平时自己在公司也是一样的,从各方面都会特别注意,我不想落别人口实,基本都要求自己呈现比较好的精神面貌,但是亲历亲为也是有时间段的,到了一定的阶段,就需要开始做好规划,向下授权,从中脱身,聚焦更为重要的事情。 如果你很努力,结果却不好,那还是要回到目标上,看看自己努力的方向对不对。 事实上,职场有一个冰冷的事实是,任何人都是可以替代的。 有些人把工作当做人生的重要寄托,当成自己成就感、价值感、甚至幸福感的主要来源,但职场真的承载不了太多东西。 在任何一份工作中,你都是自己职业发展的主人。工作的成就感不只是岗位本身带来的,更是我们自己挖掘出来的。 无论做什么事,都不要急着一头扎进去,先看到全景,才能游刃有余。 切勿不可只见树木,不见森林。 企业存在的目的是为客户创造价值,从而获取利润。 时不时给自己按个暂停键,从手中忙碌的工作中后退一步,站在你的 N+1(上一级)、N+2(上级的上级)角度去思考。想想他们在忙什么?你合作的上下游在忙什么?你所在的业务单元今年有哪些重要的 OKR?目前面临哪些挑战?从这些信息中,你可以判断自己当下关注的优先事项和目标是否正确。它们对公司来说,是真正有价值的东西,还是只是一些细枝末叶?同时,它也会时刻提醒我们的工作要以终为始,要知道自己写的代码跟企业创造价值中间的关系。 跟我情况如此相似,当前正受困于细枝末节的事情,无法脱身,最近一直在研究如何脱身,把精力和时间聚焦在行业和市场上面。 作为员工定期向老板汇报工作,这根本不是什么“会来事儿”,而是你的基本义务,没做到,那是你自己失责。 只要我们的目标是一致的,很多问题都可以化解。不管对方是说话特别直,让你在会上很没颜面,还是特别强势,言语中带着火药味,还是表面态度很好,实际可能和稀泥……都不重要,只要目标一致,大家就可以合作。你不喜欢的人,不代表不可以合作,职场本身也承载不了那么多个人情绪。 你要知道不同的人身上不同的利益诉求和恐惧。你会发现,我们这里说到的“利益”和“恐惧”,就是基础人与人相处的“换位思考”。在组织中,不同的岗位都有自己的角色诉求,也有这个岗位需要处理的挑战和工作。如果你理解了人与人相处的基本逻辑,同时理解了当人处在职场这个游戏场中,都有不同的“角色要求”,很多合作中的问题可能就豁然开朗了。 事实上,晋升不是奖励。如果过去功劳特别多,那也应该是用绩效、年终奖来奖励,而不是晋升。在大多数企业中,晋升也不是论资排辈,不是说你在这个岗位多少年了,就该给你晋升机会了。跳出个人视角,站在公司角度来看这个问题,晋升是企业的一次人才选拔,选拔那些对于公司未来发展更有价值,能承担更大责任的人。 大多数企业晋升的选拔是从战功、能力、影响力以及候选人与企业文化的匹配度来看的。 作为第一个“吃螃蟹”的人,你的价值会被放大。 我一直认为,职业发展不等于升职加薪。即使当下你没有晋升机会,不代表你没有成长。个人的职业发展需要回到自我身上。职位是一时的,只是在这个企业的一个 Title 而已,而能力是长在我们身上的,离开公司,跳槽也是可以带走的。 技术人的能力提升无止境,你的能力提升最好围绕“能给公司创造价值”这件事来做,尤其是竞争激烈的当下。举个例子,你做的是 ToB 业务,业务面临的问题可能不是服务性能瓶颈,而是如何快速交付,这样才能在市场竞争激烈、与客户谈判时有更多的筹码。你要尽快学习的不是高并发系统架构怎么设计,而是研究如何提高交付效率,你可能需要了解一些敏捷开发、研发效能提升工具,再思考在系统架构上哪些地方可以优化,哪些可以抽象?业界内相似的系统架构是如何设计的? ...

2024-03-10 · 1 分钟 · 187 字