马斯克贴脸开大星际之门项目:他们根本没钱,奥特曼是骗子
昨天,美国科技界发生了一件大事:美国新任总统特朗普联合 OpenAI CEO 奥特曼、软银 CEO 孙正义宣布了一个名为「星际之门」(Stargate Project)的人工智能项目。
该项目将成立一家公司,计划未来四年内投资 5000 亿美元,并立即开始部署 1000 亿美元,为 OpenAI 在美国建设新的人工智能基础设施。此举旨在确保美国在人工智能领域的领导地位,同时创造数十万个新就业岗位。
图源:the Verge
星际之门项目公布之后,围绕着它的讨论便开始了,有力挺者,也有泼冷水的。
近来风头正盛的马斯克来了波贴脸开大,「他们根本就没有这么多钱。并且根据可靠的消息来源,软银现在的资金远低于 100 亿美元。」
数小时之后,奥特曼进行了回击。他一方面肯定了马斯克是我们这个时代最鼓舞人心的企业家,并真诚地尊重他的成就。
另一方面反驳道,「马斯克你是错的,你肯定也知道。你要不要来参观一下已经在建设中的第一个站点呢?星际之门项目对国家来说是件好事。我觉得有利于国家的事情并不总是对你们公司最有利。在你的新角色中,我希望你能把国家放在第一位。」
在另一位推特博主、软件工程师 Jason DeBolt 的帖子(他表示奥特曼不值得信任,直觉告诉他奥特曼应该远离人工智能,星际之门项目不会有好结果)下面,马斯克又嘲讽「奥特曼是个骗子」。
而就在马斯克与奥特曼在推特对线的同时,人工智能独角兽 Anthropic 的 CEO Dario Amodei 也加入了战局。另外,据多方可靠消息,谷歌昨日向 Anthropic 追加了 10 亿美元投资。
在达沃斯世界经济论坛接受彭博社采访时,Dario Amodei 认为,星际之门看起来「有点混乱」,目前既不清楚该项目实际涉及多少资金以及其中多少资金能承诺到位,也不清楚政府将如何参与进来。
Dario Amodei。图源:bloomberg
此外,微软 CEO 纳德拉在接受 CNBC 采访时,也被问及对星际之门以及马斯克嘲讽 OpenAI 等没这么多钱的看法。
纳德拉没有选择正面回答,只是表示微软 2025 财年将投入的 800 亿美元会到位,这些钱将用于扩建 Azure 服务,世界各地的客户可以在其上使用 OpenAI 以及其他厂商的大模型。
你觉得星际之门项目会草草收场吗?
参考链接:
来源:juejin.cn/post/7462937570671984681
🤔认真投入两个月做的小程序,能做成什么样子?有人用吗?
前言
Hello 大家好我是 oil 欧呦,大概一个月前,我写了一篇文章 # 🤔认真投入一个月做的小程序,能做成什么样子?有人用吗? ,那是我开始做自己的第一个卡盒小程序的第一个月,那又过了一个月后,这个小程序做到什么程度了呢?今天就给大家汇报一下情况。

性能优化
从上个月月底开始,我就一直在进行性能优化了,因为用户的大部分的数据都是存储在本地的,因此数量量比较大的时候,一些普普通通的运算逻辑也会变得很耗时。于是我以单个卡盒 5000 张卡片正常使用为标准进行性能优化,上个月先是做了性价比最高的虚拟滚动,虚拟轮播图,减少 dom 节点的渲染,保障几百张卡片时页面可以正常使用。
在这个月里大部分做的都是复杂运算的复杂度降低,跟着 performance 里的火焰图一点点检查一些耗时高的运算,减少数组遍历次数,减少嵌套遍历,增加防抖,缓存等等机制,让复杂运算只在需要的时候执行,最终效果还是很可观的,目前 3000 张卡片只有轻微的操作延迟了。
我还将轮播图的优化写了一篇文章介绍:😎 小程序手搓轮播图,几千个元素滑动照样丝滑~,其他的性能优化和我的业务太强相关了,就没有单独写文章。
考虑到小程序本地存储的限制和复杂运算导致的卡顿问题,后面有时间了我还是把全部数据都迁移到云上数据库吧,这样用户也可以跨设备使用了。
Bug 修复
随着功能越来越多,Bug 也陆续浮现出来。由于小程序还处于初期阶段,我还没有写自动化测试,所以每次添加新功能时,经常会影响到已有的功能。后来,我每次发版前都会录一个介绍新功能的视频,顺便发到小红书上。这个视频中肯定不能出现 Bug,这等于强制我把手动测试和宣传流程绑定在一起。
有几个与小程序数据修改后没有重新渲染页面的 Bug ,修复花了不少时间,虽然 Cursor 在 Bug 修复方面帮不上太大的忙,但用多了反而让我对自己的代码不够自信。偶尔踩踩坑,自己从头梳理一下逻辑也挺好的。
新的 AI 功能
推出了三种学习模式:

- 回忆模式:自行选择对卡片的记忆情况
- 单选模式:通过 AI 生成混淆选项
- 复述模式:手动输入答案 AI 进行评分和解析
具体的功能介绍可以看这篇文章:🧐如何基于艾宾浩斯记忆曲线设计一个学习规划+定时复习功能
期间,大模型换了三次。第一次从千问换成了 DeepSeek,后来因为生成速度太慢,又换成了 Gemini。结果用了一段时间后,发现由于地区原因被限制调用了,最后换成了微软的 Phi4。顺便我还重构了整个用户限额逻辑,将每天的使用额度从 15 次提升到 50 次。反正 AI 的成本也不高,不如让用户开心使用。
小程序使用情况
第一个月的第三周开头把小程序上架,第四周结束大概 150 人使用过,每天十几二十个,不过当时就在掘金发发技术文章,也没咋宣传。
从第一个月结束到今天,大概新增了 1300 个用户吧,一月六号那一天不知道是不是有了什么小程序的推荐,那天用户访问量会比较高,达到四百多:

但是后续因为没有备案,导致小程序的被搜索功能直接被关闭了,只有已经添加过小程序的用户才能进入,导致后续的访问量就暴跌了,那天我赶紧去把备案的资料准备好,整个流程大概三天搞定了,这三天里就没有任何新用户可以进入小程序了,从那之后小程序的流量就很差了,每天大概二三十人吧,加上年末了工作特别忙,也没有经常去更新功能和运营小红书了。
截至至发文这天,整体数据是这样的:

卡盒集市

从我的小程序上线一周的时候,就有好多人说如果要自己生成卡片,即便有 AI 也挺麻烦的,因此我就想着提供一些现成的卡片,用户可以自助选择导入,但是卡片的内容我一直很纠结,毕竟用户五花八门,想要学的东西也不同,我自己来做这件事情要花不少精力的。
不过纠结归纠结,身体还是很老实的开始做了,第一批的内容我做的是我自己用学习卡盒最常用的场景,就是英语对话学习,将一篇英语对话文章中的每一句话做为一张卡片,正面是中文,反面是英文。首先花了很多时间,先创建了《365天英语口语》,其中包含各种日常生活场景的对话句子,用于学习英语造句能力和常用语法。共七十多个卡盒,每个卡盒中卡片一些关键点都自带笔记。
其次是《日常生活单词》,包含各种生活场景的常用单词集合,动物,天气,厨房用具,旅行,购物都有,后续还有四十几个场景我正在整理中,每张卡片背面笔记中都带有例句,卡盒集市中的卡盒在预览的时候可以简单查看正反面,如果需要学习可以导入到自己的目录中,导入后就像自己创建的卡盒一样可以制定学习计划了。
内容的整理我是用的 DeepSeek,DeepSeek 是真的良心啊,官网的对话是基本没有 token 上限的,一次几千上万个字都可以顺利生成,而且效果也不错,非常推荐大家体验一下。
运营推广
这个月开始发发小红书了,以使用介绍的视频和功能介绍的图文为主,我把我之前大学期间用来分享设计作品的账号用来发一些功能介绍之类的,我不想花太多时间去搞,所以每次都匆匆忙忙的录个视频做个图,怕自己认真做了没有好反馈会不开心哈哈哈,最开始浏览量不高,后面慢慢的略有起色,不至于很冷清,但相比于我以前的一些比较火的作品,也算挺惨淡的。

不过为了做一些宣传图,我又把之前的一些设计字体啥的重新在电脑上安装了下,机模的图用的是 shots.so 生成的,文字自己在 PPT 里加一加,效果还可以,给大家看看:

目前是一篇爆文都没有,所以这个首图好不好看可能还处在一个自嗨阶段,更好设计方向和标题内容我还在持续摸索中。
后续
接下来,我计划继续优化小程序的性能,尤其是将数据迁移到云端,彻底解决本地存储的限制问题。在功能方面,我还有很多关于AI功能的创意,后续有时间会逐步研究并落地实现。
同时,我也会继续在小红书和其他平台上进行宣传推广。除了推广小程序本身,我还会把每个复杂一点的实现技术点写成文章,总结实现思路并提供示例代码,希望能帮助大家少踩一些坑。也欢迎大家搜索并体验学习卡盒小程序,期待你们的反馈和建议!
来源:juejin.cn/post/7462338830965424139
年终 :别自我内耗了 ,每年奖励自己一点新东西
前言
前两天看到一个评论 ,答主说 : 代码写了几年 ,已经没有刚毕业时候的热情了,不想深入,没有欲望。
这其实是一个很普遍的现象 : 当一件事情成了工作 ,那必然有麻木的一天。
关于自我内耗
当 写代码
和工作挂钩了 ,那他就会离生活越来越远。 我们去做这件事情的时候,就会自然的和 收入 ,未来
等要素进行强绑定。
- 工作压力大了 ,兴趣度 - 1
- 每加一次班 ,兴趣度 - 1
- 每和产品打一架 , 兴趣度 -1
- 不涨工资不升职 , 兴趣度 -1
- 。。。。。
每一次工作上的不如意 ,都会让你对编码的兴趣降低!!
久而久之 ,你可能会想 : 你是不是不喜欢编码 ,你可能根本不喜欢写代码 , 你不想再为这个你不喜欢的兴趣花精力了。
而这篇文章的目的 ,就是为了给大家一个方向 : 如何维持自己的兴趣 ,找回初心。
关于我的一年
发布的文章 - Java 部分 :
今年和往年大差不差 ,发布了 40+ 篇文章。其中 Java 只针对一些特定领域进行了加强 :
加上一些零零散散的 JVM 文章 ,总共应该15篇左右。 但是这些其实已经够了 ,到了5-10年这个年限 , 单纯编码技术上已经没有太大的空间了。
年轻的时候硬吃底层 ,是为了提高自己的代码水平。年限大了就会发现 ,底层代码其实都差不多 ,哪怕看过了流程 ,转头就忘 ,就算不忘 ,大多数地方一辈子也用不上。
📍 总结 : 所以我现在对自己的规划是针对于特定场景, 进行深度的思考 ,更偏向与架构层面。
寻求突破 - 其他部分 :
其他的大部分精力 ,都没有局限当前的语言上面 , 一直在研究新的东西。
重要的精力都放在了 Python 和 大数据 , AI 层面。 他们针对的目的性都是不同的。
- ❤️ Python 的目的是为了开辟自己的副业
- ❤️ 大数据是当前行业的升级 ,大数据能让我在当前领域尝试更多的创新模式
- ❤️ AI 是未来 ,记住 , 人工智能是未来
这3个方向都没有把自己局限在编码层面了 ,而这3个模块都有可能让我在脱离工作后 ,也能拥有更多的出路, 不管是创业还是寻求更好的工作,他们都能有所帮助。
📍 总结 : 所以没必要把自己限制在一行行代码之间,CURD 已经在工作中写的够多了,去看看一些关联的领域。
给自己一点奖励吧
写代码 6-7 年了 , 我对编程还是一如初心, 其实只是对自己经常进行一些小奖励 , 这里我也许可以给苦恼的朋友们一些小方向 :
每年奖励自己一门新语言 :
这些年来 ,我陆陆续续尝试了 JavaScript
, Android
, Lua
(这个不算大, 算是偷懒了) , 到今年用 Python
写了一个开源工具。
我每年都会让自己去了解一下其他的语言, 他们都不会学的太深 ,主要的定位是能用他们产生一个生产力的应用。
比如 JavaScript 主要用来写了一个小程序 (最后不好玩都没上架)。 Lua 是为了自己实现一个 Nginx 的工具。
Android 是为了实现一个简单的 App , Python 是为了能炒股。
👉 奇奇怪怪的想法和思路 ,以及实现后的一点点成就感 ,是维持兴趣的一大核心。
每年奖励一些新东西 :
年初 AIGC 大火的时候 ,就一直在尝试 AIGC 转换成生产力
,最简单的实现就是帮我老婆实现了一个 SD 的文生图服务器 ,不过后面太贵了就下了(真老贵)。
然后又陆陆续续的尝试各种 AIGC 的直接使用 ,当你切实的做出一点什么后 ,成就感老多了。
AIGC : 真的要失业了 , 让 ControlNet 带来一点小震撼
然后这一年都在让 AI 帮我提高生产力 ,可以说非常成功。 比如我的 Python 项目 ,其中80% 的代码都是 AI 实现的, 这让我最后落地的压力大大减轻,成功率提高了很多。
👉 新的东西 ,总能让我感觉到我还很年轻 ,未来还有无限可能。
时不时的让自己彻底放松一次 :
不要去思考工作 ,不要去思考未来 ,就彻彻底底的为了去玩。
一开始是黑神话大火 ,那是真的下班准时走 ,技术是一天不带看的 ,就是为了玩, 连续玩了大半个月 ,通关后整个人都舒服了,谁也别想让我学。
然后后面又给自己奖励了一台小相机 ,那每周拖着家人出去拍照 ,学 ? 学个屁学,那不拿个摄影奖 ,学什么学。
👉 玩的不多 ,每年也就2-3次 ,但是真的能让人压力降低很多。
总结
2024 已经过去了 ,2025 也将到来 ,计划年初就已经定完了 , 又是充满期待的一年。
希望各位都能在生活中找到自己的节奏 ,不要有了工作失去生活。
祝大家新年快乐。
最后的最后 ❤️❤️❤️👇👇👇
- 👈 欢迎关注 ,超200篇优质文章,未来持续高质量输出 🎉🎉
- 🔥🔥🔥 系列文章集合,高并发,源码应有尽有 👍👍
- 走过路过不要错过 ,知识无价还不收钱 ❗❗
来源:juejin.cn/post/7463442625900281907
年终 :别自我内耗了 ,每年奖励自己一点新东西
前言
前两天看到一个评论 ,答主说 : 代码写了几年 ,已经没有刚毕业时候的热情了,不想深入,没有欲望。
这其实是一个很普遍的现象 : 当一件事情成了工作 ,那必然有麻木的一天。
关于自我内耗
当 写代码
和工作挂钩了 ,那他就会离生活越来越远。 我们去做这件事情的时候,就会自然的和 收入 ,未来
等要素进行强绑定。
- 工作压力大了 ,兴趣度 - 1
- 每加一次班 ,兴趣度 - 1
- 每和产品打一架 , 兴趣度 -1
- 不涨工资不升职 , 兴趣度 -1
- 。。。。。
每一次工作上的不如意 ,都会让你对编码的兴趣降低!!
久而久之 ,你可能会想 : 你是不是不喜欢编码 ,你可能根本不喜欢写代码 , 你不想再为这个你不喜欢的兴趣花精力了。
而这篇文章的目的 ,就是为了给大家一个方向 : 如何维持自己的兴趣 ,找回初心。
关于我的一年
发布的文章 - Java 部分 :
今年和往年大差不差 ,发布了 40+ 篇文章。其中 Java 只针对一些特定领域进行了加强 :
加上一些零零散散的 JVM 文章 ,总共应该15篇左右。 但是这些其实已经够了 ,到了5-10年这个年限 , 单纯编码技术上已经没有太大的空间了。
年轻的时候硬吃底层 ,是为了提高自己的代码水平。年限大了就会发现 ,底层代码其实都差不多 ,哪怕看过了流程 ,转头就忘 ,就算不忘 ,大多数地方一辈子也用不上。
📍 总结 : 所以我现在对自己的规划是针对于特定场景, 进行深度的思考 ,更偏向与架构层面。
寻求突破 - 其他部分 :
其他的大部分精力 ,都没有局限当前的语言上面 , 一直在研究新的东西。
重要的精力都放在了 Python 和 大数据 , AI 层面。 他们针对的目的性都是不同的。
- ❤️ Python 的目的是为了开辟自己的副业
- ❤️ 大数据是当前行业的升级 ,大数据能让我在当前领域尝试更多的创新模式
- ❤️ AI 是未来 ,记住 , 人工智能是未来
这3个方向都没有把自己局限在编码层面了 ,而这3个模块都有可能让我在脱离工作后 ,也能拥有更多的出路, 不管是创业还是寻求更好的工作,他们都能有所帮助。
📍 总结 : 所以没必要把自己限制在一行行代码之间,CURD 已经在工作中写的够多了,去看看一些关联的领域。
给自己一点奖励吧
写代码 6-7 年了 , 我对编程还是一如初心, 其实只是对自己经常进行一些小奖励 , 这里我也许可以给苦恼的朋友们一些小方向 :
每年奖励自己一门新语言 :
这些年来 ,我陆陆续续尝试了 JavaScript
, Android
, Lua
(这个不算大, 算是偷懒了) , 到今年用 Python
写了一个开源工具。
我每年都会让自己去了解一下其他的语言, 他们都不会学的太深 ,主要的定位是能用他们产生一个生产力的应用。
比如 JavaScript 主要用来写了一个小程序 (最后不好玩都没上架)。 Lua 是为了自己实现一个 Nginx 的工具。
Android 是为了实现一个简单的 App , Python 是为了能炒股。
👉 奇奇怪怪的想法和思路 ,以及实现后的一点点成就感 ,是维持兴趣的一大核心。
每年奖励一些新东西 :
年初 AIGC 大火的时候 ,就一直在尝试 AIGC 转换成生产力
,最简单的实现就是帮我老婆实现了一个 SD 的文生图服务器 ,不过后面太贵了就下了(真老贵)。
然后又陆陆续续的尝试各种 AIGC 的直接使用 ,当你切实的做出一点什么后 ,成就感老多了。
AIGC : 真的要失业了 , 让 ControlNet 带来一点小震撼
然后这一年都在让 AI 帮我提高生产力 ,可以说非常成功。 比如我的 Python 项目 ,其中80% 的代码都是 AI 实现的, 这让我最后落地的压力大大减轻,成功率提高了很多。
👉 新的东西 ,总能让我感觉到我还很年轻 ,未来还有无限可能。
时不时的让自己彻底放松一次 :
不要去思考工作 ,不要去思考未来 ,就彻彻底底的为了去玩。
一开始是黑神话大火 ,那是真的下班准时走 ,技术是一天不带看的 ,就是为了玩, 连续玩了大半个月 ,通关后整个人都舒服了,谁也别想让我学。
然后后面又给自己奖励了一台小相机 ,那每周拖着家人出去拍照 ,学 ? 学个屁学,那不拿个摄影奖 ,学什么学。
👉 玩的不多 ,每年也就2-3次 ,但是真的能让人压力降低很多。
总结
2024 已经过去了 ,2025 也将到来 ,计划年初就已经定完了 , 又是充满期待的一年。
希望各位都能在生活中找到自己的节奏 ,不要有了工作失去生活。
祝大家新年快乐。
最后的最后 ❤️❤️❤️👇👇👇
- 👈 欢迎关注 ,超200篇优质文章,未来持续高质量输出 🎉🎉
- 🔥🔥🔥 系列文章集合,高并发,源码应有尽有 👍👍
- 走过路过不要错过 ,知识无价还不收钱 ❗❗
来源:juejin.cn/post/7463442625900281907
DeepSeek 出现的最大意义,是让老美意识到"闭源"死路一条
OpenAI
因为 DeepSeek 的崛起,导致 OpenAI 坐不住了。
虽然 OpenAI 的创始人兼 CEO 奥特曼曾在推特上大方表示:像 DeepSeek 这样的对手的出现,让他们感到兴奋,马上他们也会发布更好的模型。
于是在昨天凌晨,OpenAI 发布了全新推理模型 o3-mini:
甚至是免费提供 o3-mini 给用户使用,这也是 ChatGPT 首次向所有用户免费提供推理模型。
但又正如你现在也没有听说多少关于 o3-mini 的新闻那样,这个新模型的发布,更多只是 OpenAI 一方"自认为的大招",并未在 AI 圈掀起多少波澜 🤣🤣🤣
虽然 o3-min 不怎么样,但在 OpenAI 和奥特曼这段时间的丝滑小连招中,给外界传递了一个重磅信息:OpenAI 将重新考虑开源。
好家伙,这才是 DeepSeek 对世界的重大意义 👍👍
在最近一次的 Reddit(老美的贴吧)问答中,奥特曼表示:OpenAI 在开源问题上一直处于"历史错误的一边",需要制定不同的开源策略。
众所周知,OpenAI 中的 Open 一定程度就是指 "OpenSource 开源",旨在通过开源促进 AI 技术共享,早期他们也确实开源了部分 GPT 的版本(比如 2019 年开源了 GPT-2 的部分版本),但自从 ChatGPT 爆火之后,开源的工作他们就彻底不做了,也开始自主摘掉"非盈利性"的帽子,转而考虑融资和盈利问题。
这也是世界首富(同时也是 OpenAI 的早期投资人)马斯克一直吐槽的事儿:OpenAI 前期打着"推动世界 AI 发展"的口号,拿了不少捐赠和资源,等到小有成绩的时候,就开始盘算如何"藏着捏着"来大赚一笔。
如今 DeepSeek 的出现,已经打破了 OpenAI 领先业界的局面。
奥特曼现在公开表示重新考虑"开源问题",并不是良心发现,而是深切知道,差距在缩小,如果再坚持"闭源"将会死路一条。
相比于让大家免费使用上推理模型,能让 OpenAI 重新考虑开源,才是 DeepSeek 对这个世界而言的最大意义。
...
年初五接财神,祝大家 2025 财源广进。
继续安排一道简单算法题。
题目描述
平台:LeetCode
题号:553
给定一组正整数,相邻的整数之间将会进行浮点除法操作。
例如, [2,3,4] -> 2 / 3 / 4
。
但是,你可以在任意位置添加任意数目的括号,来改变算数的优先级。
你需要找出怎么添加括号,才能得到最大的结果,并且返回相应的字符串格式的表达式。
你的表达式不应该含有冗余的括号。
示例:
输入: [1000,100,10,2]
输出: "1000/(100/10/2)"
解释:
1000/(100/10/2) = 1000/((100/10)/2) = 200
但是,以下加粗的括号 "1000/((100/10)/2)" 是冗余的,
因为他们并不影响操作的优先级,所以你需要返回 "1000/(100/10/2)"。
其他用例:
1000/(100/10)/2 = 50
1000/(100/(10/2)) = 50
1000/100/10/2 = 0.5
1000/100/(10/2) = 2
说明:
- 输入数组的长度在 之间。
- 数组中每个元素的大小都在 之间。
- 每个测试用例只有一个最优除法解。
数学 + 贪心
我们假定取得最优解的表示为 ,可以留意到任意的 的范围为 ,因此我们应当让尽可能多的 参与 (分子)的构建中。
因此一种可以构成最优表示的方式为「将除第一位以外的所有数作为一组,进行连除(转乘法),从而将所有可以变成分子的数都参与到 的构建中」。
即有:
综上,我们只需要从前往后进行构建出连除的答案,如果 的长度大于 ,再追加一对大括号即可。
=> =>
Java 代码:
class Solution {
public String optimalDivision(int[] nums) {
int n = nums.length;
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
sb.append(nums[i]);
if (i + 1 < n) sb.append("/");
}
if (n > 2) {
sb.insert(sb.indexOf("/") + 1, "(");
sb.append(")");
}
return sb.toString();
}
}
C++ 代码:
class Solution {
public:
string optimalDivision(vector<int>& nums) {
int n = nums.size();
string ans;
for (int i = 0; i < n; i++) {
ans += to_string(nums[i]);
if (i + 1 < n) ans += "/";
}
if (n > 2) {
ans.insert(ans.find("/") + 1, "(");
ans += ")";
}
return ans;
}
};
Python 代码:
class Solution:
def optimalDivision(self, nums: List[int]) -> str:
n = len(nums)
ans = ''
for i in range(n):
ans += str(nums[i])
if i + 1 < n:
ans += '/'
if n > 2:
idx = ans.find('/') + 1
ans = ans[:idx] + '(' + ans[idx:]
ans += ')'
return ans
TypeScript 代码:
function optimalDivision(nums: number[]): string {
const n = nums.length;
let ans = '';
for (let i = 0; i < n; i++) {
ans += nums[i].toString();
if (i + 1 < n) ans += '/';
}
if (n > 2) {
const idx = ans.indexOf('/') + 1;
ans = ans.substring(0, idx) + '(' + ans.substring(idx);
ans += ')';
}
return ans;
};
- 时间复杂度:
- 空间复杂度:,其中 为 的最大长度,对于本题
来源:juejin.cn/post/7466448971695800347
俊劫的2024年终总结:当爹、卖主机、差点失业
一、布丁的出生
2024-9-19,我儿子布丁顺顺利利来到这个世界。
1.1 出生那一刻
一开始觉得没什么,但是当微信收到老婆发的信息,那一瞬间感动的热泪盈眶😭。生完还需要在产房观察2小时,我在外面等的这段时间,描述不清楚是什么感受。当时找了个角落,给自己录了几段视频,想说的话,巴巴拉拉啥都说说,不过现在也没看过😂
1.2 费用
全部费用没算过,就生娃住院那4天,自费部分差不多6500左右,包含1350的护工费(450*3),包含48天后产妇体检的费用。
因为是一胎,咱也没啥经验,害怕很多意外的出现,所以就选了杭州产科最强的医院:市一。 因为医院比较老,附近停车贼困难,而且还很贵,10块一小时。SUV停了几次机械车位,差点把后视镜干掉了。
实际生产还是挺顺利的,宝宝在妈妈肚子里多待了5天,出生之后做的各项目检查都正常。现在看,选着最近的医院才是比较好的选择。
1.3 为什么要生
和一部分人一样,家长催生占一部分,但不是决定性的。去年结婚,对我们而言就是生娃的信号。35岁以上会被定义为大龄产妇,大龄产妇又会面临着各种危险。同条件下,越年轻,生完恢复的也越好。
再加上我姐姐也还没生,我这个家庭相对来说缺一个娃来让整个大家庭更有目标感。所以现在布丁出生后,会有超级多的人来爱他,特别是妈妈和姑姑
偶然在xhs看到一句话:养娃能看到过去自己长大的过程,会把自己认为父母亏欠的部分加倍补偿给自己的孩子,或许是在治愈自己,也或许是在满足自己
1.4 养娃
太多攻略要做了,这里要非常感谢一位朋友的帮助,比我先生宝宝,然后经验都分享给我了,经常问他各种问题😭帮了巨多忙。
养娃不仅仅要研究育儿知识,每个月伺候宝宝的方法还是不同的,宝宝的变化非常非常快。针对宝宝的不同反应,要做出不同的应对。因为媳妇快要上班了,这些东西不能仅仅是我们自己会,还得教他奶奶。但是他奶奶也五十几了,很多东西学不会,记不住,就很困难,也没啥办法。
然后中间还要调解婆媳关系,我日常还要上班,中间有段时间,中午不吃饭,时间全部用来睡觉。。。
现在处于教学痛苦期,观察好宝宝的反应,其实很好哄。但是他奶奶学不会,导致现在给奶奶带,就往死里哭😭。但是我们又不得不依赖他奶奶,不然上班就没人管了。
但是,有时候他奶奶不觉得是自己的问题,就觉得是宝宝的问题,就是要闹人,也不知道找原因,所以我现在是非常痛苦的。有时候只能安慰媳妇,没办法,让宝宝自己适应。。。
1.5 拍拍拍
3个多月了,回头看过去的样子,感觉自己还拍少了😂
1.6 男宝女宝
就身边的现象来说
- 高中同学
- 目前已知3个女宝
- 微信网友
- 同一天出生的,1个女宝
- 去年兔年生的,1个女宝
- 村里
- 目前已知3个女宝
- 公司同事
- 1男宝1女宝
- 媳妇同事生1女宝
- 同产房
- 1男宝3女宝
15个宝宝,只有2个男宝,13个女宝。 生男生女,概率不是差不多吗?
我倒是无所谓,生男生女,各有各的好处。你们身边男宝多还是女宝多?
二、工作
去年武汉被裁后,就来杭州这家了,当时还有点小插曲。因为武汉一家公司在我入职这家后又给了offer,我很纠结要不要去,当时处于这也想要,那也想要的状态,精神差点崩溃。
2.1 极越(集度)
关注新能源的应该都知道这个事吧,12月直接宣布原地解散了。去年在武汉可是大规模招聘,开的也算武汉Top几了。当时面了4轮,战线拉一个月,后面HC收紧被待定,然后一个月以后又联系给offer,蜜汁操作。要是早给,我肯定就去了。。。
去了的话,现在又是找工作的时间。我媳妇就认为是她的功劳,不是她在杭州,不是她对房子没有那么大执念了,我肯定又回武汉了。当初想去集度,就想赌一把百度智驾。我想着百度都干那么久了,对其他车企不得是降维打击,结果啊,百度还是那个百度。
间接躲过一劫,差点失业
2.2 晋升
虽然结果没出,但是我觉得是个伤心事
2.3 面试
帮忙面试
最近帮着公司招外包,收到一些十年以上经验的简历,很尴尬。简历潦草的,让人感觉他们自己也没抱什么希望,上次招聘给了几个大龄的面试机会,结果一个不如一个。第一次9月份,第二次就是最近。9月份也面了挺多的,过了几个,但是当时卡的严,最后一面基本都被毙了,卡着卡着,HC就变成了0
还有个现象就是异地简历贼多,很多都不是在本地工作的,可见大家都在海投,市场情况就是这样
今年又出1个外包HC,我有时候面1面,有时候面2面,给过了几个,不知道能不能来入职。
前端分类
简单分为,1-3年,3-8年,8年+,外包,自研
3年内的多是自研,简历写的都挺不错,但是一问就不会,一问就是别人做的
5年左右,最近一份干外包的居多,技术也还不错
8年+的,很大一部分就简历拉跨,技术也拉跨,各方面都不太行,当然厉害的也不会来投递外包了哈
今年面试感觉到的情况,并不具有代表性,各位简单看看
简单分析
结合我自己现在的状况,我也明白为什么,就是技术停滞,就是学习能力在逐步下降,不得不服。或许因为懒惰,或许因为家庭事情越来越多。。今年我没怎么学习过,就写了1篇掘金文章,很是惭愧。有更多的时间,不是在打游戏,就是在刷视频,看直播。我尝试着在改变,但是有点难。。。
自己也越来越老,通过面试官的身份反省自己,得好好学习,不仅仅是技术方面。
2025年,我还是需要在这块寻找突破口,不能再停滞不前了,不然迟早要被淘汰。
三、旅游
因为有了车,计划了挺多地方的自驾游,但是因为媳妇怀孕,所以就只能轻度转转,尽量避开人多的地方
3.1 南京
视频带奶奶看了下玄武湖,还不如杭州湘湖,哈哈哈
3.2 千篇一律
之前想着把国内这些一二线城市都逛逛,感受感受。但是吧,现在感觉都是千篇一律的商业街,风景区,真没啥意思。每次做攻略都做的好好的,去了以后就感觉和理想的落差太大,然后从这次南京后,就不太想玩这种很常规的旅游了。
看xhs说,这是要加入下一个level的迹象了,明年等小布丁1岁后,他奶奶能带的时候。计划计划去港澳台逛逛,然后日本韩国这些,怎么都得去看看吧。。。
四、主机
4.1 入手
6月初,终于入手了人生第一台主机,是的,没错。毕业5年了,第一次拥有自己的主机,之前都用MacBook 虚拟机打游戏,LOL fps,30~60😂
4.2 配置
2024-5-29价格:
- 板U: 微星B760 爆破弹 Wifi D5 + 12600kf 1694
- 显卡:微星RTX4060 VENTUS2 X WHITE8GOC白色 2180
- 电源:微星MAG A600DN额定600W 234
- 机箱:微星PAG PANO M100L 白色 188
- 散热:微星MAG 寒冰E240白色水冷 369
- 内存:威刚D300 16G 6400MHZ 387
- 硬盘:威刚S50 PRO NVME 1TB 465
合计:5517
pdd微星官方旗舰店整机4999,用卷到手4863
4.3 为什么卖
主要3个原因
- window和mac两种系统切换着用,还是不太舒服,更喜欢mac
- 空闲时间就爱玩LOL,玩几把就要红温
- 有两次下班没带娃玩LOL,媳妇生气了
想了想以后,主机对我也没太大吸引力了,就挂xhs了,就挂了一天,第二天晚上卖了。4863买的,用了半年,卖了4050。
黑神话开挂通关的、使命召唤系列玩了3部,总体也算是过瘾了。
卖完只有一个感慨:老了,花有重开日,人无再少年
4.4 JJ卖主机的奇幻经历
AB两个买家,A爽快最终成交,B一直砍价最后破防
A需送上门 B上门自提,时间线如下:
- B凌晨3点就给我发了个消息,要购买记录,我早上回复了下,人家看我买半年了,砍价说3800,我说不出
- A看到后直接问3900送上门行不行,我犹豫了,来回70km+可能现场验收有问题,就拒绝了。拿着3900,我问早上的B要不要,要的话就给B了。结果B还在还价,问3850行不行,我拒绝了。
- A看我犹豫,直接说不还价了3999送上门,他急着用。我就准备和他交易了,这个时候B又来了,问我怎么样,我说A直接3999了,B这个时候急了,说他也可以3999,现在就可以上门
- 同价格我肯定选择B上门自提的,但是这个时候A已经拍下了咸鱼链接,我和A说了这个事,他又给我加了50,意思给路费。 我和B说,他那边已经拍了,B就生气了,长篇大论说我人不行。。。
所以最后的结果:我怕B是个事逼,而且A已经拍了,所以还是选择送货上门和A交易,A比较痛快,貌似是个主播,上门简单验机后直接打钱,省了咸鱼0.6%的手续费
这俩人都是玩无畏契约的,玩过几把,这游戏现在这么火?🔥
4.5 老了
回来路上,一个人在高架上飙了一把,只能感慨:花有重开日,人无再少年
五、11月软考
5.1 系统规划与管理师
过去没有了解过杭州政策,最近朋友说了考这个东西的好处,可以认证E类人才。买房只需要30%,不买房每个月也有2500补贴,政策很香。所以准备来试试,但是因为很久没看过书了,+懒+生娃各方面的因素,几乎没看,考试前还一直在想要不要去考。后面一想,钱都交了,不得去试试,看看裸考能考多少。
结果就是:
还有俩朋友一起考的也没过,很多认真学的,一部分卡在了论文上。毕竟这个东西和利益相关,所以会卡通过率。
5.2 信息系统项目管理师
2025-5月来战斗,有一起考的没!!!
六、其他
零零碎碎的其他事,不想花费太多精力去写这个,年级大了,很多东西都要和利益挂钩。没得利益,就不太愿意付出了。
6.1 兼职
- 赚了几个w,非理财
- 辛苦钱且不稳定
- 得寻找比较稳定的睡后收入
今年国庆节那波股市,太猛了。本来准备拿10个入场的,媳妇都同意了,还是胆小没敢上。。。差点套进去
6.2 领证
感觉要给孩子出生做准备了,之前了解的准生证、建档什么的都得结婚证,反正去年也结婚了,赶紧找时间领了,方便后面办户口。
实际上现在很多都放开了,并不需要结婚证,领了证反而变成已婚了,租房个税都只能填一个人的了。领了证,现在这行情,浙江刚落地的13天婚假也不敢休,有些地方领结婚证还给钱。
所以,领证没得啥好处,建议大家能不领还是不要领
6.3 减肥
- 减了30斤,不过现在还是很胖
- 目前体重稳定了一个月,继续开始减
6.4 房子
- 和媳妇两个人都不再有买房的执念
- 租了个两室一厅,4200,住的挺舒服的
- 没有房贷、没有车贷、没有任何带款
- 养着小布丁,满足了
6.5 计划
2025年,全面拥抱AI,用一句话说:所有行业都值得被AI重构
最后再放一波儿子
来源:juejin.cn/post/7456898384331522099
同学聚会,是我不配?
前言
初八就回城搬砖了,有位老哥跟我吐槽了他过年期间参与同学会的事,整理如下,看读者们是否也有相似的境遇。
缘起
高中毕业至今已有十五年了,虽然有班级群但鲜有人发言,一有人冒泡就会立马潜水围观。年前有位同学发了条消息:高中毕业15年了,趁过年时间,咱们大伙聚一聚?
我还是一如既往地只围观不发言,组织的同学看大家都三缄其口,随后发了一个红包并刷了几个表情。果然还是万恶的金钱有新引力,领了红包的同学也刷了不少谢谢老板的表情,于是乎大家都逐渐放开了,最终发起了接龙。
看到已接龙的几位同学在高中时还是和自己打过一些交道,再加上时间选的是大年初五,我刚好有空闲的时间,总归还是想怀旧,于是也接了龙。
牢笼
我们相约在县城的烧烤一条街某店会面,那离我们高中母校不远,以前偶尔经过但苦于囊中羞涩没有大快朵颐过。
到了烧烤店时发现人声鼎沸,猜拳、大笑声此起彼伏,我循着服务员的指示进入了包间。放眼望去已有四、五位同学在座位上,奇怪的是此时包间却是很安静,大家都在低头把玩着手机。
当我推门的那一刻,同学们都抬头放眼望来,迅速进行了一下眼神交流,微笑地打了招呼就落座。与左右座的同学寒暄了几句,进行一些不痛不痒的你问我答,而后就沉默,气氛落针可闻,那时我是多希望有服务员进来问:帅哥,要点单了吗?
还好最后一位同学也急匆匆赶到了,后续交流基本上明白了在场同学的工作性质。
张同学:组织者,在A小镇上开了超市、圆通、中通提货点,座驾卡迪拉克
李同学:一线城市小创业者,公司不到10人,座驾特斯拉
吴同学:县城第一中学老师、班主任,座驾大众
毛同学:县委办某科室职员、公务员,座驾比亚迪
王同学:某小镇纪委书记,座驾别克
潘同学:县住房和城乡建设局职员,事业编,座驾哈佛
我:二线城市码农一枚,座驾雅迪
一开始大家都在忆往昔,诉说过去的一些快乐的事、糗事、甚至秘辛,感觉自己的青葱时光就在眼前重现。
酒过三巡,气氛逐渐热烈,称呼也开始越拔越高,某书记、某局、某老板,主任、某老总的商业互吹。
期间大家的话题逐渐往县城的实事、新闻、八卦上靠,某某人被双了,某某同事动用了某层的关系调到了市里,某漂亮的女强人离婚了。
不巧的是张同学还需要拜会另一位老板,提前离席,李同学公司有事需要处理,离开一会。
只剩我和其他四位体制内的同学,他们在聊体制内的事,我不熟悉插不进话题,我聊公司的话题估计他们不懂、也不感兴趣。
更绝的是,毛同学接到了一个电话,而后提着酒杯拉着其他同学一起去隔壁的包间敬酒去了,只剩我一个人在包间里。
过了几分钟他们都提着空酒杯回来了,悄悄询问了吴同学才知道隔壁是县委办公室主任。
回来后,他们继续畅聊着县城的大小事。
烧烤结束之后,有同学提议去唱K,虽然我晚上没安排,但想到已经没多少可聊的就婉拒了。
释怀
沿着县城的母亲河散步,看着岸边新年的装饰,我陷入了沉思。
十多年前大家在同一间教室求学,甚至同一宿舍生活,十多年后大家的选择的生活方式千差万别,各自的境遇也大不相同。
再次相遇,共同的话题也只是学生时代,可是学生时代的事是陈旧的、不变的,而当下的事才是新鲜的、变化的。因此聚会里更多的是聊现在的事,如果不在一个圈子里,是聊不到一块的。
其实小城里,公务员是一个很好的选择,一是稳定,二是有面子(可能本身没多大权利,但是可以交易,可以传递)。小城里今天发生的事,明天就可能人尽皆知了,没有秘密可言。
有志于公务员岗位的朋友提早做准备,别等过了年纪就和体制内绝缘了。
其他人始终是过客,关注自己,取悦自己。
来源:juejin.cn/post/7468614661326159881
《哪吒2》申公豹:一个寒门贵子的悲壮逆袭,刺痛了谁的神经?
导语:
当《哪吒2》用颠覆性的视角重塑申公豹时,这个曾被贴上“反派”标签的角色,竟成了无数观众心中的意难平。他不再是一个扁平化的恶人,而是一面镜子,映照出当代社会最扎心的真相——成见、寒门困境与人性的灰度。今天,我们借申公豹的悲壮逆袭,聊聊那些刺痛现实的隐喻。
一、成见:一座压垮“寒门贵子”的大山
申公豹的悲剧,始于一句“妖不配成仙”。他出身妖族,拼尽千年修炼考入昆仑山“大厂”,却因出身卑微沦为“外门弟子”,脏活累活全包,功劳苦劳全无。正如影片那句戳心台词:“人心中的成见是一座大山,任你怎么努力也休想搬动。”
现实映射:职场中的学历歧视、地域偏见、年龄门槛,何尝不是“申公豹困境”?一个专科生能力再强,也可能因一纸文凭被拒之门外;一个小镇青年挤进一线城市,却在“土著优先”的潜规则中举步维艰。成见这把刀,杀人不见血。
二、寒门逆袭:一场注定孤独的修行
申公豹的修仙路,堪称“仙界版小镇做题家”。他是全村第一个考入昆仑山的“大学生”,背负家族期望,却在神仙体系内卷中沦为“工具人”。玉虚宫的“仙二代”们躺平混日子,而他只能靠“996修仙”勉强立足,最终发现:寒门出身不是原罪,自我否定才是深渊。
现实映射:当代年轻人的“申公豹式挣扎”——北漂沪漂的“黑手套”、大厂螺丝钉的无效内卷、寒门学子掏空六个钱包的学区房……我们何尝不是在“证明自己”的路上,被社会标准绑架?申公豹的偷灵珠、算计哪吒,像极了某些人为了升职不择手段的无奈,但影片质问:若规则本身不公,反抗是否必须沾染黑暗?
三、人性灰度:撕开“非黑即白”的伪命题
申公豹的“洗白”引发争议,但影片的高明之处恰在于此。他偷灵珠是为打破偏见,屠陈塘关是为救敖丙,却又在危难时赠药救民。这种矛盾,撕开了人性的伪装:善与恶从非对立,而是挣扎中共存。
现实启示:我们习惯用“好人”“坏人”标签简化世界,却对职场中的“背锅侠”、家庭中的“沉默者”缺乏共情。申公豹的复杂性提醒我们:真正的成熟,是接纳世界的混沌,在灰度中守住底线。
四、孤勇者的启示:在偏见中淬炼本心
面对家人被害、徒弟遇险,申公豹的选择令人动容。他没有被仇恨吞噬,而是冷静揭露真相,以孤身战三龙的壮烈诠释了“我命由我不由天”。这背后,是影片对“奋斗者精神”的致敬——即使世界以偏见待我,我仍以道义报之。
现实意义:在“躺平”与“内卷”撕裂的当下,申公豹的孤勇是一剂清醒药:真正的强大,不是迎合规则,而是在认清现实后,依然选择做自己。就像那些在职场霸凌中坚守原则的打工人,在流量至上的时代坚持内容的创作者——他们或许“失败”,却活成了自己的英雄。
结语:
《哪吒2》借申公豹的悲情,完成了一场对现实的犀利解剖。它告诉我们:成见会杀人,寒门难破局,但比命运更可怕的,是向偏见屈膝的灵魂。愿每一个“申公豹”,都能在时代的夹缝中,找到属于自己的光。
来源:juejin.cn/post/7468218848228556826
关于意义的问题
深夜加班回家的路上,我经常独自漫步在家到公司那段不到四公里的路上。有时候我会想想一天工作的内容及改进,但是更多的时间会想到工作的价值以及自己人生的目标,从而经常会陷入更深邃的幻想中,却得不到明确的答案。
背景
从考入大学到参加工作,我已经在这个城市度过了十七年的岁月,基本上算是我的半个故乡了。回顾半生:事业有成,好像还差好远;家庭幸福,好像也只能说安安稳稳;高朋满座,好像连一个知心人都难找。可为何我还执着于这个城市?不离去,回到心灵安放的故乡。
关于意义
在大城市继续奋斗,还是回到自己家乡这样的小城安稳度日。关于这种社会话题的价值讨论,其实已经有很多不同的观点。不管我选择了何种方式,关于工作的价值,关于今后生活的幸福感和意义感,也并不一定能够得到满足,人生的价值选择并没有什么标准答案,困惑、孤独、焦虑本就伴随着我们的一生。
我们这代人接受到现代化的思想,有一个最重要的思想动力,就是“理性”的观念,去除了对宗教、迷信、传统思想的依赖。然后我们生活的意义到底是什么?我们用理性去回答这个问题,却发现非常困难,甚至无能为力,所以我们时常会感到焦虑和空虚。
关于韦伯的见解
我们中国人都知道伟大的卡尔.马克思,但德国还有一位“马克思”也很了不起,就是马克斯.韦伯。他们都是现代社会学的奠基人。韦伯不是一个象牙塔中远离大众的学究,而是一位广泛介入公共生活,面向社会和现实的学者。他是一百年前德国最大的“公共知识分子”,是一位百科全书式的学者,是现代思想成年的标志。
说到成年,我认为大概有两个标志:第一是明白自己,对自己的过往有真正的理解;第二是反思自己,能看透自己存在的问题。有点像孔子说的“四十不惑”。韦伯标志着现代思想的成年,是因为他完成了两项任务,看清现代,反思现代,让现代社会迈入了“不惑”之年。
看清现代,就是真正理解现代社会运作的底层机制。在韦伯之前,西方的现代化已经高速发展了两百多年,但对于现代化的理解还停留在片面和表面的层次。直到韦伯以理性化为核心,建立了一套现代化理论,才第一次全面而系统地解释了现代社会的来龙去脉和运转机制。
反思现代,就是指出现代性最深层的缺陷,是根植于现代化本身的问题。这些问题不会随着社会进步而消失,反而会因为现代社会的发展而越来越严重。他说:认为科学是通向幸福之路,这是“天真的乐观主义”,只有书呆子才会相信。科学根本无法回答什么是“幸福”,什么是“意义”这类问题。
韦伯举了一个例子:假如现在有一位病人生命垂危,只要送到医院,我们就能用医学技术维持他的生命。但是有一个重要的问题,我们要不要去抢救这位病人呢?
如果病人只能维持生命,但根本无法好转,又会耗费大量的金钱,拖垮他的家庭,你认为应当做何选择?如果病人自己希望,不要付出这么大的代价来抢救,你认为要怎么选择呢?如果你知道病人在这种状况中非常的痛苦,你又要怎么选择呢?
医生回答不了这些问题,即使他有最丰富的医学知识和最高超的技术,也不能回答这个问题。
韦伯认为,这是生命意义的问题,超出了科学的边界。科学永远无法回答:我们做出什么样的选择才是“有意义”的,我们生命的“目的”究竟是什么。科学也许可以给出最优的“方案”,但永远无法教给我们一个最优的“选择”。
自我总结
人生的意义是人类永恒的问题,没有确定的唯一答案。如果有答案,就不会成为永恒的问题。从古希腊的苏格拉底开始,就在追问生命的意义,他说过“未经反省的人生是不值得过的”。西方思想史2000多年以来都没解决这个问题。
那就追随自己的内心,忘记所谓的价值和意义。未经反省的人生是不值得过的,但是过度考察的人生是没法过的人生!幸福和意义的标准更多的是一个内心主观的标准,要是从科学的角度论证成功了,我们的一生将按照固定的范本生活下去将是多么的无趣啊。所以不要去刻意追逐生命的意义和价值,认真感受当下的生活,过好自己的每一天,规划好自己的未来即可。
来源:juejin.cn/post/7360595729523507240
中国研发部门一锅端,IBM程序员的“黑色星期五”
大家好,我是晓凡。
程序员的“黑色星期五”
想象一下,你正坐在办公室,准备享受周末的轻松时刻,突然,你的工作账号被停用了,各种公司相关的权限没了,无法访问公司内网。
这不是电影情节,而是IBM中国研发部门员工的真实遭遇。一夜之间,千余名员工被一锅端。
这件事发生得太突然,几乎没有一点点征兆和信号,看得晓凡是一脸懵逼。
IBM裁员:波及千人
裁员,在互联网行业并不是新鲜事。
但IBM这次裁员的规模和速度,着实让人震惊。
据悉,IBM中国在不同区设有多个分公司,据称大约有12000名员工。
被收回权限的员工属于IBMV,下设CDL(IBM中国研发中心)和CSL(IBM中国系统中心),主要负责研发和测试。
波及到了1000+人,遍布北京、上海、大连等各地的员工。赔偿方案为N+3,但具体情况可能更为复杂。
我们来看看IBM官方给出的解释
中国的企业,尤其是民营企业,越来越重视抓住混合云和人工智能技术带来的机遇。
因此,IBM 在中国的本地战略重点将转向利用自身在技术和服务方面的丰富经验,组建一支具备相应技能的团队,以更好地与中国客户合作,共同创造符合客户需求的解决方案。
下面是网传的针对此此次裁员3分钟会议纪要
我们将内容翻译过来大概如下:
【我叫 Jack Hergenrother,是全球企业系统开发的副总裁。今天我们有一个重要的管理决策要与大家分享。
为了支持我们的全球客户和我们的业务战略,IBM 基础设施决定将开发任务从中国系统实验室转移到海外的其他 IBM基础设施基地。
我们正在退出在中国的所有开发任务。
正如你们所知道的,IBM 基础设施继续转型,以帮助释放我们组织必须提供的全部价值,并帮助我们实现具有挑战性的全球市场的可持续业务。这种转变受市场动态和激烈竞争的影响。而**中国的基建业务近年来有所下滑。
对于 IBM Z,我们做出了艰难的决定——将开发工作转移到其他国家,以便更好地抓住市场机遇,并且更加更接近客户。
在存储方面,我们正在将开发工作整合到更少的地点,以应对激烈的竞争。基础设施的协同办公战略是全球性的。协同办公也不仅限于中国。我们做出了这一艰难的商业决策,以便提高效率并简化运营。
我是 Ross Moury,IBM Z 和 Linux One 的总经理。我要感谢大家为 IBM 所做的贡献以及在这个平台成功中所扮演的重要角色。我希望获得你们的理解和今后的合作。
我是 Danny Mace,存储工程副总裁。我知道这是一个艰难的决定,但这是支持我们的全球客户和业务战略所必需的行动。在此,我也要感谢你们的贡献。】
此外有不少网友注意到,现任 IBM CEO 是一名印度人 Arvind Krishna,自从他 2020 年上任后就曾在全球范围内进行了多轮裁员。此外根据 IBM 的招聘信息显示,目前 IBM 似乎正在印度不断增设岗位,故而部分网友猜测此次 IBM 中国研发部全体被裁或许也与此有关。
多轮裁员,用AI替代近8000人
裁员,往往不是单一因素的结果。IBM的裁员,背后是市场和技术的双重压力。
随着云计算和人工智能的兴起,传统的研发模式正在发生变化。
企业为了追求发展,需要尽可能的压缩成本。说实话,这两年,大家都不好过。
IBM CEO Arvind Krishna在采访中表示,后台职能部门,如人力资源的招聘将暂停或放缓。
未来5年,我们将看到30%的人将被AI和自动化所取代。
程序员的自救
面对裁员,作为一名普通程序员,我们该怎么做呢?
① 保持良好心态,不要焦虑,不要内卷。真的不是自己不优秀,而是大环境不好。
工作没了,身体也不能跨。只要身体不垮,一切都可以重来。
② 守住自己手里的钱,不要负债,不要负债,不要负债。
正所谓:金库充盈,心绪宁静。即使不幸被裁了,也能靠积蓄养活自己
③ 虽然AI短时间不能完全替代程序员,但一些重复性的工作将被AI和自动化所取代。
保持学习,多了解一些AI,确实可以帮我们提高工作效率
④ 不要在一棵树上吊死,趁着年轻,试错成本不是那么高,多尝试尝试其他赛道,随然不一定能成。
但也有可能发现可以一直干下去的副业。
来源:juejin.cn/post/7408070878829117491
为什么网络上一些表情包在反复传播之后会变绿?“电子包浆”到底是怎么形成的?
大家好,我是程序员牛肉。
今天在和朋友聊天的时候,他发了一张很古老的表情包,整张图片呈现很明显的发绿状态。
这张图片直接将我的思绪拉回到七八年前,当时我还经常在QQ群里和别人斗图。大家发一些很经典的表情包的时候,这些图片就会呈现明显的发绿状态,当时的大家戏称这玩意是“电子包浆”。
你们有这种充满“电子包浆”的图片嘛?可以发在评论区看一看。那大家有没有想过这些图片为什么会发绿呢?
我们首先要明确一点:图片并不是因为反复传播而变绿的,而是因为在传播的过程中,各个软件都会对图片进行压缩来节省网络带宽。在反复压缩的过程中,图片就会出现这种明显的“电子包浆”感。
问题的根源出在安卓自己的核心代码上,它对外提供了一个压缩图片的接口。而这个接口使用的是Google的图像库Skia来提供服务。
对应的代码仓库
Google在Skip中采用了libjpeg - turbo来完成实际的压缩工作。而在进行压缩工作时,libjpeg - turbo 会先将图像从常见的 RGB 色彩空间转换为 YUV 色彩空间,这是整个压缩流程中的一个基础环节,为后续的离散余弦变换(DCT)、量化等压缩操作做准备。
[libjpeg - turbo是一个对 JPEG 图像编码和解码进行加速的库,是对传统 JPEG 库的优化和改进版本,具有更高的压缩和解压缩速度,同时保持了良好的图像质量。Skia 在进行 JPEG 图像压缩时,会调用 libjpeg - turbo 来完成实际的压缩工作,借助 libjpeg - turbo 的高效算法和优化实现,提升 JPEG 压缩的性能和效果。]
问题就出在RGB转YUV色彩空间的过程中,采用了降低精度来提高转换速度。而在这一过程中,采用了右移操作进行数据截断。
这个操作可了不得,他会直接截断小数部分。例如3.1就会变成3。也就是说YUV这三个值都会因为这个数据阶段而偏小。
我们来解释一下YUV这三个值的意思:
- Y(Luminance 或 Luma)
表示亮度(Luminance),也就是图像的明亮程度。它包含了图像的黑白信息,取值范围通常在 0 到 255 之间,0 代表黑色,255 代表白色,中间的值对应不同程度的灰色。亮度分量是图像中最重要的部分,人眼对亮度的变化比颜色的变化更为敏感,在图像处理和视频编码中,亮度信息通常被更精确地保留和处理,以保证图像的整体视觉效果。
- U(Chrominance Blue 或 Cb)
代表蓝色色度(Chrominance Blue),也称为蓝色分量。它反映的是图像中蓝色部分与亮度的差异信息,用于表示颜色中的蓝色偏移量。U 的值描述了图像中蓝色分量相对于亮度的偏离程度,其取值范围一般也在一定的数值区间内,例如 - 128 到 127 等,0 表示没有蓝色偏移,正值表示蓝色分量多于平均水平,负值表示蓝色分量少于平均水平。
- V(Chrominance Red 或 Cr)
表示红色色度(Chrominance Red),即红色分量。它体现的是图像中红色部分与亮度的差异,用于衡量颜色中的红色偏移量。V 的取值范围与 U 类似,也是在一定区间内,0 代表没有红色偏移,正值表示红色分量多于平均水平,负值表示红色分量少于平均水平。通过 V 的值可以确定图像中红色的含量和分布情况。
而网络上有一张图就很好的概括了YUV偏向的结果:
commons.wikimedia.org/wiki/File:Y…
图片对应网站
由于RGB转YUV中的阶段操作导致YUV这三个的计算值都要比真实值偏小。而在上述的图片中我们可以看到:这种偏小带来的结果就是整体的显色效果都要向右下角靠拢。
显然,YUV 计算机整体偏小导致结果就是:变暗,变绿。
而大多数互联网公司例如贴吧,QQ的客户端在进行图片压缩算法的时候都采用的是安卓提供的这一套压缩图片的算法。
这也就导致了“电子包浆”的重灾区一般就集中在贴吧和QQ中。
而Google在2016年的4月19日才正式的修复了这个bug。在百度查询了一下对应的Android发布版本,也就是说Android7才消除了这个问题。
这个bug的修复很简单,在代码层面的表现为:把原本 Skia 库 YUV 转换代码全部删掉,把这个过程留给整个过程最底层的 libjpeg-turbo 库自己来做,并且用默认的 JDCT_ISLOW 方法代替 JDCT_IFAST 方法。
对应的PR
总结一下呢:就是在图片压缩的过程中需要先将RGB色彩空间转化为YUV色彩空间。但是在转化的过程中对小数的处理并不到位。导致计算出来的YUV比真实的YUV值要偏小。反映在图片上就是整体偏暗偏绿。
那么今天关于“图片为什么会有电子包浆”的内容就介绍到这里了。相信通过我的介绍,你已经大致了解了为什么会出现这种情况。希望我的文章可以帮到你。
你有没有这种“电子包浆”的图片呢?听说现在评论区可以发视频了。快在评论区里发出来让大家看看吧。
关注我,带你了解更多技术干货。
来源:juejin.cn/post/7467099560520859663
虾皮开的很高,还有签字费。
大家好,我是二哥呀。
虾皮在去年之前,还是很多大厂人外逃的首选项,因为总部在新加坡,比较有外企范,但去年就突然急转直下,队伍收紧了不少。
作为东南亚电商市场的领头羊,市场覆盖了新加坡、马来西亚、泰国、菲律宾、印尼、越南等地,目前也开始进军巴西和墨西哥等新兴市场。
我从 offershow 上也统计了一波 25 届虾皮目前开出来的薪资状况,方便大家做个参考。
- 本科 985,后端岗,给了 32k,还有 5 万签字费,自己硬 A 出来的,15 天年假,base 上海,早 9.30 晚 7 点
- 硕士双一流,后端给了 40 万年包,但已经签了其他的三方,拒了,11 月 31 日下午开的
- 硕士 985,后端开发,给到了 23k,白菜价,主要面试的时候表现太差了
- 硕士海归,后端开发给了 26.5k,还有三万签字费,咩别的高,就释放了
- 硕士211,测试岗,只给了 21k,还有 3 万年终奖,但拒了
从目前统计到的情况来看,虾皮其实还蛮舍得给钱的,似乎有点超出了外界对他的期待。但很多同学因为去年的情况,虾皮只能拿来做备胎,不太敢去。
从虾皮母公司 Sea 发布的2024 年第三季度财报来看,电子商务(主要是 Shopee)收入增长了 42.6%,达到了 31.8 亿美元,均超预期。
总之,希望能尽快扭转颓势吧,这样学 Java 的小伙伴也可以有更多的选择。
那接下来,我们就以 Java 面试指南中收录的虾皮面经同学 13 一面为例,来看看下面的面试难度,自己是否有一战之力。
虾皮面经同学 13 一面
tcp为什么是可靠的
TCP 首先通过三次握手和四次挥手来保证连接的可靠性,然后通过校验和、序列号、确认应答、超时重传、滑动窗口等机制来保证数据的可靠传输。
①、校验和:TCP 报文段包括一个校验和字段,用于检测报文段在传输过程中的变化。如果接收方检测到校验和错误,就会丢弃这个报文段。
推荐阅读:TCP 校验和计算方法
②、序列号/确认机制:TCP 将数据分成多个小段,每段数据都有唯一的序列号,以确保数据包的顺序传输和完整性。同时,发送方如果没有收到接收方的确认应答,会重传数据。
③、流量控制:接收方会发送窗口大小告诉发送方它的接收能力。发送方会根据窗口大小调整发送速度,避免网络拥塞。
④、超时重传:如果发送方发送的数据包超过了最大生存时间,接收方还没有收到,发送方会重传数据包以保证丢失数据重新传输。
⑤、拥塞控制:TCP 会采用慢启动的策略,一开始发的少,然后逐步增加,当检测到网络拥塞时,会降低发送速率。在网络拥塞缓解后,传输速率也会自动恢复。
http的get和post区别
GET 请求主要用于获取数据,参数附加在 URL 中,存在长度限制,且容易被浏览器缓存,有安全风险;而 POST 请求用于提交数据,参数放在请求体中,适合提交大量或敏感的数据。
另外,GET 请求是幂等的,多次请求不会改变服务器状态;而 POST 请求不是幂等的,可能对服务器数据有影响。
https使用过吗 怎么保证安全
HTTP 是明文传输的,存在数据窃听、数据篡改和身份伪造等问题。而 HTTPS 通过引入 SSL/TLS,解决了这些问题。
SSL/TLS 在加密过程中涉及到了两种类型的加密方法:
- 非对称加密:服务器向客户端发送公钥,然后客户端用公钥加密自己的随机密钥,也就是会话密钥,发送给服务器,服务器用私钥解密,得到会话密钥。
- 对称加密:双方用会话密钥加密通信内容。
客户端会通过数字证书来验证服务器的身份,数字证书由 CA 签发,包含了服务器的公钥、证书的颁发机构、证书的有效期等。
https能不能抓包
可以,HTTPS 可以抓包,但因为通信内容是加密的,需要解密后才能查看。
其原理是通过一个中间人,伪造服务器证书,并取得客户端的信任,然后将客户端的请求转发给服务器,将服务器的响应转发给客户端,完成中间人攻击。
常用的抓包工具有 Wireshark、Fiddler、Charles 等。
threadlocal 原理 怎么避免垃圾回收?
ThreadLocal 的实现原理就是,每个线程维护一个 Map,key 为 ThreadLocal 对象,value 为想要实现线程隔离的对象。
1、当需要存线程隔离的对象时,通过 ThreadLocal 的 set 方法将对象存入 Map 中。
2、当需要取线程隔离的对象时,通过 ThreadLocal 的 get 方法从 Map 中取出对象。
3、Map 的大小由 ThreadLocal 对象的多少决定。
通常情况下,随着线程 Thread 的结束,其内部的 ThreadLocalMap 也会被回收,从而避免了内存泄漏。
但如果一个线程一直在运行,并且其 ThreadLocalMap
中的 Entry.value 一直指向某个强引用对象,那么这个对象就不会被回收,从而导致内存泄漏。当 Entry 非常多时,可能就会引发更严重的内存溢出问题。
使用完 ThreadLocal 后,及时调用 remove()
方法释放内存空间。remove()
方法会将当前线程的 ThreadLocalMap 中的所有 key 为 null 的 Entry 全部清除,这样就能避免内存泄漏问题。
mysql慢查询
慢 SQL 也就是执行时间较长的 SQL 语句,MySQL 中 long_query_time 默认值是 10 秒,也就是执行时间超过 10 秒的 SQL 语句会被记录到慢查询日志中。
可通过 show variables like 'long_query_time';
查看当前的 long_query_time 值。
不过,生产环境中,10 秒太久了,超过 1 秒的都可以认为是慢 SQL 了。
mysql事务隔离级别
事务的隔离级别定了一个事务可能受其他事务影响的程度,MySQL 支持的四种隔离级别分别是:读未提交、读已提交、可重复读和串行化。
遇到过mysql死锁或者数据不安全吗
有,一次典型的场景是在技术派项目中,两个事务分别更新两张表,但是更新顺序不一致,导致了死锁。
-- 创建表/插入数据
CREATE TABLE account (
id INT AUTO_INCREMENT PRIMARY KEY,
balance INT NOT NULL
);
INSERT INTO account (balance) VALUES (100), (200);
-- 事务 1
START TRANSACTION;
-- 锁住 id=1 的行
UPDATE account SET balance = balance - 10 WHERE id = 1;
-- 等待锁住 id=2 的行(事务 2 已锁住)
UPDATE account SET balance = balance + 10 WHERE id = 2;
-- 事务 2
START TRANSACTION;
-- 锁住 id=2 的行
UPDATE account SET balance = balance - 10 WHERE id = 2;
-- 等待锁住 id=1 的行(事务 1 已锁住)
UPDATE account SET balance = balance + 10 WHERE id = 1;
两个事务访问相同的资源,但是访问顺序不同,导致了死锁。
解决方法:
第一步,使用 SHOW ENGINE INNODB STATUS\G;
查看死锁信息。
第二步,调整事务的资源访问顺序,保持一致。
怎么解决依赖冲突的
比如在一个项目中,Spring Boot 和其他库对 Jackson 的版本有不同要求,导致序列化和反序列化功能出错。
这时候,可以先使用 mvn dependency:tree分析依赖树,找到冲突;然后在 dependencyManagement 中强制统一 Jackson 版本,或者在传递依赖中使用 exclusion 排除不需要的版本。
spring事务
在 Spring 中,事务管理可以分为两大类:声明式事务管理和编程式事务管理。
编程式事务可以使用 TransactionTemplate 和 PlatformTransactionManager 来实现,需要显式执行事务。允许我们在代码中直接控制事务的边界,通过编程方式明确指定事务的开始、提交和回滚。
声明式事务是建立在 AOP 之上的。其本质是通过 AOP 功能,对方法前后进行拦截,将事务处理的功能编织到拦截的方法中,也就是在目标方法开始之前启动一个事务,在目标方法执行完之后根据执行情况提交或者回滚事务。
相比较编程式事务,优点是不需要在业务逻辑代码中掺杂事务管理的代码,Spring 推荐通过 @Transactional 注解的方式来实现声明式事务管理,也是日常开发中最常用的。
常见的linux命令
我自己常用的 Linux 命令有 top 查看系统资源、ps 查看进程、netstat 查看网络连接、ping 测试网络连通性、find 查找文件、chmod 修改文件权限、kill 终止进程、df 查看磁盘空间、free 查看内存使用、service 启动服务、mkdir 创建目录、rm 删除文件、rmdir 删除目录、cp 复制文件、mv 移动文件、zip 压缩文件、unzip 解压文件等等这些。
git命令
git clone <repository-url>
:克隆远程仓库。git status
:查看工作区和暂存区的状态。git add <file>
:将文件添加到暂存区。git commit -m "message"
:提交暂存区的文件到本地仓库。git log
:查看提交历史。git merge <branch-name>
:合并指定分支到当前分支。git checkout <branch-name>
:切换分支。git pull
:拉取远程仓库的更新。
内容来源
三分恶的面渣逆袭:javabetter.cn/sidebar/san…
二哥的 Java 进阶之路(GitHub 已有 13000+star):github.com/itwanger/to…
最后,把二哥的座右铭送给大家:没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟。共勉 💪。
来源:juejin.cn/post/7451638008409554994
程序员的北京折叠:生存、焦虑与抉择
引子:从《北京折叠》说起
《北京折叠》是郝景芳的一篇著名科幻小说,最早于 2012 年 12 月发表在清华大学的学生论坛水木社区的科幻版。2016 年获得第 74 届雨果奖最佳中短篇小说奖,2018 年获得第 49 届星云赏海外部门短篇小说奖项。雨果奖介绍这篇小说「构建了一个不同空间、不同阶层的北京,可像‘变形金刚般折叠起来的城市’,却又‘具有更为冷峻的现实感’」。
《北京折叠》讲述了北京这个城市被分割成了三个空间,每个空间的人们在各自的时空中生活,彼此之间几乎没有交集。第一空间的人高高在上,掌控着资源与权力;第二空间的中产阶级维持着相对体面的生活;第三空间的人则在贫困、压抑中挣扎求生。三层空间的生活轨迹几乎不会重叠,仿佛他们生活在完全不同的世界中。
作为一名程序员,这个故事让我不禁联想到我们这个行业中的「折叠北京」,在不同的公司、岗位和城市,程序员们同样被划分成了不同的「空间」。每个人的职业轨迹、生活方式和所面临的问题大相径庭,甚至无法体验到他人生活中的酸甜苦辣。
我曾在大厂呆过,在小公司也做过,自己也曾创业。在这些不同的「空间」里,我看到了程序员群体的多样性,感受到了他们各自的焦虑与困境。今天,我想借用《北京折叠》的框架,来聊聊程序员世界中的三种「空间」,它们之间的壁垒、差异,以及偶尔交错的瞬间。
1. 第一空间:大厂程序员的「黄金时代」
在程序员的世界里,第一空间无疑是那些在头部互联网大厂工作的精英们。字节跳动、阿里巴巴、腾讯、网易等巨头公司,几乎可以说是这个行业的象征。对于很多年轻程序员来说,进入大厂意味着职业生涯的「黄金时代」——高薪酬、丰厚的福利、甚至是行业内的一些光环,仿佛一切都昭示着成功与荣耀。
1.1 高压环境中的「内卷」
在大厂工作,最直观的感受就是无处不在的竞争。这种竞争不仅来源于外部市场的技术更新、产品迭代,更深刻地体现在公司内部,尤其是在同事之间。这种现象在互联网行业尤为明显,因此,很多人用「内卷」一词来概括大厂程序员们的工作环境。
1.1.1 绩效排名和末位淘汰制
大厂程序员普遍面临着严格的绩效考核制度。像字节跳动、阿里巴巴等公司,通常实行「361」类的强制考核,即在每次考核中,前20%的员工拿到最好的绩效,而后 20% 左右则面临淘汰的风险。每半年(或者一个季度)一次的绩效考核期,几乎是程序员们最为紧张的时刻,生怕自己成为「差劲」或「末位淘汰」的一员。
这种考核机制确实激励了员工不断提升自我,但也带来了巨大的心理压力和工作负担。为了在绩效评估中脱颖而出,程序员们不得不超负荷工作,甚至牺牲健康和个人生活。许多大厂的加班文化已成常态,尤其是在实行“996”工作制度的公司,程序员们的工作时长远远超出了法律规定的标准。
更为严重的是,由于绩效考核的竞争性,团队内部的合作有时变得愈发功利化。项目的成功不仅关乎团队整体的荣誉,还直接决定了每个人的绩效评定。于是,暗中较劲、互相攀比的现象时有发生,团队协作因此变得更加复杂且微妙。
1.1.2 怎样才算「成功」?
在大厂的程序员群体中,有一种不成文的共识:成功的标志不是你是否能够完成日常的任务,而是你能否写出新技术、推动新项目,甚至在团队中成为某个领域的权威。每个人都在追求「技术大咖」的头衔,渴望在某个技术社区或者公司内部的技术分享会上崭露头角。技术的不断迭代让人们时刻保持学习的心态,但这种持续的自我提升也带来了巨大的压力。
有时我会和一些在大厂的朋友聊起他们的生活,发现他们的焦虑和我在小厂时的焦虑并没有本质区别。尽管他们拿着比普通程序员高得多的工资,但他们的时间成本、精神压力和对未来的迷茫感也不比别人少。他们的生活轨迹看上去光鲜亮丽,但其实也是在一种高强度的环境中挣扎生存。
为了在考核中脱颖而出,程序员们会拼命寻找可以量化的业绩,比如开发新功能、优化系统性能、贡献开源项目等。然而,这种短期导向的行为,往往导致大量的重复劳动。不同的团队、甚至同一团队的成员,可能都在做相似的工作,因为每个人都希望自己的成果被视为「独创贡献」。
这种过度竞争导致了资源的浪费和技术的冗余。比如,不同团队可能会开发多个功能类似的工具或系统,但由于每个团队都希望展示自己的「独立成果」,这些项目往往没有被整合,造成了效率低下。这种「重复造轮子」的现象在大厂程序员中屡见不鲜,不同的部门,甚至不同的中心各有一套技术栈或管理系统的很常见。这不仅浪费了时间和资源,也让公司的整体创新能力受到抑制。
1.2 裁员潮下的生存危机
1.2.1 大厂裁员的频发性
近年来,随着互联网行业的逐渐成熟和增速放缓,国内外的大厂频繁爆出裁员的新闻。无论是由于公司战略调整,还是市场环境的变化,裁员已经成为了大厂的一种常见操作。即使是表现优异的部门,也可能因为公司调整方向而面临裁撤的命运。
大厂裁员并不仅仅针对绩效较差的员工。很多时候,裁员是为了优化成本结构,或者是公司业务重心发生了转移。某些曾经处于风口的业务部门,一旦被认为前景不妙,整个团队可能会在短时间内被解散。例如,一些大厂在短视频、智能硬件等领域的扩张速度过快,导致后期发展遇阻,一旦业务不达预期,相关团队就可能面临大规模裁员。
以字节为例,2023 年底字节跳动官宣大规模裁撤游戏项目和人员,未上线项目几乎全部关停,已上线且表现良好的游戏也要寻求剥离; 2024 年初飞书裁员超过 20%,
这种裁员的不可预测性,给大厂程序员的职业生涯带来了巨大的不确定性。即便你今天的绩效再优秀,也无法保证明天公司不会因为战略调整而决定裁掉你所在的部门。这种生存危机,成为了大厂程序员的长期困扰。
还在某大厂的兄弟说:以前,末位淘汰了还可以增补 HC,但是现在淘汰了就是淘汰了,不会有新的人补充进来,且强制 10% 的比例。这也是一种裁员的逻辑。
1.2.2 「大龄程序员」的困境
裁员的另一大受害者群体是所谓的「大龄程序员」,即那些年龄超过 35 岁、甚至 40 岁以上的技术人员。在很多大厂的文化中,年轻意味着活力和更强的工作负荷承受能力,因此,年龄较大的程序员往往被认为「性价比不高」。
当公司需要削减成本时,首先会考虑那些薪资较高的员工。而大龄程序员由于工龄长、薪资高,往往成为了裁员的首选对象。即便这些程序员有着丰富的技术经验和项目管理能力,但在日新月异的互联网行业,他们的优势往往被削弱。
同时,技术更新日新月异,大龄程序员若无法持续跟上行业的技术潮流,便可能在职业生涯中陷入困境。很多人会在 35 岁之后面临职业发展的瓶颈,不得不思考转型的可能性。
1.3 程序员的「供需失衡」
与十几年前程序员供不应求的情况不同,如今的互联网行业已经趋于饱和。随着越来越多的人涌入这个领域,市场对程序员的需求增速放缓,导致了供需之间的失衡。
在 2024 年 8 月招生季,太原理工 2024 软件工程招 60 个班,近 2000 人,冲上热搜。想象一下,在四年之后的这些学生的就业难度会像「通货膨胀」一样飞速上涨。
这种供需失衡带来了一系列问题。在初级程序员这一级,竞争会更加激烈,很多应届毕业生发现自己面临大量竞争对手,哪怕是基础岗位,也往往需要具备极高的技术能力。
企业在招聘时可以更加挑剔,倾向于选择那些工资要求低、技术基础扎实的年轻程序员,而那些经验丰富但薪资要求较高的资深程序员,反而变得不那么受欢迎。
程序员岗位已经从一个「卖方市场」彻底转变为「买方市场」。
在「卖方市场」时期,企业为了吸引优秀的技术人才,往往会提供丰厚的薪资福利和极具吸引力的职业发展机会。然而,随着越来越多的程序员涌入市场,岗位供给的增速却远远赶不上需求的增长,企业开始占据更多的主动权。
在买方市场中,企业可以更加挑剔地选择应聘者,不仅要求候选人具备扎实的技术基础,还希望他们能够适应更高的工作强度和更低的薪资要求。这种局面尤其对初级程序员和应届毕业生不利。哪怕是一些基础岗位,也往往需要较高的技术门槛和项目经验,导致很多刚毕业的学生发现自己难以找到合适的工作机会。
与此同时,资深程序员的处境也不容乐观。那些拥有多年经验的程序员,虽然在技术上更为成熟,但由于薪资要求较高,企业在招聘时往往更愿意选择年轻、成本较低的程序员。这种现象让很多资深程序员陷入了「高不成低不就」的尴尬境地。他们的技术能力虽然依然强大,但在快速变化的互联网行业中,市场对他们的需求开始减少,尤其是在裁员潮和优化成本的背景下,资深程序员的议价能力逐渐被削弱。在就业市场上常常可以看到一个岗位多个人竞争的情况。
1.4 大厂程序员的「中年危机」
1.4.1 技术更新的焦虑
程序员这个职业最大的特点之一是技术更新的快速迭代。每隔几年,行业的技术栈就会发生翻天覆地的变化。从最早的C、C++到如今的云计算、人工智能和区块链,每一波技术浪潮都要求程序员持续学习新知识,适应新的工具和框架。
对于年轻程序员来说,学习新技术可能充满了乐趣和挑战性。但对于年纪较大的程序员来说,技术更新的压力往往带来了巨大的焦虑感。随着年龄增长,学习新技术的难度和精力投入都在增加,而大厂的工作环境又要求程序员始终保持对新兴技术的敏感度。这种持续的技术更新压力,让很多大龄程序员感到力不从心。
1.4.2 顶层的天花板
对于很多大厂程序员来说,最可怕的不是眼前的压力,而是那种隐隐约约的「天花板」感。你很难在大厂中看到五十岁、甚至四十岁以上的程序员,他们的去向仿佛成了一个谜题。
大家心照不宣地知道,到了某个年龄段,技术可能已经不再是你的核心竞争力,管理岗位有限,竞争者众多,如何突破这层「天花板」成了很多大厂程序员内心深处的焦虑。
面对年龄、技术更新和职业发展的瓶颈,很多大厂程序员在 30 岁之后开始考虑职业转型。然而,转型并不是一件容易的事情。大多数程序员的职业技能都围绕技术展开,一旦离开了技术岗位,很多人发现自己在其他领域缺乏竞争力。
常见的转型路径包括转向管理岗位、创业或进入教育培训行业。然而,管理岗位有限,创业风险极大,而教育培训行业本身也在经历着调整。这使得很多程序员在转型的过程中感到困惑和无助。职业发展的瓶颈使得大龄程序员的未来看起来充满了不确定性。
1.5 黄金时代的背后是无尽的焦虑
大厂程序员的生活看似光鲜,但背后却充满了无尽的压力与焦虑。高薪的代价是长期的加班和激烈的内卷;丰厚的待遇伴随着频繁的裁员和职业发展的瓶颈。尤其是大龄程序员,他们不仅面临着技术更新的焦虑,还要应对职业转型的困惑。
在这个日新月异的行业里,大厂程序员的「黄金时代」或许并不像外界看到的那样光鲜。当「中年危机」到来,如何平衡工作与生活、如何应对技术的快速变化,成为了每一个程序员都需要思考的问题。
如 will 老板所说:始终要思考的是如何在大厂活下去!,更进一步:其实更焦虑的是如何靠自己活下去
2. 第二空间:小厂程序员的迷茫与抉择
2.1 资源、团队与技术的困境
在小公司工作的程序员面临的第一个现实问题是资源的匮乏。与大厂程序员相比,小厂程序员的开发环境和资源往往十分有限。预算紧张使得小公司无法购买先进的开发工具,也没有大厂那样完善的基础设施和支持团队。很多时候,程序员需要用「土办法」去解决问题,甚至自己搭建和维护服务器、数据库等基础设施。
虽然现在云服务的使用已经很普遍了,但是能用好云服务的公司不多,甚至在常见的 CI/CD 流程都没有实施。
团队情况也是一个重要因素。小公司里,团队人员往往较少,职责分工不如大公司细致,很多程序员需要身兼数职,既要写代码,还要负责运维、测试,甚至参与产品设计和业务讨论。这种「多面手」的工作方式虽然能让个人能力得到快速锻炼,但也意味着专注度较低,无法在某一个领域深入钻研,导致技术积累不够扎实。
技术的硬门槛是另一大挑战。小公司通常专注于短期业务目标,项目进度往往比技术本身更加重要。这导致程序员在开发过程中可能会放弃对代码质量、性能优化等技术细节的追求,而更多地采用快速上线的策略。这种方式虽然能让产品迅速推向市场,但也限制了程序员的技术视野和思维,长期下去,很容易陷入技术瓶颈。
2.2 平台、资源与局限
2.2.1 资源的限制
与大厂相比,小厂程序员的工作环境显得更加局促和紧张。他们没有大公司那样强大的技术团队或前沿的技术工具支持,很多时候只能依赖现有资源,甚至是开源工具来解决问题。
公司往往没有足够的预算去支持技术创新,项目的重点更多地放在如何快速满足客户需求上,而不是技术实现的完美度。因此,小厂程序员的工作更多的是一种「打补丁」的过程,解决眼前的问题,而不是从根本上提升系统的架构或性能。
由于缺少大厂的技术资源和系统流程,小厂程序员在面对复杂问题时只能依赖个人经验和有限的知识储备。这种资源的匮乏,让他们在遇到需要深入技术实现或复杂系统优化的问题时力不从心,也限制了他们的职业发展。
2.2.2 多面手的隐患
小公司经常要求程序员成为「全栈开发者」,不仅要负责前端、后端的开发,还要参与运维、测试,甚至是产品设计。这种「多面手」的角色虽然能在短时间内提升程序员的综合能力,但长期来看,专精度的不足是显而易见的。程序员往往在多个领域都有所涉及,却缺乏一个深耕的方向,导致在某些关键技术上与大厂程序员相比存在明显的差距。
这种现象尤其体现在一些高精尖的领域,比如分布式架构、性能优化、大规模数据处理等。小公司项目的局限性使得程序员鲜有机会接触这些高端技术,即便遇到相关问题,也往往是通过快速修补的方式解决,而不是深入理解和优化。多面手的广度虽然让小厂程序员具备了应对不同问题的能力,但缺乏深度的劣势在面对更高的技术挑战时显露无遗。
2.2.3 重复与瓶颈
小公司项目的重复性也是一个常见的问题。许多小公司专注于某些特定的业务场景,程序员在开发过程中,往往是在重复类似的增删改查操作。长时间在这种环境中工作,程序员容易陷入一种技术思维的局限,觉得自己的工作仅仅是完成客户需求,而忽视了技术本身的提升。这种局限让他们在面对更复杂的项目或系统时,缺乏应对的思路和方法。
在这种环境下,程序员可能会感到希望突破但找不到方向。他们渴望接触更复杂、更有挑战性的技术,但小公司的项目和资源限制了他们的视野,无法提供足够的成长空间。很多程序员在小公司工作多年后,逐渐意识到,自己的技术积累始终停留在某个水平,无法突破。
2.3 对未来的迷茫与期待
2.3.1 稳定性的假象
小厂程序员的处境,常常在稳定与成长之间徘徊。对于很多在小公司干了多年的人来说,工作内容虽然相对稳定,压力小,甚至在某些场合下还能当上小领导,但这种「舒适区」并不一定带来长久的安全感。
尽管有些程序员在小公司工作多年,积累了一定的业务经验,甚至在团队中占据了重要的角色,但这并不意味着未来的职业道路是一片坦途。小公司的抗风险能力差,经济波动或行业萎缩时,很多小公司会迅速陷入困境,甚至倒闭。对于很多 30 岁上下的程序员来说,一旦失去这份相对稳定的工作,他们可能会发现自己在技术上并没有明显优势,面临再就业的难题。
这种不稳定性让很多小厂程序员产生了焦虑感。他们担心公司倒闭后,自己所积累的业务经验和技术能力无法顺利转化到其他公司。尤其是在面对大厂的面试要求时,很多小厂程序员会发现自己的项目经验和技术广度远远不足以应付大厂的高标准。进退两难的局面让他们陷入迷茫,不知道未来的职业发展该何去何从。
2.3.2 突破的渴望与现实的差距
尽管如此,很多小厂程序员依然保持着突破现状的愿望。他们希望自己的公司能够做大做强,从而拥有更多的资源和技术成长的机会。然而,现实往往并不如人意。小公司能做到一定规模的并不多,很多公司最终还是会因为市场竞争激烈、资金不足等原因被淘汰。
因此,跳槽到中型公司或大厂历练,成为了不少小厂程序员的另一种理想选择。他们希望通过进入更大平台,接触到更多的技术挑战和行业资源,打破**在小公司中「打转」**的局面。但这种跳槽并不容易,尤其是对于长期习惯了小公司开发模式的程序员来说,想要进入大厂不仅需要提升技术硬实力,还需要适应大厂的工作节奏和文化。
2.4 跳槽到大厂:进阶还是冒险?
对于那些在小公司工作了多年,并且已经进入到领导层的程序员来说,最大的问题往往是:现在跳槽到大厂,值得吗?
2.4.1 跳槽的机遇
跳槽到大厂意味着能够接触到更复杂的技术栈和更具挑战性的项目。在大厂中,程序员不仅可以学习到前沿的技术(如微服务架构、Kubernetes、分布式系统等),还能够获得更为完善的职业晋升通道。大厂的技术氛围和资源整合能力,也意味着程序员能够更快地成长,跳出小公司单一业务的限制。
此外,大厂的品牌效应也不容忽视。即使是普通开发,拥有大厂背景的程序员在未来的求职市场上,无论是跳槽还是创业,都具有更高的含金量。
2.4.2 跳槽的风险
然而,跳槽到大厂并非没有风险。大厂的竞争激烈,程序员需要面对年轻一代的强大竞争压力。大厂的工作节奏快、加班文化重,许多 30 岁左右的程序员可能会发现,自己在体力和精力上难以与年轻人抗衡。
进入大厂后,之前在小公司积累的业务经验和管理经验未必能够直接转化为优势。大厂的岗位分工更加明确,很多程序员在跳槽后可能需要从普通开发做起,甚至重新适应新的工作流程和技术要求。
跳槽到大厂对于 30 岁上下的程序员来说,是一个双刃剑。如果能够抓住机会快速提升技术能力,则职业生涯将迎来新的突破;但如果无法适应大厂的节奏,则可能面临事业的再次迷茫。
2.5 技术能力和学习能力是立足之本
小厂程序员的迷茫和焦虑,归根结底源于技术成长的瓶颈和职业发展的不确定性。面对快速变化的行业环境,程序员们需要不断提升自我,不仅要在技术上有所突破,还应当具备长远的职业规划。
无论是在小公司继续发展,还是跳槽到大厂,程序员都应当意识到,技术能力和学习能力是立足于这个行业的根本。唯有不断学习和进步,才能在程序员的职业道路上走得更远、更稳。
3. 第三空间:外包与自由职业者的「生存游戏」
3.1 外包的世界
在大厂和小厂之外,还有一群程序员,他们生活在外包公司中。外包程序员的生活与大厂和小厂截然不同,他们的工作内容往往由客户决定,技术栈也不是自己可以随意选择的。一些外包程序员可能会长期为某个大厂或者知名企业提供服务,但他们并不属于这些公司,他们的身份始终是「外包」。
外包程序员的收入通常与大厂程序员有较大差距,工作内容也更加琐碎。与大厂和小厂的开发者相比,外包程序员的职业发展路径更为模糊。很多人觉得外包是一个「临时的选择」,但一旦进入外包行业,往往很难轻易跳出来。
3.2 自由职业者的自由与孤独
与外包程序员类似,自由职业者也是程序员群体中的一个独特存在。他们没有固定的公司和老板,依靠接项目为生。自由职业者的生活看似自由,但实际上他们承担了巨大的生活压力:项目的来源、项目的质量、客户的付款周期,这些都直接决定了他们的收入。
我有一位朋友曾辞职做过一段时间的自由职业者,他的经历让我对这一群体有了更深的了解。他曾告诉我,自由职业的最大挑战不是技术,而是如何维持客户关系、如何接到稳定的项目。自由职业者的生活往往充满了不确定性,每天都是一次新的「生存游戏」。
4. 结语:折叠的程序员世界
程序员的世界如同《北京折叠》中的三个空间:大厂、小厂,外包与自由职业者,各自有着截然不同的生活方式与职业挑战。大厂程序员在高薪与内卷中挣扎,小厂程序员在资源匮乏和职业迷茫中徘徊,外包和自由职业者则在充满不确定性的项目中谋生。每个空间都有其独特的焦虑与困境,而这些困境往往是外界无法轻易察觉的。
然而,这些看似完全隔绝的空间并非毫无交集。在某些时刻,程序员们的职业轨迹会短暂交错:大厂的程序员可能因职业倦怠转而投身小厂,或选择成为自由职业者;小公司的程序员也可能抓住机会进入大厂,体验另一种生活。外包和自由职业者也常常通过项目合作,与大厂程序员产生联系。
折叠的背后,是程序员们面对的共同挑战:快速变化的技术浪潮、工作与生活的平衡、未来职业发展的不确定性。
无论身处哪个空间,程序员不仅要面对代码和产品,还要面对生活的选择与妥协。技术的迭代让人时刻保持危机感,职场的竞争让人不断追逐更高的目标,但归根结底,程序员们都在寻找如何掌控自己的命运,在压力与选择中找到一条适合自己的道路。
或许,正是这种多元的职业轨迹和复杂的生存环境,构成了程序员世界中的「折叠北京」。每个空间的故事,都在提醒我们:技术人的真正挑战,不仅在于掌握技术,更在于如何在折叠的世界中找到属于自己的平衡与方向。
来源:juejin.cn/post/7445253248649674764
35岁程序员-减肥、考证、开发小程序,我的2024年度大挑战!
我的情况
坐标郑州,在一家不大的软件开发公司做Go后端开发。小公司的特点就是分工不那么明确,也就是什么都得会点,包括前端页面,服务器运维,需要的时候都得能顶上。所以吧,我现在勉强属于全栈,竞争力不算突出。
随着年龄慢慢靠近35岁的敏感点,我也越来越焦虑,总想着做点什么,让自己有点不同于他人的竞争力。趁着自己的业余时间,做过AR,弹幕直播游戏等。每次都是做着做着就会进入一种怀疑,沮丧的心态中。觉得做的东西并不独特,就算最后做出来应该也没人用,最后都成了半成品,不了了之。
今年也终于是到了我的35岁,还是一直写代码,虽说工作稳定,但小公司也没什么晋升的空间。如果一直这样下去,面对二十多岁的新生代牛马,自己哪还有还手之力。所以想着如果以后有机会的话能转向项目管理方向,给自己多准备条路,先考个证书,也算提前系统学习一下。
我身高175,年初的时候体重160斤出头,双下巴,大肚腩,标准的油腻中年男。幸好的是头发还茂盛,否则真就不好意思出门了。老婆一直催促我减肥,自己也觉得这形象实在是看不下去,于是下定决心逼自己一把。
所以,为了能做出一些改变,年初的时候我给自己定下了几个目标(当然谁都没有告诉,怕最后被打脸🤣),希望给自己一点动力。
设定目标
- 减肥到135斤以下
- 考一个软考高级证书
- 上线一个小程序
完成情况
- 减肥 ✅
3个月的时间减了30斤。
三月不减肥,四月徒伤悲。从3月份开始,我给自己制定了严格的饮食计划。每天早上一个鸡蛋一盒牛奶,中午米饭定量100克,晚上黄瓜,再加上抖音上很火的跳操。终于不到3个月就达成了目标。
现在体重稳定保持在132斤左右,没有反弹,以前穿不上的衣服现在也可以穿了。其实前几年每年我都减过,但最后都没有成功,每天吃不饱的滋味太难受了。这次能成功,我总结的经验就是减肥就是要靠饿,其他什么方法都不好使。😂

- 软考高级证书✅✅
拿下两个软考高级证书。
从春节过后开始准备高项的考试,每天强迫自己看一到两个小时的视频。刚开始看着700多页的教材,一脸懵逼,只觉得像看天书,每句话之间毫无逻辑,当时我的感觉一定是这样的。。。

后来随着学习的深入,发现书里的内容还是自成体系的,拗口的名词也都觉得有了道理。快该考试的时候听说了高项考试从一年两次,改成了一年一次。本来想着如果考不过还能有一次机会,这下考试的压力更大了。只能埋头苦学,每天背知识点,不停的刷题。还好最后一次通过。
高项考完之后,休息了一个月,突然又来了想法。做技术的应该都向往成为架构师,而且自己做了这么多年的后端开发,自认对系统架构有了一些见解,何不考验一下自己的水平? 刚好软考中有一个系统架构设计师的科目,于是决定再考一个高级证书。中间的学习过程不表,最后也是顺利通过。

可能有很多小伙伴觉得证书都是虚的,真正看实力还得Show Me The Code。对于后一句我是举双手赞成,不过证书的好处也是有的。比如有的城市可以帮助落户,对公司资质也有帮助,最少也能证明自己学习能力还在,不会被新技术淘汰掉。
总之今年超额完成了任务,目标已达到,以后应该不会再考了。
- 上线小程序⛔
还没有完成。
从有了想法开始, 断断续续搞了几个月,目前进展落后,完成了一半。一开始,我是想做一个微信小程序,使用微信小程序的原生语法开发,后来觉得效率太低,而且很多语法不通用,不如用一个跨平台的框架。
最后决定了用uniApp来开发,后端也由自己开发部署改为使用云函数,中间技术选型就耽误了不少功夫,开发的规划和管理还是有很大的提升空间的。而且现在就是感觉作为一个后端程序员,做页面还是有些勉强。页面的功能能用是一回事,还要做的好看,那可就难了。
虽然进度落后了,但这一次不会再半途而废了,不管最后做成什么样都要完成。争取2个月之内结束。
明年的目标
马上就要到新的一年,依然还有很多事情等着我去做。而且焦虑的感觉一点也没有减少,对自己的将来还是有些迷茫。不过机会都是留给有准备的人,为了在将来机会到来的时候能准备好,还是要学习和努力啊。就先给自己定两个目标吧。
- 学英语,目标是追剧可以不看字幕,也给孩子学习做个榜样
- 健身,八块腹肌等我
最后想在这里问一下,掘友们,你们今年的目标都完成了吗?
来源:juejin.cn/post/7454092357333925900
如果你想做副业,不妨看看我这3个月的奋斗史
看过我文章的小伙伴应该也都知道,去年我是坚持了每周更新一篇技术文章,去年文章总数算下来也有个50篇左右,然后今年立下的flag是:
- 再学一门语言,比如鸿蒙开发、游戏开发等等。这个flag是做到了,目前为止可以运用kotlin开发Android原生应用。
- 继续在掘金平台输出文章,至少做到每周一更。年初原本想着是每周2-3更,但是目前看来是完全没做到,因为这2个月的个人时间全都扑在了“副业”上。
所以接下来,我会将这3个月的心路历程讲给大家听,如果大家想做副业,可以参考一下我的经历。
过年这段时间的思考
时间回退到去年过年的时候,我没记错的话应该是今年2月份是去年过年的时间点。我司是放了2周的假,那个时候我的工作年限是2年半(可以出道了,哈哈哈)。从大学到目前为止,心里一直有个声音告诉我:
我不可能通过打工来实现理想中的生活状态。原因如下:
1、房贷、车贷、孩子教育、大病、未知的风险,这些因素会导致生活质量非常脆弱。当然这也要因人而异,毕竟过的是否开心只有自己知道。
2、疫情后时代,裁员潮一浪更比一浪强,毕业人数越来越多,岗位越来越少,谋得一份自己满意的工作也趋近于“99%的运气 + 1%的努力”。
3、原来我努力学习技术是为了更好的打工,有人的地方就有江湖,你不能独善其身,因为并不是所有的人都喜欢双赢。
所以,年后在回北京的路上,我决定今年要尝试一下,不要把所有的时间全扑在技术上,可以考虑做一下“副业”。
如何做副业?
我个人比较喜欢看电影、电视剧、动漫、NBA。影视解说这个赛道可能就比较适合我,定了赛道以后,视频发到哪个平台呢?今年短视频平台特别多,抖音、快手、视频号、B站、西瓜、甚至是支付宝里都可以刷视频等等。在综合考虑之后,我选择了微信视频号。原因如下:
- 微信不缺流量,也不缺广告商赞助。
- 视频号绝对是某讯今年发力的重点,因为官方不止一次在公共场合里说明了视频号的重要性,而且春节晚会上也出现了视频号的赞助。
- 视频号上目前竞争不激烈(这句话只在2024年6月前生效),因为用的人还不是很多,所以这个阶段对视频质量的管控还不是很严,毕竟它要吸引用户进来,前期肯定不会管控太严,而且流量也会给的很足。
于是2024年2月18日,我的第一条影视作品在视频号上发布了。
这是我第一次剪辑影视作品,花了3天时间。当时的播放量就是200多,你现在看到710播放量是2月18日 - 6月16日的播放量。那个时候粉丝数量是1,对,没错,就是你们想的那样,那个1就是我自己,哈哈哈。当时剪辑第一条视频的时候,说实话完全是一边学习一边剪辑,而且那个时候我进入了一个误区,就是必须要剪辑的完美,所以前2天一直没有产出,这个时候我慌了,2天一点产出都没有,所以第3天的时候我告诉我自己,先把视频发出去,你又不是只发一条视频,后面的视频慢慢优化,不要想着一口吃个胖子。
前2条视频都是有关三国的视频,那个时候播放量都是200多,但是从第3条视频开始,播放量直接破万,有的能达到10w。为啥会有大的播放差距?后来我复盘了一下,是因为我当时正好踩中热点了,并且竞争不激烈。第三条视频以后,我开始剪辑《南来北往》这部影视剧,当时这部电视剧可以说是非常火,没看过的小伙伴强烈建议你去爱奇艺上观看一遍,真的超级好看。
因为周一到周五上班嘛,所以周六周天我会把下周要发的视频全都剪出来,一天至少按时发一个作品,就这样,差不多2周左右的时间吧,我的有效粉丝突破了100个。
视频号是分等级的,等级跟粉丝有关系,等级越高,视频的基础播放量就越高,能解锁的权益也会越来越多。
有效粉丝数量突破100个,这个阶段是比较难的,原因如下:
- 你要审视自己的作品质量。自己剪出来的东西是否有待提高等等。
- 你要确定细分赛道,影视解说都算是一个大概念,它可以再细分为 “影视解说”、“影视混剪”、“影视情感”。
- 一天分很多个时间段,每个时间段流量不一样,所以你要测出自己的作品在哪个时间段里,播放量比较高。
我原以为影视解说这条道路会这么顺的走下去,结果因为没有版权+播放量太高,被投诉侵权了。不是我吹,如果那个时候你在视频号里搜索“南来北往”,你看到的视频大部分都是我剪出来的。
说实话,我也是第一次见到这种阵仗,吓的我把所有关于“南来北往”的20多部作品连夜下架删除了。
在对比了其他平台后,我得出了如下结论:
- 平台之间是有合作的,这部影视剧在这个平台算侵权,但是在其他平台里就不算侵权。
- 二次创作的质量要高,要不然很容易就会被判违规,所以我已经完全转为纯影视解说。
- 还是要看平台规则,要尊重平台的规则。
影视号在视频号里如何赚钱?
相信这个话题是你们比较喜欢看的,根据我的历程,影视号在视频号里的变现途径有以下几个方向:
- 当你的作品播放量能够稳定突破10w的时候,或者每周的播放总量能够稳定突破50w的时候,会有很多人主动找你合作。
- 视频号里有视频变现任务,你可以主动去接一些变现任务,然后等待任务结束后结算。当然,这个只有当你的有效粉丝数量突破100的时候,你才有资格去接任务。
- 如果你的有效粉丝数量突破1000的时候,你可以挂商品链接,用户从你的链接点进去后,如果发生了交易,你会在中间赚一些分成,这个跟抖音的规则差不多。
- 如果你的有效粉丝突破了5000的时候,你的账号就可以解锁商单功能。就是将自己的报价放出去,如果广告主找你合作,那么他就要遵循你的视频报价。一条1分钟以下的视频报价是多少,一分钟以上的视频报价是多少等等。
当然我说的这几个方向,都必须要遵循平台的规则。所以前2年,在抖音上,80%的探店账号都赚到了钱,就是因为前几年,探店视频在抖音上是趋势,如果前几年你在抖音上发探店视频,能够做到基础的每日一更,你的流量一定不会差,而且你也一定能够接到商单。
最后
又到了该和大家说再见的时候啦,这3个月确实是学到了很多东西,这3个月的奋斗史也绝对不仅仅是视频号,在其他方面上我也有很多很深入的尝试。
以上内容绝对没有任何的引导,只是自己上半年的一个分享,如果你还想看更多的,有关我在其他方面的尝试,欢迎评论区里发言,嘿嘿,我们下期再见,拜拜~~
来源:juejin.cn/post/7380510171640446988
谈谈在大环境低迷下,找工作和入职三个月后的感受
前言
今天是新公司入职后的三个多月了个人也是如愿的转正了,对于我个人而言此时的心情好像没有三个月前刚拿到offer那样的喜悦和兴奋了,更像一件很普通的事情在你身边发生了吧。从2023年底离职在到2024年初开始找工作中间休息了三个月,找工作到入职花了一个多月,在这个过程中也是第一次真真切切感受到了所谓大环境低迷下的“前端已死的言论”,也给大家分享一下自己入职三个月的个人感受吧。
从上一家公司离职时的个人感受
因为上一家公司的工作性质是人力外包驻场开发,年底客户公司(中国移动成都产业研究院)我所在的项目组不需要外包人员了,个人也是被迫拿了赔偿灰溜溜的走人了。
工作感受:对于这段工作经历我个人还是比较认可的,毕竟这里没有任何工作压力,也不加班,工作量少,有很多时间去学习新东西,做做自己的开源,认识了新的朋友等等。
学历的重要性:在这里面随便拎一个人出来可能就是研究生学历的国企单位,自己真实的意识到了学历的重要性(第一学历小专科的我瑟瑟发抖)。
和优秀的人共事:如果在一个长期压抑低沉消极的环境下工作无论你的性格在怎么积极乐观开朗,可能也很容易被影响到。相反如果是和在一群积极,乐观,开朗,充满自信的环境和人一起工作,相信你也会变得积极,乐观,自信这或许也是我这一段工作经历最大的收获吧。
2023年底找工作的市场就业环境
抱着试一试的心态在boss上更新了自己的简历状态,不出所料软件上面安静的奇怪ps:49入国军的感觉,已读未回可能是很失望的感觉吧,但年底找工作令人绝望的是大多数公司都是未读未回,这也就意味着年底基本上是没有正常公司招聘的了。
大概投了两周简历后终于在智联招聘上约到了一个短期三个月岗位的面试,现场两轮面试通过了,不过最终还是没有选择去。
原因有很多:
- 现场的工作环境个人感觉很压抑,从接待我前台和面试官都能感觉满脸写着疲惫
- 说公司最近在996,你也需要和我们一起
- 招聘岗位和工作内容是threejs开发,薪资却说只能给到普通前端开发的水平
- 人力外包公司hr的反复无常令我恶心,二面通过后hr给我打电话最主要就是聊薪资吧,电话内容也很简单hr:成都大部分前端的薪资是在XX-XX,可能给不到你想要的薪资,可能要往下压个1-2K。我:我提的薪资完全是在你们发布招聘岗位薪资的区间,既然你们给不到为什么要这样写了(有感到被侮辱了)。过了几天之后人力外包的hr又给我电话,说可以在原来提的薪资基础上加1.4K,希望能早点去客户公司入职。
总结:年底招聘的公司基本上没啥好鸟,如果你的经济能力还行的话让自己放松休息一段时间也是不错的选择
2024年初找工作:真实的感受到了大环境的低迷下的市场行情
印象最深刻的是在疫情时期的2021年,那会儿出来找工作boos上会有很多HR主动给你打招呼,一周大概能五六个面试,大专学历也有机会去自研公司
解封之后本以为市场行情会变得回缓,结果大概就是今年可是未来十年行情最好的一年
简单总结一下2024年的成都就业环境大概这样的:
- 只有外包公司会招专科学历
- boss上只给hr发一句打招呼的快捷语,99% 都是已读不回
- 大多数要完简历之后就没有后续了
- 待遇好的公司对于学历的要求更严格了(211,985)
- 给你主动打招呼的基本上都是人力外包公司
截至入职新公司前boss上面的投递状况:沟通了1384个岗位,投递了99份简历,一共约到了 8 家公司的面试
今年找工作的个人感受:不怕面试,就怕没有面试机会
首先说一下个人的一些情况吧,因为在创业小公司待过在技术栈方面个人认为算是比较全面的了
项目经验:做过管理系统(CRM,B2C,ERP,saas等管理系统)、商城和门户网站(响应式,自适应)、移动端(H5,小程序,app)、低代码和可视化(工作流,可视化大屏,3d编辑器)、第三方开发(腾讯IM,企业微信侧边栏)、微前端
项目经历:从0-1搭建过整个大项目的基建工作,封装过项目中很多功能性组件和UI组件二次封装(提高开发效率),接手过屎山代码并重构优化,约定项目的开发规范,处理很多比较棘手的疑难bug和提供相关的技术方案,没有需求概念下的敏捷开发,从0-1的技术调研等
代码方面:写过几个开源项目虽然star数量不多(目前最多一个项目是600+),但在代码规范和可读性方面个人认为还是比较OK的(至少不会写出屎山代码吧)
工作经验(4年):2020毕业至今一直从事前端开发工作
学历:自考本科学历(貌似没啥卵用)
学历确实是我很硬伤的一个点但是没办法,人嘛总归要为年轻时的无知买单吧
在这样的背景下开启了24年的找工作,从2月26号开始投递简历到4月1号拿到offer差不多一个多月左右时间,一共约到了8加公司的面试,平均一周两家公司
大概统计了一下这些公司的面试情况:
公司A:
- 数组哪些方法会触发Vue监听,哪些不会触发监听
- position 有哪些属性
- vue watch和computed的区别,computed和method的区别
- vue的watch是否可以取消? 怎么取消?
- position:absolute, position:fixed那些会脱离文档流
- 如何获取到 pomise 多个then 之后的值
- 常见的http状态码
- 谈谈你对display:flex 弹性盒子属性的了解
- 如何判断一个值是否是数组
- typeof 和instanceof的区别
- es6-es10新增了那些东西
- 离职原因,期望薪资,职业规划
公司B
到现场写了一套笔试题,内容记不清楚了
公司C
- vue router 和route 区别
- 说说重绘和重排
- css 权重
- 项目第一次加载太慢优化
- 谈谈你对vue这种框架理解
- sessionstorage cookie localstorage 区别
- 了解过.css 的优化吗?
- 闭包
- 内存泄漏的产生
- 做一个防重复点击你有哪些方案
- 解释一些防抖和节流以及如何实现
- 说一下你对 webScoket的了解,以及有哪些API
- 说一下你对pomise的理解
- vue2,vue3 中 v-for 和v-if的优先级
- 说说你对canvas的理解
公司D
笔试+面试
- vue 首屏加载过慢如何优化
- 说说你在项目中封装的组件,以及如何封装的
- 后台管理系统权限功能菜单和按钮权限如何实现的
- vue 中的一些项目优化
- 期望薪资,离职原因,
- 其他的记不清楚了
公司E
笔试+面试+和老板谈薪资
1.笔试:八股文
2.面试:主要聊的是项目内容比如项目的一些功能点的实现,和项目的技术点
3.老板谈薪资:首先就是非技术面的常规三件套(离职原因,期望薪资,职业规划),然后就是谈薪资(最终因为薪资给的太低了没有选择考虑这家)
公司F
也是最想去的一家公司,一个偏管理的前端岗位(和面试官聊的非常投缘,而且整个一面过程也非常愉快感受到了十分被尊重)
可惜的是复试的时候因为学历原因,以及一些职业规划和加班出差等方面上没有达到公司的预期也是很遗憾的错过了
一面:
- vue 响应式数据原理
- 说说es6 promise async await 以及 promise A+规范的了解
- 谈谈es6 Map 函数
- 如何实现 list 数据结构转 tree结构
- webScoke api 介绍
- webScoke 在vue项目中如何全局挂载
- vuex 和 pinia 区别
- 谈谈你对微任务和宏任务的了解
- call apply bind 区别
- 前端本地数据存储方式有哪些
- 数组方法 reduce 的使用场景
- 说说你对 css3 display:flex 弹性盒模型 的理解
- vue template 中 {{}} 为什么能够被执行
- threejs 加载大模型有没有什么优化方案
- 离职原因,住的地方离公司有多远,期望薪资
- 你有什么想需要了解的,这个岗位平时的工作内容
二面:
1.我看写过一个Express+Mongoose服务端接口的开源项目,说说你在写后端项目时遇到过的难点
2.介绍一下你写的threejs 3d模型可视化编辑器 这个项目
3.以你的观点说一下你对three.js的了解,以及three.js在前端开发中发挥的作用
4.现在的AI工具都很流行,你有没有使用过AI工具来提高你对开发效率
5.说说你认为AI工具对你工作最有帮助的地方是哪些
6.以你的观点谈谈你对AI的看法,以及AI未来发展的趋势
7.你能接受出差时间是多久
8.你是从去年离职的到今天这这几个月时间,你是去了其他公司只是没有写在简历上吗?
9.说说你的职业规划,离职原因,你的优点和缺点,平时的学习方式
公司G
一共两轮面试,也是最终拿到正式offer入职的公司
一面:
- 主要就是聊了一下简历上写的项目
- 项目的技术难点
- 项目从0-1搭建的过程
- 项目组件封装的过程
- vue2 和 vue3 区别
- vue响应式数据原理
- 对于typescript的熟练程度
- 会react吗? 有考虑学习react吗?
- 说一下你这个three.js3d模型可视化编辑器项目的一个实现思路,为什么会想写这样一个项目
二面:
- 说说了解的es6-es10的东西有哪些
- 说说你对微任务和宏任务的了解
- 什么是原型链
- 什么是闭包,闭包产生的方式有哪些
- vue3 生命周期变化
- vue3 响应式数据原理
- ref 和 reactive 你觉得在项目中使用那个更合适
- 前端跨越方式有哪些
- 经常用的搜索工具有哪些?
- 谷歌搜索在国内能使用吗?你一般用的翻墙工具是哪种?
- 用过ChatGPT工具吗? 有付费使用过吗?
- 你是如何看待面试造航母工作拧螺丝螺丝的?
- 谈谈你对加班的看法?
- 你不能接受的加班方式是什么?
- 为什么会选择自考本科?
- 你平时的学习方式是什么?
- 一般翻墙去外网都会干什么?,外网学习对你的帮助大吗?
- 上一家公司的离职原因是什么,期望薪资是多少, 说说你的职业规划
- 手里有几个offer?
hr电话:
- 大概说了一下面试结果通过了
- 然后就是介绍了一下公司的待遇和薪资情况?
- 问了一下上一家公司的离职原因以及上一家公司的规模情况?
- 手里有几个offer?
- 多久能入职?
因为后面没有别的面试了,再加上离职到在到找工作拿到offer已经有四个月时间没有上班了,最终选择了入职这家公司
入职第三天:我想跑路了!
入职后的第一天,先是装了一下本地电脑环境然后拉了一下项目代码熟悉一下,vue3,react,uniapp 项目都有
崩溃的开始:PC端是一个saas 系统由五个前端项目构成,用的是react umi 的微前端项目来搭建的,也是第一次去接触微前端这种技术栈,要命的是这些项目没有一个是写了readme文档的,项目如何启动以及node.js版本这些只能自己去package.json 文件去查看,在经过一番折腾后终于是把这几个项目给成功跑起来了,当天晚上回家也是专门了解了一下微前端
开始上强度: 入职的第二天被安排做了一个小需求,功能很简单就是改个小功能加一下字段,但是涉及的项目很多,pc端两个项目,小程序两个项目。在改完PC端之后,开始启动小程序项目不出所料又是一堆报错,最终在别的前端同事帮助下终于把小程序项目给启动成功了。
人和代码有一个能跑就行:入职的第三天也从别的同事那里了解到了,之前sass项目组被前端大规模裁员过,原因嘛懂得都懂? 能写出这样一堆屎山代码的人,能不被裁吗?
第一次知道 vue 还可以这样写
对于一个有代码强迫症的人来说,在以后的很长一段时间里要求优化和接触完全是一堆屎山一样代码,真的是很难接受的
入职一个月:赚钱嘛不寒掺
在有了想跑路的想法过后,也开始利用上班的空余时间又去投递简历了,不过现实就是在金三银四的招聘季,boss上面依旧是安静的可怕,在退一步想可能其他公司的情况也和这边差不多,于是最终还是选择接受了现实,毕竟赚钱嘛不寒掺
入职两个月:做完一个项目迭代过后,感觉好多了
在入职的前一个月里,基本上每天都要加班,原因也很简单:
1.全是屎山的项目想要做扩展新功能是非常困难的
2.整个项目的逻辑还是很多很复杂的只能边写项目边熟悉
3.因为裁了很多前端,新人还没招到,但是业务量没有减少只能加班消化
功能上线的晚上,加班到凌晨3点
在开发完一个项目迭代过后也对项目有了一些大概的了解,之后的一些开发工作也变得简单了许多
入职三个月:工作氛围还是很重要滴
在入职三个月后,前端组团队的成员也基本上是组建完成了,一共14人,saas项目组有四个前端,虽然业务量依然很多但是好在有更多的人一起分担了,每周的加班时间也渐渐变少了
在一次偶然间了解到我平时也喜欢打篮球后,我和公司后端组,产品组的同事之间也开始变得有话题了,因为大家也喜欢打球,后来还拉了一个篮球群周末有时间大家也会约出来一起打打球
当你有存在价值后一切的人情世故和人际关系都会变得简单起来
在这个世界上大多数时候除了你的父母等直系亲属和另一半,可能会对你无条件的付出
其余任何人对你尊重和示好,可能都会存在等价的利益交换吧
尤其是在技术研发的岗位,只有当你能够完全胜任这份工作时,并且能够体现出足够的价值时才能够有足够的话语权
入职三个月后的感受
- 公司待遇:虽然是一个集团下面的子公司 (200+人)但待遇只能说一般吧,除了工资是我期望的薪资范围,其他的福利待遇都只能是很一般(私企嘛,懂得都懂)
- 工作强度: 听到过很多从大厂来的新同事抱怨说这边的工作量会很大,对我来说其实都还ok,毕竟之前在极端的高压环境下工作过
- 工作氛围:从我的角度来讲的话,还是很不错的,相处起来也很轻松简单,大家也有很多共同话题,没有之前在小公司上班那么累
大环境低迷下,随时做好被裁掉的准备
从2020年毕业工作以来,最长的一段工作经历是1年4个月,有过三家公司的经历
裁员原因也很简单:创业小公司和人力外包,要么就是小公司经营问题公司直接垮掉,或者就是人力外包公司卸磨杀驴
除非你是在国企单位上班,否则需要随时做好被裁掉的准备
什么都不怕,就怕太安逸了
这句话出自《我的团长我的团》电视剧里面龙文章故意对几十个过江的日本人围而不歼时和虞啸卿的对话,龙文章想通过这几十个日本人将禅达搅得鸡犬不宁,来唤醒还在沉睡在自己温柔乡的我们,因为就在我们放松警惕时日本人就已经将枪口和大炮对准了我们。
或许大家会很不认同这句话吧,如果你的父母给你攒下了足够的资本完全可以把我刚才的话当做放屁,毕竟没有哪一个男生毕业之前的梦想是车子和房子,从事自己喜欢的工作不好吗? 但现实却是你喜欢工作的收入很难让你在这座城市里体面的生活
于我而言前端行业的热爱更多是因为能够给我带来不错的收入所以我选择了热爱它吧,所以保持终身学习的状态也是我需要去做的吧
前端已死?
前端彻底死掉肯定是不会的,在前后端分离模式下的软件开发前端肯定是必不可少的一个岗位,只不过就业环境恶劣下的情况里肯定会淘汰掉很多人,不过35岁之后我还是否能够从事前端行业真的是一个未知数
结语
选择卷或者躺平,只是两种不同的生活态度没有对与错,偶尔躺累了起来卷一下也是可以的,偶尔卷累了躺起了休息一下也是不错的。
在这个网络上到处是人均年收入百万以及各种高质量生活的时代,保持独立思考,如何让自己不被负面情绪所影响才是最重要的吧
来源:juejin.cn/post/7391065678546157577
老婆问我,看这么多书有什么用?我想用这四个字解释明白
前言
Hi 你好,我是东东拿铁,一个正在探索个人IP的后端程序员。
关于洞察事物的本质,之前用了两篇文章,分别从副业、程序员的天花板两个角度,解释了关于变量、因果链、增强回路、调节回路这几个概念。
最后的一个概念,是滞后效应,因为自己没有太好的案例来解释,所以一直没有完成这个概念的解释。
但今天,我想从读书的角度,来解释滞后效应,对你的影响。
看书有什么用呢
我最近开始疯狂看书,或者说,愿意去读书了,不需要人催。只要不陪孩子的时候,我便会放下手头上的事情去看书,有一种想把过去十几年欠缺的时间补回来的冲动。
前天和老婆聊天,我很骄傲的说:我说我最近一个月已经看完了三本书了,厉害吧。
我老婆天真的问了一句:读这么多书有什么用啊?
有什么用呢?我突然回忆起了上学时光,父母、老师不止一次的告诫我们,要多看书,而且也有很多名人名言告诉我们,要去多读书。
查理·芒格说:我这辈子遇到的来自各行各业的聪明人,没有一个不每天阅读的——没有,一个都没有。
钱锺书先生说过:“如果不读书,行万里路,也只是个邮差。”
过去十几年,我也经常在内心里发出这个疑问,有什么用呢?即使在这这样的耳濡目染下,从上学到工作,我也几乎很少去看书,打游戏、看电影是我的休闲方式,看书也只会选择像《白夜行》这种小说。
当自己被问到这个问题的时候,我试图找到看书的收益,嗯,上周写的文章,发布那天,给我带来了1毛钱的收益,似乎好久没入池了。
入池就是微信官方给推荐流量,能够让更多没关注我的朋友,也能看到我的文章。(虽然入推荐池也没多少钱)
肚子里有不少话想说,但有感觉几句闲聊又说不明白,于是我笑了笑,结束了这个话题。
虽然如此,但心里只有两个字:有用。
是什么转变了我的看法,从抖音、英雄联盟中抽离出来,愿意花时间去看书呢?就是文章开头所讲的,滞后效应。
滞后效应
什么是滞后效应
系统最后一个连接关系,是滞后效应。
先从大家最感同身受的一个例子开始,新冠疫情为什么影响这么大?因为新冠病毒有潜伏期,这个潜伏期,可能长达14天。
因为这14天,导致病毒的溯源变得极为困难,我们也被迫在特殊情况下,居家隔离14天。
你给自己定下了接下来一个月的业绩目标,目标设高了,没完成心情低落。目标设低了,太简单了,自己容易放松懈怠。
于是你只能高点、低点来回调整,尝试好几个月。
比如你在洗澡,打开开关的时候,水一会凉,一会烫,你需要左右调整一会才能调整到舒适的温度。
为什么会这样?因为定完目标到出结果可能要几周,打开开关到出热水,需要几秒钟,因和果之间,有一个时间差,这个时间差,就是“滞后效应”。
看书也是一样,从看书,到你真正的能够运用书中的知识,或者说因为书的内容,而做出了什么正确的决策,最后又拿到了什么结果。中间可能会有漫长的时间。
让我们一度会自我怀疑,读书到底有什么用?
所以我们去看很多成功的公众人物,虽然他们在成长过程中阅读过很多书,你很难解释,今天的他,是因为读过哪些书、经历过哪些事,才造就的他今天的成功。
甚至可能他自己,也不知道具体哪本书,是他成功路上最重要的那一本。
我们了解了“滞后效应”,如何让他更好的应用于读书这件事呢?有三点和大家分享。
原因不一定在结果附近
在字节的时候,我挺佩服我的导师和leader,在很多时候,都能带领大家拿到不错的业绩,也给予了我很多的帮助。
他技术能力强,你不会的问题,找到他都能够解决。
管理能力也不错,团队有着很强的战斗力,关键还特别勤奋,有一次我写完技术规划已经半夜2点了,我的leader在凌晨2点和我视频整体过了一遍,并给了改进意见。
我恍然大悟,领导能够如此优秀,是因为够拼。于是我也开始加班,别的学不会,先从勤奋开始学起。
因为存在滞后效应,原因不一定是在结果附近,领导加班只是因为他承担了更大的责任。
想学习他们,学习拼、加班是不够的,应该看看五年前,他们做对了什么,又或者看了什么书,才让他们的技术、管理看起来这么的游刃有余。
减少滞后,增加确定性
刚毕业开始工作时,我买了一本书,叫做《机器学习》,这本书很有名,因为封面的西瓜,很多人称它为“西瓜书”。
但是我做的是后端岗位,即使我把这本书通读了一遍,我也不会有任何的应用,直到现在,我也没实际应用过书里的内容。
这就是读书的滞后性,从我学习到真正的应用与收益,我不知道有多长的时间,或许十年后,不得不学习AI的知识时,我才能想起这本书的内容。
怎么办?学以致用,读那些你能用到的书。
你是一个初、中级后端程序员,就去阅读像《Spring Boot实战》这样的书,去一行行敲下代码,快速的应用到工作当中。
你是一个高级程序员,就去阅读像《深入理解Java虚拟机》,结合生产环境暴露出来的问题,具体分析背后的原因。
你已经变成一个团队管理者,就去阅读管理、沟通类的书籍,解决面临的团队问题。
立刻学习,立刻应用,循环往复。
缩短中间环节
在职场初期,我的技术学习渠道,都是靠百度。百度可以搜出大量的技术文章,来源于掘金、csdn、简书等。
但是,文章的内容参差不齐,你能够学到的只是博主能够掌握的,而内容本身,也可能有遗漏、甚至有错误。
所以我常常因为一篇文章,觉着学会了这个知识点,但后面再看到同一个知识点的其他文章,又会发现这里是不是不对,那里的概念我怎么从来没有听说过?
那怎么办?缩短学习的环节。
从碎片化的网络上学习,改为系统的学习,买业内最权威的专家写的书籍去看,去看官网给出的入门手册,甚至去看源代码。
最早学习JVM虚拟机,我阅读了大量的网上的文章,有讲垃圾回收算法的,讲CMS的,讲G1的,我想到什么就去看什么,面试问到了什么,就去看什么。
后来知道了一本书,就是《深入理解Java虚拟机》,我发现无论是网上的免费文章,还是极客时间的付费课程,这本书几乎涵盖了大部分的内容,而且内容丰富,逻辑性强,更适合新人的学习。
从学习别人理解的知识,到学习最权威的知识,减少中间发生的信息损耗,极大的提升自己的学习效率。
说在最后
好了,文章到这里就要结束了,感谢你能看到最后。
希望这篇文章,可以在读书这件事上,给你一点点帮助。
关于洞察力几个概念的历史文章在这里,欢迎查看。
不知道你最近有没有读到什么让你爱不释手的书呢?欢迎你在评论区和我分享,也希望你点赞、评论、收藏,这对我来说真的很重要。也欢迎你加我的wx:Ldhrlhy10,一起交流~
本篇文章是第47篇原创文章,2024目标进度47/100,欢迎围观。
来源:juejin.cn/post/7399606877543415847
俊劫的2024年终总结:当爹、卖主机、差点失业
笔者
- 96生农村,河南信阳
- 被裁2次,工作5年多,目前在杭州一家车企
- 摸鱼群 / 找工作群,加我wx:V798595965
一、布丁的出生
2024-9-19,我儿子布丁顺顺利利来到这个世界。
1.1 出生那一刻
一开始觉得没什么,但是当微信收到老婆发的信息,那一瞬间感动的热泪盈眶😭。生完还需要在产房观察2小时,我在外面等的这段时间,描述不清楚是什么感受。当时找了个角落,给自己录了几段视频,想说的话,巴巴拉拉啥都说说,不过现在也没看过😂
1.2 费用
全部费用没算过,就生娃住院那4天,自费部分差不多6500左右,包含1350的护工费(450*3),包含48天后产妇体检的费用。
因为是一胎,咱也没啥经验,害怕很多意外的出现,所以就选了杭州产科最强的医院:市一。 因为医院比较老,附近停车贼困难,而且还很贵,10块一小时。SUV停了几次机械车位,差点把后视镜干掉了。
实际生产还是挺顺利的,宝宝在妈妈肚子里多待了5天,出生之后做的各项目检查都正常。现在看,选着最近的医院才是比较好的选择。
1.3 为什么要生
和一部分人一样,家长催生占一部分,但不是决定性的。去年结婚,对我们而言就是生娃的信号。35岁以上会被定义为大龄产妇,大龄产妇又会面临着各种危险。同条件下,越年轻,生完恢复的也越好。
再加上我姐姐也还没生,我这个家庭相对来说缺一个娃来让整个大家庭更有目标感。所以现在布丁出生后,会有超级多的人来爱他,特别是妈妈和姑姑
偶然在xhs看到一句话:养娃能看到过去自己长大的过程,会把自己认为父母亏欠的部分加倍补偿给自己的孩子,或许是在治愈自己,也或许是在满足自己
1.4 养娃
太多攻略要做了,这里要非常感谢一位朋友的帮助,比我先生宝宝,然后经验都分享给我了,经常问他各种问题😭帮了巨多忙。
养娃不仅仅要研究育儿知识,每个月伺候宝宝的方法还是不同的,宝宝的变化非常非常快。针对宝宝的不同反应,要做出不同的应对。因为媳妇快要上班了,这些东西不能仅仅是我们自己会,还得教他奶奶。但是他奶奶也五十几了,很多东西学不会,记不住,就很困难,也没啥办法。
然后中间还要调解婆媳关系,我日常还要上班,中间有段时间,中午不吃饭,时间全部用来睡觉。。。
现在处于教学痛苦期,观察好宝宝的反应,其实很好哄。但是他奶奶学不会,导致现在给奶奶带,就往死里哭😭。但是我们又不得不依赖他奶奶,不然上班就没人管了。
但是,有时候他奶奶不觉得是自己的问题,就觉得是宝宝的问题,就是要闹人,也不知道找原因,所以我现在是非常痛苦的。有时候只能安慰媳妇,没办法,让宝宝自己适应。。。
1.5 拍拍拍
3个多月了,回头看过去的样子,感觉自己还拍少了😂
1.6 男宝女宝
就身边的现象来说
- 高中同学
- 目前已知3个女宝
- 微信网友
- 同一天出生的,1个女宝
- 去年兔年生的,1个女宝
- 村里
- 目前已知3个女宝
- 公司同事
- 1男宝1女宝
- 媳妇同事生1女宝
- 同产房
- 1男宝3女宝
15个宝宝,只有2个男宝,13个女宝。 生男生女,概率不是差不多吗?
我倒是无所谓,生男生女,各有各的好处。你们身边男宝多还是女宝多?
二、工作
去年武汉被裁后,就来杭州这家了,当时还有点小插曲。因为武汉一家公司在我入职这家后又给了offer,我很纠结要不要去,当时处于这也想要,那也想要的状态,精神差点崩溃。
2.1 极越(集度)
关注新能源的应该都知道这个事吧,12月直接宣布原地解散了。去年在武汉可是大规模招聘,开的也算武汉Top几了。当时面了4轮,战线拉一个月,后面HC收紧被待定,然后一个月以后又联系给offer,蜜汁操作。要是早给,我肯定就去了。。。
去了的话,现在又是找工作的时间。我媳妇就认为是她的功劳,不是她在杭州,不是她对房子没有那么大执念了,我肯定又回武汉了。当初想去集度,就想赌一把百度智驾。我想着百度都干那么久了,对其他车企不得是降维打击,结果啊,百度还是那个百度。
间接躲过一劫,差点失业
2.2 晋升
虽然结果没出,但是我觉得是个伤心事
2.3 面试
帮忙面试
最近帮着公司招外包,收到一些十年以上经验的简历,很尴尬。简历潦草的,让人感觉他们自己也没抱什么希望,上次招聘给了几个大龄的面试机会,结果一个不如一个。第一次9月份,第二次就是最近。9月份也面了挺多的,过了几个,但是当时卡的严,最后一面基本都被毙了,卡着卡着,HC就变成了0
还有个现象就是异地简历贼多,很多都不是在本地工作的,可见大家都在海投,市场情况就是这样
今年又出1个外包HC,我有时候面1面,有时候面2面,给过了几个,不知道能不能来入职。
前端分类
简单分为,1-3年,3-8年,8年+,外包,自研
3年内的多是自研,简历写的都挺不错,但是一问就不会,一问就是别人做的
5年左右,最近一份干外包的居多,技术也还不错
8年+的,很大一部分就简历拉跨,技术也拉跨,各方面都不太行,当然厉害的也不会来投递外包了哈
今年面试感觉到的情况,并不具有代表性,各位简单看看
简单分析
结合我自己现在的状况,我也明白为什么,就是技术停滞,就是学习能力在逐步下降,不得不服。或许因为懒惰,或许因为家庭事情越来越多。。今年我没怎么学习过,就写了1篇掘金文章,很是惭愧。有更多的时间,不是在打游戏,就是在刷视频,看直播。我尝试着在改变,但是有点难。。。
自己也越来越老,通过面试官的身份反省自己,得好好学习,不仅仅是技术方面。
2025年,我还是需要在这块寻找突破口,不能再停滞不前了,不然迟早要被淘汰。
三、旅游
因为有了车,计划了挺多地方的自驾游,但是因为媳妇怀孕,所以就只能轻度转转,尽量避开人多的地方
3.1 南京
视频带奶奶看了下玄武湖,还不如杭州湘湖,哈哈哈
3.2 千篇一律
之前想着把国内这些一二线城市都逛逛,感受感受。但是吧,现在感觉都是千篇一律的商业街,风景区,真没啥意思。每次做攻略都做的好好的,去了以后就感觉和理想的落差太大,然后从这次南京后,就不太想玩这种很常规的旅游了。
看xhs说,这是要加入下一个level的迹象了,明年等小布丁1岁后,他奶奶能带的时候。计划计划去港澳台逛逛,然后日本韩国这些,怎么都得去看看吧。。。
四、主机
4.1 入手
6月初,终于入手了人生第一台主机,是的,没错。毕业5年了,第一次拥有自己的主机,之前都用MacBook 虚拟机打游戏,LOL fps,30~60😂
4.2 配置
2024-5-29价格:
- 板U: 微星B760 爆破弹 Wifi D5 + 12600kf 1694
- 显卡:微星RTX4060 VENTUS2 X WHITE8GOC白色 2180
- 电源:微星MAG A600DN额定600W 234
- 机箱:微星PAG PANO M100L 白色 188
- 散热:微星MAG 寒冰E240白色水冷 369
- 内存:威刚D300 16G 6400MHZ 387
- 硬盘:威刚S50 PRO NVME 1TB 465
合计:5517
pdd微星官方旗舰店整机4999,用卷到手4863
4.3 为什么卖
主要3个原因
- window和mac两种系统切换着用,还是不太舒服,更喜欢mac
- 空闲时间就爱玩LOL,玩几把就要红温
- 有两次下班没带娃玩LOL,媳妇生气了
想了想以后,主机对我也没太大吸引力了,就挂xhs了,就挂了一天,第二天晚上卖了。4863买的,用了半年,卖了4050。
黑神话开挂通关的、使命召唤系列玩了3部,总体也算是过瘾了。
卖完只有一个感慨:老了,花有重开日,人无再少年
4.4 JJ卖主机的奇幻经历
AB两个买家,A爽快最终成交,B一直砍价最后破防
A需送上门 B上门自提,时间线如下:
- B凌晨3点就给我发了个消息,要购买记录,我早上回复了下,人家看我买半年了,砍价说3800,我说不出
- A看到后直接问3900送上门行不行,我犹豫了,来回70km+可能现场验收有问题,就拒绝了。拿着3900,我问早上的B要不要,要的话就给B了。结果B还在还价,问3850行不行,我拒绝了。
- A看我犹豫,直接说不还价了3999送上门,他急着用。我就准备和他交易了,这个时候B又来了,问我怎么样,我说A直接3999了,B这个时候急了,说他也可以3999,现在就可以上门
- 同价格我肯定选择B上门自提的,但是这个时候A已经拍下了咸鱼链接,我和A说了这个事,他又给我加了50,意思给路费。 我和B说,他那边已经拍了,B就生气了,长篇大论说我人不行。。。
所以最后的结果:我怕B是个事逼,而且A已经拍了,所以还是选择送货上门和A交易,A比较痛快,貌似是个主播,上门简单验机后直接打钱,省了咸鱼0.6%的手续费
这俩人都是玩无畏契约的,玩过几把,这游戏现在这么火?🔥
4.5 老了
回来路上,一个人在高架上飙了一把,只能感慨:花有重开日,人无再少年
五、11月软考
5.1 系统规划与管理师
过去没有了解过杭州政策,最近朋友说了考这个东西的好处,可以认证E类人才。买房只需要30%,不买房每个月也有2500补贴,政策很香。所以准备来试试,但是因为很久没看过书了,+懒+生娃各方面的因素,几乎没看,考试前还一直在想要不要去考。后面一想,钱都交了,不得去试试,看看裸考能考多少。
结果就是:
还有俩朋友一起考的也没过,很多认真学的,一部分卡在了论文上。毕竟这个东西和利益相关,所以会卡通过率。
5.2 信息系统项目管理师
2025-5月来战斗,有一起考的没!!!
六、其他
零零碎碎的其他事,不想花费太多精力去写这个,年级大了,很多东西都要和利益挂钩。没得利益,就不太愿意付出了。
6.1 兼职
- 赚了几个w,非理财
- 辛苦钱且不稳定
- 得寻找比较稳定的睡后收入
今年国庆节那波股市,太猛了。本来准备拿10个入场的,媳妇都同意了,还是胆小没敢上。。。差点套进去
6.2 领证
感觉要给孩子出生做准备了,之前了解的准生证、建档什么的都得结婚证,反正去年也结婚了,赶紧找时间领了,方便后面办户口。
实际上现在很多都放开了,并不需要结婚证,领了证反而变成已婚了,租房个税都只能填一个人的了。领了证,现在这行情,浙江刚落地的13天婚假也不敢休,有些地方领结婚证还给钱。
所以,领证没得啥好处,建议大家能不领还是不要领
6.3 减肥
- 减了30斤,不过现在还是很胖
- 目前体重稳定了一个月,继续开始减
6.4 房子
- 和媳妇两个人都不再有买房的执念
- 租了个两室一厅,4200,住的挺舒服的
- 没有房贷、没有车贷、没有任何贷款
- 养着小布丁,满足了
6.5 计划
2025年,全面拥抱AI,用一句话说:所有行业都值得被AI重构
想要更多技术分享和摸鱼乐趣?
- 加入微信摸鱼群:一起交流学习,共享资源,偶尔摸鱼,趣味多多!
- 关注公众号 [前端技术圈儿] :获取最新的前端技术干货、学习笔记和实用工具推荐!
- 加我wx:V798595965
快来和我一起探索前端世界吧! 🚀
最后再放一波儿子
来源:juejin.cn/post/7456898384331522099
进电子厂了,感触颇多...
作者:三哥
个人网站:j3code.cn
本文已收录到语雀:http://www.yuque.com/j3code/me-p…
是的,真进电子厂了,但主人公不是我。
虽然我不是主人公,但是我经历的过程是和主人公一样的,真实而又无奈。真实是真真切切的经历了这一段过程,而无奈则是我进厂这段旅程所体会出来的。
如果你对我的这段经历感兴趣,可以耐心的往下看。
故事
这里我先定义一个主人公 A,然后他来我这边找工作,那么我作为在广州待了有些年头的靓仔(一坤年多点),肯定要出时间给他张罗张罗,所以就有了这一段难忘的经历(现在回想起来,我是不想再经历第二次了)。
在广州没有学历,能选择的工作其实并不多,无非就是进厂或者打零工当学徒。但奈何我也没有什么找工作的门道,所以只能帮着从某直聘软件上刷工作岗位了。只要是不要求经验,学历的统统都是我备选岗位中的一个。在这里就不得不说在某直聘软件上,刷这种普工、配/拣/打包等岗位一刷一大堆,而且还自动找上门来,不像我现在干的程序员行业,要么进人才库要么人才库都不配进,只能石沉大海。
在结合 A 自身的情况和交通出行方便的情况下,我们决定接受进厂工作。因为他们发的待遇信息确实很吸引人,如:小时工 30/小时,多劳多的;正式工底薪加提成综合薪资7-8k;还包吃包住。你看,这怎么能不吸引人,怎么能不吸引一个以前只能拿 2-3k 工资不包吃不包住的主人公 A 呢!当然,我当时也觉得非常可以,以至于不假思索的和主人公 A 达成了统一战线。
那么,这次的难忘之旅就由此展开了。
先是早上按照他们微信上聊的,带好行李,身-份-证去一个交通非常方便的地铁口面试。那么我在想去面个试带行李干啥,我放在住的地方也挺好的,等面试通过了,安排住宿的地方了,我在将行李搬过去,这不简单轻松嘛。所以我和主人公 A ,就一致决定没有带行李过去,直接人 + 身-份-证过去面试,然而奇怪的点就来了。当我们到达面试的地方时,见到好多外来务工的人,这一幕让我有点触动。都是大包小包,蛇皮袋+黑行李箱,然而我两却空空如也。这时候我还没意识到问题的严重性,就直接过去问怎么面试,而那个穿蓝色工作服的人只是抬头撇了我一眼,看我们没有行李,直接抬手挥了挥,说没行李的不收。我说,为什么,他也不搭理我,直接说别妨碍后面的人面试(其实后面也没人),不收就是不收。
在这里我已经忍不了了,先说一下此刻我的内心:diss 他上下 18 代无数遍了,后面细讲,咱们先看故事。
其实我当时是想直接怼他,但为了照顾主人公 A 的情况,我忍了,重新回家去拿了一次行李,然后再次去面试的地方找工作了,但这次不是上一个地点,而是我另一个备选面试(也是需要行李,还是行李)。
两个人拖着个行李,酿酿跄跄的来到了下一个面试点,还是和上一个面试点一样的流程,但这次不同的是我带了行李,ok,他接收了,说等会安排面试。其实我以为这就完了,但是并没有,这才是开始的第一步。
等了一会之后,这个面试点就陆陆续续的来了二三十个人,也还是和我上次看到的人群一样,大包小包,蛇皮袋+黑色行李箱。此时我内心就不仅感慨,为了个工作也是不容易。等了差不多十几分钟就有个嗓门大的人喊,要面试的人跟我来,带上行李,没行李的不要来。就这样,我和主人公 A 被带到了一个不是很大的大厅,里面差不多容纳了几百人,此时我又被触动了(是的,以我目前的认知,我这段经历会被触动很多次),感觉进了传销一样。
从进入那个大厅以后,我就觉得非常无力,这种无力感你只有亲自体会了才知道。全是人,但就是没有工作人员,只知道等着叫号,其余时间找个地方坐着。当时就想,走也不是来都来了,留也不是和印象中的面试太不一样了。所以就在这种内心纠结中,徘徊了几个小时,是的你没看错,就是几个小时(起码两小时)。
这期间其实还有套路,我怕文章会写的很长,就忽略了,如果你们想听,以后多关注我 B 站直播,我会时不时的讲出来。
中午的时候,终于有个人扯着嗓门喊话,让我们安静下来,听他介绍后续的招聘流程。他的话不是很精炼,但是足够洗脑,因为他会在合适的时机给这些找工作的人透露,在该公司上班工资比的过广州大多数CBD上班的白领。只要这话时不时的出现,人群就会时不时的骚动几下,其实我能明白这些务工人拼搏一年不就是为了多赚点吗?听到高薪,眼睛发光是在正常不过了。但是,我就是看不惯这些中介公司层层剥利,压榨忽悠这些信息闭塞的外来务工人员(我这是事后才知道,不是工厂直招,而是中介)。
反正一番讲话之后,我们被分成了两批人,一批工资高点,但是上班地点异常的偏僻,另一批就是工资地点,但好在是市里,交通方便。
但我个人觉得,工作高低也是骗人的,说的高工资,去的人就多,他们抽的利也就多。
而我选择工资低的这类工作也就是看中他交通方便,能时常照顾一下,帮点忙啥的。
但,你以为这就完了嘛,并没有。之后的这些时间,我被他们用大巴车从集合点、拉到电子厂、再由电子厂拉到体检中心、最后拉到安排宿舍大楼。每一个地点的具体事宜如下:
- 集合点:忽悠办电话卡,打印身-份-证,蓝底照片制作,几百号人分成高薪资与低薪资两批人(但都声称比 CBD 白领薪资高)。
- 电子厂:面试,很奇葩的面试,就是看你的面相 + 基本信息,全称一句话都不用说。
- 体检中心:这个就是单纯体检,不过体检地点非常远,非常远,一看就是和这种中介公司有绑定关系,还是抽利。
- 宿舍大楼:安排宿舍,如蜂窝煤一样的格子间,超密集。
这期间,我们还没工作,杂七杂八的费用就被他们收去了 200 块(我们没有办卡,如果办卡了估计更多)。而且以上的时间线,每一个点都是非常熬人的,我一个正常男子都觉得非常累非常累,真不知道那些年纪小的、年纪大的、女生是如何坚持下来的。
熬人是因为,我们是一批人一批人的过,要等到这一批人的流程走完了才能走下一个流程,而且有些流程只有特定的时间点才开始,来早了,你就给我等着,到点才开始。
最后,当你分配到一张上下铺的床位后,你的这一趟流程就算是彻底走完了,时间也应该是来到了晚上六七点,所以就为了一个进厂工作的机会,从早上九点折腾到晚上六七点,真 TM 累。
以上就是我今天一天所经历的事情,现在想想,如果是你,你会为了进厂而这样折腾吗?
有感
不经历一遍,永远是不能感同身受。
上面的故事你们看了,也就是看了,可能内心都不会有一点波澜,但这个没关系,如果条件允许我希望看到这篇文章的人,永远都不要有这种经历。
首先,我来对这种中介第三方公司招人的方面,来说说我的看法:
你们要先分别什么是工厂直招还是第三方中介招聘,如果是从某直聘上看到的岗位应该是会写“派遣”或者“代招”。当然,也有不写的,那么这就需要后续的判断了“没有行李不接待”。是的,就是这个,我现在才反应过来,如果你去面试,不带行李,他们接待你,然后给你安排这一系列的流程,你中途觉得不靠谱,你是可以随时走人的,一点都不麻烦。但是如果你是大包小包 + 黑色行李箱的话,那么你就不可能那么方便的随时想走就走了,这个行李就是第三方中介拷住你的加锁。
你们也不要相信从某直聘上加的所谓人事的话,他们只有一句话是真的,那就是引你到面试的地点是真的,其余的都是假话,其余的都是假话。如果你们以后不幸碰到我上面的故事情节,千万不要对这种人抱有任何的感激,觉得他们真好,为了给我一个工作机会,解答我的各种问题。醒醒吧!你的真诚/感激之情真有可能是喂了狗(狗子对不起,不应该拿你做对比),你带着真诚的心态去问你所不了解的各种问题,他们只会用高薪,轻松等话术迷惑你。因为他们招到一个人,拿一个人的提成,你们只是他们的赚钱工具,才不会管你这个工作是否真高薪,真轻松,如果是为啥他们自己不上。
这种第三方公司做事效率是非常快,一天办理几百人的入职流程,为了就是让你们入职,他们有提成。如果等到第二天你们反应过来,后悔了,那么他们就没钱可赚了。效率快是好,但是整套流程下来,你们有没有发现,连午饭时间都不给人了(就怕你们溜走)。是的,我当时就是没吃午饭,硬撑着走完了一天。而且在后续我与同行的打工人交谈过程中了解到,有些人早饭都没吃,也就是一点都行没吃,来来回回折腾一整天,直到晚上才有时间去吃饭,而这个时候就不怕你走了,因为你的入职流程已经办完了,该交的钱也交了。
以上套路只是我经历过得一种,但肯定不止这一种,希望大家能提前辨别!
接着,我来说说这一天,我与同行人交谈过程中了解到的各种人生经历:
虽然我是程序员,但绝不是那种沉闷不爱社交的性格,相反我还是挺爱和人交谈的,爱听别人的故事也爱和别人分享我的故事。
我碰到的第一种人就是未满 18 岁的小孩,故事开始的时候我提过,前期我是被人带到一个大厅集合的,之后,未满 18 岁的小孩就被所谓的工作人员给筛选出来了。其实说是筛选出来,肯定也不是让他们走,只是安排他们去那种更偏僻、工资更低一点的、对年龄要求不严格的小厂工作。反正,只要有人头进入工厂,他们这种中介就有钱赚,只是从你身上赚多赚少而已。
看着这几个未满 18 岁就出来打工的小孩,内心多少都是有点不是滋味。毕竟这个时候他们应该是呆在校园,且正处于高中,正是读书改变命运的关键时刻。但,我想这种再次读书的机会,应该是不会在这几个小孩身上出现了。因为我没有机会和这几个小孩说话,所以不知道他们是什么原因走出校园,走出家庭,而选择步入社会。但是,希望他们几个往后能一帆风顺,改天换命。
第二种人,我也没有机会和他说话,我关注到他是因为一段对话:
招人的负责人说:看你年龄比较偏大,都 45 了?
务工大哥:是,确实大了点。
招人的负责人说:像你这种情况,年龄比较大,我可以招你进去,但是工厂要不要,就不能保证了,这个你要明白。
务工大哥:行,就过去试试吧!
招人的负责人说:好,等会跟着一起过去。
其实从这段对话中我们也能很快想到,工厂肯定是不想要那种年龄偏大的员工了,毕竟工作强度还是有的,万一出现什么身体情况,咋搞。而务工大哥,肯定也是不想失去这种工作机会嘛,毕竟对于他而言,能有高工资就行,其他的应该都是次要的。
看着这务工大哥珍惜工作机会的态度,我瞬间就醍醐灌顶。内心不禁在想,是什么样的生活压力或者其他原因,才能让这务工大哥情愿跟着一群小年轻这样奔波找工作。
因为没有机会和这位务工大哥搭上话,所以我也就内心想想罢了。
第三种人,我终于是和他们搭上话了,他们都很年轻。在和他们简单的交流过后,我了解到的情况大致如下:
年龄基本都是18、19岁左右,并且学历都不高,有初中、高中、中专等学历的。还有些是中途辍学,并没有完整的读完学历就出来工作的,而且我问他们不读书的原因,他们的回答基本都是自己不想读了,想出来找工作,有钱花。所以现在读书,倒不是家里穷读不起,而是很大一部分人,受不了社会上的一下诱惑,想要快点赚钱,好有能力买各种喜欢的东西,包括打游戏买装备(因为和他们聊天中,都是游戏不离手的状态)。
像他们这种,吃不了学习上的苦,就只能吃生活上的苦。以后或许他们还有选择的机会,毕竟还年轻,但是,我想他们应该在未来很长一段时间,都是游离在各种电子厂。因为感觉他们还是玩心重,而电子厂这种工作,多白了就是工作轻松,多劳多得,还包吃包住。等到某一时刻他们过腻了这种日子,应该能重新审视一下自己,未来的路,希望他们能早点醒悟。
第四种人,你可以理解他们是第三种人的升级版,就是他们一直没有醒悟,一直都是从事着电子厂这种工作。只是从厂 A,来到了他们认为工资,工作各方面还不错的厂 B 而已。你可以在他们身上看到全国各地奔波的痕迹:蛇皮袋、黑行李箱、竹席被褥、胡子拉碴、头发凌乱、烟味很重。我提到的这些,只是单纯的用文字写出来,而没有任何的其他意思。在和他们交谈的过程中,能很明显的看出一种无奈的心情出来,他们无非就是想要一个稳定,有点收入的工作。但是工厂就是这样,忙的时候招人,不忙的时候拼命的赶人。他们也不想走的,但工厂不忙,肯定是不发工资的,你这样呆在工厂没有任何的意义,所以只能又拿起行囊四处奔波。
所以,生活就是充满着未知的变化,我们能做的就是不断的提升自己,来面对这种变化。希望能看到这里的人,都不被生活所压迫,加油吧!
还有最后一种人,也是我最想不到的一种人。他们在没有进厂之前,手底下有十多号人,一个月光租金就可以花出去五六万。是的,我们暂且可以把他们定为老板被迫进厂的一类人。
说他们是老板,一点都没错。因为他们在没有进厂之前,确实是自己开店做老板的,只是因为 21 年疫情的时候,大家都闭门不出,实体经济很难再维持这种高房租的压力,所以才被迫关店,倒闭。我那时问他们,为什么不多坚持坚持,你看现在不就春暖花开了吗?他们只是面带苦涩的说,多坚持一个月,就是五六万的流水出去,而且那会不知道什么时候是个头。并且他们不是没坚持,而是已经没有钱再可以坚持下去了,所以只能现倒闭,让自己缓一缓,释放一下压力。
我也确实从他们身上感受到了他们所说的压力,只出不进,五六万的流水,这谁能受得了。并且疫情过去的时候,也想过重新再来,但是已经没有钱可以再来了,那会欠的钱还没还清,已经没有资金重头再来了。
这一天的交谈中,我见过两个这种人,以前都是老板,也都是因为疫情原因,赔钱了,只能进厂缓一缓,让自己好受一点。但是他们毕竟是见过一些世面的人,你可以很明显的感受到他们和前面这几种人不一样,如装扮、说话和回答问题方式,并且他们也都很乐观,还说,等我在工厂缓过来之后,还是会继续再拼搏一番。你看看,这不就非常好嘛!在人生的这条道路上,如果你跌倒,说明你选择的是一条坎坷的路,只要你能站起来,继续走下去,我相信你的收获绝对能对得起你这一路的坎坷。
好了,洋洋洒洒五千多字,算是我对那天经历的一个交代。如果你看到这里,内心也有一些感触,说明你是一个感性的人,欢迎你在评论区留下你的足迹。
题外话:主人公 A 最后还是没去成!🤣🤣🤣
来源:juejin.cn/post/7343132138655858724
如果我贷款买一套 400W 的房子,我要给银行多送几辆迈巴赫?
买房攻略
2023 年至今,上海房价一跌再跌。俺已经蠢蠢欲动了,磨刀霍霍向"买房"。但是奈何手里钞票不够,只能向天再借 500 年打工赚钱。但是作为倔强的互联网打工人,想知道自己会被银行割多少韭菜。于是就写了个程序,用于计算我贷款买房需要多给银行还多少钱。这样我就能知道银行割我的韭菜,能省下几辆迈巴赫的钱了。
贷款利率
- 公积金的贷款利率。
- 首房:贷款时间 <=5 年,利率为 2.6% ;贷款时间 >= 5 年,利率为 3.1% 。
- 非首房:贷款时间 <=5 年,利率为 3.025% ;贷款时间 >= 5 年,利率为 3.575% 。
- 商业险贷款利率
- 贷款时间 <=5 年,利率为 3.45% ;贷款时间 >= 5 年,利率为 3.95% 。
代码实现
- 以下代码,实现了:我贷款买房需要多给银行还多少钱。
public class LoanAmountCalculation {
//首套住房5年以内公积金贷款利率
private static final double FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS = 2.6;
//首套住房5年以上公积金款利率
private static final double FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS = 3.1;
//二房5年以内公积金贷款利率
private static final double NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS = 3.025;
//二房5年以上公积金款利率
private static final double NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS = 3.575;
//5年以内商业贷款利率
private static final double COMMERCIAL_LOAN_RATE_WITHIN_FIVE_YEARS = 3.45;
//5年以上商业贷款利率
private static final double COMMERCIAL_LOAN_RATE_MORE_FIVE_YEARS = 3.95;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double houseAmount = getInputValue(scanner, "请输入预计买房金额(单位:W):", "请输出正确的买房金额(>0)!");
double principal = getInputValue(scanner, "请输入您的本金(单位:W):", "请输出正确的买房金额(>0)!");
if (principal >= houseAmount) {
System.out.println("全款买房,崇拜大佬!");
return;
}
double accumulationFundLoanAmount = getInputValue(scanner, "请输入公积金贷款金额(单位:W):", "请输出正确的公积金贷款金额(>0)!");
double commercialLoanAmount = houseAmount - principal - accumulationFundLoanAmount;
if(commercialLoanAmount <= 0){
System.out.println("您的本金+公积金贷款已经够买房啦,恭喜大佬!");
return;
}else{
System.out.println("您的本金+公积金贷款还不够买房哦,需要商业贷款金额为(单位:W):" + commercialLoanAmount + "\n");
}
int accumulationFundLoanYears = getInputIntValue(scanner, "请输入公积金贷款年份(单位:年):");
int commercialLoanAmountYears = getInputIntValue(scanner, "请输入商业贷款年份(单位:年):");
int isFirstHouse = getInputIntValue(scanner, "请输入是否首房(0:否,1:是):");
LoanAmount loanAmount = calculateLoanAmount(
accumulationFundLoanAmount, accumulationFundLoanYears,
commercialLoanAmount, commercialLoanAmountYears, isFirstHouse);
System.out.println("详细贷款信息如下:" + "\n" + loanAmount);
}
/**
* 获取double类型的输入
* @param scanner:Java输入类
* @param prompt:提示信息
* @param errorMessage:输入错误的提示信息
* @return 一个double类型的输入
*/
private static double getInputValue(Scanner scanner, String prompt, String errorMessage) {
double value;
while (true) {
System.out.println(prompt);
if (scanner.hasNextDouble()) {
value = scanner.nextDouble();
if (value > 0) {
break;
} else {
System.out.println(errorMessage);
}
} else {
scanner.next();
System.out.println(errorMessage);
}
}
return value;
}
/**
* 获取int类型的输入
* @param scanner:Java输入类
* @param prompt:提示信息
* @return 一个int类型的输入
*/
private static int getInputIntValue(Scanner scanner, String prompt) {
int value;
while (true) {
System.out.println(prompt);
if (scanner.hasNextInt()) {
value = scanner.nextInt();
if (value > 0) {
break;
} else {
System.out.println("请输入正确的年份(>0)!");
}
} else {
scanner.next();
System.out.println("请输入正确的年份(>0)!");
}
}
return value;
}
/**
* 功能:贷款金额计算
* 入参:
* 1.accumulationFundLoanAmount:公积金贷款金额 2.accumulationFundLoanYears:公积金贷款年份;
* 3.commercialLoanAmount:商业贷款金额; 4.commercialLoanAmountYears:商业贷款年份
* 5.isFirstHouse:是否首房
*/
private static LoanAmount calculateLoanAmount(double accumulationFundLoanAmount, int accumulationFundLoanYears,
double commercialLoanAmount, int commercialLoanAmountYears, int isFirstHouse){
LoanAmount loanAmount = new LoanAmount();
//公积金贷款还款金额
double accumulationFundRepaymentAmount;
if(isFirstHouse == 1){
accumulationFundRepaymentAmount = accumulationFundLoanYears <= 5 ?
accumulationFundLoanAmount * Math.pow((100 + FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, accumulationFundLoanYears)
: accumulationFundLoanAmount * Math.pow((100 + FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS) / 100, accumulationFundLoanYears);
}else{
accumulationFundRepaymentAmount = accumulationFundLoanYears <= 5 ?
accumulationFundLoanAmount * Math.pow((100 + NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, accumulationFundLoanYears)
: accumulationFundLoanAmount * Math.pow((100 + NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS) / 100, accumulationFundLoanYears);
}
loanAmount.setAccumulationFundRepaymentAmount(String.format("%.2f", accumulationFundRepaymentAmount));
//公积金贷款每年还款金额
loanAmount.setAccumulationFundAnnualRepaymentAmount(String.format("%.2f", accumulationFundRepaymentAmount / accumulationFundLoanYears));
//商业贷款还款金额
double commercialRepaymentAmount = commercialLoanAmountYears <= 5 ?
commercialLoanAmount * Math.pow((100 + COMMERCIAL_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, commercialLoanAmountYears)
: commercialLoanAmount * Math.pow((100 + COMMERCIAL_LOAN_RATE_MORE_FIVE_YEARS) / 100, commercialLoanAmountYears);
loanAmount.setCommercialRepaymentAmount(String.format("%.2f", commercialRepaymentAmount));
//商业贷款每年还款金额
loanAmount.setCommercialAnnualRepaymentAmount(String.format("%.2f", commercialRepaymentAmount / commercialLoanAmountYears));
//公积金贷款超出金额
loanAmount.setAccumulationFundLoanExceedAmount(String.format("%.2f", accumulationFundRepaymentAmount - accumulationFundLoanAmount));
//商业贷款超出金额
loanAmount.setCommercialLoanExceedAmount(String.format("%.2f", commercialRepaymentAmount - commercialLoanAmount));
loanAmount.setTotalExceedLoanAmount(String.format("%.2f", accumulationFundRepaymentAmount - accumulationFundLoanAmount + commercialRepaymentAmount - commercialLoanAmount));
return loanAmount;
}
@Data
static class LoanAmount{
/**
* 公积金贷款还款金额
*/
private String accumulationFundRepaymentAmount;
/**
* 公积金贷款每年还款金额
*/
private String accumulationFundAnnualRepaymentAmount;
/**
* 商业贷款还款金额
*/
private String commercialRepaymentAmount;
/**
* 商业贷款每年还款金额
*/
private String commercialAnnualRepaymentAmount;
/**
* 公积金贷款超出金额 = 公积金贷款还款金额 - 公积金贷款金额
*/
private String accumulationFundLoanExceedAmount;
/**
* 商业贷款超出金额 = 商业贷款还款金额 - 商业贷款金额
*/
private String commercialLoanExceedAmount;
/**
* 总共贷款超出金额
*/
private String totalExceedLoanAmount;
@Override
public String toString() {
return "1.公积金贷款还款金额=" + accumulationFundRepaymentAmount + "万元\n" +
"2.商业贷款还款金额=" + commercialRepaymentAmount + "万元\n" +
"3.公积金贷款每年还款金额=" + accumulationFundAnnualRepaymentAmount + "万元\n" +
"4.商业贷款每年还款金额=" + commercialAnnualRepaymentAmount + "万元\n" +
"5.公积金贷款超出金额=" + accumulationFundLoanExceedAmount + "万元\n" +
"6.商业贷款超出金额=" + commercialLoanExceedAmount + "万元\n" +
"7.总共贷款超出金额=" + totalExceedLoanAmount + "万元\n";
}
}
}
代码输入,输出示例
由上图可知,我要贷款买一套 400w 的房子,本金只有 120w,使用组合贷:公积金贷款 120w(10年),商业贷款 160w(20年)。最终我需要多还银行 230.07w,相当于买两辆迈巴赫的钱了,巨亏!
以上就是全部内容了,如果涉及到真实场景,还是需要根据具体的情况计算的!
来源:juejin.cn/post/7346385551366684722
从支付宝P0事故处理方案,合理推测损失金额
支付宝
支付宝昨天(2024-01-16)的无差别"送钱"的事儿,大家都知道了吧。
具体的,就是在昨天 14:40~14:45 期间,所有支付宝的支付订单都被减免了 20%,减免原因在界面上显示为"政府补贴"。
这里指的订单,是指所有通过支付宝产生的交易,包括「购物、信用卡、生活缴费、个人转账」等等,而且和此前(消费类的)有减免上限的政府补贴不同,本次减免无上限,统统 20%。
好家伙,个人转账 5W 减免 1W,那些刚好在那段时间有大额支付的幸运儿,你能想象他们多开心吗 🤣🤣🤣🤣
如此重大的 P0 事故(互联网公司对线上事故的评级,代表事故最高等级),虽然只有短短的 5 分钟,但如果被反应快又别有用心的不法分子利用上(同一笔钱,两个账号来回转),那就可不是一点羊毛的事儿,可能几十上万上百万,整条羊村都被薅走了。
正当所有人都觉得支付宝一定会或多或少有"追回"行动时,凌晨一则来自「支付宝官方微博」的公告说明来了:
简单总结的话:错误在支付宝一方,给出的优惠不会再追回。
好家伙,这属于是给这小部分的幸运儿发"过年费"了 🍋🍋🍋
虽然犯的是如此低级的错误,不像大公司所为,但处理方案又是实打实的"有格局"。搞得我都不好意思笑支付宝"草台班子、降本增笑"了 🤣🤣🤣
从本次的处理方案来看,我们可以做一些合理的猜测:
从这个发布声明的时间点来看,不难猜测,对于这次事故,支付宝经过了「修正模板 -> 统计事故损失金额 -> 事件逐级上报到高层 -> 高层决议最后处理方案 -> 将处理方案下发对应部门 -> 公关拟对外声明 -> 走声明审批流程 -> 正式发出」等多步环节,导致了声明发出的时间已经接近凌晨一点。
由于声明中涉及「提醒大家不要点击诈骗短信/链接」,因此必然不存在支付宝故意推迟声明时间的可能性,他们从事故到发声明,确实就是花了 10+ 小时。
另外,关于支付宝损失金额的猜测。
如果简单结合数据来看,这个数字会很大。
根据易观分析报告的公开数据,支付宝 2024 年第一季度的交易量为 118.19 万亿元,即每个月 39.4 万亿,折合每天约 1.31 万亿,每小时约 0.0546 万亿,每分钟约 9.1 亿。
事故维持 5 分钟,减免力度为 20%,就当全部订单都是不符合"政府补贴"要求的支付订单,那么损失金额约 亿。
但实际情况并不会如此直接了当,支付订单的流量也不可能是均摊每天,甚至是每分钟。
从日期来说,1-16 是一个没有节日加成的普通周四;从时间点来说,14:40~14:45 虽然属于"白天"范畴,但也不是什么支付高峰期。
我问了在支付宝工作的朋友,他跟我分享道:一整周里的交易,会有接近一半的交易流水,会在周末假期产生;而如果是周内的工作日的话,会有 8 成的流水会在上班时间(09:00~18:00)以外的时间段产生。
基于此,虽然没有具体数字,同时事故维持时间段(5 分钟),不考虑传播效应导致的交易激增。可以合理推算 2025-01-16 14:40~14:45 产生的交易最多不会超过 20 亿,即亏损最多不会超过 4 亿。相比于简单线性均摊的 9.1 亿,还是要小不少的。
支付宝(蚂蚁金服)是一家全年净利润 238.2 亿的公司,4 个亿的事故,还是支付得起的,只不过导致事故发生的员工和部门,估计要面临大处罚了。
对此,你怎么看?昨天有薅到支付宝的羊毛吗?欢迎评论区交流。
...
回归主题。
来一道和「阿里(校招)」相关的算法题。
题目描述
平台:LeetCode
题号:406
假设有打乱顺序的一群人站成一个队列,数组 people
表示队列中一些人的属性(不一定按顺序)。每个 表示第 个人的身高为 ,前面 正好 有 个身高大于或等于 的人。
请你重新构造并返回输入数组 people
所表示的队列。返回的队列应该格式化为数组 queue
,其中 是队列中第 个人的属性( 是排在队列前面的人)。
示例 1:
输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]
解释:
编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。
编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。
编号为 2 的人身高为 5 ,有 2 个身高更高或者相同的人排在他前面,即编号为 0 和 1 的人。
编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。
编号为 4 的人身高为 4 ,有 4 个身高更高或者相同的人排在他前面,即编号为 0、1、2、3 的人。
编号为 5 的人身高为 7 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。
因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。
示例 2:
输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]
输出:[[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]
提示:
- 题目数据确保队列可以被重建
构造 + 二分 + 树状数组
这是一道非常综合的题目。
首先根据双关键字排序:当「高度(第一维)」不同,根据高度排升序,对于高度相同的情况,则根据「编号(第二维)」排降序。
采取这样的排序规则的好处在于:在从前往后处理某个 时,我们可以直接将其放置在「当前空位序列(从左往后统计的,不算已被放置的位置)」中的 位(预留了前面的 个位置给后面的数)。
关于「空位序列」如图所示(黄色代表已被占用,白色代表尚未占用):
具体的,我们按照构造的合理性来解释双关键字排序的合理性,假设当前处理的是 :
根据「高度」排升序,根据「编号」排降序:由于首先是根据「高度」排升序,因此当 被放置在「当前空位序列」的第 之后,无论后面的 如何放置,都不会影响 的合法性:后面的数的高度都不低于 ,无论放在 前面还是后面都不会影响 的合法性。
同时对于高度(第一维)相同,编号(第二维)不同的情况,我们进行了「降序」处理,因此「每次将 放置在空白序列的 位置的」的逻辑能够沿用:
对于「高度」相同「编号」不同的情况,会被按照「从右到左」依次放置,导致了每个 被放置时,都不会受到「高度」相同的其他 所影响。换句话说,当 放置时,其左边必然不存在其他高度为 的成员。
剩下的在于,如何快速找到「空白序列中的第 个位置」,这可以通过「二分 + 树状数组」来做:
对于已被使用的位置标记为 ,未使用的位置为 ,那么第一个满足「 的个数大于等于 」的位置即是目标位置,在长度明确的情况下,求 的个数和求 的个数等同,对于位置 而言(下标从 开始,总个数为 ),如果在 范围内有 个 ,等价于有 个 。
求解 范围内 的个数等价于求前缀和,即「区间查询」,同时我们每次使用一个新的位置后 ,需要对其进行标记,涉及「单点修改」,因此使用「树状数组」进行求解。
Java 代码:
class Solution {
int n;
int[] tr;
int lowbit(int x) {
return x & -x;
}
void add(int x, int v) {
for (int i = x; i <= n; i += lowbit(i)) tr[i] += v;
}
int query(int x) {
int ans = 0;
for (int i = x; i > 0; i -= lowbit(i)) ans += tr[i];
return ans;
}
public int[][] reconstructQueue(int[][] ps) {
Arrays.sort(ps, (a, b)->{
return a[0] != b[0] ? a[0] - b[0] : b[1] - a[1];
});
n = ps.length;
tr = new int[n + 1];
int[][] ans = new int[n][2];
for (int[] p : ps) {
int h = p[0], k = p[1];
int l = 1, r = n;
while (l < r) {
int mid = l + r >> 1;
if (mid - query(mid) >= k + 1) r = mid;
else l = mid + 1;
}
ans[r - 1] = p;
add(r, 1);
}
return ans;
}
}
C++ 代码:
class Solution {
public:
int n;
vector<int> tr;
int lowbit(int x) {
return x & -x;
}
void add(int x, int v) {
for (int i = x; i <= n; i += lowbit(i)) tr[i] += v;
}
int query(int x) {
int ans = 0;
for (int i = x; i > 0; i -= lowbit(i)) ans += tr[i];
return ans;
}
vector<vector<int>> reconstructQueue(vector<vector<int>>& ps) {
sort(ps.begin(), ps.end(), [](const vector<int>& a, const vector<int>& b) {
return a[0] != b[0] ? a[0] < b[0] : b[1] < a[1];
});
n = ps.size();
tr.resize(n + 1, 0);
vector<vector<int>> ans(n, vector<int>(2));
for (auto& p : ps) {
int h = p[0], k = p[1];
int l = 1, r = n;
while (l < r) {
int mid = l + r >> 1;
if (mid - query(mid) >= k + 1) r = mid;
else l = mid + 1;
}
ans[r - 1] = p;
add(r, 1);
}
return ans;
}
};
Python 代码:
class Solution:
def __init__(self):
self.n = 0
self.tr = []
def lowbit(self, x):
return x & -x
def add(self, x, v):
while x <= self.n:
self.tr[x] += v
x += self.lowbit(x)
def query(self, x):
ans = 0
while x > 0:
ans += self.tr[x]
x -= self.lowbit(x)
return ans
def reconstructQueue(self, ps: List[List[int]]) -> List[List[int]]:
ps.sort(key=lambda x: (x[0], -x[1]))
self.n = len(ps)
self.tr = [0] * (self.n + 1)
ans = [[0, 0] for _ in range(self.n)]
for p in ps:
h, k = p
l, r = 1, self.n
while l < r:
mid = l + r >> 1
if mid - self.query(mid) >= k + 1:
r = mid
else:
l = mid + 1
ans[r - 1] = p
self.add(r, 1)
return ans
TypeScript 代码:
let n: number;
let tr: number[];
function lowbit(x: number): number {
return x & -x;
}
function add(x: number, v: number): void {
for (let i = x; i <= n; i += lowbit(i)) tr[i] += v;
}
function query(x: number): number {
let ans = 0;
for (let i = x; i > 0; i -= lowbit(i)) ans += tr[i];
return ans;
}
function reconstructQueue(ps: number[][]): number[][] {
ps.sort(((a, b) => {
return a[0] != b[0] ? a[0] - b[0] : b[1] - a[1];
}));
n = ps.length;
tr = new Array(n + 1).fill(0);
const ans = new Array(n).fill([0, 0]);
for (const p of ps) {
const [h, k] = p;
let l = 1, r = n;
while (l < r) {
const mid = l + r >> 1;
if (mid - query(mid) >= k + 1) r = mid;
else l = mid + 1;
}
ans[r - 1] = p;
add(r, 1);
}
return ans;
};
- 时间复杂度:排序的复杂度为 ;共要处理 个 ,每次处理需要二分,复杂度为 ;每次二分和找到答案后需要操作树状数组,复杂度为 。整体复杂度为
- 空间复杂度:
来源:juejin.cn/post/7460696845434961920
程序员加班很晚应该怎么锻炼身体?
文章首发到公众号:月伴飞鱼,每天分享程序员职场经验!
大家好呀,我是飞鱼。
作为程序员,肯定都深受加班的痛苦。
❝
那每天加班很晚的情况下,该通过怎样的锻炼来保持身体健康呢?
我觉得还是得先把觉睡够,然后才是锻炼。
❝
睡眠不足情况下高强度锻炼,容易猝死。
如果睡觉的时间都不够,建议辞,换个不太卷的地方。
把特别卷的岗位,留给那些更年轻的,特别需要钱买房结婚的,拼几年,把生存问题解决掉之后,就不要再用命赚钱了。
人生几十年,钱是赚不完的,基本生活需求之外,多赚到的钱,对生活质量提升作用有限。
睡眠的优先级,不但高于锻炼,甚至高于洗脸洗澡。
❝
而且睡前三小时不要吃太多东西。
对于经常晚上加班很晚的人来说,戒掉睡觉前玩手机的不良习惯,尽量减少晚上的一切活动,争分夺秒地保证睡眠。
健身,足够的营养和休息,都比身体锻炼本身更重要。
❝
所以如果长期生活不规律,饮食习惯不好,休息睡眠不能保证。
如果已经很累了,就不要考虑上高强度的训练了,夸张一点有可能做个俯卧撑都有可能把人送进医院。
有位网友总结得好:
❝
去健身,你会得到强壮的身体,过度劳累,你会得到猝死的尸体,过度劳累还去健身,你会得到强壮的尸体。
所以:下班晚,好好休息就是你最好的健身!
程序员在工作空闲之余也可以通过以下方式来锻炼身体:
❝
通过走路或骑自行车的方式出门活动,可以锻炼身体的同时享受户外的新鲜空气。
在家里可以做一些简单的,如俯卧撑、仰卧起坐等,这些操作都可以锻炼身体的同时不需要太多的器材。
有啥其他看法,欢迎在评论区留言讨论。
❝
想看技术文章的,可以去我的个人网站:hardyfish.top/。
- 目前网站的内容足够应付基础面试(
P6
)了!
每日一题
题目描述
❝
给你一个二叉树的根节点
root
, 检查它是否轴对称。
解题思路
❝
递归实现
递归结束条件:
- 都为空指针则返回
true
- 只有一个为空则返回
false
递归过程:
- 判断两个指针当前节点值是否相等
- 判断 A 的右子树与 B 的左子树是否对称
- 判断 A 的左子树与 B 的右子树是否对称
代码实现
Java
代码:
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null) {
return true;
}
return dfs(root.left,root.right);
}
public boolean dfs(TreeNode p,TreeNode q){
if (p == null && q == null) {
return true;
} else if (p == null||q == null) {
return false; //只有一个为空
}
if(p.val != q.val) {
return false;
}
//第一棵子树的左子树和第二棵子树的右子树对称,且第一棵子树的右子树和第二棵子树的左子树对称
return dfs(p.left,q.right) && dfs(p.right,q.left);
}
}
Python
代码:
class Solution(object):
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if not root:
return True
def dfs(left,right):
# 递归的终止条件是两个节点都为空
# 或者两个节点中有一个为空
# 或者两个节点的值不相等
if not (left or right):
return True
if not (left and right):
return False
if left.val!=right.val:
return False
return dfs(left.left,right.right) and dfs(left.right,right.left)
# 用递归函数,比较左节点,右节点
return dfs(root.left,root.right)
Go
代码:
func isSymmetric(root *TreeNode) bool {
// 递归-对称二叉树
var dfs func(left, right *TreeNode) bool
dfs = func(left, right *TreeNode) bool {
if left == nil && right == nil {
return true
}
if left ==nil || right == nil || left.Val != right.Val {
return false
}
// 左右子节点都存在且val等,递归其子树
return dfs(left.Left, right.Right) && dfs(left.Right, right.Left)
}
return dfs(root.Left, root.Right)
}
复杂度分析
❝
假设树上一共
n
个节点。
时间复杂度:
- 这里遍历了这棵树,时间复杂度为
O(n)
。
空间复杂度:
- 这里的空间复杂度和递归使用的栈空间有关,这里递归层数不超过
n
,故空间复杂度为O(n)
。
来源:juejin.cn/post/7453489707109531702
30岁普通程序员的薪资应该是多少?
文章首发到公众号:月伴飞鱼,每天分享程序员职场经验+科普AI知识!
大家好呀,我是飞鱼。
古书有云:三十而立,30岁的话,到底达到年薪多少才算人均水平?
经常在脉脉上看到程序员动不动就是月入3万,年入百万,给人以为大多数程序员就是这么高的薪资水平。
❝
其实这些看看就好了,千万不要焦虑,不要觉得怎么别人都这么高工资而我这么低。
虽然网上的信息五花八门,但具体到个人情况还得结合实际情况来看。
- 不同公司的薪酬体系、个人表现以及谈判能力都会影响最终的薪资水平。
程序员的薪资差距巨大,低的几千块也有,高的四五万甚至更高的也有。
学历并非衡量薪资的标准,但高学历的薪资普遍会比低学历要高很多。
不同方向的薪资均有高有低,但普遍会比其他行业要高一些。
大厂员工薪资是真的高没错,周围还有很多其他大厂同事,肯定都不低于 30K 的,更不要说是年龄已经 30+,工作经验 10 年左右了。
❝
但是,大厂员工是少数,大部分人其实就是在小公司摸爬滚打。
他们的薪资基本在 25K 左右,我想这才是大多数普通程序员的薪资。
不过我觉得目前的大环境,失业总是来的猝不及防,还能有班上就已经很不错了,工资高低看运气了。
❝
而且国内99%以上的公司做的都是应用层的开发,根本不涉及底层框架。
- 而应用层的东西本身就不复杂工作3年足以胜任。
换句话说就是工作3年,技术就已经到了天花板。
这也是为什么近年来,很多软件公司裁员先会瞄准大龄程序员的原因。
- 因为他们的工资成本和技术能力完全不成比例,性价比太低。
既然技术天花板不高,工作3年就可以轻易达到。
都说大城市机会多,薪资高, 但互联网行业也很卷啊。
❝
大公司要求高,小公司薪资又不给力。
加班成常态,身体和精神都在极限拉扯。
而且,学历、项目经验、人脉资源,哪个都不能少。
但也有人一路披荆斩棘,成功拿到高薪。
有啥其他看法,欢迎在评论区留言讨论。
❝
想看技术文章的,可以去我的个人网站:hardyfish.top/
- 目前网站的内容足够应付基础面试(
P7
)了!
每日一题
题目描述
❝
给定两个数组
nums1
和nums2
,返回它们的交集。
输出结果中的每个元素一定是 唯一 的。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的
解题思路
❝
定义一个集合,将
nums1
中的元素依次添加入集合当中。
定义
result
数组,大小为两数组中长度的最小值。
定义
index
,遍历nums2
,如果set
中存在nums2
中的元素,将该元素添加到result
数组中。
代码实现
Java
代码:
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new HashSet<>();
for (int e : nums1) {
set.add(e);
}
int[] result = new int[Math.min(nums1.length, nums2.length)];
int index = 0;
for (int e : nums2) {
if (set.contains(e)) {
result[index++] = e;
set.remove(e);
}
}
return Arrays.copyOfRange(result, 0, index);
}}
资料分享
HBase不睡觉书 带目录(高清)
- 资料链接:url81.ctfile.com/f/57345181-…
- 访问密码:3899
HBase企业应用开发实战:
- 资料链接:url81.ctfile.com/f/57345181-…
- 访问密码:3899
HBase权威指南:
- 资料链接:url81.ctfile.com/f/57345181-…
- 访问密码:3899
来源:juejin.cn/post/7463016078375010323
作为一名程序员,你是如何看待外包的
大家好,我是凌览 。
同样是程序员靠手艺吃饭,为啥外包却是过街老鼠人人喊打,这里我精选了几位网友的回答让我们一起来看看。
第一位网友
其实我觉得,国家应当立法禁止外包驻场。应当规定只有在外包公司所在办公场所工作才能算外包,驻场外包一律必须与目标公司签订劳务合同。否则,驻场外包本质上相当于公司钻劳动法漏洞雇人。
你请外包公司开发软件,给需求给预算给时间给报酬,对方开发了给你验收,这叫外包。没毛病。
你给外包公司钱,人家直接把人派到你办公室,这叫什么玩意的外包?这不就是逃避责任,规避劳动法么?——你是个公司,又不是个人。
当然了,其实确实有些情况,需要不同公司去同一个办公地点合作做项目的,大家觉得说不清楚这与外包的区别。但其实区别还是很明显,区别在于,这些员工遵守谁家的工作制度。
我是A公司人,去客户B那里出差,帮客户B解决问题,这段时间虽然在客户B公司上班,但我不用打他们的卡,不用给他们汇报工作,不用交他们周报,我只对自己公司负责,这是出差,因为我还是A公司员工。
如果我在A公司签订合同然后去B公司工作,由他们(B公司)给分配任务,由他们考核计划完成情况,由他们收我周报,由他们定我KPI,我向他们汇报工作,这性质就完全变了。
这除了劳务关系以外,难道不是实质上B公司员工么?如果允许这样的形态存在,那不就等于是B公司的金蝉脱壳方式规避劳动法么?
所以我的看法是这样:外包可以,B公司写好需求人力时间,签合同,包项目,A公司直接交付最终成果,A公司的员工不受B公司管理,这是外包,这样的外包我觉得很合理。——A公司直接把人派出去给B公司,让B公司管理A公司的人,这不叫外包,这叫买卖人口,这叫A公司帮B公司规避劳动法,这是对外包的侮辱。
第二位网友
我其实一直本着给钱做事的风格,所以外包我并不歧视,直到有一天。
今年我面试了一个外包,行情不好,所以不怎么敢开薪资,比离职前低了一丢丢的样子,喊了12K
甲方面试,问的那一个细,从日常工作到项目数据流,到接口全问了一个遍,还好大差不多,聊了半个多小时。
面试结果是过的。
但是但是面试官和我介绍项目时候就说了,上半个月加班会少一点,可能到8点9点,下半个月可能会到1点2点,偶尔周六还要加班,是一个新项目。
我懂了。
我就问外包公司有加班费吗?他们说没有,只能调休,我算了一下按照面试官介绍,这加班一个月得加班120个小时打底,这没加班费,还只能调休,我直接裂开。
五险一金有,最低的
试用期全薪,这个除了小公司基本上是全的。
剩下啥福利没有,没餐补,没车补,啥也没有。
我直接就拒了。。
第三位网友
外包的活尽量别干,比如培训班入行,或换城市发展着急找工作,或者刚毕业想积累经验,这些情况下可能不得不找外包积累经验,但外包的活尽量别超过2年,干3年都嫌多,原因如下:
- 外包员工的工资会被“折上折”,甲方公司会根据自己同等条件员工的薪资打个折给外包公司,而外包公司会在此基础上再打个折,所以外包的薪资一般是甲方同类员工的6折甚至更低。
- 技术上得不到提升。甲方公司明着可能不说,但在分配重要活的时候,一定是一个正式员工带若干个外包员工,外包员工顶多就调用下api,打打下手,这样干2,3年,接触不到核心技术,而且在组里干久了业务都熟,可能还自我感觉良好。但此时如果出去找工作,真就很难找了。
- 出了问题,会让外包公司顶包。比如在一个项目中,只要外包员工参与的活出了大问题,一般甲方员工顶多就内部批评,外包员工一般就会被“退回原外包公司”。
- 工作环境不好,传说中的“不能吃甲方公司提供的零食”,这真不是空悬来风。
- 丧失信心。外包干久了,逆来顺受惯了,真会认为自己无法去挑战更高级的职位。
- 有一定的风险。比如甲方公司项目组砍预算,优先考虑的是,裁剪外包员工。
总之,甲方人员对外包员工可能真是客客气气的,但在各种工作中,总不免会想,我是甲方,他是外包,也就是说,甲方和外包之间的鸿沟是天然存在的。
来源:juejin.cn/post/7453817457912938505
阿里人的2024年终总结:迷茫而又清晰的一年
阿里人的2024年终总结:迷茫而又清晰的一年
一、引言
好久没有写过外部文章了,突然提笔写 2024
年终总结,还有点不太适应
如果让我给 2024
年做一个总结,那想必是:迷茫而又清晰的一年
还是一样的流程,让时间的车轮带我们走近 2024
的开头,回首我的 2024
年
二、技术
这一年一直在想一个问题,那就是技术到底是什么?
如果技术仅仅是阅读的源码,那么应届生、毕业一年、毕业三年的区别在哪呢?
毕竟,对于源码来说,和工作经验完全没有关系,硬读就可以
见过大一、大二、大三学生均开始阅读源码且进入大公司进行实习的,那我们这种已经有工作经验的相比他们来说,优势到底在哪里呢?
于是,这一年也没有对源码技术投入时间,现在年终回想下这几个问题,有了浅浅的答案
第一点:虽说阅读源码是一件费力不讨好且没有年限限制的事情,但真正能坚持下来持续阅读的人很少。大多数都是眼高手低,觉得人人可阅读,没有门槛,于是选择了鄙视源码,也包括博主自己。
第二点:阅读源码我认为是一个习惯问题,当你养成习惯以后,你做其他的事情也会有所反馈。 当前习惯的养成不止局限于阅读源码,阅读书籍、健身、运动等都可以,一定要养成自律习惯。
第三点:技术不止源码,更多的是整个人的对外体现,或者说你个人标签。 包括但不限:乐观、积极、好学、开朗、集体、协作、沟通、承担等,每一个标签都对应你在公司后续承担的一些事情,比如:你的协作/沟通能力较好,那你大概率会被安排项目经理的职责,但反过来说,协作/沟通能力做到什么地步才能说好,这是一个可研究性较强的问题。
虽然这一年并没有阅读源码,但这一年的技术比之前两年提升的要多
- 架构方面: 在线(Dubbo)、近线(Flink)、离线(ODPS)
- 技术方面: 模型推理、向量检索、词匹配、大模型
- 个人方面: 视野格局、事物认知、团队协作
但这些很多东西自己并没有深入研究或者说没有成为体系,从而导致目前知识都是零碎的
正好也立下2025年的第一个Flag:将所有的技术深入研究沉淀,达成一个体系,做团队或自媒体分享
三、工作
如果说阿里技术影响对于我的冲击力是10分的话,那工作的冲击力就是100分
当我还以上家公司决策引擎为自豪的时候,随之而来的就是同事:我10年前在网易就用这套方案了......
之前整个同盾公司核心工程做的事情,到了阿里这边,就交给一个组来进行实现
业务的复杂度是一方面,阿里更多的强调工作价值性,当你做任何工作的时候,都要想清楚该工作的价值,如果你做的是一个大规模的项目,要随时跟进项目进度。当老板需要了解该项目进度时,要有文档对项目进行支撑。
所以,工作更多的时候不是完成即可,完成只是一个基础,更多的是如何把一件事情做的更好。有可能60分就及格的情况下,大家都要做到90分以上。这种模式对个人能力提升较快,每个人不单是CRUD就完事的,需要有独立思考空间以及项目规划;而反观友商PDD,更多的时候员工只需要执行上层命令,做事情即可,如果这件事情失败了,那就抓紧换一件事情做,两种做法各有优缺点,适合不同的打工人
也通过这篇文章,沉淀下这一年的一些工作总结:
- 做事风格:
- 想到去做、马上去做、做到成功
- 预期做完给谁用,价值衡量的标准是什么,是否量化
- 做事情要深入,研究清楚,不能停留在系统能跑的层面
- 很多小事情,不要看热闹,平时要比别人多想一点、多做一点,自然就脱颖而出了
- 在做一件事情时,不要局限自己的一亩三分地,要让自己建立老板思维,不断要自己向老板思维靠拢
- 能力体现:
- 认知能力:基础技术、技术架构、风控业务、经济学、哲学
- 指标能力:大盘关键指标、维度下指标对比、细节指标表格展现
- 专业能力:专业、专注、务实、分清ROI/优先级、不当螺丝钉、广阔视野、全局视角
- 项目能力:不需要征求多人意见,要有掌控力,权威性,你想要的、你要求的,要明确提出
- 学习能力:人不是从经验中学习,而是从对经验的反思中学习,反思-日常action-刻意提升-换位思考
- 沟通能力:外部合作沟通,务必保持团队内部一致性,凡是换位思考,多从合作方的角度出发,期望什么样的合作体验,所谓自信的来源,是提前做了大量不为人知的准备
- 工作:
- 需求沟通要带着思路去跟别人聊,不能只被动的接受需求输入
- “问题”的解决需要加上事后跟进、追踪的需求记录,这样延展性会更多;有的问题自己解决,有的问题推动他人解决,这也是一种能力
- 其余思考:
- 所谓“水到渠成”,所有你能承担更大责任的,都是提前准备好,不是被安排了某些事情才做到的
- "老中医"理论不可靠,知识获取的视野、主动高效学习的方法、知行合一的实践、上下前后(历史经验)的思考、行动,反复拷打自己,加速曲线,超过"老中医",不成为平庸的普通人
- 我们一定要想明白想成为什么样的人,是做一件事,还是站在更高的角度去看待完整的问题,看待问题的视野和格局,决定了我们的日常行动、结果、面向未来的可能性的差异
同样,集体/团队认同也是最最最重要的一点,有幸能够加入这个团队,贼开心。 团队团建照片:
顺便立下2025年的第二个Flag:在阿里妈妈继续钻研风控业务,将流量与内容线全面掌握并能够成功晋升。
四、运动
之前一直没有专注过运动,来了阿里之后,整个团队氛围喜欢运动,我也参加了很多运动,包括:篮球、羽毛球等,也因为运动认识了一堆朋友
同样,自己因为运动整个人的精神也比之前好了很多
嘿嘿嘿,是不是变化很大,果然大厂是最好的医美工具
这里立下第三个Flag:2025年继续保持篮球、羽毛球运动,同时加入跑步这项运动
五、家庭
今年对象考上了县医院,正式成为了一名在编人士
同时也看了看老家的房子,准备上车还房贷了,不出意外的话,2025年应该就背上房贷了
这里有个重点:我和我亲姐,我们一起选定的一个小区、一个单元,以后爸妈串门就方便了!!!
这里立第四个Flag:希望2025能够买一套属于自己的房子,和对象进行订婚流程~
五、总结
2024年过的真快呀,嗖嗖嗖的就过完了,自己也已经三年半经验了
看着现在刚毕业的年轻人,左手源码、右手算法,压力贼大
同样,感觉自己也挺幸运的,当时在众多 offer 之间选择了阿里妈妈,怀着忐忑的心情来了北京,没想到团队氛围贼好,好的老板、好的师兄、好的同事,还有好的喝酒小团队
自己有时也在想,可能这就是前两年每天认真学习上天的奖励吧
希望2025年能够完成自己所有的Flag并保持每天学习的好习惯~
花有重开日,人无再少年
2025,让我们顶峰相见!
如果你也对 后端架构 和 中间件源码 有兴趣,欢迎添加博主微信:hls1793929520,一起学习,一起成长
我是爱敲代码的小黄,阿里巴巴Java开发工程师,CSDN博客专家,喜欢后端架构和中间件源码。
我们下期再见。
我从清晨走过,也拥抱夜晚的星辰,人生没有捷径,你我皆平凡,你好,陌生人,一起共勉。
来源:juejin.cn/post/7456298133044822042
这五年,我学这么多东西再没有高学历背景下,有没有意义
今年的10月初我被辞退了,公司为盈利,部门整体裁掉,感慨挺多的。也是我工作以来待的最久的一家单位了,从原来的菜鸟到现在能算是合格的前端工程师,不管怎么说,我很感谢这个平台。
被辞退以现在的环境制定要面临降薪,或者换个没有福利待遇那么好的单位。
这五年我得到的太多了,可能有人说如果你在别的单位应该也会得到你应得的,这个说法确实没毛病。我只不过是一个打工仔,平台不过是带我见识了一些上限,如果我不愿意去学,可能也收获不了这么多。那么就从生活、技术等等方面展开来说下我得到了什么。
生活
刚入职这家公司没多久(2019年),我就跟我老婆处对象了。是的我们在2023年10月4号结婚了,也很顺利我们在12月份接着接到喜讯我们有宝宝了。宝宝出生在2024年10月3日(女宝),很漂亮,大眼萌娃。照片我放下面给各位叔叔姨姨们看看:
买房:没逃得了当房奴(被逼的),在2023年8月份我们在南京市浦口桥北买了个小三室,总价150W
。首付了70W
,贷款80W
,20年,每个月要还5700
左右。不好的是今年房子跌了好多钱。我们小区同户型的已经有挂120+
的了,成交价更低。
之前有个同事大哥说过,如果你买了房子,能娶妻生子,那么房子的价值就够了,它跌就跌吧。落了个媳妇+孩子赚大了。
这里给还没有买房的朋友一些建议:贷款要贷30
年(前期压力小,后面可以提前还款), 买毛坯的话一定要预留好装修资金,其实我不建议买毛坯,那个时候你就会要负担房贷+房租+装修(我就是个例子:后悔si了😭),还要晾着一年半载的才能入住,最好能买个二手房直接能入住的。
我这几年在这家公司待遇也涨幅了几次:
第一次是2020年10月份
,觉得自己还凑合,想去外面看看,当时确实环境大好,也拿到了不错的涨幅。后来就是我当时部门的前端领导全力留我,觉得我很负责,提出给我涨幅3.5k
。
第二次是2022年3月份
,也是我这个前端领导要换平台,不在这个部门带领我们了。我也想出去看看😁,结果是部门领导留我了涨幅4k
。
第三次是2023年12月份
,我把我们的一个用户后台管理(老旧难用)在一次迭代中,用时7天把14个模块整体重构(公司框架+公司UI组件),就是一天写两个模块,然后交给测试同学同步测试,第二天把bug和两个新模块同步修改好继续提测。7天后上线,新的web页很好用(都是老的web衬托的),得到了部门领导的主动涨薪1.5k
。
可以说我运气好,也可以说我遇到了好领导,我可能是有点价值的,但是我确实是幸运的。
技术
- (2019)、校招生好厉害
高校的校招生竟然这么厉害,这是我在这家单位接触校招生或者说应届生的真实感受。 也是他们本身基础就很扎实,有编程思想,有领导带领规划成长路线,又很积极爱学确实成长很快。
我开始了重新学了下ES6
,买了一本阮一峰老师的《ES6标准入门》,来回看了3遍,深入理解了解构
,数组的some、every
, 字符串的:startsWith、endsWith、padStart、padEnd
, Set、Map
,Promise
等等。我觉得它帮助我特别大,如果没有这本书我或许会看到一些同事写的语法,我不认识的语法。为我的js奠定了一定的基础。
- (2020)、同事竟然手写正则
- 再一次跟同事协作中需要检验一个ip段,他竟然给我直接手写手写,大佬真真厉害。然后我就去重新学习了正则表达式基本能达到写一些简单的表示式。
- (2020)、前端领导让我看看
eggjs
,了解怎么的用法,后面需要跟我做一个东西
- 在这个里面学到了很多关于
node
的相关知识。
- (2020)、前端大屏大佬,我们有一个专门写大屏的前端大佬
- 跟着他学到了怎么做适配,
rem、em、vw、postCss
,使用echarts
,并认识了d3js
(后面刚好会用到,会更深入了解)
- (2020)、前端领导让我学习
nginx
,起个服务3000
端口的时候能访问到百度的页面
- 这里用到了转发服务以及代理资源,让我在后面对前端资源处理以及处理代理问题时有了很大的帮助,我搭建博客等好多地方都用到了。
- (2020)、前端领导让我用谷歌插件开发一个chrome插件,主要是 读取数据(标签页中的某个窗口)到周报生成渲染。
其实到这里我都没有学习编码规范,对组件设计的思想也了解不多,基本上就是野蛮开荒。本来一直计划给我做代码
codereview
,看看怎么能帮我做些规范的提升,一直没太多机会。后来就是他自身发展走了去了别的单位,然后换了个空降领导,他开始组织我们创建各种规范拦截,eslint
,git
提交拦截。
- (2021)、定义相关规范拦截
eslint、git
eslint
: 用的airbnb的规范。还是蛮严格的帮助我纠正了不少代码缺点。git
:commit
规范,分支规范等等。
- (2021)、阅读库源码提升自己的代码规范。我觉得对我帮助最大的是
element-ui
的源码
2021 年我觉得我最大的进步就是代码质量有了大幅度提升,懂的怎么设计组件了,怎么能写让代码更壮健,懂的了规范带来的价值。
- (2022)、我们开始放弃了
jenkins
做打包构建,换成了gitLab CI CD
, 我深入了解并学习了下。 - (2022)、前【前端领导】让我协助他开发个微信小程序,有了解到了小程序的相关知识。
- (2022)、我们开始做一个图谱产品,拓扑图可视化分析,使用了
d3js
以及canvas
- 为了支持大数据的统计以及绘制,在这两年中一直在做数据结构的优化以及接触
web Worker、Wasm
等,只在可视区域渲染等等优化策略。 算是学到了性能的优化手段,也了解到了图形算法的魅力。
- (2022)、学习
TS
,写了写react Hooks
。也了解到了跟vue之前的区别 - (2022)、我开始研究怎么生成脚手架,发布
NPM
包。 - (2023)、这年我开始对我们公司平台组的产物做源码学习,学到了
babel AST
、webpack
插件编写等等,还写了个vscode
的插件主要是处理AST
的达到函数插桩。 - (2023)、这年我开始对之前用到的知识做了总结发表一系列文章(得到了掘金Lv5优秀创作者)。
- (2023)、我持续查阅那些好的插件包的源码具体怎么实现的,对编码思想又了更深层次的理解。懂得了怎么做能更好的建立一个可持续发展的方向,技术选型,风险评估等等。
- (2024)、这年精力主要是在工作上(大环境太不好了,不想被裁,也算是坚持到了最后),开发大屏,重构了好多老的代码,对产品的用户体验做到了细致的优化。
我学这么多东西有在没有高学历背景下,有没有意义?
实话说我在这次找工作中,对自己的一直努力的方向做了怀疑,还不如好好享受,学习这么多干啥呢? 约面试会被卡在学历上,我很烦恼,有些怀疑自己。我之前在环境大好的背景下,我始终认为多学习,一定能涨工资。
我也会向我老婆吐槽说学这么多又有啥用呢,第一步就被卡死了。是不是统招本科!!!抱歉我不是。
她说你比你同学朋友们可能要好多了,他们一年、两年可能就会换个工作,在者说口罩那几年你一直也算很稳定,别人都换了好几家单位了,你知道为啥一直再给你加薪吗?其实都是你努力得来的! 工作嘛,咱们换个就行了,现在大环境不好,不好找是常态,她说没关系的,她还有存款(彩礼钱+自己之前攒下的),你就是一两年不上班都没问题。
是啊!我一直在稳步加薪,待遇在朋友中也还算不错的
没上班怎么可能不焦虑,我是刚好我家孩子出生那个月被裁的,我还等到了小孩20天后才开始找工作,那个时候父母还都在这边,我对双方父母说我是在休产假+年假,在出去面试那几天也是说出去给我闺女办理正件
后来因为孩子要喝奶粉 + 房贷 + 房租 + 装修,其实我很大的压力,老婆虽然没催我给我压力,但是每天还是很焦虑的,有的时候会算我家娃一个月花费多少... 唉!!
一切都是有意义
我有掘金社区优秀创作者,加我的个人博客网站,再加上我会的技术,在加上我还有发表的各类插件,写在简历上都是我的优势,我会刻意去找技术面试官去投简历,我会抓住每次面试机会,努力的去展示自己。
好消息我用时14天收到offer了,一家小单位,双休,待遇降了20%。我知道现在的行情,就是我在多花一个月精力去面试,去找,我可能会更奔溃(最近压力很大),最后的待遇应该也会跟现在这个的大差不差的。 现在都是一个萝卜一个坑,我果断选择入职。
回头看其实我由于我的那些优势,我算约到了不少面试,我总共面试6家,二面了2家,我跟我同时被裁的前端同事聊,他说用时两个月才约到2家面试。我运气真的好的太多了
还有个好消息就是前【领导】11月初找我做一个项目,持续7个月,让我兼职每天干2-4个小时,每个月给我1W。由于我现在通勤+加班,可能没太多精力去做,然后就介绍给我的同事阿祖全职,给了他1.8W。
其实前领导能找到我也是认可我的工作能力,我其实也后悔推荐给朋友了,我应该找他一起兼职这份工作,我俩平分这个1w,毕竟我刚降薪加实习期80%,落差不少。
11月中的时候又有前单位的UI设计师(他很认可我,每次都说我写页面还原度是最高的)找上我说要不要考虑私活报价1.2W
,做一个网站+h5,其实1.2w我俩平分不算特别高,但是最后没能接下来。
12月下我前前【领导】来找我说他们单位可能要裁员,然后呢他搞了这么多年不想在打工了,想着做做产品。他好像看中小程序的市场,他也有些人脉。我其实在第一份兼职1w的没接的时候我也考虑做什么产品化的东西能卖钱。小程序的市场看到某宝好多个卖模版的,还老便宜了,加上我也没有什么人脉就放弃了。这次跟着它们用业余时间搞搞试试。用雷布斯的一句话:我们悄悄搞,没搞成,就当我们没有搞过!!。雄起!!!!
接下来的计划
- 产品化的东西让他们计划,只是定了个初步目标,还暂未执行!
- 攒钱买个小车(10w),有孩子了没车的话出行不是很方便
- 我老婆在做xiao红书,做母婴方面的,最近粉丝也达到了600个🔥,继续加油
- 我在斗音上拍我闺女视频,但是没太多流量,刚刚投了150块钱,得到了40多个粉丝,😭,继续加油吧!!!
- 我在学习
Java
,主要是要是做点什么写后端能方便点 - 搞钱!!!!!!!!
来源:juejin.cn/post/7453120781771341859
2024年,30岁前最后一次年度思考
没错!95年,还剩几个月就奔三了。2024年,注定是人生中意义非凡的一年,忐忑、裁员、出书、求职、转正这几个词贯穿了一整年。
忐忑
在上一家公司时,我从面试开始和到入职半年转正后,其实内心对于公司的状况一直保持一种忐忑不安的心情,这种感觉跟我老婆说过几次,我们一致认为应当有心理准备。原因在于薪资与公司的组织架构、基础建设、日常工作量安排和人员扩充速度都让人感到迷惑。
公司是在一个包括高层话事人不断更换,高层(副总裁)突然接受停止调查;技术部门仅仅作为辅助,技术氛围低沉,基建缺失,直属leader作用甚微;工作量与人员匹配失常,人多活少,尽管如此年初还在不断扩招中,泡沫感极强,伴随着薪酬发放日漂浮不定,每到月底像是在开盲盒,你永远不知道银彳亍卡何时会有一笔款到账。
裁员
一系列薪酬制度改革和薪酬拖欠不得不怀疑高层战略的正确性,直到四月某一天CTO私聊我,泡沫破裂,裁员尘埃落定。
我被归属于第一批裁员名单中,与CTO交谈中,似乎也流露一丝对高层决策的不满,但没有明说,给我的理由是当前工作任务都很简单,匹配不了我的能力,所以给了我一个名额。
这放在当时听上去有些许意外,但我接受了这种措辞,并不是因为CTO说了几句好听的话,更多是我作为一个技术人的直觉认为这个CTO靠谱。离职过程中对人事提出的补偿计算方式以及分期发放,我都拒绝了,最后经过与人事反复讨论之后拿到了补偿,少不了他的协助,所以内心表示感谢。从现在的视角看来,似乎是他已经意料到公司的发展趋势,以致于后来被裁员的人有很大一部分都没有赔偿。
出书
离职后我在家休息了一个月,期间也为了帮一个粉丝忙,接手了他工作的一部分任务,主要是做游戏业务的动画。期间有被一个后端恶心到,业务不熟悉,接口一直不通就算了,关键还理直气壮说是前端问题;我佩服那个粉丝能够忍气吞声这么久,换做其他人也很难不高血压,为此特意发圈宣泄。
由于后端提供的接口迟迟不通,需求没有预期上线,为此他们老板还大发雷霆,最后把锅推给了这个前端粉丝,声称把他给炒了。没过一个月,粉丝的这个公司被帽子叔叔查封,业务涉及到了灰产,老板和负责人进去了。员工的工资都没发,但我的报酬是因为签了合约,在deadline之前要求他们打款,对我没有影响,这是苦了这个粉丝。
在此之后我便全职写书,《NestJS全栈开发解析:快速上手与实践》 这本书临近结尾,我一鼓作气完成了并在5.1号劳动节那天交稿;写书的想法也有一部分是来源于CTO的启发,后面图书审阅也是找了CTO帮忙,熬夜帮我看完并给了这个评语,为此我很感谢他。
经过几个月的审批和改稿,图书在9月份正式发布了各大平台,这是一件值得高兴的事情。
而对于前司的后续,据说后面还搬到一个CBD进行办公,但当时员工已经欠薪几个月,以至于到年底,公司被迫全员原地解散,很遗憾这不是一个好结果。
求职
交稿完成后,花了一个月左右时间求职,拿到了3个offer,最后选择了去深圳的美图,这是凭借NestJS的图书写作获得的一个岗位。之后由于组织架构变化,我在转正前夕面临选择继续从事Node全栈还是Go语言开发,考虑一番后我选择了后者,顺利转到了后端架构组,负责go语言开发,这对我来说又是一个新的尝试和挑战,我选择了这种变化,与框架和语言无关,只不过是践行我的人生哲学:【不断变化】,让自己处于一种长期乐观、短期痛苦、当下快乐的舒适区边缘中。
觉醒
关于成长,过去我一直不喜欢看历史,或许归根于上学时代对于历史学科的厌倦,没看过基本历史文献。2024年底,我看了教员的《毛选》、《实践论》、《矛盾论》、《寻乌调查》,第一种感受是成功绝不是偶然,环环相扣的逻辑能力令人惊叹。我想这些书籍回答了我一直以来的问题:
如何成为一个独立、深度思考的人?
我们人生中做了一个坏的决定,在股市中选择了不争气的股票,最坏的结果无非是让自己从头再来。但革命不同,选择错了就有可能让整个民族处于被毁灭的境地中,每一步都步履蹒跚,这该有怎样的智慧与思维?
第二种感受是遗憾没有早点开悟,在临近30岁时才开始阅读这些书籍,当然也很庆幸没有太晚,一切都来得及!
特别的是,《寻乌调查》报告里面的细节,应该是我人生中读过的一本最详细的一本书籍,里面还记载了寻乌与我老家(兴宁)相关的历史宜了,没有一句多余的,都是干货。第一次感受原来伟人离我这么近。
教员做了这个调查报告之后,便留下一句千古格言:没有调查,就没有发言权!反观自身,何尝不是应该这样呢?
关于家庭,今年整个过程中家里的大大小小的事基本上都是我老婆操办,为我们的小家默默付出了很多,加上我去了深圳之后,我的衣食住大部分也是她来打理,一个人照顾小孩,现在甜筒一岁半了,如我们所愿健康成长,这隶属她的功劳。
一个家庭要想变好,靠一个人努力不行,需要“拉拢”有能力的人一起,话事人脑子要清醒,能够明辨是非,唯唯诺诺绝对是会出问题的。
一个家族要想变好,靠一两个人不行,得靠一两个家庭真正向好,大家庭才会有希望。
最后,没有Flag,年度总结中对未来进行遐想没有意义,沉浸于自己完成所有Todo List的那种兴奋是虚构的,而实践中那种痛苦、无助才是我们最真实的感受,人不能总活在无限遐想的递归当中
。
我看过那些在新年Flag列举诸多愿望,买了一堆书籍想要读完的,来年能真正落地完成的少之又少,毕竟我亦如此。
2025年,爱自己,爱家人,步步为营,不负将来!祝所有支持我的粉丝朋友们,一切如意,事业感情双丰收~
来源:juejin.cn/post/7455282891535302708
00后小破站员工"开盒"用户事件,后续来了
"开盒"事件
这两天,关于「2025 年 1 月 B 站员工"开盒"(公开曝光他人隐私)用户并删除用户视频」的事件有了新的进展。
可能有读者还没听说这事儿,这里简单梳理一下时间线。
事情的起因,是 B 站员工袁某某(Next0820)在某个游戏视频底下回复了一条 22 年的评论,先是通过收入对 B 站用户(黄金鼠塔)进行了嘲讽:
双方随后开始产生争执,过程中,该员工透露自己"身份不一般",并借助内部人员优势对用户进行"开盒"恐吓:
此时该工作人员将自己账号的头像改成了受害者头像黑白照片。
但此等恐吓并未吓到这位 B 站用户,甚至还被用户回了一句"我身-份-证拍的很帅" 🤣🤣🤣
再之后,该工作人员开始进行了下一步行动:向用户网页端注入代码跳转到显示"你的账号已经被封禁!"的界面,且删除用户在 B 站的所有的稿件和动态。
跳转的原理十分简单暴力:通过给线上网页版的代码插入一段 JS,针对某些用户会跳转到特定界面。
这位 B 站用户平常使用的是客户端,短期并未受到影响 🤣🤣🤣
但很快,另外一位 B 站用户(罗德兰屑罗素)爆料也遇到了相同的遭遇。由于这位用户日常使用的是网页版,受到影响后,把这事儿通过工单的形式上报给官方,经过调查核实后,官方给出了对应的处理方案:
- 确认是内部员工,行为触及底线,已进行开除处理;
- 准备将该情况上报到监管部门;
- 内部对这个事情再做一次通报批评,引以为戒,相关主管人员也进行处罚;
- 对被删除的内容,进行恢复处理;
对于此事件,虽然性质恶劣,但官方处理方案还算得体。一些网友将「个人行为」上升到「平台调性」,我觉得也不甚合适。尤其涉事人员还是位 00 后,实在不好点评。
但作为"程序员"对于此事能够发生(且不止一次)还是觉得十分震惊,为什么一个"前端工程师"能够如此随意查看线上用户的隐私数据,而且还能如此随意修改线上代码,内部一点 review 都没有吗,这有点属于草台到极致了。
对此,你怎么看?你平时看 B 站多吗,和 B 站网友评论/弹幕的情况多吗?欢迎评论区交流。
...
回归主题。
来一道和「校招」相关的算法题。
题目描述
平台:LeetCode
题号:442
给你一个长度为 的整数数组 nums
,其中 nums
的所有整数都在范围 内,且每个整数出现一次或两次。请你找出所有出现 两次 的整数,并以数组形式返回。
你必须设计并实现一个时间复杂度为 且仅使用常量额外空间的算法解决此问题。
示例 1:
输入:nums = [4,3,2,7,8,2,3,1]
输出:[2,3]
示例 2:
输入:nums = [1,1,2]
输出:[1]
示例 3:
输入:nums = [1]
输出:[]
提示:
nums
中的每个元素出现一次或两次
原地哈希
给定数组长度为 ,且所有数范围在 ,找出出现次数超过一次的所有数字。
利用值域与数字下标空间大小的等同关系,我们可以构造一种对应“关系”,使得每个数出现在它应该出现的位置:对于值为 的数字,我们将其应该出现在的位置定为 。
基于此,我们从前往后遍历 ,并尝试将当前处理到的 放到目标位置 处。如果一个数在尝试移动到它应该出现的位置时,发现 ,则说明该数字出现了超过一次。此时我们将 加入答案,由于此时没有发生交换,而 占用的仍是其他数字的目标位置,为了防止 与其他数字发生交换后,再次被检验并重复加入答案,我们将 置为负数,并在遍历过程中跳过负数。
Java 代码:
class Solution {
public List<Integer> findDuplicates(int[] nums) {
List<Integer> ans = new ArrayList<>();
int n = nums.length;
for (int i = 0; i < n; i++) {
int t = nums[i];
if (t < 0 || t - 1 == i) continue;
if (nums[t - 1] == t) {
ans.add(t);
nums[i] *= -1;
} else {
int c = nums[t - 1];
nums[t - 1] = t;
nums[i--] = c;
}
}
return ans;
}
}
C++ 代码:
class Solution {
public:
vector<int> findDuplicates(vector<int>& nums) {
vector<int> ans;
int n = nums.size();
for (int i = 0; i < n; i++) {
int t = nums[i];
if (t < 0 || t - 1 == i) continue;
if (nums[abs(t) - 1] == t) {
ans.push_back(t);
nums[i] *= -1;
} else {
int c = nums[abs(t) - 1];
nums[abs(t) - 1] = t;
nums[i--] = c;
}
}
return ans;
}
};
Python 代码:
class Solution:
def findDuplicates(self, nums: List[int]) -> List[int]:
ans = []
n, i = len(nums), 0
while i < n:
t = nums[i]
if t >= 0 and t - 1 != i:
if nums[abs(t) - 1] == t:
ans.append(t)
nums[i] *= -1
else:
c = nums[abs(t) - 1]
nums[abs(t) - 1] = t
nums[i] = c
i -= 1
i += 1
return ans
TypeScript 代码:
function findDuplicates(nums: number[]): number[] {
const ans = [];
const n = nums.length;
for (let i = 0; i < n; i++) {
const t = nums[i];
if (t < 0 || t - 1 === i) continue;
if (nums[Math.abs(t) - 1] === t) {
ans.push(t);
nums[i] *= -1;
} else {
const c = nums[Math.abs(t) - 1];
nums[Math.abs(t) - 1] = t;
nums[i--] = c;
}
}
return ans;
};
- 时间复杂度:
- 空间复杂度:
来源:juejin.cn/post/7462066293891661876
“小红书”海外版正式更名“ rednote”,突然爆红的背后带给开发者哪些思考?
序言
小红书在昨天的更新中,已经在Appstore正式将海外版本名称改为
rednote - share, connect, love
爆红趣事
自从“Tiktok”陷入前一阵的风波之后,不少海外玩家纷纷涌入了“抖音”、“快手”和“小红书”的热门社区类App。
同时这一爆发性事件也被网友调侃“入侵行为”。
永远忘不了2025年1月15日这沉重的一天。八国联军入侵了我的抖音 我刷不到我的同胞们了
。
还有有趣的网友发出珍藏的表情包,与海外玩家互动。比如:
更有颜值控(LSP)的玩家发了"激进的言论"
。比如:
也有心细的网友发现了新版本岗位工作
的需求。比如:
对开发机遇
Register
既然想使用国内的App,首先要解决的是注册问题。大多数App都需要在注册的时候,使用手机号和验证码来验证用户的真实性,那么所谓接码平台
绝对是老外注册的不二之选。
Study Chinese
既然有需要将英语翻译成中文的工作,那么反向思维一下?老外会不会提升对于学习中文的需求
?于是乎带着疑惑,在点点数据搜索'Chinese'发现,已经有了这类产品。占据榜首的当属HelloChinese
。毫不夸张地说,这种产品迎来了属于自己的高光时刻。
通过查看榜单排名变化,可以清晰地看到。排名攀爬的趋势极速上涨
。
常言道机会总是留给有准备的人
,如果没有造势的本事,就不如顺势而为。
希望大家都可以早日遇到自己的风口
,最后祝大家大吉大利,今晚过审!
来源:juejin.cn/post/7462260074183589915
一个7000Star的项目一年能赚多少钱?
往事
又一年过去了,不知不觉从事前端开发已经快7年了,7年时间其实也不算特别长,但是从行业欣欣向荣干到了行业巅峰再到如今的行业没了,我是没想到的。
虽然目前还没有失业(感觉快了),但这么多年也没赚到什么钱(工资在杭州的行业里垫底),没有在行业正盛时进入一个大公司算是最大的遗憾了。
这么多年只待过两家公司,做的绝大部分事情都是普通的业务开发,尤其是第二家公司,虽然从公司人数上来说是第一家公司的200多倍,但所负责的业务复杂度远不如第一家公司。
公司业务之外,个人在技术上这么多年热衷于干的事情大致分为三个阶段:
一:维护自己的个人网站,开发各种小工具,小游戏,乐此不疲,持续了三四年,不过纯属自娱自乐,没啥人用,更别提收益,所以在服务器和域名到期后就关闭了。
二:写技术文章,从偶然写了一篇爆款文章后开始一发不可收拾,两年时间写了100多篇,主战掘金,混到了lv6,各种原因下目前已经停更,过去的一年只写了8篇,总的数据量可能没有之前的一篇高,只写纯技术现在肯定是没人看的。
三:维护开源项目,也是过去一年主要干的事情,当初机缘巧合下写了一个思维导图demo,没想到会变成现在的样子,早知道初版的代码就认真写了。
做以上这些事情的动机除了兴趣外,更大的原因其实是想通过这些弥补自己在公司所做的项目太普通、没有大厂经历、毕业院校一般等不足,说白了就是给面试加成,在之前确实有点用,但是对于目前这种僧多粥少的情况来说可忽略不计,毕竟在杭州这个互联网大城,比我牛的人可太多了。
所以现在目标转变为了:赚钱。
之前总有一点赚钱羞耻感,提供了服务,提供了代码,却不好意思提钱,总觉得自己的项目还不够好,但是现在生活所迫,也管不了太多了。
说了这么多有的没的,接下来还是聊聊我这个项目。
首先还是稍微介绍一下,simple-mind-map
(思绪思维导图)是一个开源的思维导图库和软件,既提供了一个js
库来用于开发,也提供了一个软件直接使用。
更新
过去一年的一些数据分享:
- 版本:一共更新了26个版本;
- Star:Star数量由2000涨到了7000+;
- Issue:Issue数量由500涨到了1000+;
- 下载:NPM包下载数量由20000涨到了40000+;
- 交流群:交流群人数由300涨到了800+;
更新点非常多,接下来简单分享其中一些比较大的:
- 功能
支持导出txt文件、支持导入导出Excel文件、导入导出Freemind软件文件、新增了向左逻辑结构图、节点文本编辑支持类原地编辑、支持拖拽调整节点宽度、大幅优化了节点富文本的渲染逻辑。
- 插件
新增了手绘风格插件、彩虹线条插件、演示插件、节点标记插件、节点外框插件、节点编号插件、待办插件。
- 性能
虽然我一直觉得思维导图节点数量控制在几百个比较适合阅读和编辑,但是经常有想要支持几千个节点的人来向我吐槽太卡了,那是肯定的,实现上是基于SVG+DOM,数量多了肯定会卡,其实性能这块一直在尝试优化,概括来讲也分为几个阶段:
一:数据节点数据改变,完全重新创建和渲染所有节点,实现上最简单,但是基本不可用,节点数量达到几十个就已经慢的不行;
二:根据具体操作手动修改需要更新的部分,比如插入节点操作,那么只创建新插入的节点及其父节点,这种方式可行,但是缺点也很明显,不够通用,每种操作都需要特定的更新逻辑,维护成本很高,扩展很难;
三:缓存和复用节点实例,将已经创建好的节点实例缓存起来,根据节点数据的uid进行查找和复用,如果节点数据没有更新,那么直接使用缓存数据,否则重新创建并更新缓存,改成这种方式后,性能提升了一个数量级,但是更新细粒度其实也只到了节点级,并没有精确到节点的具体内容上,比如只更新了节点文本,最好是只重新创建节点的文本内容部分,其他图标等部分不需要。
四:为了应对几千个节点量级的使用,增加了一个所谓的性能模式,其实就是只渲染可视区域的节点,这种方式其实无论多少个节点,只要可视区域的节点不多,性能下限都不会太低。
谦虚点说,simple-mind-map
可以算是开源的思维导图中功能、颜值和体验都最强的之一(不能违反广告法),如果你对自由节点和概要需求不高的话,那么完全可以代替目前市面上的收费思维导图软件。
理想文档
这是今年和我一个朋友(后端开发大佬)抽空一起做的另一个开源项目,一个简单的在线云文档,汇聚了一些优秀的开源项目,比如:流程图、幻灯片、电子表格、文档等等,当然还有我的思维导图,其实就是给这些项目加了一个将数据存储到数据库的功能。
虽然目前整体比较简陋,但是胜在一个齐全和性价比。
有兴趣的朋友可以关注一下:github.com/wanglin2/lx…
收益
最后来回收一下标题,聊聊收益的问题。
simple-mind-map
目前只有以下几种获取收益的方式:
1.打赏:经常做开源的朋友都知道,愿意给你打赏的人是很少的,所以可以忽略不计,当然偶尔也会有几个比较大方的朋友;
2.收费插件:simple-mind-map
是插件化架构的项目,在提供了十几个免费的插件后,尝试做了几个收费的插件,但是以过去一年的情况来看,买的人很少,毕竟需求这东西很灵活,免费的就是刚需,收费的就变成不必要的了;
3.收费咨询:虽然项目的文档算是比较完善的,并且第一支持的语言是中文,所以并不存在什么看不懂的情况,但还是有很多人来问各种能在文档上找到答案的问题,回答多了也就不想回答了,毕竟你不愿看文档,我也不愿看,所以现在私聊只接受付费咨询;
4.去版权费用:虽然项目基本的开源协议为MIT
,最宽松的开源协议了,但是也不意味着完全没有要求,商用的话需要保留项目的版权,所以如果不愿意保留,那么会收一笔去版权费用,但是大家都知道开源协议就是一个君子协议,自觉的人是很少的,所以一般都是我发现了主动去沟通维护权益;
其实还有一些其他乱七八糟的方式,但基本上都很不稳定,过去的一年,收益全部加起来其实也不到我月工资的一半,而前面提到了,我的工资在杭州是垫底的,所以总结就一句话:
做开源没有钱途,还是安心当牛马打工吧!
当然,新的一年也会探索一些新的赚钱方式,有好建议的朋友欢迎留言~
来源:juejin.cn/post/7456469629474226210
🍉🍉🍉快来吃瓜,原来国外开发者也会因为哪个框架好吵的不可开交
前言
事情是这样的,今天浏览到了一篇dev上Ryan Carniato大佬(SolidJS
库作者)的文章,在文章中,作者阐述了自己对2025年的前段框架的展望,并且提到React、Svelte都在以增加编译的复杂性为代价简化开发。
And interestingly both choices come at the expense of increased complexity in tooling compared to their existing approaches. The verdict is still out on whether these will ultimately be good moves for these projects. The common ground is the foundation we build upon continues to get more complicated as we attempt to create solutions to make development easier.
有趣的是,与现有方法相比,这两种选择都以增加工具复杂性为代价。这些举措最终是否对这些项目有利尚无定论。共同点是,随着我们尝试创建解决方案以简化开发,我们所依赖的基础变得越来越复杂。
回顾下前端框架的区别
为了方便清楚的了解下面的内容,我先给大家简单回顾下前段框架的现状。
欢迎关注我的公众号:萌萌哒草头将军
以前的文章中提到,根据运行时和编译时,前端框架主要分为三类:重编译时(Svelte
、SolidJS
)、重运行时(React
)、介于两者之间(Angular
、Vue
)。
但是随着Svelte 5
引入了符文(runes),使得Svelte
不再是完美的进入运行时即可执行的javascript
片段,因为需要动态解析runes
的内容。这也是Ryan Carniato
觉得Svelte
变复杂的原因。
根据不同的更新粗细粒度,他们又被分为:
粒度 | 成员 |
---|---|
粗粒度 | React |
中粒度 | Vue |
细粒度 | SolidJS ,Svelte |
Vue
为了细粒度更新,正在努力的研发vapor
,React
就目前的趋势来看,打算一条道走到黑了。
而Angular
起初的处境和Vue
相似。但是在发布于 2023 年 5月
的Angular 16
,已经借助Signals
实现了翻身,提前完成了细粒度更新的框架。
Signals
是一种类似vue3
的proxy
、Reactivity
响应式的发布订阅模式,有响应式更新方面粒度更细,性能更好
好了有了上面的铺垫,相信大家都可以看明白下面的评论。
结果评论区出现了一批弃坑并谴责React
的老哥。
好戏开场了
下面是第一位老哥的发言:React
已死,Svelte
、SolidJS
当立!
这种回答,立马招惹了Angular
粉丝的不满,原因是Angular
使用了Signals
技术,性能提高了30%
!
可以看到作为粉丝是很自豪的,甚至提到了vue vopar
。说明这位开发者对前端框架的有一定深入的了解。
不过由于Angular
自身的笨重,即使有了Signals
的加持,还是取得了倒数第二的好成绩!
接着,伊桑先表达了自己不喜欢 React
的原因:
- useEffect 破坏代码可读性,难以预测的执行时机
- 状态管理库混乱,这里是在批评
Redux
- 不关系CSR。
CSR(Client-Side Rendering
指客户端渲染, - 虽然入门门槛低,但是存在步兵生成问题,这是指
React
不能很好的控制最小任务单元,需要借助外部工具,比如状态管理库。
然后表达了喜欢 Angular
的原因:
Angular
的就业市场更好(国外)Angular
的特性:事件重放、路由级渲染模式、Signals
等优秀的功能- 依赖注入很棒!
- 稳定性强,功能丰富
再来看看其他比较温和的评论
尹桑又单独评论了一次,这次的评论让我觉得他的水平有点低了,JavaScript
本身就是个脚本语言,不需要构建,边解释边执行。无可厚非的事!
这位评论者说的也很中肯,文章中,作者的确提出了Signals
的缺点: Signal
的生态尚未完全成熟、需要面对一些新的学习曲线和社区支持不足的问题
这位评论者的赞扬得到了原作者的肯定,并且推荐阅读更多文章,我也进主页看了下,
我打算抽空好好研究下,抽空在分享给大家!
最后
一个和谐友爱的社区会帮助开发者们更好的成长,希望大家有理有据的讨论不要踩一捧一。
这是原文连接:dev.to/this-is-lea…
好了,如果你觉得这篇文章对你有帮助,请记得给我点赞,或者关注我的公众号:萌萌哒草头将军
来源:juejin.cn/post/7460506415460745231
几个自学项目的通病,别因为它们浪费了时间!
大家好,我是程序员鱼皮。就在昨天,我又带大家做完了一个新项目 《智能协同云图库平台》,已经带大家做了十多个项目了,自然也发现了很多大家在学项目过程中的问题。
最了解学生的,莫过于老师和学生自己。而我经历了自学阶段,从学生成长为了老师,所以也很清楚怎么自学项目,效率才能更快一些。这篇文章,就分享一下我发现的大家自学项目时的通病。
注意,本篇文章中我写的所有内容,目的都是为了帮你节约时间,提高自学效率。
如果你正好有下面这些情况,请务必及时调整!
自学项目的通病
1、重复工作
任何业务类项目基本都是从项目初始化、编写增删改查开始的,在你做第一个项目的时候,自己手动编写这些代码没有任何问题,主要是熟悉自己搭建项目的方法和过程。但当你做第 2 个、第 3 个项目的时候,如果还在从 0 开始写基础代码(比如全局异常处理器、一些工具类),那就属于是浪费时间了,完全可以通过复用自己之前的项目代码、使用工具自动生成、或者搭建一个自己的项目模板来提高开发效率。
像我工作的时候遵循一个原则 —— 只要有重复劳动,都会尝试能否通过自动化的方式来提高效率。大家学项目时也是如此,避免在重复工作上耽误时间,不要满足于 “自己重复代码写得有多快”,而是要多把时间花在学习新的技术知识上。
2、死守教程
大家都知道,每个教程中作者都会选择特定的版本、技术和工具来教学,没有人能保证这些技术和工具不更新,所以每个教程一定有自己的 “保质期”。
像我在几年前最开始带大家做第一个项目 —— 用户中心项目时,就吃过技术更新的亏,由于前端框架的更新,导致前端部分的开发跟教程有一些不一致。所以后续我在带大家做项目时,会倾向于选择稳定的框架和版本。
当然,这是对于项目作者来说的。那对于学习项目的同学来说,可能就会产生很多问题:
- 为什么我使用的版本跟教程不一致了?
- 为什么教程中用的工具有这个按钮,但我用的工具没有这个按钮?
- 为什么我在官方文档中找不到教程中写的内容了?
- 为什么我跟教程中操作一模一样,但是运行结果不同?
很多初学者会因为这些问题,纠结很久,甚至不敢接着往下做项目,其实大可不必。
任何教程都有保质期,但解决问题的方法是灵活的。
如果使用的版本或环境跟教程不一致,那么不妨安装跟教程相同的版本(比如前端可以用 NVM 管理 Node.js 版本),或者查阅下如何使用新版本;如果用了比教程更新的工具,那么就在网上搜一下新版本的工具有没有教程中要执行的功能;如果官方文档跟教程中的内容不一致,那么就仔细阅读一下官方文档中最新的使用方法;如果跟教程中操作一模一样但结果不同,那么不妨自己 Debug 一下来解决问题,有可能就是教程本身有错误呢?
总之,在出现跟教程不一致的地方时,可以先记录一下问题,并且自己查阅资料和文档,不必完全死守教程。
3、滥用技术
之前有个同学问我:鱼皮,我们公司想做个发券功能,现在的想法是用 Redis 分布式锁 + 消息队列 + blablabla。。。
我反问他:你们发券功能的 QPS 是多少?同时要发多少张券?
他跟我说:我们是管理员给用户发券,每批 1000 张。
我接着反问他:既然是管理员控制发券,数量也只有 1000 张,那你不妨思考一下,真的有必要用到这些技术么?
类似的情况我之前也分享过,可以看 这篇文章 。
在企业中,业务 > 技术,技术是为业务服务的,要根据业务选择合适的技术实现。
一般来说,我们在思考业务实现方案时,能少用一个技术就少用一个技术,减少开发和维护成本。
但我发现有些同学可能是学的技术多了、也可能是八股文背多了,在做项目功能时,反而是先搬出一大堆的技术,完全不去考虑有没有必要用这些技术,有点儿 “为了学习而学习” 了。其实从学习的角度来说,多用点技术倒也没什么问题,但是如果你把这些写到简历上,面试官就会问你:“为什么要用这个技术?不用它行不行?”,这时你又该如何回答呢?
所以大家即使是自学项目,也建议找到合适的业务场景,合理运用技术。就像我昨天刚给大家讲完 DDD 领域驱动设计,有些同学就表示 “以后就用 DDD 架构来做项目了”,但其实大家自己做的项目,90% 以上是没必要用 DDD 的。
当然,多学新技术肯定是好的,相当于填充了我们的弹药库;但使用弹药时,肯定优先选择成本低的、最合适的。
4、不够灵活
我在讲 DDD 领域驱动设计时,先问了大家一个问题:如果必须要 2 选 1,你觉得开发项目时理论和实践哪个更重要?
结果大家一致选择了 “实践”。
没错,理论再完美,不能落地也无法创造价值;理论再丰富,也不一定能满足所有的实践需要。做项目时,理论的指导固然重要,但一定要结合实际情况按需运用和调整。
举个例子,大家学数据库理论的时候,老师可能会讲 “我们可以通过外键来保证数据完整性,要遵循第三范式,要遵循 ACID 原则”。但实际开发中,我们可能会用逻辑外键(不添加外键约束)的方式来实现表之间的关联,可能会违反数据一致性,但是能提高写入性能。
我在带大家做项目的过程中,发现很多同学就会特别执着于 “理论和规范”,比如:
- 你的目录命名怎么是 utils 而不是 util?为什么数据库对象用 Entity 而不是 PO?
- 为什么你的数据库字段用驼峰而不是下划线?
- 为什么你只创建一个对象,却不使用单例模式?
- 为什么你的接口不遵循 Restful 的规范,删除资源时还是使用 Post 请求?
这些都是我经常收到的问题,但其实都是无足轻重的问题。大家不要把时间浪费在纠结理论或规范上,毕竟这些都是人定的,在不违背原则或产生 Bug 的情况下,我们保证团队内部、或者自己开发时的规范保持一致即可。养成统一的编码风格和开发习惯,也能帮我们提高开发效率,没必要完全和教程保持一致。
除了上面几点外,我们也要时刻把握自己的学习重点,比如后端方向的同学,就尽量不要花时间在调试前端的样式上。像我大学的时候就是学的有点太杂了,有一段时间沉迷于抠前端的像素无法自拔,现在回过头来想想,确实浪费了太多时间。
来源:juejin.cn/post/7459798158336458792
2024年终总结--在悲催中寻找希望的光
大家好,我是 V 哥。时光荏苒,岁月如梭,转眼间2024年已接近尾声。回首这一年,心中感慨万千。2024年是悲催的一年、心酸的一年、纠结的一年,在这充满挑战的大环境下,IT行业受到了巨大的冲击,就业市场的不景气让工作变得愈发难找。“外卖、快递、跑滴滴”成了人们口中的“铁人三项”,据说截止2024年,有8400万的从业者投身于外卖和快递行业,其中不乏大学生的身影。而造成这一现象的原因,除了大环境中中美之间的博弈,还有社会产业结构升级带来的变革。顺势而为,方能行稳致远。
书
在这样艰难的形势下,我也曾感到迷茫和无助。然而,我始终坚信,只要坚持不懈地努力,总会找到属于自己的方向。幸运的是,2024年我做对了一件事情,那就是坚持技术写作和写书。这一年里,我致力于鸿蒙开发的研究和创作,完成了鸿蒙开发三部曲:《ArkTS》、《HarmonyOS NEXT5应用开发》和《项目实战》。虽然这些书还未出版,但我相信它们将会为鸿蒙开发者们提供宝贵的参考资料,期待年后能与大家见面,在这也感谢清华大学出版社对我细致入微的帮助。
技术文章创作
在技术写作方面,我也取得了一些成果。我原创了282篇技术文章,总字数超过了100万字。当我意识到这个数字时,自己都吓了一跳。这相当于一本厚度5.6厘米的长篇小说呀,等同于一本曹雪芹的前80 回加上高鹗的后40回的《红楼梦》,也相当于100万字的《史记》。当然只是数字匹配而已,可不敢跟这些大家相提并论,也就自己瞎乐呵乐呵,还好这些文章在各大技术社区得到了广泛的传播,记住 V 哥的账号都是威哥爱编程哦,也也欢迎兄弟们来关注哈,V 哥掐指一算,拢共收获了150 万+网友们的阅读。功夫不负有心人呀,同时,我的努力也得到了平台的认可,2024年获得了CSDN博客专家称号、阿里云开发者社区专家博主称号、华为云云享专家称号以及掘金优秀创作者称号。又多了好些,没事儿,证不压身,做的事儿都是一样的,这些荣誉不仅是对我过去一年努力的肯定,更是激励我继续前行的动力。
关注【威哥爱编程】一起打造个人 IP
视频
除了写作,我还积极参与了技术视频的录制。2024年,录制了2024版《趣味Java》。全套课程由V哥,Mask、强哥、索尔四位老师共同打造,这是一套幽默风趣风格的技术视频,为的就是帮助更多初学者、大学生更好的入门编程语言,选择 Java,当然是大学里几乎计算机专业都会开设这门课,然而,不得不承认,Java领域的竞争实在是太激烈了,我感觉这套视频有些生不逢时。课程的设计、录制以及剪辑制作耗费了我大量的精力,但最终的效果却没有达到我的预期。尽管如此,我并不后悔投入的时间和精力,因为通过这次经历,我也学到了很多宝贵的经验,这将对我未来的工作产生积极的影响。短视频创作同样没有达到预期,期待自己2025年有更多突破。
技术大会与讲座
今年,V哥还参加了各种技术大会,与同行们交流分享经验,收集的嘉宾牌都有10几个,多数是华为的话动啦,保留起来,作为自己的成长见证吧,自我激励一下。同时,我还去过39所大学进行技术讲座,大概有50多场吧,有一半以上是鸿蒙专场,因为鸿蒙的势头正猛,也是 IT 赛道里为数不多比较火热的方向,相信2025年从15000个应用到10万,50万的APP 体量,要知道 iOS 的体量是180万应用,Android的体量是380万应用,鸿蒙的发展潜力是巨大的,还会有更多的兄弟会入场,V 哥坚信这一点,对灯发誓吧,不信咱看着瞧。通过这些讲座,我不仅能够将自己的知识和经验传授给学生们,还能够感受到他们对知识的渴望和对未来的憧憬,这让我更加坚定了自己的信念,要为推动技术的发展和人才的培养贡献自己的一份力量。
算算这一年,回来奔波了34个城市之间,即忙碌又充实。虽然过程中充满了疲惫和艰辛,但我也收获了许多宝贵的经验和回忆。在这个过程中,我学会了如何在压力下保持冷静,如何在困难面前坚持不懈,如何在不断变化的环境中调整自己的方向。
心态的成长
这一年,是磨心态的一年,当你遇到无能为力的事情时,焦虑、彷徨、五味杂陈,会带来很多思想层面的压力需要释放,你有更好的方法吗,也许每个人解压的方法不一样,V 哥的方式是看书,当你迷茫的时候,书是解药,今年非技术的书看了30本,自己的成长只能自己来鞭策。
回顾2024年,我感慨万千。这一年,我经历了许多挫折和困难,你是知道的,咱是报喜不报忧的人,不管吐槽也好,抱怨也罢,一笑而过,咱还得积极面对生活,去努力实现自己想要做到的事情,这一年,也离不开家人的支持和帮助。因为他们的包容和理解,让我有了坚实的后盾,在此,我想向他们表示衷心的感谢。
最后
最后,我想说的是,2024 年虽然充满了挑战和困难,但它也是我人生中宝贵的经历。它让我更加深刻地认识到了自己的不足和努力的方向,也让我更加坚定了自己的信念和目标。我相信,在未来的日子里,我一定能够取得更加优异的成绩,为自己的人生创造更加美好的未来!
展望2025年,V 哥一定会继续努力,不断提升自己的技术水平和综合素质。继续坚持技术创作和帮助更多想要学习技术的人,分享使我快乐,助人让我的人生更有意义。
2025,不用怀疑,坚定的抱着华为的大腿,向鸿蒙出发!有同行的兄弟么,加个好友一起出发,欢迎关注威哥爱编程。顺势而为,方能行稳致远。
来源:juejin.cn/post/7455167756105154597
程序员的出路
最近几天渐渐悟出来一个道理,做技术没有出路。
我在想如果哪天我失业了,没有公司要我,以我现在的经验和能力,我该怎么办?
结果是我什么都干不了,我的经验和能力必须依靠公司才有价值,我在社会上独立生存,跟普通人比,没有任何优势。
所以我觉得做技术,尤其是走技术专家路线,根本没有出路,路越走越窄,最后把自己绑死在公司。
这段时间买了不少课,学了很多思路,打开了视野,也非常认真的思考,找身边厉害的人聊,写出这篇文章,希望可以供你参考。
培养赚钱的能力
赚钱的思维:发现需求,满足需求,推广流量。
普通人能赚到大钱的地方,都是很 low 的。我说几个自己身边的和听过的案例。
有的爸妈上班孩子放学没人接,有人开个自习室把孩子从学校接过来,每个孩子 700 块,一个月赚几万块。
前几年搞视频号,有一哥们做了个租房合同的带货视频爆了,赚了 20 多万。
老婆表姐搞外贸,老早没上班自己开了公司,具体不知道赚了多少钱,但有倒腾鞋子袜子的案例,一年 100 个没有问题。
还有各种卖包装盒、打包盒、塑料袋、花生瓜子、酱菜、小板凳的案例,包括我今天下楼看了下小区周边,我们这条街在金融港正对面,不可否认有些店没过多久倒闭了,但还有些店,招牌已经破的不行还开着在,包括各种餐饮店、收废品、五金、中老年活动中心、中医推拿针灸按摩、宠物店。他们肯定是赚到了钱,而且事情本身没什么门槛。
这些事给我刺激够大的,世界上赚钱的方式不只打工,从大学出来是第一次进入社会,跳出工作是第二次进入社会。
把他们抽象一下,都是发现了某个需求,然后找到了解决方案,再把方案推广让更多人知道。
解决方案各种各样,可以是做个产品(美团、饿了么各种 App 都是),也可以是简单的对接下资源,找个服装厂、鞋厂,甚至直接在 PDD 上代发货,这也是为什么我觉得搞技术没出路原因,解决方案面太窄,资产太重,一个人干不起来。
对我未来有什么启发呢?我分别说说。
发现需求
这个真的难,没抽象出方法论,因为这东西是别人赚钱的底裤,没人会分享,我要有正在赚钱的路子我也不可能说出来,上面说出来的都是过时的。
可行的方案是保持好奇,保持观察,多了解案例,自己多领悟。接地气,多关注衣食住行、吃喝拉撒方面的。
有机会我准备去广州、福建那里有各种代工厂、工业园,找人聊聊积累一些下游资源,多和身边的人聊天换取信息,多认识这个世界,积累各种各样的资源。
满足需求
在职场上,可以往产品经理方向发展。能锻炼自己产品思维,对自己未来创业是有帮助的。
另外搞产品也需要一定的沟通能力,这也能对接上创业时的销售能力。不管搞什么,这两项能力都是必要的。
我在做开发前做过几年销售,而且后期写的一些项目,我也承担了部分产品的职责,往这个方向转,对我来说没有问题,尤其是偏技术的产品,更是信手拈来。
推广流量
往投流方向转,也是可行的。要想赚钱,就得离钱近,投流是离钱最近的。
我了解投流的大致逻辑,ROI 怎么跑正,每个环节数据怎么排查,做增量的大致方向。
这个方面我缺少具体可能遇到的细节经验,或者行业的一些潜规则,平台的规则等。
但其实问题不大,流量方法不是公开的,如果公开的大家都一窝蜂上去投,就会把价格越拉越高,直到超过成本。
重点是如何用更低的价格买到流量,这里面可能有很多野路子、钻空子、薅羊毛等。
而且我之前做视频号的时候,也做过各个赛道,累计有上千万播放和几万粉丝,也算有点经验。
所以往投放方向转,我也有信心做好。
技术本行
再说到技术老本行,我不会去钻研高精尖的东西,就各种大厂面试题里的情况,实话实说工作了 7 年,面试题里面的场景一个都没有遇到,就像知乎上问:什么时候用 ArrayList 什么时候用 LinkList?答曰:工作中用 ArrayList,面试时用 LinkList。
技术上精通基本数据类型、Java 核心、MySQL、分库分表、SpringBoot、Spring Cloud相关、Redis、Kafka、Idea 熟练度等,就差不多了。
重要的还有项目经验、架构设计、业务场景处理那些。我会把这些做成视频发到 B 站上,一方面可以提升自己的技能熟练度,另一方面也能为自己攒点影响力。
然后把精力放在横向扩展上,比如关注 GitHub 各种搭建完就能用的开源项目,思考他们可以用在哪些场景,满足哪些需求。
总之,不管是未来做什么,我的目标是提升自己的赚钱能力,也留意观察、抓住生活中机会。
加油,共勉。
来源:juejin.cn/post/7456417337676595212
2024年终总结:“Fake It Till You Make It”
在这个人人都希望成为**“别人家的孩子”的社会,职场不再仅仅是能力和经验的比拼,越来越多的成功与否取决于你有多会“装”**。
_“Fake It Till You Make It”_______假装自己是个成功人士,直到你的真成功;
这句话就是你在职场打拼的**“生存法则”。但你得明白,不只是说你穿上西装,喝着美式,走进办公室时“演”得像个大老板那么简单。更深层的含义是,如何通过一系列的“装腔作势”提升你的职场竞争力,赢得机会,获得认可,最终实现“真的成功”**。
那么,如何才能通过假装来达成最终的成功呢?接下来,就让我带你走进这个充满**“假装有”与“真成功”**的奇妙世界。
从“低调内敛”到“虚伪高调”:职场的伪装艺术
在职场这个丛林里,初入职场的你,可能会觉得**“踏实肯干、低调内敛”才是好员工的标配。结果你会发现,老板们并不总是青睐于那些“只会做事不吭声”**的人。你低调的态度可能换来的是同事们的忽视,而领导眼中那种总是抢着发言、处处表现自信的人,反而成了职场的宠儿。
这时候,“Fake It Till You Make It”的原则就该派上用场了——先装出自信来。你可以从微笑开始,站直背部,记住要有眼神交流,在开会时积极举手发言,不管发言内容有多无聊。假装自己充满自信,直到你真的有了自信。对,你没有听错,职场上并不是能力最强的人会被选中,而是最懂得“装”的人更容易获得机会。
这种自信的“伪装”并不意味着你要抬高姿态、目中无人,而是要学会在恰当的时机表现自己的优点,让领导和同事看到你是一个值得信赖且能力超群的员工。当你开始给自己打上“成功”的标签时,实际上,你在塑造的,是一个成功的未来——因为别人总是愿意把机会给予那些看起来已经成功的人。
学会“装”——从外部形象到内心成长
_如果说职场上有一种“游戏规则”是“假装自己很牛逼,直到真的牛逼”,那么“装”就是你进入游戏的第一步。_外在的“装”不只是表面功夫,它会逐渐影响你的行为、思维方式,甚至改变你的人际互动模式。
例如,你会发现那些在职场中游刃有余的人,往往外表非常得体。你想要升职加薪,首先要让自己看起来像个管理者,而不仅仅是一个“执行者”。这不意味着你要立即换掉你的整个衣柜,但至少可以从一些小细节入手,比如穿一件干净的白衬衫、戴一副时尚眼镜、换一个有品位的皮包。
此外,职场上,你还得学会用“术语”。在会议中,不妨适时地插入一些行业内的术语或关键词,如“优化流程”、“高效协作”、“数据驱动”,即使你并不完全理解这些术语的含义,也要先把它们抛出来,听起来有点“术业有专攻”的味道,这样能让你在别人面前显得非常专业和有见地。
这种外部“伪装”会潜移默化地影响你的行为方式,甚至改变你在职场中的定位。因为,当你开始装作一个“大咖”时,你会越来越觉得自己“真的”是那个大咖,进而逐渐产生内心的自信,而这种自信,会成为你真正成功的驱动力。
职场社交:假装你是社交达人
在职场中,社交能力也是一个不可忽视的重要技能。其实,很多时候,一个人能否在职场上迅速上升,除了能力,往往还取决于他的“朋友圈”。如果你总是低调、害羞,甚至害怕与别人交往,那么即使你有再高的能力,也可能会因为缺乏人脉而错失机会。
_这时,学会“假装自己是个社交达人”显得尤为重要。
_你不必真的变成一个性格外向、八面玲珑的社交专家,但你可以通过一些技巧来“伪装”自己,逐渐融入到这个职场网络中。比如,在午休时主动邀请同事一起吃饭,或者偶尔给领导发个微信,问问工作上的问题,哪怕只是闲聊几句,都会让你在人际关系上“装腔作势”,形成一个积极的职场形象。
当你开始活跃在社交场合,你就会发现自己变得越来越有话题,越来越能够与不同的人建立联系,这样不仅能增加你获得职位晋升的机会,还能获得更多的资源和支持。而这些人脉,最终会成为你真正成功的助力。
逆袭法则:从“假装做事”到“真正做事”
“Fake It Till You Make It”的过程,从来不仅仅是“装”而已。它的更深层次的意义在于,假装自己的能力,直到你能够真正实现这些能力。而这个过程中,最重要的一步,就是通过“装”来激发行动。
举个例子,假设你刚刚进入公司,作为一个新人,你可能并不具备直接承担大项目的能力,但你可以通过装作“已经准备好接受挑战”的姿态,主动请求领导给你一些重要的任务。在这些任务中,虽然你可能会遇到困难和挑战,但你会发现,通过不断学习、努力和实践,你其实能够逐渐掌握这些技能,最终成为一个真正能做事的人。
这种转变并不是一蹴而就的,而是一个渐进的过程。你通过“假装”自己可以承担更大责任,最后真的承担了这些责任,并且做得越来越好。当你从外部的“假装”进入内心的“真实”时,你的职场竞争力将大大增强。
摆脱“装腔”困境,做最真实的自己
尽管“Fake It Till You Make It”是职场上一个行之有效的策略,但它并非万能。长期依赖“装腔作势”可能会导致身份迷失,甚至产生情感上的空虚感。因此,在职场的“装腔”过程中,最终的目标应当是通过提升自己的能力,真正“做”出成绩,摆脱对表象的过度依赖。
在你“装”成一个自信、成功的职场人之后,不妨逐渐开始寻找自己内心的真实想法,明确自己的职业目标,做出真正符合自己价值观的选择。这个过程中,外在的伪装和内心的成长应该逐步融合,最终让你在职场上不仅仅是一个“假装成功”的人,而是一个“真正成功”的人。
结语:职场的“伪装”是为了更好地成长
“Fake It Till You Make It”这句话,听起来可能有些浮夸,甚至让人觉得不太真实,但它实际上是一种职场中的生存策略。通过外在的“装腔”,你可以提升自信,获得机会,推动自己朝着真正的成功迈进。但最终,只有当你通过不断学习和积累,真正掌握了自己的职业技能,你才会发现,那些“假装”的外衣早已不再需要。
职场就是这样一个既充满竞争又充满机遇的地方。在这片“充满假象”的舞台上,假装自己是一位大咖,并不等于永远是个“假大咖”,而是通过一段时间的“装腔”,让自己在不断进步中成为那个真正的“大咖”。
来源:juejin.cn/post/7455749137974231092
程序员如何避免出纰漏?
这两天我们开发团队不知道咋的,跟包饺子下锅似的接连出了不少纰漏,有的大有的小,其实开发能力都可以,不是那种能力差导致的问题,我从外部观察,总结了一些出纰漏的原因和解决方案。
先说一下有啥纰漏。
- 小程序代码分包的时候,影响到线上正在使用的业务,损失了大概 1 晚上的流量。
- 上了身-份-证、人脸认证功能,测试回归的时候,测了不需要实名和人脸的场景,没测只需要身-份-证的场景,结果线上跑的时候用这个场景,导致功能也出了问题,用户反馈过来才发现。
- 错把代码提交到了 dev 分支。
看起来研发该死,但恐怕不全是研发的锅,当然我不是故意找理由,这些纰漏也是研发扛下来了,我只是尝试分析从更具体的原因分析,而不是简单的说一句能力太差、或者水平不够这样没法定位也没法改进的原因。
这些出问题的场景,无一例外都是很紧急的需求,开发加班加点做出来的,代码写的时候很匆忙,测试也是加班加点测的。
常在河边走,哪有不湿鞋?我觉得快和稳之间,对开发来说很难平衡,有些需求强行要那个时间点,最后只能牺牲稳定性求效率。
那怎么避免这种事情发生?
需求可以 delay,代码不能出问题
如果工作量实在大,那就先花点时间列举工作量大的原因。大部分领导其实讲道理的,你能像他说明工作量的确大,事项的确做不完,领导会额外给时间。
我觉得这是比只闷头写代码更有难度的事,也是一种能力的体现,这需要调研充分、思维清晰、表达有条理、和领导沟通的心理等等各项挑战。
只知道埋头苦干,但干不多不一定就是好。
万一要是真的只知道埋头苦干,那也要掌控好自己的节奏,一定要保证代码的质量,平时加加班,周末也来加班,通过拉长时间线的方式多写点代码,而不是通过偷懒、减少代码逻辑的方式。
加班的时候冒冒泡,留点记录,这样即使需求 delay 了,至少自己的态度表达到位了,一般领导也不会责怪。
需求这东西,delay 两天没那么恐怖,反倒是着急出了纰漏,那才是更恐怖的。
慢慢写
写代码很费脑子,要考虑到所有可能的异常场景,还要从业务上闭环,一着急,就容易漏场景,出纰漏,不要着急,细水长流。
想好再写
尤其是后端,新业务的架构设计,一定是要多花时间思考的,要充分考虑到业务的扩展性、未来的维护性、和其他业务对接的兼容性。
比如我最近写的京东商户订单支付,我们已有一套支付中心的系统,而在对接京东的时候,他们的支付其实是通过京东的订单状态回调来做的,我们一开始准备写在支付中心,后来随着三方接口的对接,对京东业务有更深的理解,我们决定做一套新的商户订单支付系统,和原本的支付中心(支付宝、微信支付)做区分。
如果我们当时匆忙的直接嵌入到支付中心,整个系统架构就会很混乱,订单和支付裹在一起,后续既不好维护,也不好扩展。
这样虽然需求有 delay 风险,但整体技术侧的方案,是绝对没问题的。大不了我周末来加班,加班都干不完,那就得赶紧汇报领导了。
包括最开始的人脸也是的,没有调研清楚,光阿里就两套不同的人脸接口,结果先用的贵的一套,后面发现有便宜的,又强行接入便宜的一套。如果一开始能多想想,先调研清楚,可能最后的工时反而更短一些。
专一写代码不要跳
写代码的时候,最好不要来回跳需求写,看起来很牛逼感觉也很吊,实际上很容易出问题,精力消耗太快了,有些场景思考不深入,就有可能埋雷。
决策和执行分开
如果开发过程中又做决策又做执行,尤其是干需求的时候,有的决策问起来吧很耗时间,需求到期上不了线了,就自己做个决策,没有告知其他人。这种场景的雷我也踩了几个。
开发对业务的理解不如运营产品深入,有时候开发觉得的最优决策不是运营想要的,最好不要为了图省隐蔽这些问题。
甩锅技巧
这部分是语言的艺术,就是当纰漏下来了,判责归自己,怎么表达,才是比较得体的。
一直说自己的责任吧,领导会觉得我很菜,一直推脱责任吧,领导又会觉得我不负责。
最好是那种和自己有点关系,但是关系不是那么直接的描述。
或是用于日常沟通,为了避免别人误把锅扣到自己头上。
我总结了同事们常用的有如下技巧:
- 首先主体对象不要说自己,比如分包的问题、锁的问题、分支的问题、没有这样的场景等等,避免说成我打的包有问题、我代码写的有问题、我分支切的不对等等。
- 先说一些撇开自己责任的话术,比如这里的代码没动过;之前还是好好的;这里用的外部接口的数据/逻辑。
- 接到莫名其妙的锅第一时间弹回去,怎么弹看 2 中的话术。我以前懒得弹,结果头上的锅越来越多。
挺瞧不上这些东西的,也不想花心思想,但有时候职场、工作、社会就是这么贱,人越是老实,就越容易被欺负;越能干活的人,最后会有越来越多的活;希望大家不要重蹈我的覆辙。
每天抽点时间学习和反思,加油,共勉。
来源:juejin.cn/post/7453023172226334739
不上班的这一年,我都做了些什么?
原文《2024年度总结,回顾迅排设计发展历程》,首发于公众号:品味前端
大家好,这里是茶无味的一天。
去年我突然决定裸辞,褪去天命打工人的身份,想拿出一两年时间来专注做一件自己想做的事情,开始了昼夜狂奔的工作模式。由于大部分时间都在搞开发,所以姑且就称自己为独立开发者吧。
时光荏苒,转眼间我就踉跄的踏入了 2025,无论成败,也必须对过去一年稍微做下总结了。
新年伊始,独立开发的道路即将走过第一个年头,这一年中我的故事围绕着「迅排设计」在展开,所以这篇文章就带大家回顾下这个项目的发展过程。
拉开序幕
三年前的一天,领导让我仿造一个稿定设计,这对于程序员来说实在太过陌生,我就说先去搜一下看看,然后傻眼了,当时只觉得这根本就是不可能完成的任务。
过了几天领导又来问,表示无论做成啥样都行,我说试试吧。于是就开始了全世界的统一操作:打开 Github,看看有没有现成的项目,拿来改改然后交差(何同学工作室点头表示这个我们熟)。还没来得及为自己的机智窃喜,我又傻眼了,当时搜遍全网后发现,开源的项目都是功能少 bug 多、界面还很抽象,能用的竟一个没有!
虽然我心底里在打退堂鼓,身体却很诚实,行动派的我还是决定做了再说,毕竟越难啃的骨头往往越有价值。而且我也意识到,这几年浮现的众多编辑器产品无一不在向我们证明:Web 前端可以做很多复杂且有深度的事情,这正是自我提升的机会。我这样想着,写下了项目的第一行代码。
从项目中搜索到的记录来看,保留至今最早的代码落款于 2021 年 7 月,彼时的我凌晨 2 点还在敲代码,而这样的夜晚至今也已数不清经历了多少个。
当然班还要继续上,平时仍是对接口、还原 UI 图的无味日常,然后挤时间出来做这个图片设计工具,连周末也在敲代码(我可不想在公司加班当工贼啊),一个多月后原型版勉强可用,当时就长这个样:
在这个过程中我收获不少满足感,最开始的自我怀疑便一扫而空,也默默担起了 Owner 的角色,决定独立撑起项目。
没有时间,我就跟组长沟通少排点活,不然在多个项目间来回横跳实在无法集中精力展开工作。
没有产品经理,我就把市面上所有能找到的在线设计器全都用了个遍,倒推关键的功能点,再逐一开发。
没有 UI 设计师,我就尽量把界面做得清爽。这好比人不会化妆和穿搭吧,那我凭什么想着艳压群芳呢,保持干净整洁给人的感觉也不会差的。
在经历三个月后,项目顺利上线。这便是迅排设计的前身了,如今回看当时功能界面都挺简单的,不过能看出来和上面那个丑到没边的是同一个项目吗:
然而上线后不久,项目就一直停摆。
由于公司业务长期陷入困境,加之大环境冲击业绩不断下滑,我们也开始掉进内卷的泥潭中挣扎。公司开始了严抓考勤、要求义务加班等操作,甚至取消下午茶、推迟发放工资,很快一批接一批的裁员,最后我也离开了公司。
2022 年中旬,我在掘金写了第一篇年中总结,也是第一次分享做这个项目的心路历程,有不少人开始在那时关注我,而我也是在那时候埋下了将项目开源的种子。
失业加上疫情,中间空白了很长一段时间什么都没做。大约一年后,我重启了这个项目,对代码进行了一些重构,并总结出海报设计的几大要素:图片、文字、创意和排版。
我们的编辑器旨在提供图片文字等素材的同时,更能帮助用户迅速地完成排版,因此取名“迅排设计”,在 2023 年 7 月正式以开源形式出道,项目英文名称:poster-design
项目开源两天后 Github Star 数破百,给阮一峰老师投稿被收录到其周刊(第 263 期):开源软件如何赚钱中,「迅排设计」开始被更多人看到。
此后开源中国等网站陆续收录了项目,HelloGitHub 收录为 2023 年度 JavaScript 热门项目(相关文章)。
2024 年 3 月还冲上过一次 GitHub Trending 全站热门,如今迅排已经被越来越多人所熟知....
未来计划
来聊聊开源的一些安排吧。
2024 下半年的重心基本是在商业版中,也就是迅排设计 Plus 的开发,其中做了不少差异化的更新。
其实迅排刚开源的时候,只是想着弄个在线网站才能更好地演示功能,后来我发现不少普通用户是真的在使用我们的在线版做图,于是萌生出一个想法,干脆就把C端 SaaS 平台慢慢做起来呗。
所以开源版渐渐独立,现在只是迅排设计的一部分,或者说是核心编辑器。
而在一开始做 Plus 商业版时,我也曾尝试完全基于开源仓库迭代,以保持两边同步更新,但发现行不通,而且也会被迫让往后的 PR 变得困难,后来便单独写了个服务端 Demo 让开源版脱机运行。
开源是自由的,我们欢迎并接纳任何代码提交和想法。
持续推动开源项目的发展也是今年的一项计划,我希望能让更多人参与进来,传递开源的价值。
另外今年也会更积极地与外部产品或开源项目建立合作关系,交换流量和增加曝光。2024 年几乎没有怎么推广过项目,发的文章集中在公众号和粉丝群,曝光度是比较低的。
Plus 版付费产品
为了满足企业数字化升级或转型的需要,我开始了商业版计划。由于这是一个前后台完整、大而全的项目,所以代号叫 Plus 版,这是过去半年多的工作重心。
商业化的核心是为客户提供价值或解决问题,在“能服务好客户”和“能给客户提供好服务”之间,我选择了后者。我认为前者谁都可以做到,所以后者更有价值。
考虑到迅排设计本身仍有很大的成长空间,所以确定了长期更新、不断完善这个主基调,为了能快速更新迭代,还专门建立了一套升级维护的系统体系。
在销售和服务了一些客户之后,我对自己的产品也有了更清晰的认识和规划。这期间版本和定价做了多次调整,现在已经明确就落地两套方案:
- Plus版:交付的是迅排设计的整套在线编辑器解决方案,提供一个让客户无需开发、迅速私有化搭建起和迅排一样强大的在线设计系统,包括提供技术服务(例如云升级和模板市场等)。
- Slim版:有些客户可能不需要大而全的项目,且更看重源码交付。那么我们提供另外一套灵活定制化方案,能够交付源码,但不会对项目精雕细琢,而是重点关注如何实现客户的核心目标。
当然客户最关心的通常是定价,而这也是一开始困扰我最大的问题。
普通产品的定价模型通常是成本 + 利润,但我们却无法这么做。因为软件开发本身是一项复杂的工程,且需要不断进行技术创新和产品研发,如果以传统的人力成本计算报价,可能会忽略市场和客户的需求,导致产品难以销售。
类似产品的大公司依靠人才供应链和多年品牌积累,维持住了自身的市场份额,他们的定价能一定程度反映市场需求,却很难直接拿来参考。
我们的商业化模式在市场的优势是什么呢?其实是自身技术和经验的积累。相比之下品牌价值和口碑还没做起来的时候,基本没有溢价资格,毕竟我们才刚起步。
事实上无论任何行业,基本都是从性价比开始、然后追求高品质、最后才能获得高溢价。十几年前外国对 "Made In China" 有着刻板印象,难道说是当时的中国企业不想做高端产品吗?凡事都需要一个过程。
所以我最终思考后决定完全抛弃利润,甚至让出成本,仅以技术支持定价,这样前期才好销售。
只要做好长期策略,并根据市场和客户反馈灵活调整,后面不断提升产品功能价值,提升差异化、服务满意度等方面来持续影响客户愿意支付的价格,慢慢还是有可能盈利的。
而现阶段迅排 Plus 企业服务的定价,实际上出售的也是信心。
随着近段时间产品功能的完善、以及初期客户的良好反馈,这就是我们不断建立信心的过程。
还有一些客户会提出更多样化的需求,很遗憾我做不了特殊定制化。能否把握客户预期也是非常重要的,相信所有小微创业者都一样,做预期不明确的事情无异于杀鸡取卵。
未来的路还很长,对于迅排自身发展的定位我基本锚定在两点:
- 不断优化现有产品,追求极致
- 挖掘细分领域需求,专注小众市场
SaaS 平台规划
我们的项目虽然是独立开发的,但其实不比公司做的产品差,可以满足大部分普通用户的日常做图需求。这半年来迅排设计官网一直在低调运营,并随着迅排 Plus 版的开发进程不断完善自身。
接下来迅排设计将致力于做免费在线创作平台,编辑器和平台的模板、素材图片、字体等均为用户免费使用!后续则是希望通过和 AI 等技术的结合,比如打造一些增值付费的智能化工具来盈利。
红海市场竞争激烈,做这个平台目的是想回馈忠实的粉丝。我希望能努力将「迅排设计」打造成小众领域中用户口碑最好的在线设计产品,所以也一直在刻意地放缓扩大市场。
目前平台有 3000+ 注册用户,我基本每周会抽空更新点模板,虽然不是设计师出身,但经手过上千张海报,多少也摸索出一点门道,目前还在不断学习中。至今共做了 400+ 模板与组件,预计今年网站可以完善到 2000+ 以上的模板。
随着平台使用人数增加,就要着手开发后台统计与数据可视化的功能了。目前的网站访问数据是用“不蒜子”这个插件统计的,可以看到去年官网总 uv 数 8w,总 pv 数 15w。
接下来为了平台更好地发展,将会在适当的时候进行一次数据清理,届时会在官网通知,所有用户的作品数据和上传文件可能被重置。
网站开销
最后来聊点别的吧,复盘一下我从三年前至今的网站开销一共是多少。
服务器 1 号购于 2021 年 7 月,配置 1h2g,带宽 2 M,是最早服务迅排的机器,当时购买三年花费是:¥247
服务器 2 号购于 2022 年 3 月,配置 1h2g,带宽 1 M,购买三年花费:¥177。当时打折随意买的,当测试机,好像没怎么用过。
以上两台机器均已“陨落”,没有选择续费(价格翻十几二十倍是常规操作)。所以后面又买了 5 年的 2h4g 3M 服务器,花费¥1080,这就是目前迅排设计服役中的机器。
域名最后一次续费花了 ¥79,当时用的还是 .com ,已经涨到 90 元(几年前买入时才 45 元),虽然钱不多但无法接受连年涨价,所以干脆换了 .cn,一口气买了五年 ¥181。(旧域名后来竟被菠菜网站买了去,法克!)
七牛云oss的流量费用,由于我没有上 CDN、且限制传输大文件,消耗比较小,算个 20 元让它有些参与感吧。
后面还买了阿里的那个 99 服务器,2h2g 带宽 3M,当个副机用。
247 + 177 + 1080 + 79 + 181 + 20 + 99
统计下来的总花费约为:¥1883
这就是我三年来的所有建站成本,其实正常的网站运维成本肯定是我的好多倍,只是我比较爱折腾,在网站的访问速度、图片字体压缩等方面也下了不少功夫,才勉强让迅排运行时表面上看起来毫不费力。
当然最主要还是穷,为爱发电靠的全是个人极致的“勤俭持家”~ 现在哪怕我不再花费一分钱,「迅排设计」也仍然能坚持运行至 2028 年 😂
不知到那时候我们能换上豪华顶配性能溢出的服务器吗?
来源:juejin.cn/post/7456641634506096651
给 7 年前自己的一封信
7 年前,我被培训机构 8k 高薪的幌子,骗着带款了 2w 块钱,签完合同的后,我才觉察到自己被骗了。
但是 Java 好像挺有意思的,我学得不错,班里有 40 多个人,最后只有 3 个人找到了工作,我就是其中之一。
于是我入行了 Java,我的第一份工作在去哪儿,很感谢当年的领导给我面试机会,要知道当时我只有高中文凭,HR 反复确认要我来面试吗?我的领导说来试试吧。
为了那次面试,我推掉了所有其他面试,我对自己说一定要拿下这个 offer,在去面试的地铁上,我还在准备,我甚至准备了万一别人不要我,我可以做些什么来挽回。
后来面试通过了。
我珍惜这来之不易的机会,努力奋斗,晚上 10 点多下班是常态,有次冬天加到 12 点,我走在路上看着满大街的雪,反射出白光照向天空,亮亮的一点也不像晚上,我也一点都不冷。
那真是段美好的回忆,但是一年半后,压力太大,我主动提出了离职。
我跳槽到一家私企,工资翻了一倍,而且工作内容相比较之前,轻松的要死。除了基础代码开发,我顺手把服务器、Jenkins 部署、发布脚本、gitlab、redis、测试和线上环境全搭了。
但公司业务没做起来,部门解散了。
我接着找工作,年底通过了 thoughworks 的面试,和 HR 约定好了开年就发 offer 去上班,接到电话的时候我在图书馆,真是开心死了,现在回忆起来也不经咧开了嘴,爷也是能去外企的人了哈哈。
但是造化弄人,过年期间疫情来了,我的 offer 没了。
后来找到了一家创业公司,我和 boss 聊的很合拍,入职后工作了一年多,他和福禄建立了深度合作,把我带了过去。
截止至今,我在福禄工作了四年多,现在我面临着和 6 年前一样的问题,我对工作有了不一样的看法。
人们把工作当成一个赚钱的方式,出卖自己的时间换取经济价值。当然这没有问题,但我相信我的 boss,我感谢他知遇之恩,这些年我一直尽力多做一些事情。
只不过我的能力和认知,没有到那个境界,做的是很多,但也做错了很多,方法不对,成长也不够。
直到最近一次线上事故,我被击垮了。这是我五年来,第一次滋生离职的念头。
放下了对 boss “报恩” 的想法,我开始再次思考,工作的意义、生活的意义、人生的意义。
这不是我第一次思考,虽然我到现在也没找到答案。
曾经我的生活一眼望得到头,事业上,35 岁前努力工作存钱,35 后有了一定风险,但应该还能再工作几年,只要任劳任怨,万一真没公司要,再想别的出路,什么出路,我也不知道,生命总会找到出路。
生活中,20 多岁结婚,过几年生个娃,然后赚钱养家,天天为孩子奔波,把孩子养大,尽量给他好的环境。
身边的同事、朋友都是这样的,他们也劝我这样,不要想那些有的没的。
但是我忍不住会想,那我呢?我把时间给了工作、家庭、孩子,我在哪里?
有多少人真的了解自己?我不了解,我不知道自己喜欢什么,擅长什么,未来想做什么,想成为什么样的人。
我只是随大流,别人做什么,我也跟着做。买房、买车、结婚、生娃,这些人生重要节点,我做的那么随意。
痛苦让我成长,让我反思。如果回到 10 年前,我会对那时的自己这么说。
人生的重大决策,一定要仔细思考
买房
不要买房,不要背 30 年带款。这会把人压死,让人不敢尝试,不敢探索,失去勇气。
有个房贷压在头顶,那种窒息感和压力,无时无刻不在消耗自己。
做任何经济上有关的决策,都会忍不住想到我还有房贷呢。
会错失很多机会,也会让操作变形。
买车
车也是个消耗品,买车要钱,养车也要钱。停车费、过路费、油费、保养、车险,每年怎么也要大几千上万。
如果车带来的价值不如车的支出,我建议直接把房子租在公司附近,走路上下班,平时有事打车。
结婚
我之前从未思考过结婚意味着什么,也是随大流的和一个女孩子谈恋爱,谈了几年差不多了,就结婚了。
结婚意味着,和一个人共度余生。
这种影响未来几十年的决定,我甚至没认真思考过一天。
所以请一定要认真思考,可能即使我怎么说也不能理解,第一次结婚都没什么经验。
具体点说就是不要因为父母催婚去结婚;想清楚两个人之间的大方向上能不能统一;想清楚自己想从婚姻中获得什么,能提供什么价值;不要因为牛牛充血一时冲动;情绪化的选择,最终都会后悔,并付出惨重代价。
生娃
生娃那简直是比结婚更要命的存在。
以我现在的认知,我真的不理解为什么要生娃。
知乎上各种各样的答案,没一个能说服我,什么觉得生活没意思造个娃;夫妻生活不和谐靠娃调节等。
如果觉得生活没意思,夫妻没感情,那是自己的问题,生娃只是转移了问题,而不是解决问题。
所以我的态度是在没有想清楚为什么生娃之前,不生娃。
买车、买房、生娃,就算决定要做,我也建议晚点做,趁年轻先把事业打顺。
事业
刚进社会,懵懵懂懂啥都不知道,哪家公司给的钱多就去哪家。这是对的。
然后努力工作,不要躺平,多赚点钱,多存点钱。
工作了几年以后,兜里有点积蓄了,能覆盖两三年的支出,就要开始思考了。
这份工作有前途吗?我喜欢吗?对我个人有什么帮助?能学到什么知识?可不可以试试别的工作?
选择什么工作,入什么行业。这也是影响未来几十年的决策。
我觉得不要把工作看成出卖时间换取收入,那样会觉得自己在给别人打工,在给别人做事,心很累,做的事也不咋地。
应该把工作看成能力训练场、大型实验基地、资源交换中心;通过工作提升自己能力,让自己更值钱,通过公司验证个人的方法,学习经验,整理方法论。
把技能和经验学到一定程度,就可以结合手头积累的资源,自己创业了。
以学会赚钱为目的,为自己打工。
现在新能源和 AI 是公认的有前景的行业,往这两个方向靠。
现在我处在有点积蓄,准备尝试新的方向,去和钱比较近的岗位,学习赚钱能力,为以后创业赚钱打打基础。
寻找人生意义
我想有钱了再思考这个问题,被生活压的喘不过气的人,天天为生活奔波,哪有时间想这些呢?
在没有找到答案前,认真生活,对自己负责。
空闲时间刷抖音,打游戏,到处玩,偶尔放松可以理解,一直这样不行,这不叫认真生活。
当然这不怪当事人,我之前也是那样的,下班和周末看直播,刷短视频,搞学习什么,不存在的。
直到近期的变故,我深入思考这些问题,到处找课找人学习,认知有了提升,做这些事变得理所当然。
这种转变就像之前是强迫自己每天必须写篇文章,做复盘写总结,用意志力坚持,很痛苦,坚持不了多久。
现在是就是想写了,有感悟,想找个地方记录,主动的写,认真的写。
希望我的经历可以给各位参考,尽快提升认知,趁年轻,还有机会。
不要等有了车贷房贷,还有娃,但被裁了,或还没被裁但被当牛做马使劲压榨,而自身却没了任何反抗资本,才幡然醒悟,那样太残忍了些。
加油,共勉。
来源:juejin.cn/post/7458954918590988328
2024年,30岁前最后一次年度思考
没错!95年,还剩几个月就奔三了。2024年,注定是人生中意义非凡的一年,忐忑、裁员、出书、求职、转正这几个词贯穿了一整年。
忐忑
在上一家公司时,我从面试开始和到入职半年转正后,其实内心对于公司的状况一直保持一种忐忑不安的心情,这种感觉跟我老婆说过几次,我们一致认为应当有心理准备。原因在于薪资与公司的组织架构、基础建设、日常工作量安排和人员扩充速度都让人感到迷惑。
公司是在一个包括高层话事人不断更换,高层(副总裁)突然接受停止调查;技术部门仅仅作为辅助,技术氛围低沉,基建缺失,直属leader作用甚微;工作量与人员匹配失常,人多活少,尽管如此年初还在不断扩招中,泡沫感极强,伴随着薪酬发放日漂浮不定,每到月底像是在开盲盒,你永远不知道银彳亍卡何时会有一笔款到账。
裁员
一系列薪酬制度改革和薪酬拖欠不得不怀疑高层战略的正确性,直到四月某一天CTO私聊我,泡沫破裂,裁员尘埃落定。
我被归属于第一批裁员名单中,与CTO交谈中,似乎也流露一丝对高层决策的不满,但没有明说,给我的理由是当前工作任务都很简单,匹配不了我的能力,所以给了我一个名额。
这放在当时听上去有些许意外,但我接受了这种措辞,并不是因为CTO说了几句好听的话,更多是我作为一个技术人的直觉认为这个CTO靠谱。离职过程中对人事提出的补偿计算方式以及分期发放,我都拒绝了,最后经过与人事反复讨论之后拿到了补偿,少不了他的协助,所以内心表示感谢。从现在的视角看来,似乎是他已经意料到公司的发展趋势,以致于后来被裁员的人有很大一部分都没有赔偿。
出书
离职后我在家休息了一个月,期间也为了帮一个粉丝忙,接手了他工作的一部分任务,主要是做游戏业务的动画。期间有被一个后端恶心到,业务不熟悉,接口一直不通就算了,关键还理直气壮说是前端问题;我佩服那个粉丝能够忍气吞声这么久,换做其他人也很难不高血压,为此特意发圈宣泄。
由于后端提供的接口迟迟不通,需求没有预期上线,为此他们老板还大发雷霆,最后把锅推给了这个前端粉丝,声称把他给炒了。没过一个月,粉丝的这个公司被帽子叔叔查封,业务涉及到了灰产,老板和负责人进去了。员工的工资都没发,但我的报酬是因为签了合约,在deadline之前要求他们打款,对我没有影响,这是苦了这个粉丝。
在此之后我便全职写书,《NestJS全栈开发解析:快速上手与实践》 这本书临近结尾,我一鼓作气完成了并在5.1号劳动节那天交稿;写书的想法也有一部分是来源于CTO的启发,后面图书审阅也是找了CTO帮忙,熬夜帮我看完并给了这个评语,为此我很感谢他。
经过几个月的审批和改稿,图书在9月份正式发布了各大平台,这是一件值得高兴的事情。
而对于前司的后续,据说后面还搬到一个CBD进行办公,但当时员工已经欠薪几个月,以至于到年底,公司被迫全员原地解散,很遗憾这不是一个好结果。
求职
交稿完成后,花了一个月左右时间求职,拿到了3个offer,最后选择了去深圳的美图,这是凭借NestJS的图书写作获得的一个岗位。之后由于组织架构变化,我在转正前夕面临选择继续从事Node全栈还是Go语言开发,考虑一番后我选择了后者,顺利转到了后端架构组,负责go语言开发,这对我来说又是一个新的尝试和挑战,我选择了这种变化,与框架和语言无关,只不过是践行我的人生哲学:【不断变化】,让自己处于一种长期乐观、短期痛苦、当下快乐的舒适区边缘中。
觉醒
关于成长,过去我一直不喜欢看历史,或许归根于上学时代对于历史学科的厌倦,没看过基本历史文献。2024年底,我看了教员的《毛选》、《实践论》、《矛盾论》、《寻乌调查》,第一种感受是成功绝不是偶然,环环相扣的逻辑能力令人惊叹。我想这些书籍回答了我一直以来的问题:
如何成为一个独立、深度思考的人?
我们人生中做了一个坏的决定,在股市中选择了不争气的股票,最坏的结果无非是让自己从头再来。但革命不同,选择错了就有可能让整个民族处于被毁灭的境地中,每一步都步履蹒跚,这该有怎样的智慧与思维?
第二种感受是遗憾没有早点开悟,在临近30岁时才开始阅读这些书籍,当然也很庆幸没有太晚,一切都来得及!
特别的是,《寻乌调查》报告里面的细节,应该是我人生中读过的一本最详细的一本书籍,里面还记载了寻乌与我老家(兴宁)相关的历史宜了,没有一句多余的,都是干货。第一次感受原来伟人离我这么近。
教员做了这个调查报告之后,便留下一句千古格言:没有调查,就没有发言权!反观自身,何尝不是应该这样呢?
关于家庭,今年整个过程中家里的大大小小的事基本上都是我老婆操办,为我们的小家默默付出了很多,加上我去了深圳之后,我的衣食住大部分也是她来打理,一个人照顾小孩,现在甜筒一岁半了,如我们所愿健康成长,这隶属她的功劳。
一个家庭要想变好,靠一个人努力不行,需要“拉拢”有能力的人一起,话事人脑子要清醒,能够明辨是非,唯唯诺诺绝对是会出问题的。
一个家族要想变好,靠一两个人不行,得靠一两个家庭真正向好,大家庭才会有希望。
最后,没有Flag,年度总结中对未来进行遐想没有意义,沉浸于自己完成所有Todo List的那种兴奋是虚构的,而实践中那种痛苦、无助才是我们最真实的感受,人不能总活在无限遐想的递归当中
。
我看过那些在新年Flag列举诸多愿望,买了一堆书籍想要读完的,来年能真正落地完成的少之又少,毕竟我亦如此。
2025年,爱自己,爱家人,步步为营,不负将来!祝所有支持我的粉丝朋友们,一切如意,事业感情双丰收~
来源:juejin.cn/post/7455282891535302708
我为什么选择成为程序员?
前言:
我选择成为程序员不是兴趣所在,也不是为了职业发展,全是生活所迫!
第一章:那年,我双手插兜,对外面的世界一无所知
时间回到2009年,时间过得真快啊,一下就是15年前的事情了,15年前我刚小学毕业,在此之前我从未接触过电脑,电脑对于我来说是个遥远的“物件”,从未用过电脑,也从来没想过电脑会给我的生活带来什么改变,还记得初中第一次去电脑室上电脑课的时候,我连电脑如何开机都不知道,班上条件好的同学,或者那些“不乖”的同学会去网吧玩电脑游戏,可能了解一点电脑,对于我们这种家里条件不好的,相对也比较“乖”的同学来说几乎没去过网吧,电脑可能也就是出现在书本里的知识,第一次去上电脑课的那种兴奋以及到了电脑室以后连怎么开机都不会的尴尬,现在都还历历在目!
我对上网没什么兴趣,主要是老师和父母反对,自己也没什么钱,唯一能接触到电脑的时候就是上电脑课的时候学一下怎么打字,我学会玩的第一款游戏叫做“蜘蛛纸牌”。
在我的印象里,那时候的电脑还是用的window xp系统,那是我对电脑的最初印象。
老家的紫外线强的让人想死,我的父母每天顶着烈日劳作,皮肤被晒的黝黑,三十岁的他们却苍老得像五十岁一样,但是一年下来却挣不到几个钱,开学前是最难熬的,因为父母经常会为了凑足我的费用而不断争吵,那时候的梦想很纯粹,能正常上学,能多有一点零花钱,能吃饱饭,以后长大了不用再下地干活(我真的很讨厌晒太阳),电脑这种遥远的东西,我真的没有想过我能拥有它!介于当时的生长环境,怎么也想不到以后的我会和程序员这个行当有任何的交集。
第二章:命运的齿轮开始转动
整个初中能接触到电脑的机会不多,到了初二和初三电脑课也被停了,老师给的解释是“这东西不考试,我们要把精力花在刀刃上!”
所以我也全身心投入到文化课中,这时候对我来说也没什么影响,因为我本身对电脑也"不感兴趣",中考结束以后我的成绩还算理想,考上了市里一所还算可以的高中,学校的配套设施很完善,老师讲课都使用电脑,课间休息的时候经常使用,电脑看篮球比赛,放假的时候别人都回家了,我们就几个同学留在学校,一起用电脑看电影,有什么问题就会用电脑去网上搜一下,我们的数学老师天天用电脑玩"三国杀"这款卡牌游戏。
我们也会经常用电脑下载音乐,电影之类的东西!我离电脑的距离也越来越近了,但是那时候电脑对于我来说只是一个娱乐工具,并不知道他能给我带来任何的经济价值,那时候的我打字还是用一根手指,这个习惯一直保留到我上大学接触到英雄联盟这款游戏!这里先按下不表,后面我再说这个事。
第三章:歪打正着之面向薪资选专业
不要和穷人谈理想,因为穷人已经尝了很多生活的苦,不习惯理想这么甜的东西,会让他们水土不服!
时间来到2014年的七月,那时的我刚经历了一场失败的高考,感觉人生非常的暗淡,我想到复读,可是父母没有什么文化,他们听了很多,“本来考上了,复读一年没考上”的故事,死活不让我复读,因为他们觉得我已经考上一本了,已经很好了,复读反对,再加上自己家里如此贫困,我也只能选择去报志愿,我选志愿的策论很简单,就两个:
1.那些学校是一本学校且招的人数多
2.哪些专业毕业以后收入高!
上网查了一圈后很多人都说通信工程和网络工程毕业以后薪酬待遇相对较高,我也不知道是真是假,我直接把所有学校的所有拍在全面的专业都写成了通信工程和网络工程!我上大学了,并且上了通信工程专业,这是我新的开始,从此以后我将会经常以电脑为伴!
第四章:划水的大学生涯
大学下学期我开始接触编程,我接触了第一门编程《C语言程序设计》,
这时候我也有了自己的个人电脑,大部分时间电脑还是被用在娱乐上,偶尔也会用电脑做写实验课的作业,外加一些电脑的基础课是需要考试的,这时候我几乎每天都要花时间去接触电脑,很多的电脑软件安装了卸载,卸载了又重新安装,也有一些电脑软件虽然安装了但是一直没用过。“差生文具多”,这句话绝对有他的道理!
不管你承不承认,农村的孩子和城市的孩子始终是有差距的,比如在对电脑这一点就很有差距,城里的孩子接触的早,所以长大了学习电脑方面的知识也更快,农村的孩子起步比较晚,所以我到了大学学编程就会感到”水土不服“!学习编程我感觉是很痛苦的,很多时候我学不懂,导致我更没什么兴趣了,所以我的大学生活学习基本上都是在划水,基本上都是60分飘过,或者给老师发短信,求老师让我过,编程课基本都是靠背,硬是把编程学成了语文,操啊!这种痛估计只有学渣才能理解得了!
但是这个时候我入坑了英雄联盟,这款游戏好玩,但是也很气人,我经常会在游戏中和别人对喷,每次和别人对喷我都因为自己一个手指打字,被别人骂的气死,为了和别人对骂不落于下风,我改掉了自己一个手指打字的习惯,慢慢的,我打字速度也变快了,从此别人要是骂我,我就骂死他,成了真正的键盘侠!(当时我一般不会主动骂人,也不会在网络上和别人对线,只在游戏里和别人对线)
第五章:放弃吧,少年
可是我也知道,日子不能这样过呀,像我这样的孩子,我能靠谁呢,反正编程是学不进去了,那就想别的法子吧,于是我就尝试别的出路,我去做过很多兼职,去图书馆当图书管理员,去发传单,去来着三轮车给别人送水,也自己做过一些小生意,当学生开学的时候我们室友就会去进货,搞一些新生用品来卖,赚点生活费,同时也是为了锻炼自己的能力,印象最深的是,大二的暑假,那个暑假我没有回家,我做了一份有挑战的兼职,你可以理解为销售,个人对商家销售一些产品,然后我们再从公司赚取佣金,没有底薪,没有提成,只有佣金,我搞了一个假期,没卖出一份产品,每顿都吃一块三一碗的热干面,我真的吃吐了,后面我看到热干面我都干呕!
第六章:少年,回头是岸
这个暑假的经历,让我不得不思考,我是否真的适合做销售这份工作,编程虽然难,但是学好了确是一辈子的手艺,古人云:“天旱饿不死手艺人”,于是我又硬着头皮开始学,可是学什么呢?那时候Java比较流行,而我又刚好有一门课就是Java,刚考完没多久,还有一些印象,于是我就每天学习,误打误撞的终于在毕业的时候找到了一份软件开发的工作我,我也顺利成为了一名Java程序员!
终章:回望过去,全是无奈
我不是一个有梦想的人,也不是一个很有规划的人,成为一名程序员既不是我的兴趣爱好,也是不起球为了职责发展,只是在贫瘠的环境中,让我时刻需要为了自己生计发愁,为明天的饱和饥而担忧,如果可以的话,我也愿意一双拖鞋,一条短裤,几串钥匙,每逢月底收收租,躺在沙发上,喝着绿茶,摇着蒲扇,好不快活!然后告诉我的朋友们,真羡慕你们能够出门闯荡,长见识,我在家可太无聊了,所以我喝了好多绿茶!
来源:juejin.cn/post/7356485240804606006
人类发财指北
·人永远不可能通过出卖时间来致富,不管你是医生还是律师,一个小时几百美金还是几千人民币,这是一个简单的算术问题,人一天只有24小时,你拿计算器把下半辈子所有可以卖的时间都算上,依然达不到「富」。
·出卖时间有很多种不同变体,比如个体户/自由职业者虽然摆脱了为雇佣者上供剩余价值的命运,但是自身承担市场风险与接案的波动,工作流无法自动化,本质上还是出卖个人时间,时间从哪里来,牺牲健康牺牲睡眠。
·不管你是什么title、在什么有名的地方工作、福利有多少、西装有多贵,只要还有别人来告诉你你需要在什么时间出现在什么地点,你就还是一个奴隶,如果你已经是大老板,每天必须参加数个会议,那你就成了自身事业的奴隶。
·开会毫无意义
·钱其实就是大风刮来的,对于大部分自立的成功人士来说,「变富」过程本身就是几年光景,只是事先耕耘了许多年,但是刮到哪也不会刮到上班族那里,因为就算刮到了,上班族也没有时间弯腰捡钱,因为上班族的时间已经为了每月的固定收入,已经卖光了。对一个佃农来说,天上掉钱你也没法弯腰捡,因为你在弯腰刨地。
·人类脱离金本位已经很久了,「钱」只是一个符号,今天的钱拿回原始人社会毫无价值,这个符号只在共同相信的人群中有意义,不存在独立于「人类社会网络」的钱,钱是一种人与人关系的总合,财富是个人对社会其他个体所「做功」的标记。
·人类整个经济在走向虚拟化,并且从很早以前就开始了,曾经人们买DVD不是为了那张光碟本身,是为了上面的内容,而现在随着互联网的发展,「内容」的发行投放已经变得无比方便和正常。
·任何从零开始发家致富的过程总结下来都是「为社会其他成员提供想要但一直没能得到的产品」的过程,这总是和人的欲望高度相关,所有受欢迎的产品都是某种欲望的载体。你满足他人的欲望,让他人感觉良好,他人就会回馈你。
·世界上几乎没有任何事情是线性的,在所有的领域都存在「效应放大器」,在某一个阶段/时机/领域做一倍的工作,会有百倍的回报,真正重要的东西总是很少的。如果还没有找到某一个「效应放大器」,有一个,每个人都有,那就是「把时间放在重要的事上」,刷短视频十分钟和运动十分钟同样是十分钟,但效用是完全不一样的。
·赛博时代会逆转工业时代所留下的很多印记,比如8小时工作制,集体劳动,打卡,一日三餐,企业雇佣制,以及养老金。工业时代需要抹杀个体的特色和想法,投入集体劳动,积累剩余,赛博时代则会解放个体特色,或者说个体特色本身将会是盈利的关键。人很难被标准化的冷冰冰工业品感动,但人会被另一个人类感动。
·人们会需要工作更多年,因为人类的寿命延长了,青年、中年、老年每一个阶段都延长了,可能性也延长了,这一代的人类大概要活到110岁,职业的转换也会变得更频繁。
·赛博时代的赛道是无限的,因为「内容」和「产品」的界限模糊了,而内容可以是无限的,只要加一点新花样,就又是新的了。
·财富不是「零和游戏」,意即如果你需要赚一笔钱,那必须坑害他人这一笔钱,这是金本位农耕时代生产力上限固定后的思维。
·人口其实是影响发财最大的要素,因为财富本身其实等同于其他社会个体的一种投票行为,财富的创造和成立都只是一个在人与人之间成立的游戏,而人口本身不复存在,就意味着音乐没有听众、电影没有观众、明星没有粉丝、产品没有消费者、培训没有学生,没有了人本身市场就不复存在了,一切将自然凋零。
·地球上的一切资源都来自太阳,植物、动物、煤炭都是太阳能的不同固定形式,太阳一天对地球的照射相当于5085亿吨煤完全充分燃烧的能量,这些能量可以供全球70多亿人口使用24年。
·人类的财富总量在增加的最好证据是:肥胖人数的增加。因为人体的脂肪也是一种太阳能,能量从太阳到动植物,再到人体内。肥胖人口增加说明出现了总体剩余。
·「经济上行」和「经济下行」都不是一种客观的现实,它只是一种集体幻觉,因为经济运作依赖于「预期」,而「预期」其实只是人的一种心理感受。从这个角度来说,其实就是悲观的人越多,越下行。乐观的人越多,越上行。一切只是一种心情而已。
一切只是一种心情而已。
来源:juejin.cn/post/7362078214381600806
DeepMind天才科学家疑抑郁自杀!41岁SuperGLUE之父英年早逝,AI圈悲痛不已
就在刚刚,一个令人悲伤的消息传来。
谷歌 DeepMind 研究科学家 Felix Hill,于 2024 年 12 月 5 日英年早逝,年仅 41 岁。
自 2023 年初以来,他一直在与严重的精神疾病作斗争。期间,他表现出了重度抑郁和严重的自杀倾向,终于还是没有扛过去。
Felix 是一位学术成果颇丰的 AI 学者,谷歌总引用量为 19680,参与创建了自然语言理解基准 GLUE 和 SuperGLUE。
Felix Hill 本科在牛津大学学习数学,随后在剑桥大学拿到了语言学硕士学位,和计算语言学博士学位。
毕业后,他曾有 8 个月在高中担任数学老师,随后进入谷歌 DeepMind,当了将近 8 年的 AI 研究者。
消息传来,他的 AI 圈好友无不表示悲痛和难过。
1 月 11 日,Felix 的葬礼将于伦敦北部举行,届时将进行现场直播。
许多认识他的人悲痛地留言说:Felix 是一个很特别的人,超前于这个时代。
左右滑动查看
最令人心碎的博客
是什么样的原因,让这样一位成果丰硕的 AI 学者的生命逝去?
他生前的一篇博客,揭露了许多细节。
他详细描述了 2023 年母亲离世后,正在精神病院接受治疗的自己症状更严重了。接下来的 12 个月内,他更是陷入极度焦虑和自杀的抑郁状态。
他也写道,自己当初投身 AI 研究并不是为了赚钱,但 AI 大爆发后,自己仿佛被迫进入「战争」状态,写论文、搞研究、创业,都令人压力重重,找不到出路。
即使积累了大量财富,自己也依然出了问题。
英伟达高级研究者 Jim Fan 读完悲痛地表示:这是我读过最令人心碎的博客,因为它如此真实,如此贴近内心。
Jim Fan 表示,AI 不应该是 200B 权重的压力和痛苦。
曾经,这是一个充满咖啡因带来的灵光乍现的地方,是令人兴奋的深夜 arxiv 探索之旅,是能让研究者脸上露出笑容的绝妙想法。但所有涌入的资本和关注,似乎正在迫使每个人竞相逐底。
黄仁勋经常对员工们强调,不要用「打败这个,碾压那个」的措辞。因为大家的目的是为了提升整个生态,而不是让任何人陷入深渊。AI 学者的工作是做大蛋糕,越大越好,然后再分配。
AI 不是零和博弈,事实上,它可能是人类有史以来拥有的最正和的博弈。大家应该做的,是向竞争对手传递爱意。
Jim Fan 写道,虽然并未有幸在现实生活中认识 Felix,但自己很喜欢他的研究品味,为他的每一篇新论文都设置了 Google Scholar 提醒。他在 AI 智能体和 VLM 方面的工作也对自己影响很深。
「他本应该成为一个很好的朋友。我想认识他,但现在已经不可能了。」
「安息吧,Felix。愿来世你不需要去战斗。」
2000 亿权重的责任:现代 AI 工作中的压力
下面这篇博客中,Felix 详细回顾了 AI 爆火的几年,给自己的生活带来的剧变——
过去两年,AI 领域发生了不可逆转的变化。
ChatGPT 的月活数接近 2 亿人。Gemini 在 2024 年 5 月的访问量接近 3.2 亿次,AI 爱好者现在可以使用 AI 微波炉、AI 牙刷,甚至 AI 足球。
然而,对于我们这些在 AI 领域工作的人来说,这种大众兴趣的激增既是福也是祸。
诚然,薪资水平上涨了,股价和市值也随之提高。但另一方面,这种变化也带来了独特的压力。
这篇博客讲述的是现代 AI 领域的压力。它面向所有在 AI 领域工作的人(按保守估计,现在全球人口中大约有 87% 的人在从事 AI 相关工作),特别是那些从事 AI 研究的人。
最终,我希望通过讨论 AI 研究中的压力源,让我们这些有幸在该领域工作的人生活得更快乐一些。
因为,尽管目前一片混乱,这仍然是一个美妙而充实的职业——它有潜力解决科学、哲学乃至人类本身的诸多重大问题。
无处可逃
几个月前,我参加了一个朋友的 40 岁生日派对。在那些我不太熟悉的人中,我注意到一个奇怪的现象。
尽管我那时身体不适,而且明显不太想讲话,但我周围还是形成了一个包围圈,原因仅仅是,大家知道我在 DeepMind 上班。
而且,他们想聊的不是足球或 80 年代音乐,恰恰是我最想避免思考的主题——AI。
虽然很感激这么多人对我的工作感兴趣,但这也提醒我过去两年发生了多大的变化。
银行家、律师、医生和管理顾问都想听听我对 ChatGPT 的看法;虽然很少有人声称在工作中直接使用了 LLM,但他们确信,AI 领域正在发生一些他们应该了解的事情。
作为一名研究人员,我相信你也能体会到这种在社交场合无法放松的感觉。
但情况更糟。就连在自己家里,我也找不到安宁。
我早已不再看新闻,因为害怕引发焦虑。但即使是在看足球、VH1、蒙塔尔巴诺探长,或者那部出色的《那不勒斯四部曲》改编剧时,广告中也充斥着与 AI 相关的内容。
在这段时间,我时常幻想着收拾行李,跨越大洲去加入一个隐居群体。但很可能连内观禅修(Vipassana)也被 AI 渗透了,这不会让我惊讶。
无形的竞争
几家大公司竞相开发最大、最好的 LLM,这一事实本身就令人压力重重——无论你为哪家公司工作。
现在从事 AI 研究,感觉就像参与一场战争。希特勒和达奇 · 舒尔茨的例子告诉我们,参战可能导致精神病态、离婚和自杀等严重后果。
当然,我并不是要把参与 AI 研究等同于参与真实战争,但我的亲身经历却表明,这种类比是很真实的。
关乎底线的工作
通常,业界的研究人员并不习惯于自己的工作对雇主的底线产生直接且即时的影响。
当然,许多研究人员都梦想能够产生这样的影响。只是以前,这种机会可能是十年难遇。
如今,对 LLM 基础研究的结果,往往只会对模型性能产生微小、短期的波动。然而,由于公司估值与 LLM 性能(难以分割地?)挂钩,这些波动可能导致股价出现数十亿美元的起伏。
这种动态令人倍感压力,而且这也不是 AI 研究人员在研究生阶段、博士后期间,甚至在 2022 年之前的工作中所能预料到的。
**钱,**钱,还是钱
大多数 AI 研究人员,尤其是我们这些超过某个年龄的人,当初投身研究并不是为了赚钱。
做自己热爱的工作还能获得丰厚报酬听起来是个完美方案,但这也可能引发强烈的焦虑。特别是当推动你收入增长的外部因素不在你的控制范围内,且 / 或者这些因素让你对工作的热爱程度大不如前时。
无论 AI 是否与此有关,突然积累财富可能会导致各种问题,看看那些经过多年努力终于成名的演员或歌手就知道了。成瘾、感情破裂、友谊破碎,甚至自杀只是一些较为常见的症状。
这些症状,我确实都感同身受。
科学家角色缺失
LLM 的规模、简单性和有效性使得做出「相关」的「科学研究」变得困难,这里的相关指的是能立即改进 LLM。
领先的 LLM 研究人员已经开始认同 Rich Sutton 的「苦涩教训」:除了规模之外,几乎不需要任何创新。
而且,即使理论上可能存在实质性创新,实现它往往需要在不同条件下反复训练最大规模的 LLM。这甚至连最大的公司都负担不起。
对于一个「普通」的研究科学家来说,这感觉简直令人绝望。
对于习惯于在 5 至 10 人的小团队中工作的工业界科学家来说,这些已经很艰难。但学术界的人所遭遇的无疑更加严峻,比如那些博士生、博士后和 AI/CS / 机器学习领域的教职人员。
发表论文
虽然学术界的人可以(也应该)继续发表从 LLM 实验中获得的见解,但对于工业界的科学家来说,发表论文的问题就没那么明确了。
发表论文一直是科学过程的内在组成部分,也一直是 AI 研究的核心原则。我接触过的大多数 AI 研究人员,特别是研究科学家,都同意我的观点:发表论文是我们职业生涯的关键。
但是,至少在工业界,过去 2 年来,研究成果是否能够发表的问题变得越来越不明确。能够改进 LLM 的小技巧可能等同于 LLM 之战中的关键武器。将这些秘密公开是否对资助研究的组织有利,这始终是一个需要深思熟虑的问题。
这一切都意味着,研究人员经常对自己想法的前途毫无把握,至少,这会对我造成巨大的压力。
创业公司
当然,摆脱这些困扰的一个可行出路,就是规划科研方向,筹集资金并成立创业公司。事实上,目前 AI 创业公司(无论大小)的激增表明有多少科学家选择了这条路。
但成为创始人并不能必然地规避相关压力。
众所周知,创业的压力也很大;即使在当前投资者热情高涨的情况下,许多资金充足的 AI 创业公司仍然失败了。
我知道,成为创始人是一段特别孤独的旅程。这无疑是当下雄心勃勃的科学家们的一个可行选择,但这既不会让做研究变得容易,也不会减轻压力。
为什么要写关于压力的博客
过去两年在 AI 领域可谓混乱而疯狂,而对我个人而言,这更是一段特别动荡的时期。
2023 年 4 月,我的母亲在与阿尔茨海默症长期抗争后离世。那时的我正在精神病院接受治疗,因为出现了严重的精神症状,其中压力很可能是重要诱因。
在接下来的 12 个月里,表面上我是在康复中,但实际上却陷入了极度焦虑和自杀倾向的抑郁状态。
所幸在这期间,我遇到了非常理解我的处境(以及认可我对公司的价值)的雇主,他们一直为我提供治疗和精神上的支持。
经过另外 6 个月的重度抑郁之后,我的状况开始好转,最近也感觉自己有能力写下这些经历。
我深刻地认识到压力和焦虑是密不可分的;事实上,它们本质上可能是同一件事。诚然,像任何适应性特征一样,焦虑有时也能带来积极影响(比如提高生产力),但一旦焦虑变得失控,后果可能相当严重。
正是在尝试重新学习如何成为一名 AI 研究员的过程中,回顾 AI 领域这两年的发展,让我获得了这篇博客中所分享的见解。
诚然,仅仅分享这些见解并不能从根本上解决问题,但在最艰难的时期,能给我带来希望的少数事情之一就是意识到我并不是一个人在战斗。
如果你现在也在经历类似的困扰,请记住——你并不孤单。
社交焦虑
我已经讨论了当前从事 AI 研究的人可能遭受的诸多压力或焦虑的诱因。
然而,还有一种压力我尚未提及,这是因为我很幸运从未亲身经历过。我对它的了解,完全来自于与朋友和同事的深入交谈。
这种压力就是社交焦虑。
据朋友们反映,那些有社交焦虑的人往往会觉得群体互动充满挑战。在现代 AI 领域,这是一个格外严峻的挑战,因为大型项目团队和大规模的(通常是跨洲际的)协作已成为必需。
目前行业中的高流动率更是雪上加霜,因为已建立的团队(通常作为社交「安全网」)可能在一夜之间解散瓦解。
人员流动还可能引发信任危机,因为曾经可靠的伙伴可能会转投竞争对手的研究团队。
值得欣慰的是,社交焦虑和我此前讨论过的所有焦虑或压力表现一样,都是可以克服的。克服的第一步是培养以家人和「非 AI 圈」朋友为主的自然支持系统。
而关键的第二步,则是我们所有从事 AI 工作的人,都要开始并持续保持关于压力的坦诚对话。
因此,诚挚邀请你在社交媒体上分享自己的经历和感受。让我们携手努力,不仅将 AI 研究打造成一个充满活力和智力挑战的领域,更要使其成为一个充满同理心和善意的温暖家园。
AI 大佬发长文缅怀
Contextual AI 首席执行官 Douwe Kiela 发文表示,我真的很难过,我亲爱的朋友 Felix Hill 离开了我们。他在世界各地有很多朋友和同事。为了让更多人知道,他的家人希望我们分享这个网页,一起纪念他的一生:
EPFL 教授,前 DeepMind 研究科学家 Caglar Gulcehre 表示,听到 Felix 离开我们的消息,真是令人心碎!
他回忆道,「我第一次见到 Felix 是在蒙特利尔读博二的时候。那时候,我正经历抑郁症,头两年的生活很难熬。我搬到一个新国家,再加上冰天雪地的天气,让我感到特别不适应。
Felix 总是充满活力,乐观开朗。但有时候,你很难知道别人生活中正在经历什么。所以,对他人多一份理解,不要轻易下结论很重要。或许他们可能正经历着不为人知的困境。可惜的是,很多人仍然低估了心理健康的重要性。
寻求帮助并不是软弱的表现。刚到 DeepMind 工作的头两年,我的父亲突发心脏病,后来还失明了;我的姐姐也被诊断出癌症。那时候,我又搬到了另一个国家。如果不是寻求了专业帮助,我不知道自己该如何应对这一切。
无论何时需要帮助,都要勇敢去寻求。我很感激身边有许多支持我的人,在困难时期给予了我很大的帮助。如果心理状态不佳,很难在工作上取得成功。向 Felix 家人致以深切的慰问」。
DeepMind 研究科学家 Andrew Lampinen 发文怀念其这位曾经指导过自己的导师——
Felix Hill 是一位非常出色的导师——偶尔也是我的冬泳伙伴。我能加入 DeepMind,以及形成如今做研究的方式,很大程度上都要归功于他。都过去一个月了,我还是觉得难以相信他已经离开了。
Felix 在选择研究方向上有着超强的眼光,而且直觉特别准。每当遇到新想法,他总会表现出孩子般的热情和好奇心,还特别幽默,能够与他一起工作真的让人备受启发。
他也特别看重跟他共事的每个人。在我刚到 DeepMind 的时候,他和 Jane Wang 一起把一群超棒的人聚在了一起,比如 Stephanie Chan、Aaditya Singh、Allison Tam,还有其他很多朋友和合作伙伴。
不过他也经历过一段艰难时期,尤其是最近这几年。我最后一次和他聊天是在他离世前大概一个月,那时他跟我分享了一个雄心勃勃又有点疯狂的项目想法,让我仿佛看到了他当年的影子。但那会儿我太忙了,一直没有再跟进,直到现在为时已晚,至今这件事让我特别后悔。
纽约大学计算机科学和数据科学教授 Kyunghyun Cho 更是写了一篇长文缅怀逝者——「再见了,Felix」。
文章地址:kyunghyuncho.me/bye-felix/
这段文字写于 2024 年 12 月 9 日,但当时我既不愿意也无法接受所发生的事实,所以一直没有勇气发布。即便到现在,每当想起这件事,我的心仍然隐隐作痛。我选择在 2024 年的最后一天发布这段文字,以此缅怀 Felix。
时间回溯到 2014 年初夏。我当时在蒙特利尔大学担任 Yoshua Bengio 教授的博士后研究员,而 Felix 是一位刚刚抵达蒙特利尔的访问学生。
那时,我正在致力于开发一个能够处理长句子的神经机器翻译系统(Neural Machine Translation,NMT),为此我尝试了所有能想到的方法(注意力机制当时并不在其中,直到同年夏天 Dima Bahdanau 作为实习生来到蒙特利尔才有了突破)。
在这些探索性尝试中,我构思了使用门控卷积编码器(Gated Convolutional Encoder)来替代基于循环神经网络(RNN)的编码器。通过对门控机制施加适当的约束,我成功训练出了这个模型,并使其具备了一定的可解释性。
当 Felix 来到我的办公桌前,以语言学家和计算机科学家的身份做自我介绍时,我很兴奋地想要向他展示这个新模型所揭示的可解释结构。
于是我向他展示了:
Felix 以极其笃定的语气对我说,「Kyunghyun,语法并不重要」。这大概是我听过非韩国人中最标准的名字发音。
那一刻我就预感到,Felix 一定会成为我最好的朋友之一——事实证明,从那时起直到现在确实如此)。而他说的这句话,也在往后几年里频频出现在我的学术演讲 slides 中。
在我们共度的那些愉快时光中,除了进行深入却不失趣味的哲学探讨,我们也开展了一些研究合作。
除了共同发现的诸多有趣成果外,我们最具标志性的「贡献」反而是一个相当特别的现象:从 2016 年开始,我们无意中引领了一股持续 3-5 年的潮流,就是人人都仿佛着了魔似的要在论文中塞入一个装满海量数字的「超级大表格」(The Really Enormous Table)。
当时我们在写「Learning distributed representations of sentences from unlabelled data」这篇论文时,完全没想那么多,但最终还是放入了两个巨大的数据表格:
2018 年初,Felix 在 ICLR 的论文集中发现了好几篇包含「超级大表格」的论文,这让我们不禁哑然失笑。
即使在严谨的学术研究中,我们依然保持着这种愉快的合作方式。
时光飞逝,将近十年后,Felix 作为 2023 年拉美人工智能会议 Khipu 的组织者之一,邀请我担任演讲嘉宾。他兴致勃勃地向我描绘我们将要进行的活动:观看足球比赛,游览布宜诺斯艾利斯等等。
然而,当我在 2023 年 3 月抵达蒙得维的亚参加 Khipu 时,却发现 Felix 并未到场。其他组织者告诉我,他因为健康问题无法前来。那时的我还不曾想到,这竟是我最后一次有机会与他相见。
Felix 在 2023 年第二届 Khipu 上未领取的参会正件
2024 年 6 月,经过漫长岁月,我终于有机会造访伦敦,便给 Felix 发消息约他共进午餐。尽管我清楚见面的可能性渺茫,但我真的非常期待能与他相聚、畅谈,一起消磨时光。
我们上次见面还是在疫情之前,之后就只能靠偶尔的远程视频联系。我也暗自期待能看到他康复的喜人变化。
几个月后(2024 年 8 月),Felix 回复了消息,并为迟复致歉,这实在让人心疼。他还附上了一张我们的合影(不是 AI 生成的,但是 Felix「生成」的),唤起了我们上次在伦敦相聚的美好回忆。
左图:这是一张由 Felix 本人「生成」的与我的合影;右图:这是一张真实拍摄的 Felix 与我的合影
上周五,我收到了 Douwe 发来的 WhatsApp 消息。正是由于 Felix 在 2014 年的引荐,我才认识了 Douwe,并与他建立了深厚的友谊。我立即尝试联系 Felix,但不管是 WhatsApp 还是手机,都已经无法接通。
Felix,愿你现在已不再痛苦,在天国与母亲团聚。
参考资料:
http://www.paperlesspost.com/go/7BbrzXXh…
来源:juejin.cn/post/7455518848273498124
2024:踏平坎坷成大道,斗罢艰险又出发!
一、开篇
12月今年最后一个月了,相逢的人已走散,Q4的OKR已经定型了,很平淡无味、闲的无聊,提前写个年终总结吧。25年,再过一个月就35岁了,一个人来北京也已经11年了。年近末尾,思绪良多。回顾过去来看,这一年还真的经历了很多的事情,我的生活也发生了翻天覆地的变化!时光走笔,岁月成章,书写一本名为《我》的彩色童话,刻画属于自己的千种情绪、万般色彩。如果用一句话概括下过去的一年,那就是:力学笃行倍道而进,从不缺少挑战的勇气;脚步坚实步伐坚定,从未停止奔跑的脚步。
- 历经苦难,方知生命可贵!
- 承受困难,方懂世事艰辛!
- 无惧苦难,方能勇往直前!
二、历历在目,回首成长之路
2.1 天地风尘三尺剑,江湖岁月一诗篇
这个世界,人有万算,但却不如老天一算,做人要坦坦荡荡,做事要问心无愧。
回顾2024年,经历了非常多的大事情,有幸这一年全家人平平安安,在稳步前进。算是折腾的一年,刚开年之初,就喜得医院三日游,还记得那晚独自一人站在窗口,望着远处的万家灯火。依然不记得当时在想什么,只记得呆呆的站了一晚。也许过去的23年命里跟小人犯冲,又喜得公司裁员大礼包。原本想新年之后在重新找工作的,可麻绳专挑细处断,厄运只找苦命人,3月又被迫到医院“营业”,好在“苍天有眼见可怜,善恶有报分两岸”,还是顺利从手术台上走下来。医院是离生死最近的地方,再次面对时,本觉得可以洒脱些,然而,不然!真的真的是再也不想去医院了!
这一年,有过迷茫和无助,更多的是家里人带来的幸福和开心,有家人们的支持,也有了新的目标。也许是大病一场后,很多东西彻底的看清了、放下了。最大的问题是,今年颓废了,丢掉了自己的早起习惯,开始习惯性的熬夜娱乐,总是晚起床。有时候,我也会羡慕当初年少的自己,那时的自己,敢爱敢恨、敢打敢杀,更加不顾后果。而现在的自己呢,懂得控制自己的情绪,学会了顾全大局,也是能屈能伸。但这样的自己,也有弊端,隐藏了太多情绪,同时也控制了太多感情,活的也不如当初那般潇洒了。可没办法,成长,是人的必经之路,尤其是男人。成熟的男人,不能一味追求潇洒。他可以不已天下人的安危为己任,但至少要保障身边人的安危。为求生计赴他乡,今朝重温儿时梦,却已青丝染白霜。沧海桑田,世事变迁,回不去了,终究还是回不去啊……
我单枪匹马的走到现在,任何人都不是我的靠山。苦,我吃了;委屈,我咽了……伤痕累累走到现在,流言蜚语又能奈我何!再穷,我也没有骗过朋友;再苦,我也没有坑过身边人;再难,我也没有算计过谁……其实,我更喜欢好多年前的自己,他比我有胆量,比我遗憾少,比我懂得少,比我相信的很多……
2.2 书海遨游,陶冶情操
读书百遍,其义自见。 ——《三国志》
如今,手机已成为我们生活和工作的必需品,仿佛离开了它,就失去了飞翔的翅膀。我们依赖手机获取信息、沟通联络、娱乐消遣,几乎每一刻都离不开这个小小的屏幕。然而,这份过度依赖,却让我们的心灵逐渐陷入了一片荒芜之地。风沙漫天,孤寂如影随形,我们急需一股神秘而强大的力量,在这片荒芜中播撒希望的种子,使之绿意盎然,生机勃勃。这股力量,便是阅读。
在这个快节奏的时代,我们或许会因为忙碌而忽略阅读的价值。但请铭记,无论生活多么喧嚣,都要为自己的心灵保留一片净土,用来播种那些能够滋养我们灵魂的书籍。我每天抽出半小时的时间,远离手机、电视等电子产品的干扰,静下心来读一本书。当沉浸在书海中时,我发现那些曾经困扰我们的烦恼逐渐消散,内心变得宁静而充实。让我暂时忘却现实的痛苦,在无形中给予我力量,教会我如何在困境中寻找出路,如何在绝望中看到希望的曙光。
那啥,虽然 24 年阅读的书籍着实不多,大部分是闲书,惭愧惭愧,25 年要加油了,
三、我的程序人生
3.1 缘起性空,归来不少年
有所选择,有所放弃,做到“尽人事,听天命”就好了。
岁月匆匆流逝,回顾这一年最大的变化就是心态也有所起伏,整体有点躺平了,研究技术的动力也消失了,职业发展上感觉有点停滞不前了,也不太能跟生机勃勃的年轻人一起卷了。还记得从医院刚回来的那几周,整天在家里拉着窗帘,除了吃饭就是躺在床上刷手机,让我尽可能分散注意力,减少内心的痛苦。但是这样的状态也不是事儿啊,那只能去找个工作先干着了。活下来,是我目前的首要任务。于是在网上海投了一遍,结果惨不忍睹,根本没几家公司招人,前前后后两个月,真正靠谱的面试就那么几家。好在等到7月底顺利拿了offer,重新踏上“牛马”的大道。薪资也没有原来的多,但是拿到offer那一刻我依然有些激动,我感觉我活下来了,不管怎样,现在能喘口气了。
现在上班已经四个多月了,新公司挺好,不加班,基本上7点前就都走了。每天就是按部就班上下班,完成老板给的任务,其他的事情也不用自己操心,终于又做起自己熟悉且擅长的事情。如今逐渐适应了新公司的节奏,也算成功融入了团队,同时和同事相处的也十分的融洽。现在所在公司很少有加班的情况,回想上家公司总是天天加班到12点,劳心劳力而最后却卸磨杀驴。经过上半年的与天搏命、下半年奋发图强,关于工作我只有几点反思:
- 长时间处于过度忙碌的状态会导致效率下降,影响工作和生活的质量,甚至可能会成为不去做很多事情的借口。过度忙碌会遏制个人成长,让你没有时间接触新东西,没有时间总结和沉淀,没有时间去做未来的规划,最终陷入成长的死循环。
- 我们之前接受到的教育基本都是从自身找问题,但我这么多年的经历其实看到,很多时候问题根本就不是自身的问题。很多事不是单靠自己就能解决的,可能你本身所处的环境就有问题,你得到的输入就是不够多,你能获取到的资源就是不够多,你就是没有得到足够的指导和支持,别人给的建议就是不适合你…… 这种情况下重点不只是把锅甩给别人,而是应该去关注外部的改变,而不是自身的不足,适时寻求外部力量的帮助。
- 和优秀的同事共事是一种幸运。这一年,确实新接触了很多的同事,有合作的很愉快的,有希望能向他学习的,也有一些不太能理解的。但总的来说同事们的职业素养还是很高的, 相处的也十分的融洽。
3.2 坚定持续,攻破重重难关
人生不可能一帆风顺,就像大海不可能风平浪静一样。在生活中还是会遇到很多的困难与挑战,但庆幸的是我都扛下来了~
春耕夏耘,秋收冬藏。回望来时路,满心皆澎湃。我个人感觉今年几乎没有太多成长,并没有对于某项技术有非常深刻的理解或者突破,连博客的阅读量和涨粉量也是靠着之前的老博文来的。今年最重要的事情之一就是在新工作上稳定下来,当然这也是工作以来最不容易的一年。在这个飞速变化的技术环境中,在程序员的世界里,写代码、修Bug、加班常常成为了日常,作为程序员,技术更新的速度是无法忽视的。
虽然已经34岁了,不能熬夜写代码了,但是我还是喜欢偶尔敲敲代码,还是期待代码运行起来的效果,排除bug之后还是会高兴,这大概就是程序人生的乐趣!前些天翻了翻前端历史,突然发现,前端的屎事💩的确特别多。前端折腾来折腾去,好在现在才略微回到正轨上。作为后端 Java 程序员的我,并不反对前端折腾,对一些清晰的方向,我们还是应该全力以赴去折腾的。单一技能已经不足以满足现代项目需求,尤其是在公司需要「全栈开发」的趋势下,拥有一定的跨领域能力是你脱颖而出的关键。而且编程领域的变化是快速且持续的,持续学习是程序员生涯中的重要部分。可以通过参加技术分享会、研讨会,阅读最新的技术书籍和博客,或者加入技术社区来保持与行业趋势同步。此外,还可以通过在线课程或认证来提升自己的技能,为未来职业生涯积累资本。
四、心怀远方,踏上逐梦之旅
既已达成目标,也绝不懈怠,做好规划,奔向下一个目标⭐
4.1 厚积薄发,突破自我
学如不及,犹恐失之。——《论语·泰伯》
程序员的职业发展并非一帆风顺,许多人会在某个阶段遇到瓶颈,感到技术不再进步或工作内容重复。如果感觉工作内容乏味且没有新的挑战,可以尝试向上级申请更多复杂的项目或转向其他技术领域发展。接受新的挑战不仅能让你重新激发兴趣,还能快速提升技能。或者,也可以考虑参与开源项目,这不仅是学习新技能的绝佳方式,还能与其他开发者互动,团队协作、沟通能力等软技能更进一步。
我自认为是一个爱学习的人,从事互联网行业以来,一直都是从事 Java 的相关工作,除此还系统学过React、JS等,浅尝即止的就不说了,每一项都投入了较多时间,在这些技术的学习高峰,估计能达到中级开发者的开发效率吧。但是随着时间的流逝,其中大部分都忘的差不多了,如果面试官问我相关问题,我大概率是答不出来的,重新去做相关事情也需要去温习才能想起,很多人可能也有类似的感觉。去年的未来展望是打脸了,不少原先的计划没有完成,还因为突发的安排打乱了原先自己的部署,不过失之东隅、收之桑榆,收获也不少,那么我对 25 年的展望如下(写委婉点怕打脸太狠):
- 「学习 Python」:未雨绸缪,只盯着一个方向很容易触及天花板,真正有能力的人应博学多才,触类旁通,我差得远呢。
- 「保持阅读」:之前买的很多书籍、专栏、小册、视频什么的不能浪费了,要看起来了(收藏从未停止,学习从未开始 🤪)。
- 「锻炼身体」:经历那几年的疫情,大家也明白 🐶 命的重要,锻炼身体要坚持下来,行远自迩/
- 「保险」:在考虑是不是要给自己上一个保险,虽然还年轻。
- 「圆满」:
4.2 向上破圈,遇见无限可能
也是因着有这样的经历,我也去尝试了很多之前完全没有尝试过的事情,真正感受到了什么叫做【脱离舒适圈】
25 年的我 35 岁了,算是半只脚已经迈过而立之年的门槛,但距离成家立业还隔着老远,父母将老未老,知己零落四散。说实话,我现在知道了,山的那边还是山,我不知道什么时候才能看到海,甚至我可能一辈子都看不到海了。确实事情有些多且似乎都很重要,罗曼·罗兰的一句话怎么说来着 「有些人二十岁就死了,等到八十岁才被埋葬」,但至少到目前为止,生活还没把我扼杀不是嘛哈哈~。
在这个飞速发展的时代,我们生活在一个个无形的圈子中。这些圈子可能是由我们的职业、兴趣、社交圈子或其他因素所定义的。每个人都有自己的舒适区,舒适是堕落的开始,而开拓则是成长的基石。只有从旧圈子进入更高的圈子,你才会进步。敢于挑战自己,才能经历成长和蜕变,领略不一样的风景。摧毁那些限制你发展的信念,敢于跳出舒适区,勇往直前,闯出属于自己的天地!
五、新的一年,一起加油
长路漫漫,奋斗不息。学会和自己和解,学会接受自己的平庸,但是依然要努力,毕竟在这个阴雨连天的环境下,没有伞的孩子只能努力奔跑。我们的目标不仅局限于眼前的山川,我们的征途是星辰大海。那是一片辽阔无垠的天地,充满了未知与挑战。乾坤未定,每个人都有成为黑马的潜力。胜负尚未分明,未来充满无限可能。
- 愿你展翅高飞,化作飞鸟翱翔,自由随风。
- 愿你扎根大地,长成参天大树,傲骨铮铮。
- 愿你扬帆起航,翻飞万丈理想,意气昂扬。
- 愿你手握星火,燃尽塞途荆棘,前路坦荡。
- 祝你每次前行都能通往心之所向,每刻驻足都能遍赏锦绣河山。行己所爱,爱己所行,所有遇见皆是最好的安排。
来源:juejin.cn/post/7453611125453864996
年,是团圆
大概是我刚上小学时候,村子里流行起来出门打工,每个家庭里面的壮年男人都会去湖北挖桩,组团去。他们过完年出发,先走路下山,坐车再坐船。
出门一段时间后,他们会寄钱回家,那时寄钱的方式我不清楚也还从没有问过,只记得家里女人们听到对门肉嗓子大喊“xxx,来拿汇票”时,她们是很开心的。
快过年,男人们从外面回家,背着或挑着大件的行李,行李中是破旧的棉穗,小孩的新衣与不常见的水果糖。
挖桩需要两个人配合,一人在井里往下挖,一人在上面接桶转移土石,隔一段时间换人。有想法的男人认为他可以一直待在井里,女人提桶倒土是完全没有问题的,如果与自己的女人组团,工钱不用与别人分,挣钱的速度便会快上一倍。
于是,到我上初中时候,出门打工的规模更加扩大,家中的男人女人一起出门,小孩交给父母带着。
男人女人外出打工的时间是一样的,过完年出门,快过年时回家。
男人女人年龄渐长,他们的小孩长成大人,成人都外出打工,过完年出门,快过年时回家。
男人女人与小孩的目的地并不相同。于是过年,成为一家团圆的日子。
家家张灯结彩,人人喜笑颜开。
初一的早餐,是可以很简单的,汤圆或是包面;也可以是复杂的,蒸米饭,炸鱼、牛肉干、猪耳朵、凉拌鸡脚等许多凉菜,昨天的猪脚炖鸡汤,再配几个新鲜炒菜,满满一桌。复杂与简单的差异,来自于当天行程的安排,马上要走亲戚就简单些,家中要来客人便复杂点。
午饭,必然是丰盛的,一锅必不可少的鲜炖的猪脚炖鸡汤(是的,猪脚与鸡年三十只炖四分之一,留着客人来后能炖新的猪脚汤),一盆小孩儿最是欢迎的洋芋片,一锅人人喜爱的猪头汤清炖萝卜,两盘肥腻多汁男人们热衷的辣椒炒三线儿,一盘香肠、两碗扣肉,再来一盘炸豆腐……凉菜有猪肝、猪耳朵、鸡脚、炸鱼、牛肉干、萝卜干儿、折耳根……炒一个青菜,或是再加一碗青菜猪血汤。
男人们大都是会喝点酒的,他们互相劝着,你敬我一口酒,我回你两句话:“这酒好甜啊!”女人们偶尔也喝些酒,但更多是和小孩一起喝饮料。主妇是最后上桌吃饭的,大家吃饭时,她为桌上换热汤,为客人盛热饭。
吃过午饭,晒晒太阳烤烤火,嗑嗑瓜子吹吹牛。客人准备回家,临出发告诫主人:“你们明天一定要来啊,都要来。”
初二初三初四初五初六,是初一的重复。
隔得近,午饭的重复便是晚饭。吃过晚饭,今日不用再做饭,男人女人们围着炉子说过去说现在,说去年说当下,那“哈哈”大笑声,是时常能传到地坝的。
地坝里,孩子们的游戏一个接一个的切换。老鹰抓小鸡、三个字(一个人追众人跑,快被抓到时喊出随便的三个字,被抓者定住等待救援,抓人者切换目标;待所有人都被定住,便问“桃花开了没?”)、跳绳、打沙包……四岁五岁的,大多数游戏还玩不太明白,但他们的参与感该是最强的,因为哥哥姐姐叔叔阿姨都护着他们。
地坝里的叽叽喳喳,盖过屋子里哈哈哈哈。
年,是团圆!
来源:juejin.cn/post/7337957655190847522
研发工作中的感悟
前两天工作上出现了纰漏,感兴趣的可以往前翻翻,大致情况是拼命干,结果干得越多错得越多,出了纰漏背了不少黑锅。
最近一直在调整工作状态,复盘以前错误的工作方式。
多和团队沟通解决方案
以前我都是一个人单打独斗,功能点从设计到逻辑到实现,都是我一个人。
这种情况首先一个人力量有限,有时候设计的不那么完美;其次是大家一起讨论出来的东西,做出来就算不好,也有人帮忙说话,避免了墙倒众人推的局面。
主动暴露自己遇到的问题
以前我也是闷头干,很多过程中的困难和问题,我都自己默默解决了。这就搞得别人以为这事没难度,还嫌我进度慢。
现在不管问题能不能解决,遇到卡点我都吱一声,能不能解决再说,能解决是我牛逼,不能解决就往上报。
不要被上线时间卡死
我们公司有个非常不好的风气,技术还不知道功能点,运营就定好了上线时间,一开始搞得很焦虑,匆匆忙忙赶着上线,结果出纰漏,开会一顿挨叼。
有些很大的需求,两三个人一两个月那种,即使前期做了评估,做着做着也会被临时需求插入呀、技术方案调整呀、三方调用阻碍等事拖慢进度。
现在我对这事看淡了,要做就做好,技术层面设计搞得清清楚楚,按规范的来,工时正常评估,需求 delay?无所谓的,直接报个直属领导,让领导之间去互撕。我周末来加天班表示下态度,其实一个人没人打扰专注写代码挺爽的。
配置化的东西让运营操作
我以前有个特别不好的习惯,配置的东西图快图简单,配在 redis 里或acos,每次运营跟我说我去改。
千万不要这么搞,不出问题还好,但也浪费开发时间,出了问题那更是开发背锅。
所以不如一开始就花点时间写个页面给运营自己配,别看一开始费了点时间,从此没了后患。
主要是看到论坛一个哥们自己配置的利息少了个 0 导致涨了 10 倍,事后自己背锅还是去修数据,也是惨的一批。
只做事不做决策
还是以前责任心太强了,到我这的事我必须完结掉,中间遇到的各种困难险阻我都干掉了。
现在中间遇到什么问题,尤其是需要做决策的地方,研发的就 @ 直属领导,业务的就 @ 运营和产品,让他们出解决方案,确定好了我再动工。
比如最近在接入京东小程序,用户注册的地方要不要对三方手机号做虚拟号拦截?我想个屁直接丢群里面问业务。比如一单一品下单缺商铺各种配置,我也是一个 @ 给到运营。商户订单转支付总觉得怪怪的,那就拉领导反复多次确定和讨论,果然架构都要改掉。
自从不做决策后,我感觉一身轻。首先决策本身很消耗精力,要想清楚不同决策的影响点,也需要一定的经验支持;其次决策做了是要担责的,万一做错了呢?锅这不就来了吗?况且我也没到那个位置,做那些有点越位了,不合适。
有意识的过滤杂事
晚上八点多的时候,群里反馈有人收不到登录验证码,运营疯狂 @ 我。
我试了下 5s 就收到了验证码,就这么杂碎的事,自己点一下系统就能判断的,也要 @ 我?用户手机欠费我还得去给他充点话费是吧?
纯粹是我以前太好欺负,来我这的什么脏活累活,我都没吭声的干完了,是开发的,不是开发的,反正到我这都能闭环,这么好用的人,不往死里用?
现在像这种 SB 场景,我看都不看,还把飞书提醒都关了,就留个加急消息通知。
还有些人老喜欢问我 xx 场景下 xx 逻辑是怎样的。我也是一脸黑人问号,这玩意不去问产品来找研发几个意思?
这些问题我也没怎么管了,已读不回就完事,结果大部分情况,没回也没再追问了。
脸皮厚起来
这话咋理解呢?就是细节的地方,要决策的地方,不要觉得这么简单的事也要抛出来,厚着脸问出来。
我以前就有这种不好的思想,总觉得事情很简单,决策影响面也不大,自己 hold 得住。结果就是解决得好没好处,解决不好就吊,出岔子还背锅。
现在我非常不要脸的把各种细节处的问题都抛出来,在群里面说的清清楚楚。
一来是逻辑大家都同步下,二来是决策相关的给领导。
就像这次京东小程序,需求评审会的时候运营、产品都说实名信息京东有接口,讨论都不让讨论直接过。结果对接的时候,京东直接懵逼了,说我没接口啊,我也傻眼了,信誓旦旦的接口没了,开发一半到这节点又要重新调整方案。
就这运营还私我让我搞清楚需求别问尴尬问题,我 TM 反手一个质疑三连,合着你给我搞个京东实名信息接口呗,我不问京东问你吗?
总结今日份把杂事脏活全甩了,不该背的锅全反弹,内心舒畅,心情大好。特意奖励自己鸭脖一根、鸭头一个、鸭肠一捆、薯片一袋、浪味仙一包、快乐水一瓶。
拒绝内耗,勇敢甩锅,快乐自己,不顾他人,从我做起,共勉。
来源:juejin.cn/post/7452665094193020939
30岁的程序媛,升值加薪与我无缘
前言
上篇讲述了一位老哥的10年搬砖历程《不容易,35岁的我还在小公司苟且偷生》,有位小姐姐看了之后比较有感触,希望我能将她的故事也讲讲,看看能否有共鸣的朋友。
程序媛的前半生
我今年30岁,无房无贷孑然一身。
出生在95年的沿海小镇(隶属八山一水一分田的省份),我四岁那年父母终于如愿以偿地迎来了弟弟,从此以后弟弟就是家里的中心。
高考填报自愿的时候,想到远点的地方上大学,最终上了四川的一所院校。坐了将近三十个小时的列车,也就是那会儿才真真体会到了书上说的:"我国地势西高东低,幅员辽阔"。
专业学的信息工程,大学那会班里男多女少,大家都挺照顾我的,性格也变得开朗了许多,谈了个男朋友,我们相约考个985院校的研究生。
那年春天,考研成绩出来,我没过线,他低空掠过,接受调剂到另一个省读研,然而正当我打算二战的时候,被分手了...
因为考研错过了秋招,春招也只剩了尾巴,也不打算二战了,家里人让我回去找工作,不过我还不太想回去,先找工作再说。幸好平时跟着班里的大牛们一起做过项目,项目虽小,但知其然也知其所以然,花了2个月终于找到一份前端的工作。
2018年入职成都北部郊县的一家小创业公司,公司主营业务是硬件,互联网软件是辅助,前端+后端也就6个人,没想到前端除了我还有另一个妹子。
那会工资比较低,自己也知道本身有几斤几两,为了节省开支,每天都带饭,当然每天也是按时下班,下班后先把第二天要带的饭菜准备好之后,再花一小时提升自己的技术(主要是看别人的轮子),最后边做面膜边刷美剧打发时间,直到窗外的喧闹声逐渐隐去,我也入睡啦。
平淡的日子真的淡如水,印象比较深的是有个晚上需要紧急修复Bug,要去公司对齐方案,尴尬的是,最终查出来不是我的问题。回家的路上,看着昏暗路灯下长长的影子,莫名的感觉害怕,越怕走的越快,越快影子越长,终于看到小区门口有个抽烟保安叔叔,赶紧飞奔过去。当进入小区的那刻,回过头来,却怎么也找不到影子了。从那时起,暗下决定,再也不加班了。
2020年7月,刚好在公司待了两年,周围的同事都换了一半的新面孔,不少同事去了南边,在小聚的时候他们说起了南边的机会比这多多了,让我考虑考虑。我也仔细思考了自己的处境,软件在这家并不是主营业务,想找一家纯互联网的公司,最主要的是这两年没有涨薪,新来的小伙伴工资都比我高,于是也暗中投递了简历。
运气不错,一个月内面了4、5家,最终选定了一家互联网公司,工资是上家的两倍,当时暗自感叹同一个城市差距咋那么明显。
新的公司,单单是前端的研发都有30+人,而这还只是成都分部的。刚开始很是珍惜这份机会,任劳任怨,偶尔也会加班表现一下。后面逐渐和同事们混熟了,才发现自己的工资就是垫底的存在,瞬间加班的动力跌至冰点。
在这公司接触了更多的业务,学习了很多技术知识,甚至知道有些同事大佬自己创造轮子。也许是我比较菜,或是我工资比较低,领导给我的任务都不会太难,我也没出过什么幺蛾子。每年都有涨薪的机会,当然每年都没我的份,在这块我是有心理预期的,因此也不会失落(或许是已经麻木了?)。
23年底开始,陆续有同事拿到了大礼包,甚至有一次我刚从厕所出来,对面的同事的工位就空了。问了才知道,谈妥了,立马走。
到了24年初,小组内陆续走了一半的同事,直属领导找我谈话问我想法,我说我比较懵,明明我在组内最菜,为啥走的不是我。领导说,相比而言你的性价比较高,我暗想:直说我薪资低呗~。
到了24年底,还暗自庆幸自己能挺过最艰难的一年,没曾想拿到了大礼包,没有任何挣扎,签协议走人。
休息了一个月,尝试投递简历,直到现在才有两次面试邀约,神奇的是这两家都会问我同一个问题:结婚了没,打算多久结?我:???
我决定了,以后进行自我介绍的时候先发制人,本人未婚未孕未育。
面试结果最终当然是不了了之了。
直到成为自由人才深刻体会到今年寒气之重,都结冰了。
还好申请了失业保险金,聊以慰藉吧。
经过了用人市场的洗礼,在三月份之前都不打算投递简历了,反正都是石沉大海。
刚好有时间多休息,多去看看以前没去的地方(虽然大部分是穷游),节后再做打算吧。
30岁的我,在人们眼中是个剩女。
30岁的我,阴差阳错学了技术。
30岁的我,没造过一个技术轮子。
30岁的我,远离家乡几千里。
30岁的我,在领失业保险金。
30岁的我,也许会离开这座城市。
30岁的我,祝朋友们所愿皆所得。
来源:juejin.cn/post/7461587929447776275
迟来的2024年终总结
这是一篇迟来的 2024年终总结,从来没正式的为自己做过总结。
一、工作
2023年底,其实当时经过了几面之后,本来已经拿到了 Gitee(开源中国) 的 Offer,然后因为杭州有朋友说有项目,于是思考许久之后,还是决定来了杭州。
选择杭州放弃了深圳,我觉得应该还是这几个原因:
- 杭州有朋友在,工作安排好之后,住宿的问题也一并解决了,当时到杭州之后基本就是直接拎包入住的。而且公司离住的地方走路也就十分钟。
- (因为老婆孩子在区县,市区家里目前也是空置的状态),如果杭州回老家,可以选择飞机、高铁,而且高铁能直达重庆家里,家里到火车站也就五分钟车程,来去方便。深圳的话,就只能飞机到重庆,再转动车到家里。我又是很怕麻烦的一个人。
- Gitee 的 Offer 是产品经理,纠结了一下之后,觉得如果转了的话,估计以后自己写代码会更少了
- 还没来过杭州。
参与的工作和项目
1.1 老系统的维护和迭代
本身有一套基于 PHP 的灵工财税系统在生产上跑,需要进行日常的维护、迭代一些新功能。
系统周边还有一套 支付宝小程序 也在线上运行着。
1.2 新系统的设计与开发
基于老系统的业务需求,重新架构设计和开发了一套新系统:
- 使用 Java17 / SpringBoot3 / MySQL8 / JPA / Redis / RocketMQ 等后端技术栈对后台服务做支持
- 使用 Vue3 / Vite / TypeScript / ElementPlus 等前端技术栈对前端页面做支持
新系统前前后后开发和测试花了大概三个月的时间,技术团队人员 2 个全栈,两个产品,两个测试。
1.3 MCN机构主播平台
设计开发了一个 MCN 机构的主播社区,技术栈和上面新系统基本一致,主要实现了一个后台服务、一个 Web 端的管理系统、一个基于 uniapp 的 App,上架了 App Store,Android 端倒是没有直接上商店,提供的是 H5 官网直接下载 APK.
1.4 一些小工具
也做了一些公司内部很多小工具的开发,例如基于 小爱同学 的业务语音通知服务、Web 叫号服务(类似在页面上输入信息,指定公司内各个部门的小爱同学进行通知的功能)
也不停折腾了公司的一些 VPN 网络架构 局域网服务器架构 等工作,例如基于 vmware vsphere
vcenter
vsan
的超融合架构等。
用大模型搭了一些好玩的服务,比如 ts.hamm.cn java.hamm.cn 等
1.5 其他项目
也客串了一个前端,参与了公司其他小组的社交类产品的管理后台开发。
因公司有一个 AI 出海项目需求,预研了一个 AI智能体项目,主要是一些角色扮演的场景服务 (此处有狗头)
。
二、开源
今年做了一些开源小项目,当然比去年的积极性要低了很多:
2.1 SPMS 智能生产管理
S-PMS (Smart Production Management System) 智能生产管理系统 ,是一个集成化、智能化的企业级应用软件,它集成了多个核心的生产管理模块,包括 制造执行系统 (MES)、仓库管理系统 (WMS)、企业资源计划系统 (ERP)、质量管理系统 (QMS) 以及 物联网管理系统 (IoTS) 等。
技术栈使用的也是和 1.1.2 中提到的一样。
其中完成了两个端的开发:
这个项目其实从 2013年底 就已经开始了,目前还在迭代中。
2.2 OllamaK
因为觉得其他的 Ollama iOS 客户端都不好用,然后自己花了几天时间写了个简单的 Ollama iOS 客户端。
Github: github.com/HammCn/Olla…
基于 Swift + SwiftUI 设计。
2.3 AirPower4T
AirPower4T 是一个基于 Vue3 TypeScript Element Plus Vite 的开发基础库,使用面向对象、装饰器、Hooks等开发模式,内置了数据模型转换、表格表单装饰器配置、加解密和编码解码、网络请求、权限管理等常见后台功能以及页面组件,助力后台类系统的前端开发效率,同时保障了优雅的代码质量。
Github: github.com/HammCn/AirP…
2.4 AirPower4J
AirPower4J是一个基于 Java17、SpringBoot3.x、JPA&MySQL 的后端开发脚手架,其中包含了一些 RBAC、请求验证、CURD封装、异常处理、多租户SaaS、加解密与安全、WebSocket等模块,以满足日常开发的快捷、稳健、标准化等要求。
Github: github.com/HammCn/AirP…
2.5 一些SDK包
2.5.1 WeComSDK
企业微信的 Java SDK
。目前是开发中,对 企业微信 的一些 OpenAPI
进行了封装。
Github: github.com/HammCn/WeCo…
2.5.2 WeComRobotSDK
一个很好用的企业微信机器人开发工具包SDK。也是发布到了 maven
仓库。
Github: github.com/HammCn/WeCo…
2.5.3 AirPowerJavaSdk
AirPower Java SDK 是基于 Java8 下用于快速对接 AirPower4J 项目中的开放应用的开发工具包,实现了与 AirPower4J 匹配的 AES / RSA 出入参加解密、参数签名、防止重返攻击、数据自动转换等功能,针对基于 AirPower4J 下的 Web 项目提供快速支持开放能力。
Github: github.com/HammCn/AirP…
三、写作
这一年免不了在掘金和其他社区摸了不少鱼。
3.1 掘金专栏
开了三个掘金的专栏:
3.1.1 《用TypeScript写前端》
本篇专栏主要讲解作者是如何大胆放肆的使用 TypeScript 面向对象思维来写前端的。
截止目前,共收录了 32篇 文章,订阅用户 500 人,希望能真正的帮到这 500 个订阅的朋友。
3.1.2 《来杯Java压压惊》
主要是分享一些用Java写后端的心得体会。
截止目前,共收录了 14篇 文章,订阅用户 6 人,因为是 11月 才创建的专栏,数据有些许惨淡。
3.1.3 《你好,全干工程师》
网络?运维?架构?产品?设计?可能这个专栏都有涉及到。
截止目前,共收录了 47篇 文章,订阅用户 21 人,数据也不是那么好看。
3.2 粉丝数据
截止目前:
3.2.1 掘金粉丝:800
3.2.2 Github粉丝:211 (@HammCn)
3.2.3 Gitee粉丝:887
3.2.4 公众号粉丝:3401 (@imHamm)
公众号的粉丝也不是很垂直,现在几乎不在公众号发布什么内容了。
3.2.5 微博粉丝:5000
(不垂直,已经不打算经营了,不再公开了)
3.3 阅读数据
截止目前,掘金阅读数据:
四、生活
杭州的生活很糟糕。特别是美食。
4.1 饮食问题
刚来的时候,还能维持每周两三次在家做饭炒菜,这几个月几乎没怎么在家做了,都选择了外卖或者在外面吃。
美团上拉黑了很多个商家了,实在是难吃。
4.2 日常出行
因为几个朋友都在一起,所以日常也基本都是在一块。一般也只在家、公司、附近商场、机场、火车站 这些地方。
日常没有什么出行的需求,但给老婆换掉了之前 我开的油车,换了 另外一辆油车。。。
(给家里添置了第二辆林肯了,蛮喜欢这个品牌的)
唯二在杭州较远的两三次出行:
4.2.1 灵隐寺
去过一次就不再想去第二次了。
4.2.2 乌镇
和重庆的磁器口差不多,没什么意思。
五、家庭
家庭是最重要的部分,所以选择放到最后说了。
5.1 儿子
儿子今年六月份三岁了,也上了幼儿园小班。
小子从小就聪明,情商也高。就是在学校不爱吃饭,还回家说学校的饭菜不好吃。
现在几乎能用英文从 1-100 读出来,一些颜色、水果、物体 也都能简单的表达了。
数学方面的话,10以内的加法没问题了,减法还不太会的样子。
5.2 老婆
家里最漂亮的女人。带孩子、上班都是她。
5.3 亲人
爸妈,岳父岳母依然是围着儿子在转,也慢慢的有了一些岁月老去的痕迹了。
依然是身体健康,这也就是最大的幸福。
5.4 离开了两个亲人
我这边的爷爷和外婆相继在今年离开了我们。希望他们在那边没有烦恼,快乐生活。
六、总结
这一年经历了太多,本文也是流水账的方式做了个年终的总结。
对2025年的期望,目前也还很迷茫。
先祝福吧:
希望儿子能健康快乐的成长,能学习到很多好玩的东西。
希望老婆依然是貌美如花,别被儿子整天的调皮折腾。
希望爸妈,岳父岳母,爷爷奶奶们身体健康,生活没有烦恼。
至于我自己,现在还没想好,但希望2025年工作上能有一些新的突破。
就这样,也祝所有幸福的人们,2025的愿望也都能实现。
来源:juejin.cn/post/7461207850456842303
再见2024,秋枫春樱夏海与钱
也许一切都有个期限。
人生的前 7 年是童年,接着是 17 年的学生生涯(1 年复读)。在大学四年里,除了应付本身的学习外,一半的时间鼓捣音乐,一半的时间在炒股,对结束学生的生活充满了期待。
进入工作以后,来到今年,也17年了。
上班和上学真的很像的。上学时,小学中学大学一路打怪升级,上班时,小厂中厂再到大厂,也是一路打拼。每天两点一线,年复一年,日复一日。
因父亲是国企员工,自小对大厂的集体生活就有恐惧感。然而经过奋斗再进入大厂,享受到更好的福利待遇时,才发现大厂的生活更适合大众。
但是,经过前面几年的折腾,已经消耗过多的精力,进大厂之后缺乏了向前进的动力。在小厂里,你 3-5 年就可以成为小领导。在大厂里,3 年才刚刚对公司各方面有一些了解,才能协调资源去完成一个小项目。大厂里需要消耗更多的时间精力处理本身工作之外的事情。
在大厂时间一天天流逝,发现自己并没有得到真正的提升。
于是,凑巧也是 17 年,终于迎来了结束的一天。
因为给自己打了个 C,喜获炒鱿鱼一份,也正式离开了大部分人走的轨道。
大学的时候无所事事,那四年的确是个人最舒服的时间。现在也无所事事了,挺好。
旅行
没事就找点事吧。除了省内走走逛逛之外,也出省游了。
春天,到武汉赏樱花;秋天,到南京赏枫林。夏天则走了一趟海南环岛游。春夏之间,还去了宁波,与深圳同样的海滨城市。
中国的城市化的确很好,在任何城市生活都不会有很大的差别,只是各处的风景、人文又略有不同。
武汉,赏的是代表着中日友好的樱花,也是它的悠久历史。平原一望无际,楼都比山高,黄鹤楼与长江大桥夹在高楼间,并不显突兀。这里有春秋战国的遗物,有 800 年的楚国文化历史,也有与深圳一样新的光谷。
南京,除了心心念念的红枫林,还有六朝古都的风韵。枫叶看了,南朝四百八十寺看了,再去看看博物馆。作为在文化荒漠长大的广东人,博物馆看到第三天,脑里存储的历史知识已经用完。最后亦不能忘,要去中山陵园瞻仰近代伟人。
宁波像矮版的深圳,高楼大厦少了些,但是不缺发达的城市商业,不缺鲜甜可口的海鲜,也不缺舒适慵懒的海边。这里还有中国最大的私人藏书阁,这里也是徐霞客旅行的起点。
至于海南,熟悉又陌生。的确远离了大陆,除了冼夫人、苏东坡的痕迹外,没有太多先人的故事。在这里躺平也是一个选择。多少明白了全国各地的人都喜欢去海南的原因。
我心中是没游遍全国的计划的。作为一个中年人,开始向内求,其实不太需要外界刺激来放松自己,或者来达到什么样的目的。
明年会不会继续出发?当然是看钱行事。
钱
钱的问题才是主要的问题,尤其对一个失去了工资收入的人。
投资上,今年预判失败,提早清仓了纳斯达克指数 ETF,然后在 9 月底,参与了大 A 股的闪电牛市,但是没有全身而退。在股市上只能说小盈利。离职后,更是忘了“财不入急门”,跑去炒期货,最后在期货上亏了不少。
赢利比最高的反而是虚拟货币。这笔资金来源于参与了新发行的币。卖出后,交易了几笔,账户翻了倍。然而只有可怜的80刀。
所以整体下来,是亏损了。
终于发觉,自己作为 20 年老股民,一直没有很好地对待自己的投资。回想起来,自己有四点没有做好的:
- 在自己收入最好的时候,没有存到钱,没养成好的储蓄习惯。
- 买房时机还可以,但是没有尽早还房贷。
- 大部分钱都用于买房,只用很少的钱参与投资。
- 有自己的投资风格,却没有完善自己的风格,并不断地执行让雪球滚起来。
如果有时光机,我一定回去对自己说,“存钱,存钱,存钱!”
技术
今年,对规范、标准有了进一步了解。
在前端里,react 之前在高阶函数、服务端组件中的探索,成就了无头 UI,成就了shacn/ui;shacn/ui 丰富的下游组件、模板成就了 AI 编程工具 v0.dev。目前 v0.dev 还在继续接入 next.js 的模板。
另外,如果用了 RESTful 写的接口,使用 AI 编码可能 1 句话就解决了,如果不是,则需要对增删改查接口,每个都写不同的对话。
可以明确的是,越是标准、规范的技术/项目,越是容易接入 AI。
规范、标准是逐渐形成的,某些技术变成标准的时候,它后续的发展,比其他的技术都要顺利、要迅猛。
像现在国内的手机厂商,都在适配 iPhone 生态一样,即使 iPhone 是封闭的生态,但是其本身有非常丰富的开放的接口,这些接口就是 iPhone 定的标准,一直在稳定逐步推进,一步步地把用户锁在自己的生态中,你不加入永远就分不到蛋糕。(当然,小米也搭建了类似的生态,但影响力仅限国内)
我们在争论标准的时候,从未想过标准背后是什么,从未想过执行标准之后会带来的巨大好处。
国内 SAAS 还在垮台中,他们服务的一家家小公司,甚至是大公司,还在为一个流程要经过谁的审批争得死去活来。外国公司已经完成了阶段的飞跃,他们的数据早已为接入 AI 做好了准备。此时,国内还有些公司想着跳过信息化,直接进入 AI 时代……
说回 AI,如果 2023 是 AI 编程元年,今年就已经有初步成型的产品了,类似于 cursor 之类的编程 IDE。
用了 AI 编程再也回不去了,至少我是这样的。每月的 cursor 的费用并不低,但是它给我带来的收益是远大于此。从写demo,到逐步完成更复杂的内容,我把更多的事情交给了 AI。
总之,拥抱 AI, 依然是这几年的正确选择!
结束语
年底听了李楠在《脑放电波》的访谈,把近几十年关于去中心化的思潮与变革联系起来了。
世界的割裂正在进行,也许回不去那种互助互爱的地球村了,但也回不到联合国与大国控制的世界了。
在去中心化的所有技术都已经突破,成为现实。人们也开始接受虚拟货币,愿意把其变成一份份真的钱在社会上流通。社交媒体上,数字游民满世界的跑,宣扬着这一切的到来。
未来世界,也许真的如其所说,会由一个个的社区组成。你可以成为一个超级个体,社区根据你在链上的贡献给你奖励对应的数字货币,你通过数字货币获取自己所需的商品。
这一切不是不可能。
也许,未来已来!
新的一年继续努力吧,至少,继续为自己努力吧!
来源:juejin.cn/post/7454332481933295631
程序员焦虑症之「没用过」和「不知道」,码农的「拧螺丝」之道
许久没扯淡,今天就写点没营养的内容。
前几天和朋友聊天,其中一个话题很有意思,那就是「没用过」和「不知道」是他日常焦虑症的来源,因为他在一家传统企业做开发,技术栈一直很保守,很多框架代码可能一两年都不会升级改动,许多新东西都没用过,所以每次看到别人聊新技术的时候,都会觉得很焦虑,想“了解”却又“用不上”,想“上进”却又“学不进”,最后干脆选择“眼不见为净” 。
其实我过去也有类似的经历,每次接触到“新东西”时,内心潜移默化就会开始着急,仿佛再不跟进就要“挨打”,而“新东西”又层出不穷,结果就是东拼一脚西凑一下,最终像个无头苍蝇一样四处碰壁,不得而终。
为什么你懂这么多?相信这种情况对于「老 Androider 」多多少少应该都经历过,毕竟十年前的 Android 开发,「技术选型」可以说是日新月异,「你用过xxxx吗」和「你还在用xxxx」可以说是圈内话题的主旋律,举亿个例子:
- 你还在用 Eclipse ,现在都用 Android Studio 了
- 你还在本地 jar 包,现在都用 Gradle 远程依赖了
- xUtils 和 Afinal 听说过没?开发神器啊
- 你怎么还在用 ImageLoader ,知道 Picasso 吗? 用过 Fresco 没有?现在都推荐 Glide 了
- 你知道 GreenDao 吗?现在谷歌都推荐 Room 了,你用过 Realm 吗?
- 你还在用 ButterKnife?现在都用 DataBinding、ViewBinding 了
- 你怎么还用 Apache HttpClient,试试 Volley 呗?
- 现在都是 OKhttp 了,那你知道 Retrofit 吗?
- 你用过 gPRC 和 GraphQL 吗?
- 你还在用 MVC ,你知道 MVP 吗?我都用 MVVM、MVI 了
- 你用过 dynamic-load-apk、VirtualAPK、DroidPlugin、RePlugin、tinker 吗?
- 你知道 Dagger 吗?现在都 Dagger2 了
- 你还在用 Dagger ? 现在已经是 Hilt 了
- 你用过 EventBus 吗?
- 你知道 LeakCanary 吗?听过 BlockCanary 吗?
- 你还在用 Java 的 Dagger 啊,Kotlin 都用 Koin 了
- 你知道 Rxjava 吗?已经 Rxjava2 了
- 你用过 Couroutines 和 Flow 吗?
- 你知道 LiveData 吗?
- 用过 jadx 和 apktool 吗?
- 怎么还在用 Java ?Kotlin 都烂大街了
- 你知道 Jetpack 吗?用过 Lifecycle、Navigation、CameraX、Paging、Glance、Slice、Startup、Viewpager2、DateStore、WorkManager 吗?
- 你做过小程序吗?uni-app 听过吗?React Native 知道吗?Flutter 、KMP、Compose 了解不?
- 鸿蒙 Next 你适配了没?ArkTS 和 ArkUI 学了没?
- ····
有没有很熟悉的既视感?这还只是 Android 圈子的一角,如果你还做前端:那还有:
jQuery、AngularJS、Angular、Vue、React、Ember、Node、Express、Svelte、Nest、Nuxt、Deno、Solid····
就光说 React 更新带来的 JSX、Portals、Hook、Fiber、Concurrent、Suspense、Server Components、Transitions 就够一直玩下去····
但是在焦虑追新的同时,其实这里面一直有一个问题:会用这些框架,真的就是技术吗 ?你追的究竟是什么 ?
回答这个问题,刚好可以用到最近看到的一张图,因为我们大概率不是一个软件工程师:
- 高情商:蓝领科技者
- 低情商:工厂螺丝工
我们的工作就是使用别人「制作好的工具」,所以我们热衷追逐「新工具」,但是,大多数时候,我们又不了解工具是如何工作的,我们只是一直在“反复”的学会如何使用它们,并且焦虑于,我们还没全都学会。
我认为「拧螺丝」确实是一个很不错的比喻,各类框架就像是适配不同型号的螺丝刀,而市面上的螺丝头形态各异,我们就是不停的在学会「如何把某款型号的螺丝刀插入到对应螺丝头」,然后开始心满意足的拧一颗「新型号螺丝」。
拧熟了,大概还能解锁了多种姿势,拧起来更快更省力,不同型号的螺丝刀,对准的难度和发力的安全范围可能也会有些不同,不过没关系,多拧几次就熟悉了。
那么我们比的是谁认识的螺丝头多吗?
所以,拧螺丝是门槛吗?大概率不是的,因为学会拿螺丝刀就行。那问题又来了,既然都是拧螺丝,换个姿势,换个型号,你就不会拧了吗?不应该啊对吧 ?
回归到各式各样的框架上,有文档和有社区的情况下,换种语言,换种框架,难道就拧不动了?这又扯出另外一个问题:你的能力依赖于框架,是否又能超脱出框架?
所以我们在「追新」的时候追的是什么?是 1 - 2 - 3 这样的变化:
- 从 1 到 2 用户拧螺母需要准备的扳手数量减少了
- 从 2 到 3 扳手变得更加帅气有力,并且附带的“力道”也有所上升
那么开发的鄙视链就来了:
- 因为我用的是自动挡扳手 2 ,所以我看不起手动挡的扳手 1
- 因为我用的是全新工艺的扳手 3 ,所以比老工艺的扳手 2 牛逼
我想着这大概率是「追新」带来的「错觉」,牛逼的是扳手的制造者,而作为使用者,我们都是踩着别人的肩膀混口饭吃的工人。
回过头来看,在这种情况下,随着技术的发展,新生框架和技术会让开发变成更便捷,同时降低开发的门槛,从而方便后来者入坑,所以本质上就像开车,开「自动档」并没有比「手动挡」牛逼多少 。
就算是自动挡,也分很多换挡方式,那么你会用「怀挡」,真的就比用「直排挡」在技术上 NB 吗?难道比的不应该是,谁对「变速箱」的理解更深刻?尽管大部人其实都不会懂得如何造车,但在用车上,大家真正的差距在于:
- 车坏了你会不会修?
- 如何调节提升车的动力和操控
那么回过头来,所以作为老 Android 开发,在经历了开发项目需要准备“一堆扳手”的手动挡时代,如今在这个只要一个“扳手”就能干活的自动挡时代,怎么可能会拧不动螺母?
更多时候问题不在于我们学得不够多,知道的不够新,而是我们不知道框架实际上是如何工作,我们只是学会了使用一个叫做“React”的工具。
不是为了读源码而读源码,而是通过源码我知道了 CVT 和双离合的区别,知道了它们的实现原理和优劣,那么挡把是怀挡还是旋钮重要吗?
在不理解运作的原理,没有基础知识铺垫,当任务变成修理一个发动机时,当任务变成提高框架的性能瓶颈时,就会无从下手,就会回归到前面所说的:You are not a software engineer 。
我们不可能全知全能,也不可能认识所有螺丝头,也没机会熟练操控所有档位型号,但是我们的目的也不是为了认识所有汽车档把,我们的目的只是为了开车,然后进一步能力就是修车和调教,这对于大多数人来说,就很难能可贵了。
大多数人学习精力有限,但是理解能力和开车经验是可以精进的,比如最近看各个大厂的大佬们把 KMP 和 Compose 适配到鸿蒙上的分享,就能感受到老司机们的车技之滑溜。
而回到我们在焦虑「没用过」和「不知道」的时候,更多还是对于自身能力的不自信,就像是我们的尊严只能苟存于框架之下,多年的工作经验,只能寄希望于 XXX 不要凉。
所以才会对于 XXX 要火,XXX 要凉如此敏感,本质还是我们迷失在了工具上。
就像一些多年耕耘的老开发会告诉你,许多上层开发者「跟进」的基本都是:“ keeping up with all the bullshit that Google / Android dev community throws at you” ,远离所谓的 “architecture influencers” ,你需要的是自己的思维方式和选择能力,而不是臣服在框架之下,被社区推来推去:
当前,其实这也和当前很多工作岗位的设定有关系,公司当前只是需要一个螺丝钉,公司不需要你理解螺丝刀为什么十字和一字的区别,你拧就是了,标签化和细分化确实更好管理,而有人也愿意带着标签,这无可厚非。
而大佬们就不同,在和社区大佬的沟通中,我发现基本上他们的涉猎范围都很广泛,而且都很有深度,或者说:语言和框架都只是为了解决问题的工具。
总有人走在你前面,只是你是否还在路上。
好了,其实道理大家都懂,只是如何知行合一,那就见仁见智了,许多没写这种没营养的内容,毕竟纸上得来总觉浅,真要总结,大概就是:人和人体质不同不能一概而论。
来源:juejin.cn/post/7451964967165231104
《真还传》续集来了,罗永浩J1助手能否创造“锤子”奇迹?
罗永浩备受期待的AI应用——J1 Assistant终于上线了,这款应用标志着他“最后一次创业”的正式启动。曾因锤子手机与SmartisanOS而广受关注的罗永浩,在经历过硬件领域的沉浮后,终于转向了AI技术的蓝海。J1 Assistant的上线,成为了他在AI领域的新起点,而这款产品也标志着罗永浩的“真还传”之路的回归。
目前,J1 Assistant已在Android平台推出Beta版,但只有三星Galaxy和谷歌Pixel的最新三代机型支持,且仅提供英文版,显然其首要市场定为海外而非国内。这一策略也印证了罗永浩的新目标——跨越国界,将AI技术推向全球。
与此同时,罗永浩的另一款 AI 硬件新品——JARVIS ONE也在路上,官网已有预告,预计将参加即将举行的CES 2025消费电子展。
请在此添加图片描述
锤子味的AI助手:重回初心,旧貌换新颜
从产品的设计来看,J1 Assistant显然延续了“锤子味”,无论是UI设计还是功能整合,都能看到过去SmartisanOS的影子。这款应用不仅仅是一个普通的AI助手,它可以视作待办清单、便签、AI聊天、即时通讯、搜索等多种功能的集合体。对于曾经使用过锤子手机的用户来说,这些熟悉的设计元素不仅带来了一种情感上的回归,也让人感受到一种怀旧的力量。
J1 Assistant通过五个Tab区分了五大核心功能:To Do(待办清单)、Notes(笔记)、AI Assistant(助手)、J1 Message(聊天)和Search(搜索) 。其中,Notes的设计延续了锤子便签的风格,但功能上略显简陋,缺乏排版工具和图片分享功能;To Do则是一个基础版待办清单,操作简便,却略显单一。
请在此添加图片描述
AI与信息管理的双重打击:技术与实用的结合
与传统的待办清单和笔记功能相比,J1 Assistant还融入了更多创新性功能——J1 Message和Search。J1 Message的设计灵感来源于已停运的“子弹短信”,用户通过注册后可进行即时聊天,然而在如今的即时通讯市场竞争如此激烈的情况下,这一功能能否得到用户的广泛接受仍有待观察。而Search功能,则类似于TNT的“发牌手”,支持多来源的搜索,用户可以根据自己的需求自定义最多五个来源进行查询。
在语音交互方面,J1 Assistant也做了突破,采用了“Ripple Touch(波纹触摸)”设计,用户按住语音图标进行语音输入时,可以灵活选择不同的操作方式(如保存为笔记、待办清单或直接发送给他人),这无疑增加了操作的便捷性和实用性。
请在此添加图片描述
AI价值的延伸:效率与便捷并重
J1 Assistant的最大亮点,不仅仅是传统的AI对话功能,而是它如何巧妙地将AI与信息管理结合,创造多重价值转化。举个例子,用户可以要求AI将它的回答直接保存为待办清单或笔记,从而将信息的价值最大化。如果你在CES 2025期间,想要记录重要的展会活动,AI助手就能帮助你快速整理信息,自动生成待办清单和笔记,从而大大提升工作效率。
尽管目前J1 Assistant还处于Beta版本,存在一些问题和bug,比如部分AI回答保存不完整,或者待办清单内容丢失等,但这些问题在更新后有望得到解决。正如任何一款刚上线的产品一样,J1 Assistant的潜力还有待发掘。
定位问题:这款APP真的能满足我们需求吗?
虽然J1 Assistant融合了多个创新功能,但它的市场定位仍显模糊。与其他成熟的AI助手相比,J1 Assistant的功能整合显得有些“乱炖”,缺乏独特的亮点和清晰的市场定位。尤其是在待办清单和笔记功能这一块,它是否能够真正吸引到那些有强烈需求的用户,仍然是一个未知数。
罗永浩的AI之路,还能走多远?
请在此添加图片描述
J1 Assistant是罗永浩进入AI领域的第一步,但要想在竞争激烈的市场中脱颖而出,它仍面临不小的挑战。从目前来看,J1 Assistant确实有着不少创新之处,尤其是在信息管理和AI对话的结合方面,但它能否真正解决用户的痛点,还需更多时间的验证。罗永浩的“真还传”之路,依然充满变数,他的AI应用能否走得更远,或许最终取决于它是否能够精准满足用户的实际需求,带来真正的价值。
从硬件到软件,罗永浩的创业之路仿佛进入了一个全新的阶段。这一次,他的“AI助手”会带给我们什么样的惊喜,值得每个人期待。
来源:juejin.cn/post/7457567841556693032