已老实!公司的代码再也不敢乱改了!
开篇
大家好,我是聪。想必对于很多初入职场,心中怀着无限激情的兄弟们,对于接手老代码都会有很多愤慨,碰到同事的代码十分丑陋应不应该改!我也是这样,我相信有很多人同样有跟我一样的经历。满打满算实习 + 正式工作,我也敲了两年多代码,我今天来说说我自己的看法吧。
亲身经历
我第一次接手老代码的时候,映入我眼帘的就是侧边栏满页的黄色提示以及代码下面的众多黄色波浪线,以及提交代码时的提示,如下图:
我内心 OS:
1)大干一场,把黄色波浪线全干掉!
2)同事这写的也太不优雅了吧,改成我这样!
3)这代码怎么也没格式化,我来 Ctrl + Alt + L 格式化一波!
已老实,求放过
干掉黄色波浪线,将代码改 ”优雅“ 结局如下:
1)不声不吭动了同事代码,换来同事怒骂,毕竟人家逻辑写好,然后你按你想法来搞,也没有跟人家商量。
2)后续领导找你加需求,你发现原来之前的代码有妙用,你悔不当初,被扣绩效。
3)格式化后,在项目修改记录上面是你的修改,这代码出问题,负责人先来找你。
说说我的看法
代码能跑不要动
前几日我要在老项目中,新增一点小功能,在新增完功能后,我扫了一眼代码,发现有几处逻辑根本不会执行,比如:抛异常后,执行删除操作类似,我也不会去义愤填膺的去干掉这块代码,毕竟我想到一点!项目都跑七八年没出问题了,能跑就别动它。
代码强迫症不要强加于别人
前几日在某金看见了这样一个沸点:

这样的事情其实在小公司经常发生,你觉得它写的不优雅,封装少,可能是别人也有别人的难处,至少不能将自己想法强加于别人,比如领导突然来一个需求,跟你说今天你得完成,然后第二天这个需求,你要这样改、再给我加点新需求上去,你能想到的封装其实只是你冷静下来,而且没有近乎疯狂的迭代需求得到的想法,当你每天都要在原代码上面疯狂按照领导要求修改,可能你会有自己的看法。
新增代码,尽量不影响以前逻辑
新增代码的时候,尽量按照以前的规则逻辑来进行,比如我改的一个老项目,使用的公司自己写的一套 SQL 处理逻辑,我总不能说不行!我用不惯这个!我要用 MyBatis!!!!那真的直接被 T 出门口了。
尊重他人代码风格
每个人的代码风格都有所不同,这个很正常,不同厨师的老师教法不一样,做出的味道还不一样呢,没有最好的代码,只有更适合的代码,刚好我就有这样的例子:
我注入 Spring 依赖喜欢用构造注入、用 Lombook 的注解 @RequiredArgsConstructor 注入,我同事喜欢 @Autowired ,我能说他不准用这个吗,这个是人家的习惯,虽然 Spring 也不推荐使用这个,但改不改这个都不会影响公司收益,反而能少一件事情,促进同事友好关系,哈哈哈哈,我是这样认为的。
处理好同事之间的关系
哈哈哈哈这个真的就是人情事故了,你换位想象一下,如果你写的幸幸苦苦的代码,新来的同事或者实习生,来批评你的代码不规范,要 Diss 你,偷偷改你代码,就算他说的超级对,你心里都十分不好受,会想一万个理由去反驳。
我一般如果需求需要改动同事的代码,我会先虚心的向同事请求,xx哥,我这个需求要改动你这边的代码来配合一下,你来帮我一起看看,你这部分的代码这样改合理吗,或者你自己改下你自己的部分,然后我合并一下~ 谢谢 xx哥。
来源:juejin.cn/post/7383342927508799539
程序员节快乐!– 致所有 1024 码农的幽默与哲思
今天是 10 月 24 日,也就是传说中的 “1024 程序员节”,这一天是属于全世界程序员的“狂欢日”。为什么是 1024 呢?因为 1024 是 2 的 10 次方,是计算机世界里最常见的数字之一——特别是在存储和数据的单位里,如 1KB = 1024 字节。它象征着二进制与数字化生活的核心。
程序员们每天的生活总是充满了奇思妙想、反复调试和对代码的无限热爱。所以,今天我们不聊崩溃的服务器、也不谈工期紧张的项目,来一点轻松幽默,借助我们熟悉的 PHP,用代码带来一些欢乐!
1. 程序员的内心独白
作为一个程序员,最常见的恐惧是什么?是生产环境里的“意外”。让我们看看如何在 PHP 中模拟这种恐惧的场景:
<?php
// 在生产环境执行的一段不该存在的代码
if (getenv('APP_ENV') === 'production') {
echo "啊!为什么这段代码会在生产环境运行?!\n";
} else {
echo "你还在开发环境,放轻松。\n";
}
?>
输出:
啊!为什么这段代码会在生产环境运行?!
程序员的噩梦就是这种了:忘记屏蔽的调试代码在上线后引发了一场“灾难”,手忙脚乱地撤回。还好我们有版本控制和备份。
2. 程序员的平凡一天
程序员的一天通常由无数的 bug
和 debug
组成。我们来看一段有趣的 PHP 代码,模拟一位程序员一天的工作流程:
<?php
$bugs = 10;
$debugs = 0;
$coffee = 1;
while ($bugs > 0) {
$debugs++;
echo "调试第 $debugs 次,修复了1个bug。\n";
$bugs--;
if ($debugs % 3 === 0) {
echo "喝杯咖啡提提神吧!\n";
$coffee++;
}
}
echo "所有bug修复完毕!你喝了 $coffee 杯咖啡。\n";
?>
输出:
调试第 1 次,修复了1个bug。
调试第 2 次,修复了1个bug。
调试第 3 次,修复了1个bug。
喝杯咖啡提提神吧!
调试第 4 次,修复了1个bug。
调试第 5 次,修复了1个bug。
调试第 6 次,修复了1个bug。
喝杯咖啡提提神吧!
调试第 7 次,修复了1个bug。
调试第 8 次,修复了1个bug。
调试第 9 次,修复了1个bug。
喝杯咖啡提提神吧!
调试第 10 次,修复了1个bug。
所有bug修复完毕!你喝了 4 杯咖啡。
这就是程序员的一天,似乎修复一个 bug 的代价往往是多喝一杯咖啡。喝杯咖啡是充满仪式感的事情,只有这样,程序员才能在层出不穷的 bug 中找到自我。
3. 程序员的经典吐槽
编程界有很多经典的笑话,最常见的就是 "It works on my machine",意思是代码在我的电脑上运行没问题,那为什么在其他地方总是崩溃呢?让我们用 PHP 来重现这个场景:
<?php
$environment = "development"; // 在开发环境完美运行
function itWorksOnMyMachine($env) {
if ($env === "production") {
throw new Exception("在生产环境中崩溃了!");
} else {
echo "在开发环境中运行良好!\n";
}
}
try {
itWorksOnMyMachine($environment);
} catch (Exception $e) {
echo $e->getMessage();
}
?>
输出:
在开发环境中运行良好!
然而当我们切换到生产环境时:
$environment = "production"; // 在生产环境突然崩溃
输出:
在生产环境中崩溃了!
这就是所谓的“本机没问题,但上线必然出问题”的尴尬。
4. 程序员的哲学思考
程序员常常思考这样的问题:究竟是我在调试代码,还是代码在调试我?这是每个开发者都要面对的编程哲学问题。我们用 PHP 代码来表达这种深刻的哲学思考:
<?php
function whoIsDebuggingWho($iterations) {
$you = "程序员";
$code = "代码";
for ($i = 0; $i < $iterations; $i++) {
if ($i % 2 == 0) {
echo "$you 在调试 $code\n";
} else {
echo "$code 在调试 $you\n";
}
}
}
whoIsDebuggingWho(5);
?>
输出:
程序员 在调试 代码
代码 在调试 程序员
程序员 在调试 代码
代码 在调试 程序员
程序员 在调试 代码
在调试的过程中,有时候会让你感觉代码有它自己的意志,总是在你修复一个 bug 的时候带来另一个问题,就像代码在调试你一样。
总结
在程序员节这天,致敬所有在键盘前日夜奋斗的开发者们,你们的努力创造了现代数字世界的奇迹。程序员的工作可能常常伴随着压力和挑战,但每一次解决问题的瞬间,都是无价的成就感。1024,不只是一个数字,它是程序员精神的象征:精简、高效、充满逻辑的美感。
祝大家 1024 节快乐,愿每行代码都顺利运行,每次编译都能一键通过!
来源:juejin.cn/post/7429349035893784630
研发团队没有战斗力,怎么解?
研发团队没有战斗力,怎么解?
在现代企业中,研发团队的战斗力是企业竞争力的重要组成部分,尤其是在技术驱动型的公司。
一个高效、有战斗力的研发团队不仅能快速适应市场变化,还能通过技术创新为企业创造更多的价值。那么,如何才能打造一个有战斗力的研发团队?
我们先界定问题,拆解问题,然后再看怎么系统化的去解。
1 界定问题
我们需要明确什么是「有战斗力的研发团队」,并清楚当前团队与理想状态之间的差距。
用我和我们家闺女常说的,当有人和你说一些事情的时候,需要看一下他说的「是一个观点还是一个事实」。「研发团队没有战斗力」,这明显是一个观点。基于这个观点,接下来我们要做的,就是去拆解这个观点背后的事实,并找到支撑这个观点的具体原因。
那事实有哪些呢?
1.1 任务完成效率低
团队的任务完成效率可以通过数据来衡量。如果团队频繁出现项目延期、任务积压,或者在完成某些任务时总是比预期时间拖延很多,这通常会被认为是研发团队没有足够战斗力的重要表现之一。这里的事实包括:
- 项目计划与实际进度的差距有多大?
- 每个任务的平均完成时间是否过长?
- 团队在解决问题时是否常常遇到瓶颈?
这些数据可以通过项目管理工具(如 Jira、Trello 等)来进行追踪和量化。一旦明确了当前的情况,我们就能更好地了解团队效率低下的具体原因。
1.2 沟通不畅
沟通问题是研发团队中非常常见的困扰之一。它可以通过以下事实来体现:
- 团队成员之间是否常常因为沟通不足而产生误解?
- 在跨部门协作中,是否有任务交接不清、信息传递不准确的情况?
- 是否存在因为沟通问题导致的工作重复或返工?
通过团队内部的回顾会议、跨部门的反馈等方式,可以明确沟通问题的具体表现和影响。沟通不畅往往会拖慢整体效率,降低团队的战斗力。
1.3 团队士气低落
士气低落是另一个常见的观点化描述,但它背后有很多具体的事实可以支撑:
- 团队成员是否主动承担任务,还是常常出现推诿现象?
- 团队的离职率是否高于行业平均水平?
- 团队成员是否经常表现出疲惫、倦怠,缺乏对工作的积极性?
如果团队中缺乏成就感、归属感,激励机制不到位,这些都会导致士气低落,进而影响团队的整体战斗力。通过员工满意度调查、绩效考核结果等数据,我们可以准确捕捉到士气低落的事实。
1.4 技术债务积累
「技术债务」经常会被忽视,但它实际上是研发团队战斗力不足的重要原因之一。以下事实可以帮助我们判断团队是否面临技术债务问题:
- 系统是否频繁出现 BUG,导致大量时间用于修复问题而非开发新功能?
- 是否有大量遗留的代码或架构问题,导致团队在进行新功能开发时效率低下?
- 系统的可维护性和可扩展性是否在不断下降?
技术债务的积累不仅会拖慢整个团队的开发进度,还可能让团队陷入“救火”而非创新的状态,这无疑是战斗力下降的一个重要体现。
1.5 质量问题严重
质量问题也是影响研发团队战斗力的一个重要因素,并且算是一种非常关键的事实表现。质量问题不仅影响产品的稳定性和用户体验,还会对团队的效率、士气和创新能力造成负面影响。在「研发团队没有战斗力」这一观点下,质量问题可以归结为以下几个具体事实:
- 有频繁的产品缺陷和返工,可以使用缺陷率、线上故障数、SLA 等指标来衡量
- 项目交付质量不达标,如功能不完整,性能问题,用户反馈差等
- 缺乏严格的代码审查和质量控制流程
1.6 工程化和系统化问题
「工程化和系统化问题」是影响研发团队战斗力的重要因素之一,尤其是在团队规模扩大、项目复杂性增加的情况下。工程化和系统化不足通常会导致团队的开发流程混乱、效率低下、交付质量不稳定、可扩展性差,甚至会影响团队的整体协作能力和长期发展。其主要体现在如下几个方面:
- 缺乏标准化流程
- 自动化程度不足,缺乏自动化测试,手动操作的事项较多,重复劳动多
- 系统化不足,缺乏整体架构设计,模块耦合度高或者扩展性差
1.7 人才梯队问题
人才梯队是指团队中不同层级的人才储备和发展体系。如果团队中缺乏明确的人才梯队,意味着团队内部没有清晰的发展路径,成员的技能水平参差不齐,导致团队的整体战斗力不足。以下是一些具体的事实表现:
- 缺乏明确的晋升机制:团队中没有明确的晋升机制和路径,导致优秀的员工看不到职业发展前景,逐渐失去动力。
- 关键人员依赖严重:团队中的某些核心人员承担了过多的技术关键任务,一旦这些人离职或出问题,整个项目或团队都会陷入停滞。
- 缺乏接班人:当团队中的高层或资深技术人员调岗或离职时,缺乏能够快速接替其工作的接班人,导致项目推进或技术维护出现断档。
这些现象说明团队在人才梯队建设上存在严重不足,导致团队的持续作战能力和抗风险能力较差。
1.8 人才密度问题
人才密度指的是团队中高水平技术人才的比例。如果团队的人才密度不足,即高水平人才较少,团队整体的战斗力自然会大打折扣。以下是一些具体的事实表现:
- 技术水平不均衡:团队中技术能力强的人数较少,大多数成员的技术能力不足以支撑复杂的项目开发,导致高水平的成员承担了大部分工作,而低水平的成员拉低了整体效率。
- 问题解决能力差:团队整体在面对复杂问题时,解决问题的能力不足,往往需要依赖外部资源或高层决策,无法自主高效地解决技术难题。
- 技术创新动力不足:由于缺乏高水平人才的引领,团队内部的技术创新能力较弱,难以提出具有前瞻性的技术方案。
人才密度直接影响到团队的技术创新和问题解决能力,因此提升人才密度是打造高战斗力团队的关键。
2 分解问题
在明确了研发团队战斗力不足的主要表现后,我们需要进一步分解问题,以便逐步分析并找到解决方案。根据 MECE 的原则,可以将战斗力不足的问题分解为下列几个方面:
2.1 效率问题
效率是衡量研发团队战斗力的最直接指标之一。如果团队的任务完成效率低下,项目延期频繁,势必会影响整体战斗力。这一问题可以分为以下几个子问题:
- 流程不清晰:团队的开发流程、测试流程、发布流程是否标准化?是否有明确的职责划分和操作步骤?
- 工具使用不当:项目管理工具、代码管理工具、自动化工具是否充分使用?是否存在大量的手动操作和重复劳动?
- 不合理的资源分配:团队成员的任务分配是否合理?是否存在某些成员工作过载,而其他成员任务量不足的情况?
- 瓶颈无法突破:团队在某些技术领域或开发阶段是否经常遇到瓶颈,导致任务卡住?
2.2 沟通协作问题
沟通不畅往往是导致研发团队效率低下和战斗力不足的主要原因之一。沟通问题可以进一步分解为:
- 跨部门沟通障碍:研发团队和其他部门(如产品、运营、市场等)之间的沟通是否频繁出现误解或信息不对称?
- 内部沟通不畅:团队内部成员之间是否缺乏有效的沟通渠道?是否存在信息流动不畅或不透明的情况?
- 技术与业务脱节:研发团队是否充分理解业务需求?技术方案是否能够及时响应业务的变化?
2.3 士气和激励问题
研发团队的士气低落通常是由激励机制不合理、工作压力过大或缺乏成就感引起的。这个问题可以进一步分解为:
- 激励机制不健全:绩效考核、薪资、奖金等激励机制是否能够有效激励员工?团队中是否存在“吃大锅饭”的问题,导致优秀员工失去动力?
- 成就感缺失:团队成员是否能感受到工作的意义?是否有足够的成就感和归属感?
- 工作倦怠:团队成员是否长期处于高压、加班的状态,导致出现工作倦怠?
2.4 技术债务与质量问题
技术债务和质量问题会严重影响团队的战斗力,因为它们导致团队需要花费大量时间在修复错误和维护上,而不是开发新功能或创新。技术债务和质量问题的细分包括:
- 代码质量差:团队是否有严格的代码评审流程?代码是否有良好的可读性、可维护性?
- 技术债务积累:系统中是否存在大量的历史遗留问题(如未重构的老旧代码、架构问题等),导致维护成本高、开发效率低?
- 缺乏自动化测试:团队是否有足够的自动化测试覆盖?是否依赖大量的手工测试,增加了测试和发布的成本?
2.5 人才梯队建设不足
人才梯队建设不足意味着团队缺乏不同层次的人才储备,导致团队的整体战斗力和可持续发展能力受限。具体问题包括:
- 晋升机制不明确:是否有清晰的晋升机制和职业发展通道?员工是否知道如何通过努力获得晋升或更多的成长机会?
- 接班人缺失:是否有计划培养接班人,确保每个关键岗位都有后备力量?
- 关键依赖严重:团队是否过度依赖某些核心人员,一旦这些人离职或请假,项目进展是否会受到严重影响?
2.6 人才密度不够
人才密度不够会导致团队在面对复杂技术问题时缺乏足够的解决能力,团队的技术创新能力也会因此受到影响。这个问题可以进一步分解为:
- 招不到合适的人:招聘过程是否存在瓶颈,导致无法及时引入高水平的技术人才?
- 人才培养不足:是否有系统的内部培训机制,帮助团队成员提升技术水平?
- 技术水平参差不齐:团队成员的技术能力是否存在较大的差异,导致整体效率不高?
2.7 工程化和系统化不足
工程化和系统化不足会导致团队效率低下、交付质量不稳定,无法应对复杂的项目需求。具体问题包括:
- 开发流程不标准:是否有统一的开发、测试、发布流程?是否存在大量的手动操作?
- 自动化程度不够:系统的开发、测试、部署等环节是否充分利用了自动化工具?是否存在大量重复的手工劳动?
- 架构设计不合理:系统的架构设计是否能够支持业务的扩展和未来的发展需求?是否存在模块耦合度过高、扩展性差等问题?
3 体系化的解决问题
解决研发团队没有战斗力的问题,是一个多维度、跨职能的系统性工程。它涉及到组织文化、组织结构、技术架构、流程设计、工程系统和度量考核等多个方面。每个维度的优化和提升都能够为研发团队带来战斗力的增强,但这些维度并非孤立存在,而是相互关联、彼此支撑的。
我们需要明确的是,研发团队战斗力的提升不仅仅是为了提高「速度」,更是为了提高「质量」和「价值」,即更高效地交付更优质的产品,满足业务需求,并为公司创造长期的价值。
3.1 组织文化和沟通机制构建
组织文化是企业的灵魂,它直接影响员工的行为和思维方式。一个以创新和协作为核心的组织文化能激发员工的创造力,鼓励他们尝试新方法和新技术,并在失败中学习和改进。文化的塑造对研发效能提升而言,是打下「地基」的工作。
如何构建?
- 建立跨部门沟通机制:通过定期的跨部门会议或项目复盘,确保技术、产品、业务等不同职能部门之间的沟通顺畅。可以采用 OKR 或双向沟通机制,让各部门了解彼此的目标和进展,减少信息孤岛。
- 鼓励知识共享:定期组织 技术分享会、内部培训,以及设立 技术博客 或 Wiki,这样可以促进技术积累和知识在团队内的流动。还可以通过内部的 导师制,帮助新员工快速融入团队。
- 认可和激励创新:设立相应的 奖项 或 肯定机制,对提出创新方案或成功实施新技术的员工进行公开表扬和奖励。比如可以设立 季度创新奖,以鼓励员工在日常工作中不断试验和改进。
- 领导层的共识:研发负责人应确保与高层管理者达成一致,使研发效能提升工作得到高层支持。领导层的共识会帮助在资源分配、目标设定、团队管理等层面为研发效能的提升提供保障。
我们可以进行如下的一些具体的操作:
- 定期组织 跨部门的需求讨论会 或 研发复盘会,确保各个部门的需求和反馈能够及时传递。
- 设立 激励计划,对优秀的创新项目和技术方案进行奖励。
- 通过 员工满意度调查 或 一对一访谈,了解员工对现有文化的看法,并持续改进。
3.2 调整组织结构
组织结构决定了信息的流动、资源的分配以及决策的效率。一个灵活的、扁平化的组织结构能够促进创新,加速决策过程,同时减少层级间的沟通障碍。通过合理的组织结构设计,可以让团队在面对复杂问题时具备更强的反应能力。
组织结构的调整需要根据实际的团队情况以及业务情况来做优化,是职能型,还是项目型,还是矩阵型等等,可以有如下的一些参考思路:
- 小型化、自治化的团队:采用 跨职能团队 的形式,促进团队成员之间的紧密合作。每个团队都拥有相对独立的决策权,能够快速响应业务需求。采用 Spotify 模式 或 Scrum 团队 的形式,打破职能部门壁垒,形成更快速决策和执行的团队。
- 灵活的项目管理机制:引入 动态人员管理 和 内部创业机制,让团队能够根据项目的需求灵活调整人员和资源配置。通过设立 内部孵化器,让员工能够在公司内部尝试新的项目和解决方案。
- 减少管理层级:通过扁平化管理,减少中间层级的沟通障碍,形成更直接的反馈机制。管理者应该更多地起到 协调者 和 支持者 的作用,而不是微观管理。
在实际操作过程中,我们可以:
- 设立多个 跨职能团队,每个团队独立负责某个产品或项目的端到端交付。
- 引入 OKR 管理机制,确保各个团队的目标与公司整体战略保持一致,并且团队间可以灵活协作。
- 定期进行 组织结构评估,根据业务需求和人员成长情况灵活调整团队架构。
3.3 评估并调整技术架构
技术架构的合理性直接影响团队的研发效率。如果架构设计不合理,团队的开发成本会持续增加,迭代速度会变慢,系统的稳定性和可扩展性也会下降。通过合理的架构设计,可以让团队更高效地应对变化和扩展需求。
以下为一些评估和调整的思路或原则:
- 模块化、低耦合的架构设计:在架构设计中,遵循 高内聚、低耦合 的原则,确保系统模块之间的依赖性降到最低,便于独立开发和部署。采用 微服务架构 或 服务化架构,将系统拆分为相对独立的服务,确保每个模块可以独立扩展和维护。这虽然是老生常谈,但是很少有组织做得很好。且这里需要根据实际的业务需要和当前架构形态来决策。
- 云原生架构:通过云原生架构,使用 Docker、Kubernetes 等容器化和编排技术,实现系统的一致性和可移植性,支持快速部署和环境隔离。
- 灵活的技术栈:根据业务需求选择合适的技术栈,而不是盲目追求技术潮流。技术选择要与团队的技术能力和业务发展阶段相匹配。
- DevOps 和 CI/CD 实践:通过持续集成和持续交付(CI/CD)来加速产品发布,减少人工操作的错误,提升发布频率和质量。
具体操作过程中,我们可以:
- 进行 架构评审,定期对系统的技术架构进行审查,确保架构能够支持当前和未来的业务发展。
- 引入 DevOps 实践,通过自动化工具(如 Jenkins、GitLab CI 等)实现持续集成和交付。
- 采用 微服务架构 进行系统划分,确保各个服务可以独立开发、测试和部署。
3.4 优化研发流程
研发流程设计是确保研发活动高效进行的关键。良好的流程设计可以减少非必要的工作,清晰定义各个阶段的输入、输出和质量标准。同时,优秀的流程设计能帮助团队在每个环节上减少浪费,提升整体效率。
以下为常用的一些优化思路:
- 引入敏捷开发方法:采用 Scrum 或 Kanban 等敏捷开发方法,确保团队能够快速响应需求变化,并通过短周期迭代逐步交付产品。不能为了敏捷而敏捷,根据当前团队情况来实施。
- 精益开发思想:通过 精益思想(Lean),消除流程中的浪费,减少不增值的工作。例如,减少不必要的会议、文档、审批流程,提升团队专注于高价值任务的时间。
- 自动化流程:通过引入自动化工具,简化开发、测试和发布流程,减少手工操作和人为错误。比如自动化代码检查、自动化测试、自动化部署等。
- 数据驱动的流程优化:通过 数据分析工具(如 Jira、SonarQube 等)监控流程中的瓶颈点和低效环节,并持续优化流程。
实际操作过程中可以通过以下的方式来做一些落地的操作:
- 定期进行 流程审查会议,分析当前流程中的低效环节和瓶颈,提出改进方案。
- 采用 需求交付周期 和 需求吞吐量 等指标,衡量每个迭代的效率,并根据数据优化流程。
- 使用 自动化工具 完成代码检查、测试和部署,减少人工干预。
3.5 优化工程系统
工程系统是研发效能提升的基础设施。包括代码管理、构建、测试、部署等一系列工程实践。通过系统化的工具和方法,可以减少重复性工作,提升研发的效率和稳定性。
工程系统如何优化?
- 统一的开发环境:建立统一的开发环境和工具链,确保团队成员在同一套标准下工作,降低环境差异带来的问题。采用 Docker 等容器化技术,确保本地开发环境与生产环境的一致性。
- 自动化测试平台:通过自动化测试平台(如 Selenium、JUnit、TestNG 等),实现单元测试、集成测试、回归测试的自动化,提高产品质量,减少人工测试的负担。
- 版本控制系统:采用 Git 等版本控制系统,建立合理的分支管理策略(如 GitFlow),确保代码的安全性和可追溯性。
- 监控和日志分析系统:引入 监控工具(如 Prometheus、Grafana)和 日志分析工具(如 ELK Stack),确保系统的运行状况可视化,尽早发现问题并采取措施。
在实际操作过程中我们可以:
- 建立统一的 Docker 镜像仓库,确保开发和生产使用相同的基础环境。
- 使用 持续集成工具(如 Jenkins)进行代码的自动化构建和测试。
- 设立 监控和报警机制,确保系统的健康状况能够被实时监控。
3.6 构建度量考核
度量考核是研发效能提升的反馈机制。它为团队提供了衡量成果和改进的依据,帮助团队识别问题、跟踪进度,并调整优化策略。没有量化的度量,研发效能的提升就缺乏方向和依据。
同时,度量可以让战斗力这个概念可视化出来,更明确什么是有战斗力,什么是没有战斗力。
我们可以用如下的方式落地:
- 建立科学的度量体系:用一套符合团队实际情况的指标体系来衡量效能,覆盖项目进度、产品质量、团队效率等方面。常见的度量指标包括 需求交付周期、缺陷率、代码覆盖率、部署频率 等。
- 定期审视数据:定期对这些指标进行审查,分析趋势和异常,找出影响效能的主要原因,并制定改进措施。
- 将度量结果与激励机制挂钩:通过绩效考核,确保团队成员的贡献能够被量化和认可,并通过奖励机制激励团队不断提升效能。
实际操作:
- 建立 研发效能仪表盘,实时监控团队的效能指标。
- 每月定期召开 效能回顾会议,根据数据分析报告,制定下一步的改进计划。
- 将 研发效能指标 纳入团队的 OKR 或绩效考核体系,确保团队成员的目标与效能提升保持一致。
4 小结
提升研发团队的战斗力是一个体系化、系统化的工程,涉及到组织文化、组织结构、技术架构、流程设计、工程系统和度量考核等多个层面。通过在这些维度上进行持续优化,可以显著增强研发团队的战斗力,提升产品交付的速度、质量和创新能力。
如果要真正的解决研发团队没有战斗力的问题,在上面界定问题、分析问题和解决问题的基础上,还需要有如下的一些操作和逻辑:
- 建立目标和成功判断
- 制定详细的解决方案
- 设定里程碑
- 制定详细的工作计划
- 风险判断和未来改进
只有完整落地详细的工作计划,完成里程碑,一步一个脚印,才能真正的打造出有战斗力的研发团队。
每个企业的实际情况不同,因此在执行时需要根据具体场景进行灵活调整。最终目标是帮助研发团队在高速变化的市场环境中,更高效、更稳定地交付高质量的产品,创造更大的商业价值。
来源:juejin.cn/post/7430058214982926386
从《逆行人生》聊聊中年程序员的出路
赶在下架前去看了《逆行人生》。
这部电影讲述了高志垒——一个架构师,被裁员后,在找工作两个月颗粒无收的情况下,被逼无奈去跑外卖的故事。
个人感觉还是很值得一看的,是一部很好的现实题材电影,并没有网上说的资本迫害打工人还要打工人努力奋斗的感觉。
有年轻人说,难以共情。70万年薪的人最后要落到为了 15k 的月薪而奔波,他不理解为什么。然而就我亲身经历而言,无路可走的时候,我们的确会做这样的选择。
我们先来看看中年程序员有哪些选择。
中年程序员有哪些出路?
继续打工
打工,无疑是多数人的选择。毕竟上一天班赚一天的钱,这种稳稳的幸福还是大部分人的追求。但打工也不能停滞不前,还是要不断学习、拓展自己的能力,尤其是我们IT行业,技术更新迭代快。如果不学习,很可能 3 到 5 年就被淘汰了。
程序员要晋升、跳槽,主要学习方向以下两种:
- 拓展技术的深度与广度:高级开发、架构师、热门行业的开发如AI等;
- 向外拓展自己的能力:培训机构老师、高校老师;技术管理;
自己单干
继续打工,无疑都会碰到被裁员的风险,你个人的命运始终掌握在老板甚至顶头上司的手里。如果你不甘于此,就要开创性地走其他路了。这对个人的挑战都是极大的。
程序员可以凭借技术能力逐渐向外扩展:
- 独立开发:承接项目或者自研产品
- 创业:成立公司、团队,完成开发工作
彻底转行
也有部分人被彻底伤透了心,完全不再进入这个行业了,转向其他行业了。
- 网络兼职:写手、影视剪辑等;
- 中年三保、铁人三项:保安、保姆、保洁、快递、司机、外卖。这个是被大家调侃最多的;
- 其他行业的打工者:如制造业、外贸等行业;
- 开店或者创业:存上一笔钱开店或者做一间自己喜欢的公司,也是一些人的选择。
我们应该如何选择?
如上所见,程序员能做的选择还是比较多的。我们将这些工作列个表,列一下所需要的能力与所承担的责任,以及最后的风险,以便做选择:
可以看到,每个方向其实都是有风险的,并没有不存在无风险的职业与方向。那是不是我们就可以完全凭借个人喜好来决定呢?并非如此,这些选择对大部分人而言,还是有优劣之分的。
不推荐铁人三项、中年三宝
首先,我个人其实非常不建议程序员转行去做起他行业的,除非迫不得已,尤其是从事体力劳动。
因为这需要消耗大量的体力与时间。中年人无法靠比拼体力取胜,工作时间长,也无法取得工作生活平衡。在电影《逆行人生》中,高志垒虽然赢了第一个单王,但可以看出其靠的更多是运气,行业老大哥或退出竞赛、或家里有事提早离开。
另外就是,AI 技术发展和市场供需变化。不久前武汉的萝卜快跑落地,相信大部分滴滴司机都感受到了被淘汰的可能。而且这类工作市场基本上已经饱和,所以薪酬只会越来越低。
其他的网络兼职、去制造业服务业打工,这些都是门槛低,程序员即使有技术与能力,也不见得有任何优势的,所以也是不推荐的。
而开店或按自己的兴趣来创业,则非常看你个人能力了,同样需要更谨慎的考虑,当然你如果家财万贯,倒是可以任性一把。
更推荐提早规划、提早行动
剩下的职业方向其实都是推荐的,因为多多少少跟我们自身学习的技术是相关的。将我们的能力逐步往外扩,逐渐走出舒适圈,是更合适的一个发展路径。但是需要注意的是,建议尽早立下目标,提前规划,尽快行动的。
如,希望做老师,可以提早在企业内部做讲师、技术讲师,给新人讲解。锻炼好自己的沟通表达能力,多想想如何让新人更好地融入企业、进入工作状态。
又如,你想自己创业,那可以开始就留意你手头上做的产品是如何开发、运营的。公司如何分配人力物力去做的,如何做商业变现的,如何寻找客户的等等这些问题。不仅要站在技术角度、也要站在公司的角度多思考、多学习、多实践。甚至在时机成熟的时候,提出转岗去做产品、技术管理,更早地锻炼自己所需的创业的能力,能让自己日后的路走的更顺。
高志垒为何还是选择送外卖?
回到电影,既然都不建议程序员从事体力劳动,高志垒好好的一个架构师,也是有脑子的,为啥最后还是选择了外卖员呢?
首先,从影片一开始可以看出,高志垒选择了架构师或者技术管理偏技术方向,因其手头上还有一线开发的任务。显然对于 45 岁的他,在打工这条路上几乎已经到顶了。
然而,他并没有做好职业规划,甚至从未考虑过失业的风险。在突然失业时,才发现市场上几乎找不到自己的职位、薪酬,最后简历也是乱投一气了;而中产返贫三件套:高额房贷、全职太太、国际学校,他几乎全都拥有;并且还大笔地投资了 P2P ,因其爆雷导致家庭财产大量损失;再加上其父亲突发重病,住院急需要钱。
所有的状况同时出现,所有的压力压在身上,在两个月投递简历无果时,他听说送外卖能补上房贷月供差额的数目,宛如找到救命稻草一般,毅然加入了外卖行业。
如何避免陷入被动状况?
如何避免我们也陷入高志垒的状况?
除了像上面说的提早积攒自己的能力,提早做规划、更早地行动外,程序员也应提升技能多样性,特别是专业外的技能;同时在职业中后期应寻找到更利于个人发展的公司或项目;还需要拓展人脉,保持与行业内的沟通交流;在最后,保持健康的生活习惯和平衡好工作,让自己的职业寿命尽可能地延长。
而在财务上,做好失业准备、甚至为后续独立开发、创业等积攒资金都是必要的,所以需要采取一些措施,做好家庭财务的规划,如:
- 留出紧急备用金:为应对突发事件,如失业或疾病,应建立足够的紧急基金,一般建议为家庭日常开支的3-6个月。
- 谨慎投资:只投资自己熟悉的产品;了解自身的风险承受能力再投资;同时避免将所有资金投入到单一的高风险产品中,如P2P,应进行资产配置,分散风险。
- 购买保险:为家庭成员购买适当的健康保险,以减轻因病致贫的风险。
- 做好财务预算、规划:每年、每月做好财务预算;同时对于房贷和教育投资等大额支出,应进行详细的财务规划,确保在收入中断时也能应对。
- 增加收入来源:尽可能地增加家庭收入来源,比如配偶就业或开展副业,减少对单一收入的依赖。
总结与思考
在戏里的高志垒无疑是幸运的,家庭和睦,家人都给予最大的支持,愿意一起度过难关。再加上自己开发的小程序“路路通”,同事间互助互利,最后,成功拿到了单王,并帮家里度过经济危机。
然而最后的结局,高志垒并没有“逆袭”人生,而是在“逆行”人生中,调整了自己。最后他卖掉了大房子,搬到了小房子住,老婆依然在工作,孩子也放弃了就读国际学校、老人靠自身意志力完成了康复。
这也是我觉得这部电影还算现实主义之处。并没有理想中的事情发生,就像现实生活中那些受挫的人们一样,最后选择降低生活标准,继续前行。
最后的最后,问一下大家,如果你面临电影结尾彩蛋中的情景,有一个外卖公司的高层老板对你开发的“路路通”小程序感兴趣,你会如何选择?
- 卖掉小程序,拿钱走人
- 加入外卖公司,继续开发
- 不卖,开源
欢迎留下你的答案与思考,一起讨论。
来源:juejin.cn/post/7414732910240972835
如果你想做副业,不妨看看我这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
大龄程序员尝试了不一样的兼职体验
- 自我理解
我可能和大部分程序员是一样的,就是一个普普通通的程序员,没有远大理想,没有清晰的职业规划,踏踏实实的做好工作,平时做好技术积累。即使目前已经36了,但不善于交际,依然是一个最底层的程序员,每天依然是写代码。在一家很小的小公司里面干了十多年了,可能公司比较小,危机也没有大公司那么强烈,即使经历了三年疫情,一个小公司活下来也是奇迹。在35岁前,我也并没有什么工作危机感。但是随着过了35岁,感觉可能程序员并不能干一辈子,而且这个感觉越来越强烈(不知道为什么会有)。所以一直就想找找其他的职业方向,列如兼职什么的,先尝试一下,毕竟之前什么也没做过。
- 想法的迸发
自从有了这个想法,我就开始不断的去了解那些是可以做的。例如自媒体,自媒体的选材又很多,知识分享类的,感受分享类的,直播讲课类的等。总之想了很多,但由于自己表达能力不是很好。多次录视频尝试后,还是不行。不得以放弃掉。后来接触送外卖是从一个朋友那里了解的,他也是兼职送,每周末兼职。大概每天能赚个200到300左右。经过朋友的鼓励,我选择尝试一下。
- 开始准备工作
可能送外卖和大家理解的还不一样,不是有个电动车就能送的。得租一个或者买一个能够换电的电动车,能够随时换电,不用担心没电的情况。接单也不是注册app就能接,这个也得有方法的,下面讲。开始准备租车,租车方式很多,大概租车价格都差不多,基本在500到700之间,包含租车和租电。总之租好车和注册号APP,按照流程做好认证,把学习课程做完就可以正式跑单了。
- 跑单开始
开始跑单的时候是由朋友带着跑了一次,怎么接单,接派单,怎么取单,怎么送单。跑了一次后也就明白了整个流程。我就开始自己跑,由于自己刚开始跑,我就选择接一单跑一单(外卖大神都是一次接十多单)。但是跑的过程中也是好多问题,商家找不到了,客户楼栋找错了啊,路线导航错了,送错人了,车到一半没电了等等。好多问题,但是万幸的是到目前还没有超时过。
- 跑单时间和收入
最开始是周末跑的,后来感觉停不下来了,现在每天中午休息的时候跑一个半小时,晚上不跑好好休息,毕竟还要上班,主业还是很重要的,周末继续跑。现在收入大概平时中午能收入二三十左右。周末能到200左右了。截至目前已经连续跑了两周了。
- 跑单后的感受
第一个身体上的感受,感觉之前的身体太弱了,最开始非常累,现在已经习惯点了。感觉自己的精神和专注度比之前要提升很多。虽然累,但是第二天还是很精神的,最起码感觉比之前要有很大的提升。 第二个就是眼界上面,每天都能够接触不同行业的人,看到很多的事情,比之前接触的人要多得多,而且大多数人对送外卖的是非常友好的。第三个就是通过送外卖可以看清很多东西,列如有些外卖真的环境很差,而且点的人还超级多。每次我都想提醒下这些人下次不要点了。有的时候打包外卖的人很快,有的就非常慢(这大概也是摸鱼),通过别人看自己也能理解一些东西。
- 给大家的建议
虽然感觉大家不一定能够点进来看,但是万一你点进来,并且看到了这里。我希望给你的建议就是如果你找到一个兼职的方向,请马上行动起来,并且坚持,如果不行,就换一个,马上行动,再坚持。
也希望大家能够给我一些兼职方面的建议,我的眼界太局限了。可能有些行业我能够做好的,但是我并不知道的。在这里我谢谢大家。
来源:juejin.cn/post/7428785902640316451
90后在技术上开始被00后嘲笑了,90后该何去何从?
只要你不断的学习,哪怕学习一项新技术生命周期只有五年,未来十年内这个行业找口饭吃还是不难的, 如果互联网赛道太卷,也可以换个赛道
前言
事情是这样的,最近我正在做一个项目需要用到Elasticsearch做全文检索,我们组刚好进了一个00后新人,这个项目需求是在原来的搜索上增加很多新的字段,他说:新增加的字段他一会整理下然后添加到老索引上,我当时说:我们Elasticsearch索引里面有好几千万的数据,有一套添加字段的流程,需要重建索引比较麻烦的,大致流程是:先创建一个新的索引,然后reindex老数据到新索引中,然后再将别名重新指向新索引,具体流程可以参考我之前的文章《EalsticSearch添加字段后重建索引方法》。他说不需要这么麻烦啊,直接添加就好了,当时我就愣住了,我说你这有点超出了我的认知,在我的认知里Elasticsearch添加字段都是需要重建索引了,你确定索引里添加新字段不需要重建索引也能被检索到,他被我这么一问也有点不自信,然后我就实际求正了一下,在Elasticsearch7.10里添加字段确实不需要重建索引,就和Mysql添加字段一样,可能是我的知识有点落伍了,所以这里也学习、记录、反思一下。
一、添加索引
1.1 创建索引
第一步我们创建一个user索引,里面添加一个id字段:
PUT /user
{
"mappings": {
"properties":
{
"id": {
"type": "long"
}
}
}
}
然后我们添加一条数据:
POST /user/_doc/1
{
"id":1
}
1.2 添加字段
现在我们需要为user索引添加一个userName字段,类型为keyword
PUT /user/_mapping
{
"properties": {
"userName": {
"type": "keyword"
}
}
}
然后 GET /user/_mapping
发现字段已经添加上了
{
"user" : {
"mappings" : {
"properties" : {
"id" : {
"type" : "long"
},
"userName" : {
"type" : "keyword"
}
}
}
}
}
为了验证添加字段是否能补检索,我们添加一条数据
POST /user/_doc/2
{
"id":2,
"userName":"赵侠客"
}
▲可以搜索出添加的字段
验证完全没有问题,字段添加上了,也能搜索,事实证明我的知识确实需要更新了,我也不知道为什么我的认知里添加字段是需要重建索引的,而且我身边的开发者也是这么认为的,可能是最初使用者用了这个方法,后来留给我们了,然后大家都觉得添加新字段需要重建索引,也就一直这么用下来了!!!
1.3 历史数据处理
新加字段后新数据都有了userName字段,但是老数据是没有userName字段的,处理方法有两种
- 老数据从数据库批量同步一下
- 老数据可以通过_update_by_query设置个默认值
POST /user/_update_by_query
{
"script":{
"source": "ctx._source['userName'] = "公众号:【赵侠客】""
},
"query": {
"range": {
"id": {
"gte": 0,
"lte": 1
}
}
}
}
_update_by_query还有很多其它参数,比如异步执行、查看执行任务、取消任务等等,具体可以参考官方文档: Update By Query API
二、修改|删除索引字段类型
2.1 修改索引字段类型
在 Elasticsearch 中,一旦创建索引,就不能更改现有字段的数据类型,因为Elasticsearch是构建了倒排序索引,试想一下比如userName现在是keyword类型,如果我想改成text类型并且使用ik_max_word分词器分词,如果Elasticsearch能支持修改,那么它需要 将所有的历史数据都使用ik_max_word分词一下再重建索引,如果数据量巨大这个过程是非常缓慢,就像Mysql大表修改索引是非常慢的,所以就不支持了。想要修改字段类型,最好的方法应该是按我之前写的使用别名+reindex方式《EalsticSearch添加字段后重建索引方法》
2.2 删除索引字段
Elasticsearch已经建立好的索引数据是无法直接删除一个字段的,不过可以有两种方式来解决:
- 第一种:是和修改字段类型一样,使用别名+reindex方式重建索引,
- 第二种:
是通过_update_by_query将历史数据中的字段删除掉,这种方法只能删除数据中的userName 字段值,mapping中的userName还是存在的,不过只要数据中没有userName字段其实和删除字段效果是一样的
POST /user/_update_by_query
{
"script": "ctx._source.remove("userName")",
"query": {
"bool": {
"must": [
{
"exists": {
"field": "userName"
}
}
]
}
}
}
2.3 批量删除数据
既然有了_update_by_query,那肯定就有_delete_by_query,我们可以批量删除数据
POST /user/_delete_by_query
{
"query": {
"match_all": {}
}
}
同样_delete_by_query也有很多其它用法,可以参考官方文档: Delete by query API
最后总结:
- 索引可以添加字段
- 索引字段类型不能修改
- 索引字段不能删除
三、焦虑的原因
前面写Elasticsearch不是本文的重点,只是我的引言,我是想让真正爱学习、有耐心看到最后的人能看到接下来的内容,本文的重点我是想聊聊对程序员这个行业的一点看法,为什么这个行业大都数人都非常的焦虑,刚工作的焦虑自己技术差,工作几年的焦虑自己要非升即走,工作很多年的焦虑自己会被裁。我觉得主要的原因就和上面写的案例有点关系。数学老师为什么不焦虑,越老越吃香?因为数学老师的教学经验会随着工作年限的增长而不断积累。比如三角函数有很多很难记的公式如:sin(A+B)=sinAcosB+cosAsinB,对于老师来说在刚工作可能25岁的时候下功夫记住,探索出一套自己的教学方法,在他65岁的时间照样可以用,如果每年还能优化一下教学方法,那么他会在教学岗位上干的越来越顺,教学效果也会越来越好,自然越老越吃香。反观我们这个行业,10年前你可能对SSH框架(struts+spring+hibernate)非常精通,可是现在呢?完全没人用了,不仅不能帮助你,写在简历上别人肯定觉得你比较落后,也就是说你的经验是不能一直积累的。就好比今天上面这个添加字段的案列,可能今天来看Elasticsearch不支持修改字段类型,但是5年后你还敢说Elasticsearch不支持修改字段类型吗?你现在学习的知识也许只能使用5年,5年后现在学习的知识很可能不但不能帮助你 还可能拖累你,而且随着年龄的增长,你的学习的时间、精力和效率还在不断的下降,这放在谁身上都会焦虑的。还拿数据老师教三角函数来说,如果每年都有几个三角函数公式被证明是错误,然后会有新的公式来取代,老的教学方法就不适用了,要探索新的教学方法 那我觉得老师可能比程序员更焦虑。
四、破解之法
4.1、职业选择
选择大于努力,第一步我觉得要认清程序员这个行业的现状,不能因为初期工资高就一门脑袋往里扎,就像最近比较火的太原理工大学2024软件工程招60个班,近2000人,有多少人是了解这个行业的,现在不清楚自己是不是适合这个行业,一门脑子扎进去,以后会随着时间的发展会陷的越来越深,想跳出来也会越来越难。所以我觉得前期要定位自己适不适合这个行业非常重要,我觉得有以下特点的人是非常适合这个行业的:
- 逻辑思维强:编程工作需要严谨的逻辑推理,能将复杂问题拆解成简单的步骤,并用代码实现。
- 耐心 和专注:编程过程中常遇到调试错误、修复bug等琐碎但关键的工作,这需要有足够的耐心和专注力。
- 好奇心和学习 能力:技术更新快,编程语言和框架不断变化,适合做程序员的人通常对新知识感兴趣,并有较强的学习能力。
- 解决问题的能力:编程本质上是解决问题的过程,适合做程序员的人喜欢面对挑战,乐于通过逻辑推理和分析找到解决方案。
- 自我驱动力强:编程项目通常需要独立完成或长时间集中开发,具备自我激励、主动学习的能力尤为重要。
- 注重细节:代码中的小错误可能会导致程序崩溃,适合做程序员的人往往对细节有高度敏感性,善于发现和修复问题。
- 抽象思维:编程需要将现实问题抽象成数据结构和算法,适合做程序员的人通常能在高度抽象的层次上思考问题。
- 沟通与协作能力:尽管编程看似是独立工作,但在实际项目中,程序员需要与产品经理、设计师、其他开发者等团队成员密切合作,清晰的沟通能力是关键。
- 抗压能力:程序开发过程中难免会遇到紧急需求、临时修改或技术难题,良好的抗压能力能够帮助程序员在高压环境下保持冷静。
- 结果导向:编程工作最终是为了实现功能或解决业务需求,适合做程序员的人能够以目标为导向,高效达成任务。
同时我觉得有以下特点的人是不适合干程序员:
- 不喜欢学习新技术:程序员需要不断学习和适应新技术、编程语言、框架等。如果对新知识没有兴趣,或排斥学习,那么很难跟上技术发展的步伐。
- 缺乏耐心和细心:编程需要大量的调试和修复错误,这些过程往往繁琐且时间长。如果缺乏耐心或不注重细节,容易导致代码质量低或频繁出错。
- 逻辑思维较弱:编程本质上是逻辑的工作,如果无法清晰地理解和推理复杂的逻辑问题,或者在面对问题时感觉思路混乱,可能会在编程中遇到较大困难。
- 不喜欢长时间独立工作:程序员的工作常常需要长时间独立思考和编码。如果不喜欢独处或静心工作,可能难以适应编程的工作节奏。
- 抗压能力差:程序开发中常会遇到紧急需求、项目延期、复杂的技术难题等高压情况。如果在压力下容易崩溃或无法保持稳定的心态,可能会影响工作效率和结果。
- 缺乏责任感和自律性:编程工作需要高度的自律和责任感,特别是在解决bug、优化性能时。如果没有足够的责任心,容易出现偷工减料或敷衍了事的情况,进而影响项目的整体质量。
- 不擅长沟通和团队协作:尽管编程常被认为是独立工作,但在实际项目中,需要与团队中的其他角色(如产品经理、测试人员等)频繁沟通。如果不善于沟通或抗拒与他人合作,可能难以融入团队工作环境。
- 厌恶重复性工作:编程虽然涉及创新和解决问题,但也有大量重复性的编码、调试、测试等工作。如果对这些重复性任务感到极度厌烦,可能会降低工作热情和效率。
- 缺乏结果导向:编程最终是为了实现功能和解决问题。如果过于追求完美或沉迷于技术细节,无法在规定时间内交付有用的结果,可能会影响项目进度和团队合作。
- 对电脑和技术无兴趣:程序员需要长时间与电脑打交道,对技术本身的兴趣是持续发展的动力。如果对电脑操作、技术细节等完全无感或厌烦,难以在这个行业长期坚持。
4.2、职业规划
如果你已经选择进入了这个行业,那我觉得必须要有一个清晰的职业规划,毕竟程序员的职业生涯是比较短暂的,黄金时期可能也就十年左右,我觉得程序员的职业规划主要分为三部分,前期工作三年内、中期工作四到七年,后期工作八年以上,这三个阶段的工作重点或者说目标是不一样的。
- 前期(三年内)
这个阶段我觉得是:面向技术开发。因为是刚参加工作,技术能力比较差的,工资也是非常低的,所以我觉得这个时期的工作重点是快速提升自己的技术能力,你所做的一切必须要快速的提升你的技术能力,要快速的多做项目、多学习,如果公司升职加薪通道比较窄,我觉得要果断跳槽, 因为你的技术在快速的提升,如果你的工资和职位增速与你的技术增速不匹配,唯有跳槽。
- 中期(四到七年)
这个阶段我觉得是:面向履历开发。拥有一个好的履历将会受益终生,比如你在BAT待过,比如你参加了某某公司的双十一架构设计,这些写在简历上都是浓墨重彩的一笔。这一时期你的技术基本稳定成长,如果有去大厂的机会,建议还是去大厂。如果没有,我觉得需要在当前公司找到属于自己的位置,要有自己的核心负责产品,能帮助自己稳步晋升,如果没有而且技术也增长不上去、自己学习也没什么动力,我觉得这个时期转型是比较明智的。因为在这时期你大概三十不到,可能没有结婚,没有房贷,不需要养娃,也不用养老人,自己应该也有点积蓄,是工作后最没有压力的时期,所以有大把的时间和精力来寻找机会。如果到了后期,可能有房贷、车贷、养娃、养老人,压力是非常大的,没有太多的空窗期让你转型,你很可能就只能向生活低头,在公司一直苟着,担心自己终于有一天被裁,也会越来越焦虑,这就是所谓的中年危机,这一时期也是避免后期中年危机的最好时间段。
- 后期 (八年以上)
这个阶段如果还能做技术,我觉得是:面向管理开发。因为这个阶段你在技术方面,如果不是那种不断学习进步,你的技术可能慢慢不如新人,你的技术慢慢变的没有优势,你对公司的价值也在慢慢变小,但是能在公司项目组留下来的都是元老级人物,对公司的环境、 业务、领导、同事、甚至行业都非常的了解,公司是需要一个有经验和公司一起成长的人来管理、带团队的,所以这时期我觉得工作重点是要了解公司的整体业务、行业的发展,要提升自己管理能力,向管理岗位不断靠近。但是管理岗位毕竟是少数,如果自己没有管理能力该怎么办?破解之法 就是:副业。我有很多同事都是副业转正,现在赚的可不是打工人每月这点工资了。作为程序员具体的副业就太多了,常见的如:做外包、做开源、做自建站、写工具、做自媒体,还有一点要重点说的是:程序员一定要关注海外市场,还记录承德的程序员Github接单被没收百万收入并处以罚款的新闻吗?国内是个小市场,只有打开国际视野你才能看到一个更大的市场,会有更多的机会。
最后
以上仅仅是我个人的一些浅薄观点,不一定适合你,需要根据自己的实际情况多加思考,今年的整体行情非常的差,在可预见的几年内可能都不会有太大的转变,未来程序员这个行业可能会越来越卷。我也在一直思考自己在这个行业的定位,和未来的发展方向, 其实也没能找到自己的答案,也是走一步,看一步,再想一步。未来行情是卷的,但是中国在未来十年内随着人口的减少,必须要加大数字化和智能化建设,所以只要你不断的学习,哪怕学习一项新技术生命周期只有五年,未来十年内这个行业找口饭吃还是不难的, 如何互联网赛道太卷,也可以换个赛道,比如去传统行业做数字化,目前传统行业对程序员需求量非常大,互联网过去的都算是高级人才,而且很有可能比在互联拿的更多!!
来源:juejin.cn/post/7403576996394385444
社会现实告诉我,00后整顿职场就是个笑话
00后整顿职场,也算是我之前的关键词吧。
我硬怼老板要加班费和提成,和他们辩论什么是我的财产,什么是公司的财产。
甚至还能在即将被开除的时候,反将一军把老板开除。
而正是因为这一次把老板开除,让我得到了机会。可以站在了相对于之前更高的位置,来俯瞰整个职场。
也真正意义上让我感受到了,00后整顿职场,就是一个互联网笑话罢了。
1、职场宫斗,成功上位
我之前在苏州工作,堪称工作中的宫斗,并且在这场宫斗大戏中胜出,将原有的项目负责人开除,成功上位。
而这个项目存在的问题非常多,我就在六月被派遣去项目的总部合肥进行学习,等到打通项目的全部链路后,再回到苏州。
届时我将以这个项目的负责人,重新搭建团队,开展这个项目。所以我在合肥那边,以员工的身份深入各个工作组进行学习。
在市场部,运营部的办公大厅工作过,也在各部门的独立办公室工作过。
我感觉自己像个间谍,一边在以平级的打工人身份和我的同事们相处,一边又以苏州负责人的身份,参与那些领导才能参与的内部会议。
2、内心变化的开端
我在合肥总部工作中,接触了很多躺平摆烂的同事,但这个“躺平摆烂“要加上双引号。
他们是00后,90后,甚至有85后。如果放在三个月前,我可以不假思索地说,他们全都是我最讨厌的人。他们如同牛羊一般任人宰割,上级让加班,他们就加班,有时候加班甚至超过四五个小时也没有怨言。
我甚至从来没听他们感慨过为什么没有加班费。亲眼看着他们被自己的上级用一些与工作无关的鸡毛蒜皮之事骂得狗血淋头,但他们也只会在被骂完之后,背地里吐槽那个领导估计是在家被老婆骂了,才来拿他们泄愤。
我打听了他们的工资,只能说中规中矩,起码不是能让人当牛做马的数字。偶尔我见到一两个有骨气的人,觉得拿这么点钱就应该干这么点事。干不爽就马上离职,但马上就会有下一个人替补他的位置,形成闭环。
我惊讶于怎么有人能惹到这个地步,但后来和他们日渐熟落,我们一起吃饭,一起打游戏,一起下班顺路回家,还参加了他们的生日聚会。我发现他们活得其实真的很洒脱。一切都是随遇而安,下班时间一到,他们就真的可以无忧无虑。
因为他们有一份工资还行的工作,养活自己。他们没有啃老,也没有用卑鄙的手段,去抢想要努力的人应该分到的蛋糕,也压根不去想要赚很多钱,因为没有什么需要太高消费的需求。
加上现在的环境,找到一份可观收入的工作确实很难。所以公司偶尔的加班,领导偶尔的泄愤,这些毕竟还是少数时候的偶尔,也都没有超过他们的心理承受阈值,那也就得过且过了。
所以我们其实都一样,只是个普通人罢了。而像我们这样的普通人,取之不尽,用之不竭。这到底是好事还是坏事呢?
3、复杂的职场生态环境
建立在这个基础上,视觉转换到高层领导们这里。他们当着我的面说,这样的人就是个底层打工仔,缺人就招,加班照旧,心情不好还要扣他们的全勤绩效。
压根就不怕这些底层打工仔闹事,纵使有一两个所谓的决心者辞职,也能在很快时间找到下一位。
两者形成互补,共同铸就了这样恶劣的职场生态环境。但我说职场无法改变,远不止这么一点原因。
在这个项目中,我说好听一些只能算是项目负责人,在此之上还有着项目股东,这还要细分成大股东和小股东。而我所在的项目属于互联网赛道,也就是说需要一些新鲜事物的眼光和思维来对待。
但这些股东们经常提出一些奇怪的意见,就如同用微商时代的卖货思维,来指点直播带货,并且他们是出钱的股东,他们提出的战略方针不容我驳回,因为在他们的光辉历史中,有大量的成功案例,来佐证他们的思路是对的。
我刚开始觉得也有道理。他们能有钱投资,肯定是有什么过人的本领能让他们赚到钱,但是随着相处下来,我发现不过是他们本身家里条件就优越,在九几年就能拿出一百万给他们创业。
他们把这一百万分散到二十个领域,每个投资五万总能撞上那么一两个风口,让他们实现钱生钱。
九几年的五万也算是一笔不少的投资。他们这样的发财经历,让我很难不产生质疑,这不是给我我也行吗?
毕竟他们如果真的有什么过人的本领和远见,也不至于在每次内部开会之前,都要组织喊这样的口号:“好,很好,非常好,越来越好“
甚至试图把这样的口号,带到每一次迎接客户的项目介绍会上。我以自曝式要挟制止他们这个行为,我说如果你们这么干,那我当天就辞职,内部都是自己人,我可以陪你们这样弄,但如果对外这么搞,被录下来说我们是传销,我都不知道怎么辩解。
4、职场中的背锅人
他们就是这样坚信着自己能成功,是因为自己有过人的才华。所以自我洗脑着自己提出的方向没有错。如果出错了,亏损了,那一定是负责人的问题。
但好巧不巧,我就是那个负责人。我已经无数次告诉他们,我们这个项目压根就不需要穿黑丝短裙跳舞的小姐姐。
我甚至写了一篇报告给他们,分析我们的项目为什么不能用擦边这种手段引流。但他们执意要,说这样来流量快,我都有点分不清到底是他们自己想看,还是深信这样做确实是可行。
但如果最后这样还是没成功,导致项目亏损,大概率还是在我身上找原因吧。
面对他们这样的大佬,我心里很清楚,这已经远远不是宫斗了,这也绝对不是靠几个心计,或者有实力撑腰就能取胜上位了。这场权力的游戏,不是我等草民玩得起的。
5、换个思路,创造属于自己的职场
一边是被提供资金,但是瞎指挥的股东们摧残,一边是在有限的预算下,我作为负责人,确实很难做到尊重打工人的内心挣扎,回到苏州我虽然能身居高位,但我终将成为我曾经最鄙视的人。
我不要当这个背锅侠,我也不想在这个环境中,去逐渐接受这样的价值观。
这样看来确实如此,00后整顿职场不过是一场互联网的狂欢罢了。
这个题材的故事,也永远只能发生在职场的最底层。由一群家境优越,体验生活的公子哥和我这种不知好歹的普通人共同出演。
大部分人只是在手机屏幕前把我们当个乐子,成了扣个666,然后一起吃胜利的果实。没成,那就确实是看了个乐子。
或许是因为他们心里也清楚,凭我们压根就做不到。
00后现在确实整顿不了职场,因为社会的资源和命脉还不掌握在00后手上。
但就止步于此了吗?我曾说过我想有一个自己的小工作室,遵守劳动法,双休,按时发工资,交纳五险一金。
是的,换个思路,也许00后不需要整顿职场,而是直接创造属于自己的职场,那么接下来我就要向着这个目标去努力了,毕竟二十年后我也还是00后,不如到时候再来说00后整顿职场吧。
来源:juejin.cn/post/7311603432929984552
HR的骚操作,真的是卧龙凤雏!
现在基本已经对通过面试找工作不抱啥希望了。
有时候面试官和我聊的,还没有前面hr小姐姐和我聊的多,我一听开场白就基本知道就是拿我走个过场,没戏!
现在的面试流程都是人事先和你聊半天,没什么硬伤大坑才会放你去见面试官。
二零一几年那会可不是这样,第一次的详聊都是直接业务层,业务的人觉得你ok,你再和人事沟通,定个薪资就完了。
13年的时候我在一家外企,三千的月薪。当时我一个小目标就是月薪过五千。
可别笑,13年的月薪五千,那还是能勉强算上一个小白领的。
我就老琢磨着升职加薪。但眼下的公司规模小,人员基本不扩增,不流通,我就想跳槽了。
当时我同时面了AB两家外资游戏公司。都过了业务层的面试,只剩和人事定薪资。
我给A公司报价5500,给B公司报价6000,因为我知道B公司刚来国内开拓业务,属于扩张期。
这时候,A公司HR的骚操作就来了,她说:“嗯,5500嘛,有难度,但不是不可能,我可以帮你跟老板争取。”
然后又问我:“你已经从现在的公司里面离职了吗?”
我说:“还没呢,我想先把下家定了。”
她就说:“哎呀,那有点难办,你得先从现在这家公司离职,我得确保我帮你争取下来后,你不会鸽我,不然我没法和老板交代,要不你先把那边离职办了吧。”
我说:“那我再考虑考虑吧。”
然后没过两天,我收到了B公司的offer。人家都没还价,直接定了6000,我就开始走离职手续。
这时候A公司的HR又出来问我,你从现在的公司离职了吗?
我说离了,她说你给我看看离职证明,我就拍照给她看离职证明。
然后她连假装让我等一会儿,说自己去问一下老板的戏都不演了,直接秒回说:“我帮你问了老板了,老板说不行,5500给不了,最多给到4500,要不你先入职呢,后面有机会提加薪的。”
瞬间给我恶心的,怎么会有这么恶心的人事!先把你忽悠离职,然后翻脸不认人,可劲往下砍价,为了公司的KPI,自己做人的脸都不要了。
我当时就觉得这样的人真傻,就算我认了4500的杀价入了职,我把和她的对话记录公司群里一发,老板会怎么看她,同事会怎么看她。
咱做人得有底线呀,你用这种脏办法帮公司省那几百块钱,还把自己的名声信誉搭进去了,真的值得吗?
后来我在入职B公司差不多半年后,传来了A公司解散倒闭的消息,我心里还暗爽了一把,幸亏当年没进那个火坑。
但半年后,我所在的B公司也解散了。
2013年那是一个手游刚兴起的疯狂年代,数不清的大小公司起家,创业,失败,解散,换批核心班子,再起家,再失败,浮浮沉沉,我也成了疯狂年代下的沧海一粟。
来源:juejin.cn/post/7426685644230213643
初中都没念完的我,是怎么从IT这行坚持下去的...
大家好,我是一名二线(伪三线,毕竟连续两年二线城市了)的程序员。
现阶段状态在职,28岁,工作了10年左右,码农从事了5年左右,现薪资9k左右。如文章标题所说,初二辍学,第一学历中专,自己报的成人大专。
在掘金也看了不少经历性质的文章,大多都是很多大牛的文章,在大城市的焦虑,在大厂的烦恼,所以今天换换口味,看一看我这个没有学历的二线的程序员的经历。
1.辍学
我是在初二的时候辍学不上的,原因很简单,太二笔了。
现在想来当时的我非常的der,刚从村里的小学出来上中学之后(我还是年级第7名进中学,殊不知这就是我这辈子最好的成绩了),认为别人欺负我我就一定要还回来,完全不知道那是别人的地盘,嚣张的一批,不出意外就被锤了,但是当时个人武力还是很充沛的,按着一个往地上锤,1V7的战绩也算可以了。自此之后,我就开始走上了不良的道路,抽烟喝酒打架,直到中专毕业那天。
我清楚的记得我推着电车望着天,心里只想着一个问题,我毕业了,要工作了,我除了打游戏还会什么呢,我要拿什么生存呢...
这是当时我心里真实的想法,我好像就在这一刻、这一瞬间长大了。
2.深圳之旅
因为我特别喜欢玩游戏,而且家里电脑总是出问题,所以我就来到了我们这当地的一个电脑城打工,打了半年工左右想学习一下真正的维修技术,也就是芯片级维修,毅然决然踏上了深圳的路。
在深圳有一家机构叫做迅维的机构,还算是在业内比较出名的这么一个机构,学习主板显卡的维修,学习电路知识,学习手机维修的技术。现在的我想想当时也不太明白我怎么敢自己一个人就往深圳冲,家里人怎么拦着我都没用,当时我就好像着了魔一样必须要去...
不过在深圳的生活真的很不错,那一年的时光仍旧是我现在非常怀念的,早晨有便宜好吃的肠粉、米粉、甜包,中午有猪脚饭、汤饭、叉烧饭,晚上偶尔还会吃一顿火锅,来自五湖四海的朋友也是非常的友好,教会了我很多东西,生活非常的不错。
3.回家开店
为什么说我工作了10年左右呢,因为我清楚记得我18岁那年在本地开了一个小店,一个电脑手机维修的小店。现在想想我当时也是非常的二笔,以下列举几个事件:
- 修了一个显示器因为没接地线烧了,还跟人家顾客吵了一架。
- 修苹果手机翘芯片主板线都翘出来了,赔了一块。
- 自己说过要给人家上门保修,也忘了,人家一打电话还怼了一顿。
- 因为打游戏不接活儿。
以上这几种情况比比皆是,哪怕我当时这么二笔也是赚了一些钱,还是可以维持的,唯一让我毅然决然转行的就是店被偷了,大概损失了顾客机器、我的机器、图纸、二手电脑等一系列的商品,共计7万元左右,至今仍没找回!
4.迷茫
接下来这三年就是迷茫的几年了,第一件事就是报成人大专,主要从事的行业就杂乱无章了,跟我爸跑过车,当过网吧网管,超市里的理货员,但是这些都不是很满意,也是从这时候开始接触了C和C++开始正式踏入自学编程的路,直到有一次在招聘信息里看到java,于是在b站开始自学java,当时学的时候jdk还是1.6,学习资料也比较古老,但是好歹是入了门了。
5.入职
在入门以后自我感觉非常良好,去应聘了一个外包公司,当时那个经理就问了我一句话,会SSM吗,我说会,于是我就这么入职了,现在想想还是非常幸运的。
当时的我连SSM都用不明白,就懂一些java基础,会一些线程知识,前端更是一窍不通,在外包公司这两年也是感谢前辈带我做一些项目,当时自己也是非常争气,不懂就学,回去百度、b站、csdn各种网站开始学习,前端学习了H5、JS、CSS还有一个经典前端框架,贤心的Layui。
干的这两年我除了学习态度非常认真,工作还是非常不在意,工作两年从来没有任何一个月满勤过,拖延症严重,出现问题从来就是逃避问题,职场的知识是一点也不懂,当时的领导也很包容我,老板都主持了我的婚礼哈哈哈。但是后来我也为我的嚣张买了单,怀着侥幸心理喝了酒开车,这一次事情真真正正的打醒了我,我以后不能这样了...
6.第二家公司
在第二家公司我的态度就变了很多很多 当时已经25岁了,开始真真正正是一个大人了,遵纪守法,为了父母和家人考虑,生活方面也慢慢的好了起来(在刚结婚两年和老婆经常吵架,从这时候开始到现在没有吵过任何架了就),生活非常和睦。工作方面也是从来不迟到早退,听领导的安排,认真工作,认真学习,认识了很多同行,也得到了一些人的认可,从那开始才开始学习springboot、mq、redis、ES一些中间件,学习了很多知识,线程知识、堆栈、微服务等一系列的知识,也算是能独当一面了。但好景不长,当时我的薪资已经到13K左右了,也是因为我们部门的薪资成本、服务器成本太大,入不敷出,公司决定代理大厂的产品而不是自研了,所以当时一个部门就这么毕业了...
7.现阶段公司
再一次找工作就希望去一些自研的大公司去做事情了,但是也是碍于学历,一直没有合适的,可以说是人厌狗嫌,好的公司看不上我,小公司我又不想去,直到在面试现在公司的时候聊得非常的好,也是给我个机会,说走个特批,让我降薪入职,算上年终奖每个月到手大概10k(构成:9k月薪,扣除五险一金到手7.5k,年终奖27k,仨月全薪,所以每个月到手10k),我也是本着这个公司非常的大、非常的稳定、制度非常健全、工作也不是很忙也就来了,工作至今。
总结
- 任何时候想改变都不晚,改变不了别人改变自己。
- 面对问题绝对不能逃避,逃避没有任何用,只有面对才能更好的继续下去。
- 不要忘了自己为什么踏入这行,因为我想做游戏。
- 解决问题不要为了解决而解决,一定要从头学到尾,要不然以后出现并发问题无从下手。
- 任何事情都要合规合法。
- 工作了不要脱产做任何事情,我是因为家里非常支持,我妈至今都难以相信我能走到今天(我认为我大部分是运气好,加上赶上互联网浪潮的尾巴)。
- 最重要的,任何事情都没有家人重要,想回家就回家吧,挣钱多少放一边,IT行业找个副业还是非常简单的,多陪陪他们!
来源:juejin.cn/post/7309645869644480522
架构师蔡超亲身经历的十年架构感悟分享
一、介绍
最近在学习的时候,看到了蔡超老师自己的十年架构感悟的分享,非常棒,感觉很多内容都是目前实际工作的问题,很不错,今天分享给大家。
蔡超老师已经工作 17 年了, 担任架构师的职位也超过了 10 年,担任过像 HP、Amazon 这样的世界级团队的架构师,也担任过像汇量科技这样快速成长的中小企业的技术领导。Mobvista 技术 VP 兼首席架构师。SpotMax 云服务创始人。
原文视频链接如下:
time.geekbang.org/opencourse/…
二、正文
以下是老师分享的内容:
“提出问题”难于“解决问题”
跟大家分享的第一个感悟是:“提出问题”难于“解决问题”。包括我在内,工程师们最大的一个特点就是善于解决问题,因为我们通常都是从问题解决者的角度来进行工作的。但是,我们很少会主动提出一些问题,主动从用户的场景出发去提出问题、提出需求。
很多时候,公司里的一些矛盾就来自于工程师和产品经理之间,比如我们常常会说产品经理不懂技术,需求提得不够专业。但我们作为工程师也可以想一下,我们是不是应该把自己的位置再往前挪一点,去看看用户到底有哪些困惑,然后提出一个合理的需求去解决它;或者我们自己去体验一下用户的场景,然后提出一个全新的问题并解决它。
简而言之,我们不要仅仅去做一个解决问题的人,也要做一个提出问题的人,主动去思考什么样的问题、需求,能让我们的业务更加先进。
很多时候,我们会觉得设计一个架构、写一个程序去解决问题是一件很难的事情,当然这也是一个很棒的工作。但如果你静下心来去尝试提出一些问题,改进一些用户的需求,你会发现,这是一件更难的事情,至少对我来讲是如此。
当然,这样的感觉不仅仅是我有,很多伟大的科学家也会有这样的困惑和感悟。
“The mere formulation of a problem is far more essential than its solution, which may be merely a matter of mathematical or experimental skills. To raise new questions, new possibilities, to regard old problems from a new angle requires creative imagination and marks real advances in science.”
这是爱因斯坦说过的一段话,大致意思是:我们解决一个问题的时候,常常只需要用到一些数学以及实验的能力就可以了,但提出一个新的问题,以一种新的角度去看待旧的问题,是需要用到我们的创造力才能够做到的,而这恰恰是真正推动科学进步的一部分。
不仅仅是爱因斯坦,软件大师 Frederick P. Brooks Jr.,《人月神话》的作者,在他最新一本讲设计原理的书《The Design of Design(设计原本)》里也谈到,“The hardest part of design is deciding what to design”,大概意思就是,设计最难的部分就是去决定我们要设计什么。
决定“不要什么”比“要做什么”更难
跟大家分享的第二个感悟是:决定“不要什么”比“要做什么”更难。也许因为人性的本质是贪婪的,所以我们在做项目或架构的时候,常常是什么都想要,什么需求都往里放,对于非功能性需求就更是这样了。
我们去看一个架构设计说明书,往往会看到它在开头提到高的可用性、高的性能、高的扩展性、高的可维护性……几乎所有的架构设计书都是这样,这些非功能性需求仿佛成了一个公共的列表,所有的架构都要满足这些需求。当然,功能性需求更是不用说,产品经理会一个不拉地往里面塞。
我们回过头来仔细想想什么是架构。其实在很多层面上,架构是一种 tradeoff,一种权衡和平衡。作为一个架构师,你才最应该是那个说不的人。
在现实中,有很多东西是不可兼得的。比如产品是尽早发布,还是把所有功能都加上,发布一个完美的产品;再比如一致性和性能之间的 balance,我们是选择强一致性,还是选择性能等等。所有架构师都非常熟悉的 CAP 原则,其实本质上就是一个关于 balance 的准则。
因此,作为架构师,我非常推荐大家在做架构设计的一开始,就去确立一些做事的原则。比如数据一致性优先级最高,再比如尽早发布基础功能版本的优先级大于延迟发布完善功能产品等。当出现矛盾的时候,我们就可以利用这些原则来进行取舍。
这些原则是非常重要的,它们能够指导我们在做架构的时候做出正确的取舍,而不会随着工作的推进而迷失。
“Deciding what not to do is as important as deciding what to do.”
这是引自乔布斯的一句话,意思是决定不做什么和决定做什么同样重要。他在取舍方面一直做得非常棒。
可能大家都知道,由于和董事会的关系,乔布斯在 Apple 2 发布一段时间后,就被逐出了苹果。之后他去创办了自己的事业,NeXT,也非常成功。1997 年的时候,苹果收购 NeXT,乔布斯以顾问的形式回到苹果,却发现苹果有很多问题。
当然,那个时候,苹果之所以请他回来做临时 CEO,也是因为意识到自身出现了很多问题。乔布斯意识到苹果最大的问题在于它的产品线非常多,非常的繁杂,他就在白板上画了一个象限图,四个维度分别是 Desktop、Portable、Pro 和 Consumer,并要求苹果在每个象限里面只做一个产品,然后把这个产品做到极致。
“People think focus means saying yes to the thing you’ve got to focus on. But that’s not what it means at all. It means saying no to the hundred other good ideas that there are. You have to pick carefully.I’m actually as proud of the things we haven’t done as the things I have done. Innovation is saying no to 1,000 things.
”这就是乔布斯非常著名的谈专注的那段话,大概意思是,人们认为专注意味着对你需要专注的事情说 Yes。但并非如此,专注意味着你要对其他 100 个好主意说 No,你必须谨慎选择。相比已经完成的工作,他对那些没有完成的工作一样感到自豪。创新就是对 1000 件事情说 No。
非功能性需求决定架构
跟大家分享的第三个感悟是:非功能性需求决定架构。在很多人心目中,做架构的第一步是收集需求,把各种需求都收集上,这个架构的目的就是要满足这些功能性需求的,毕竟最终产品是要为用户服务的。
事实并非如此,一个好的架构,其实是由非功能性需求决定的,而不是由功能性需求决定的。你会发现,一个功能可以有无数的架构方案来实现,但你为什么最终选择了某个方案,其实是由非功能性需求来进行筛选的。
大家非常清楚什么是非功能性需求,包括性能、伸缩性、可扩展性、可维护性等,甚至还包括了你的团队结构,你团队的技术水平,你对发布周期的要求等等,通过所有这些需求来筛选可使用的方案,最终找到一个合适的架构。
所以,非功能性需求是非常重要的,甚至可以说是在你的架构设计中起到决定性因素的。架构设计完之后,少一个功能性需求,我们很容易就能看出来,未来也可以加上去,它对你的架构不会有本质上的影响。但如果我们忽略的是某一种非功能性需求,那在未来这可以说是一种灾难性的麻烦,很有可能你就需要重写了。比如你架构中的数据一致性问题无法解决,或者在设计的时候没有充分考虑性能问题,这样,所有的功能性的实现其实都没有意义。基本就是 Refactor 了,甚至不应该叫 Refactor,要叫 Recreate 或者 Rewrite,等于你要完全重写整个架构。
实际上在架构领域,大家对这点也是有共识的。比如下图中这个 Micro-Kernel 的架构模式来自《面向模式的软件架构》的第一卷,它一大特点就是有比较好的可扩展性,同时通过 Plugin 之间的隔离,能够提高系统的可用性。
《面向模式的软件架构》这套书多年来一直是架构师的必读经典,书中很多架构都是从非功能性需求的角度展开去讲的,如果你想成为架构师,那就非常推荐给你去看。
“简单”并不容易
跟大家分享的第四个感悟是:“简单”并不容易。很多架构师都会提到保持简单,keep the simple,但很多时候我们会混淆简单和容易,简单是 simple,容易是 easy,我们是 keep it easy,而不是 keep it simple。
正如乔布斯所说,简单有时候要比复杂更难,需要你对问题、事物的研究非常地深入,你才能找到真正简单的方法。简单其实是蕴含着一种巧妙在其中的。例如我们熟知的布隆过滤器,是一个十分简单的高效重复数据过滤算法,它就非常巧妙地解决了一个问题。如果你想把一个事情做简单,你需要做很多深入的工作,比如对于架构的简化,很大程度上来自于我们对于技术、开发过程,以及不同业务场景的深入理解,而不仅仅是这个架构写起来好不好写。
举个例子,我们来回顾一下软件生命周期中各个阶段的成本消耗占比。
可以看到,在整个软件生命周期中,成本消耗最高的并不是设计、编码这些阶段,而是维护阶段。也就是说,如果你让维护变得简单,这会是最有性价比的。
我之前在一家国际公司工作过,主要是为移动运营商设计一个移动设备管理系统,运营商可以通过这个系统实现移动设备的自动注册,固件和软件的同步更新等。当时的移动设备还是摩托罗拉、爱立信之类早期智能手机的时代,打开手机会看到移动菜单或联通菜单,移动运营商就通过这些菜单跟你同步更新,也会对你的系统固件进行升级。这些工作是根据一些管理系统与移动设备之间预定义的协议来完成的,比如 SyncML。而电信专家们会根据业务场景及需求不断调整和新增这些交互协议。
刚开始设计系统的时候,我们也想着 keep it simple,就采用了一种看似简单的实现方式,团队里的软件工程师拿到电信专家设计好的协议后,把协议翻译成对应的程序语言,每一种协议对应一个程序语言。这时候每个程序语言都是一个插件,扩展也很容易,把这个语言实现的 Plugin 插到系统中,或者 Update 一个 Plugin,就可以支持一种新功能了。
这么看你可能觉得还行,反正也是插件结构,看起来也相当简单、直接,于是照着这个设计我们实现了一个系统:任何一个新业务过来,先由电信专家设计协议,再由工程师把协议转换为代码,然后将这个代码写成一个 Server 插件部署到 Server 端,这个协议就被支持了。
但很快,我们就发现事情没那么简单,这套系统的维护成本高到令人发指。为什么?原因其实可以用 Martin Fowler 的一句话来解释:
“I believe that the hardest part of software projects, the most common source of project failure, is communication with the customers and users of that software.
沟通往往是导致软件项目失败的主要问题,的确是这样。
这个系统最大的问题是在上线后的运行维护阶段,电信专家和工程师之间会不断地就新的协议修改和增加进行持续的沟通,但是他们之间的领域知识和词汇都有很大的差别,对彼此专业领域的理解有限,结果就大大影响沟通的效率。这期间系统修改每次都十分艰难,不仅协议更新上线时间慢,而且很多问题由于工程师对于电信协议理解程度有限,都要在开发完成,实际使用后才能被电信专家发现。导致了很多的交换和反复,也造成了很多客户的抱怨。
所以,这个系统只是表面上看起来简单,最终整个过程演变得没那么简单。那什么才是真正的简单?发现上面提到的这些问题,以及背后的原因是沟通后,我们开始重新思考解决的方法。后来我们和电信专家一起设计了一种协议设计语言 DSL,Domain Specific Language。DSL 是用电信专家熟悉的词汇来进行描述的,我们还提供了可视化工具,让电信专家能非常轻松容易地使用。然后这个协议会通过一个类似于编辑器的工具,将电信专家定义好的协议模型转换为内存中的 Java 结构,在线上进行运行。这样整个项目的运行和维护就变得更加简单高效了,省去了低效的交流和不准确人工转换。
这其实并不是一件简单的事情,不论是设计 DSL 语言、做类似编译器的工具,还是构建内存模型,都不简单,但一旦上线,一切就变得简单了。而一开始按电信专家的需求直接实现协议的方法是更为容易的,但是就整个软件生命周期来看,它却不是一个简单高效的方法。
通过这个例子,你应该能体会到什么是简单、什么是容易,两者之间的差别。真正的简单是来自于不容易的,就像那句话说的,It's hard to simple,It's easy to complex,简单是很难的,复杂反而是很容易的。
永远不要停止编码
跟大家分享的第五个感悟是:永远不要停止编码。
这一点非常重要,对一个架构师来说,要永远记住自己是一个程序员。作为架构师,我们可能设计了一个非常 high-level 的架构,但代码是软件的最终实现形态,每一个程序员在架构落地过程中的实现,都可能会影响架构的最终呈现。
另外,如果你放弃编码,最大的影响不是说你代码的技术落后了,或者是敲代码变慢了,最大的影响是你会逐渐丧失对编程的敬畏,忘记作为程序员的感受,特别是编码过程中的那些痛苦所在。你会有一些不切实际的幻想,做出一些不切实际的设计,这才是最大的问题。
大家都知道的 Java 之父 James Gosling,他在 Amazon 的职位是 Distinguished Engineer,level 相当于 SVP,而他依旧在坚持编码,每年的代码量是非常惊人的,常常会超过 10 万行。总而言之,作为一个架构师,一旦你开始放弃编码,那你一定要非常小心,因为你可能正在走向一条不归路,一条为大家设计一些充满幻想但又较为虚无的设计的不归路。
风险优先
跟大家分享的第六个感悟是:风险优先。
可以先思考一个问题,我们为什么要做架构设计?
在我看来,架构设计最主要的功能就是转化、降低、避免整个开发过程中的风险。而架构师很大的一个职责就是在早期识别出系统可能存在的风险,并通过你的设计来转换它、去除它。
我们常说的原型方式,或者架构切片的快速迭代方式,其实也是从另一个角度在早期尽量去测试风险,去测试我们的架构能不能解决相关问题,尤其是那些非功能性需求实现的风险,这些风险往往没有功能性需求这么容易在初期被发现,但修正的代价通常要比修正功能性需求大非常多,甚至可能导致项目的失败。
比如敏捷开发,很多人认为敏捷开发就是更快地开发出一个产品,然后快速地 deliver 到市场上,其实这只是敏捷的一部分。另一部分很重要的是,如果一个项目要失败,也要快速地失败,绝对不要把风险放到最后,这也是一种敏捷。这里再给大家推荐一本书《Just Enough Software Architecture(恰如其分的软件架构)》,这是最近非常流行的一本架构书籍,书中强调,架构设计的目的就是为了化解软件实现中的风险。如果你项目中所有的风险都可以通过未来重构来解决的话,那你根本就不需要进行架构设计,直接等着重构就可以了。这也是我非常赞同的观点,风险优先。
从“问题”开始,而不是“技术”
跟大家分享的第七个感悟是:从“问题”开始,而不是“技术”。
作为技术人员,我们非常乐意学习一些新技术,并且学了之后,我们还会非常有热情去应用这个技术。我经常会有这样的感觉,感觉在某一时刻被某个技术上身,特别想去实践它,以至于忽略当前手上的问题用这个技术来解决是不是最合适的,不知道你有没有相同的感觉。
冷静的时候,其实我们每个人都知道,要从实际出发,从需求出发,从用户的问题出发,而不要从技术出发,但在实际工作中,我们却常常不自觉地忽略这一点。就像手里有了一把锤子,看到什么都是钉子。
但其实这样做有很大的害处,这里想给你分享一个故事,来自我之前工作过的一个团队。当时团队里有一个工程师,他维护的是一个非常简单的服务,就是一个利用 MySQL 作为数据存储的简单服务。后来一个他对当时新出的 DynamoDB 产生了兴趣,并学习了相关知识。然后就发生下面的事:使用 DynamoDB 替换了 MySQL,这是一个噩梦的开始。很快发现 DynamoDB 并不能很好的支持事务特性,在当时只有一个性能极差的客户端类库来支持事务,而由于采用客户端方式,引入了大量的额外交互,导致性能差别达 7 倍之多,效率非常之低。
这时候,这个同学就改用了当时在 NoSQL 领域广泛流行的最终一致技术,采用了一个消息队列来实现,这样每一个数据存储对象的改变都会发布一个消息,如果关心这个改变的业务逻辑,就会订阅这个消息,然后改变其他相关的对象,从而实现最终一致。如果过程中出现错误,就会利用消息队列的重试机制。接着发现 DynamoDB 无法提供 SQL 那样方便的查询机制,为了进行数据分析就采用 EMR/MapReduce Job 来完成。大家可以看到实现一样的功能,但是复杂性大大增加,维护工作也由一个人变成了一个团队。
如果让我总结一下这个故事的话,可以说是我们对技术的热情让事情变得复杂,是我们对技术的热情把生活搞得没有那么美好,也让自己的工作更加烦恼。
过度繁忙使你落后
跟大家分享的第八个感悟是:过度繁忙使你落后。
对于 IT 人而言,忙碌成了习惯,加班常挂在嘴边,“996”似乎也变成了公司高效的标志。但有时候我们需要反思一下,有多久没有在业余时间看和技术相关的书了。我之前在公司也问过这个问题,百分之百的人回答我,下班后已经很晚了,回到家基本上没有时间再看书,刷一下手机,就可以直接睡觉了。这是一个非常值得我们去思考的问题。
作为一个技术人,如果你不更新你的知识,或者繁忙让你没有时间更新知识,那会有什么样的结果呢?
给大家分享一个有意思的现象,我遇到过不少程序员,有之前的同事,也有自己的朋友,他们换了一份工作,一开始进入那家公司的时候跟我说,“这个公司我不是特别看好它,我了解一下它的技术,就准备换家公司。”过了两三年我再问他,“你怎么还在这,还没跳走。”结果他回答我,“我看现在的招聘形势不大好,不太好动。”干了几年倒对公司越来越“忠诚”了。
实际情况是,在一个公司没日没夜地干了几年,没有留一点学习时间给自己,忙碌的工作导致他没有时间更新知识,再想回到市场上的时候,却发现自己已经落伍了,连跳槽的能力和勇气都失去了。在这个高速发展的时代,如果因为过度忙碌,导致你没有时间学习和更新自己的知识,那必然会让你落后。即使你不跳槽,呆在同一家公司里,公司的业务不断发展,数据量会越来越大,用户需求会越来越刁钻,你要面对的问题和场景也会越来越复杂,如果你长期不更新知识,掌握的技能没有发生变化,你会觉得越来越难以应付,最终只能通过不断地加班来应对。
另外还有一种可能是,你不更新知识,不深入思考,那么很大概率,你所创造的技术和业务丧失了领先性,没有领先优势,只能被动紧紧跟随竞争对手,而紧紧跟随就意味着你只能加班。试想一下,你要是都领先同行业五年了,还会在乎通过加班来早一个月发布吗?
这其实是一个恶性循环,你花越多的时间去忙碌,就越没有时间去学习,去提高自己的工作技能,就只能靠加班来追赶,结果就更忙碌,更没有时间学习,最终成为一个井底之蛙,陷在恶性循环里无法挣脱。我是一个健身爱好者,练过健身的朋友都知道,光靠锻炼是不行的,营养的补充和锻炼同样重要,你得专门吃一些蛋白粉、补剂之类的。而且越到后面,营养的重要性就越高,至少能跟锻炼达到 50:50 的比重。个人技术成长其实也是一样的,锻炼就好像实践,营养就好像学习。
人们常说 practice makes you perfect,但光 practice 是不行的,还需要坚持学习。
我们在一个领域工作了一段时间,比方说三五年之后,会对这个领域的业务越来越熟悉,解决问题越来越顺手,但相应的,能学到的知识和技能也就会越来越少。有些人会说这是进入了舒适区,要逃离舒适区,换一个领域,我倒觉得不必如此。
本质上来说,换一个领域其实是促进你进一步学习一些新的知识,你在原来的领域也可以这么做。你可以有意识地摆脱那种麻木,挤出时间来重新学习,然后即使做的是相同的事情,也可以用不同的方式更好更高效地完成它。你会发现,即使在同一个领域,你也完全可以做和别人不一样的事情。
所以,每个技术人员都要保证充足的学习时间,否则很容易成为井底之蛙,从而陷入前面提到的低效循环。最后用一句话来跟大家共勉,不忘初心,坚持匠心,谢谢大家。
三、总结
- “提出问题”难于“解决问题”。程序员要学会如何从用户的角度发现困难,提出需求问题,适配用户场景。不仅仅是一个解决问题的人,而是提出问题的人,不断地思考什么样的需求问题能让我们的产品更先进。
- “设计最难的部分就是去设计我们要设计什么样的问题” - 《设计原本》Brooks
- 什么是架构? 从很多层面上说,架构是一种tradeoff,是一种权衡、平衡。作为一个架构师,你应该是那个说“不”的人。决定不要什么比要什么更难。先确定一个大原则,之后在做选择的时候根据这个原则来取舍,这样就不会随着工作的推进而迷失了。
- “决定不做什么和决定做什么是一样重要的” - 史蒂夫·乔布斯
- “人们认为专注是对你要关注的事情说yes。但是这完全不是专注的本意。专注是对其他一千个好的想法说no。你必须非常谨慎地挑选。实际上我对我拒绝做的事和我做过的事一样感到骄傲。创造力就是对一千件事说NO的能力。” - 史蒂夫·乔布斯
- 非功能需求决定架构。所谓的非功能需求,包括性能,伸缩性,可扩展性,可维护性,甚至还包括了你的团队结构、团队技术水平和发布周期的要求。这些因素来筛选可以使用的方案,最终找到一个合适的架构。
- 非功能性需求在架构中起决定性作用,因为功能性需求在设计完后,即便未来需要添加新功能,对架构的本质影响不大。但忽略非功能性需求可能会导致灾难性后果,可能需要重写整个系统,比如由于架构问题导致的数据一致性问题或性能问题。建议了解一下Micro-Kernel模式架构。
- “简单可以比复杂更难。你必须非常努力地把你的想法想清楚之后,才有可能把事情做得很简单。但这个努力是值得的,因为一旦你达到了这个目的,它会给你带来排山倒海的能量。为了达到真正的简单,你必须思考得足够深入。” -- 史蒂夫·乔布斯
- 简单不同于容易。真正的简单恰恰是来自于不容易,复杂才是容易的,简单蕴含了巧妙。
- 在软件开发生命周期中,软件发布后的维护占据整个成本的一半以上。如果让一件事情变得简单,后期维护也会变得简单,这是性价比最高的选择。
- “我相信软件开发中最难的部分,也是最经常导致失败的部分,是与软件用户的沟通交流。” -- Martin Fowler
- 作为一个架构师,你永远都不要停止编码。如果你停止编码,你就会丧失对编写代码的痛苦感知,容易产生不切实际的幻想,进而做出不切实际的设计。(罗胖也坚持自己做启发俱乐部磨练自己的手艺)
- 风险优先。架构设计中,你要在早期识别系统可能的风险,通过设计消除或转换这些风险,比如通过原型或架构切片的早期迭代,测试架构是否还存在风险。
- 敏捷开发的精髓是,如果项目会失败,那就让它快速失败。
- “如果项目中能预见的风险都可以通过重构解决,那么就没必要设计软件架构,你重写就好了。” -- 《恰如其分的软件架构》
- 从“问题”开始,而不是“技术”。
- 过度繁忙使你落后。如果你没有时间更新知识,几年后你容易“被忠诚”,因为失去了跳槽的能力和勇气。随着工作中的问题变复杂,你会发现越来越难应对,只能通过不断加班解决。如果不能紧跟行业发展,就会陷入恶性循环。试想一下,如果你已经领先业界五年了,还在乎休息一个礼拜吗?
- 做更好的自己。锻炼配合营养,实践结合学习,才能变得更好。
- 要不断学习。你不一定要换领域,但可以用不同的方式做同样的事,并做得更好。
- 不忘初心,坚持匠心。
来源:juejin.cn/post/7426916970662215690
虽然炒股赚了十多万,但差点倾家荡产!劝你别入坑
今天,五阳哥不打算聊技术,而是聊一下炒股的话题。我自认为在这方面有发言权,自述一个程序员的炒股经历。
2019年,我开始涉足股市,在2021年中旬为了购房,将持有的股票全部卖出,赚了十多万元。在最高峰时期,我获利超过了二十多万元,但后来又回吐了一部分利润。虽然我的炒股成绩不是最出色的,但也超过了很多人。因为大多数股民都是亏损的,能够在股市长期盈利的人真的是凤毛麟角。
股市中普遍流传的七亏二平一赚的说法并不只是传闻,事实上,现实中的比例更加残酷,能够长期赚钱的人可能连10%都达不到。
接下来,我想谈谈我的炒股经历和心路历程,与大家分享一下我的内心体验,为那些有意向或正在炒股的朋友提供一些参考。希望劝退大家,能救一个是一个!
本文倒叙描述,先聊聊最后的疯狂和偏执!
不甘失败,疯狂上杠杆
股市有上涨就有下跌,在我卖出以后,股市继续疯涨了很多。当时长春高新,我是四百一股买入,六百一股就卖出了,只赚了2万。可是在我卖出去的两个月以后,它最高涨到了一千。相当于我本可以赚六万,结果赚了两万就跑了。
我简直想把大腿拍烂了,这严重的影响了我的认知。我开始坚信,这只股票和公司就是好的,非常牛,是我始乱终弃,我不应该早早抛弃人家。 除了悔恨,我还在期盼它下跌,好让我再次抄底,重新买入,让我有重新上车的机会!
终于这只股票后来跌了10%,我觉得跌的差不多了,于是我开始抄底买入!抄底买入的价格在900一股(复权前)。
没想到,这次抄底是我噩梦的开始。我想抄他的底,他想抄我的家!
这张图,完美的诠释了我的抄底过程。地板底下还有底,深不见底,一直到我不再敢抄底为止。一直抄到,我天天睡不着觉!
当时我九百多一股开始抄底买入,在此之前我都是100股,后来我开始投入更多的资金在这只股票上。当时的我 定下了规矩,鸡蛋不能放在一个篮子里;不能重仓一只股票,要分散投资;这些道理我都明白,但是真到了节骨眼上,我不想输,我想一把赢回来,我要抄底,摊平我的成本。
正所谓:高位加仓,一把亏光。之前我赚的两万块钱,早就因为高位加仓,亏回去了。可是我不甘心输,我想赢回来。当时意识不到也不愿意承认:这就是赌徒心理。
后来这只股票,从1000,跌倒了600,回调了40%。而我已经被深深的套牢。当时我盈利时,只买了1股。等我被套牢时,持有了9股。 按照1000一股,就是九十万。按照600一股,就是54万。
我刚毕业,哪来的那么多钱!
我的钱,早就在800一股的时候,我就全投进去了,我认为800已经算是底了吧,没想到股价很快就击穿了800。
于是我开始跟好朋友借钱。一共借了10万,商量好借一年,还他利息。后来这10万块钱,也禁不住抄底,很快手里没钱了,股价还在暴跌。我已经忘记当时亏多少钱了,我当时已经不敢看账户了,也不敢细算亏了多少钱!
于是,我又开始从支付宝和招商银行借贷,借钱的利率是相当高的,年利息在6%以上。当时一共借了30万。但是股价还不见底,我开始焦虑的睡不着觉。
不光不见底,还在一直跌,我记得当时有一天,在跌了很多以后,股价跌停 -10%。当时的我已经全部资金都投进去了,一天亏了5万,我的小心脏真的要受不了了。跌的我要吐血! 同事说,那天看见我的脸色很差,握着鼠标手还在发抖!
跌成这样,我没有勇气打开账户…… 我不知道什么时候是个头,除了恐惧只有恐惧,每天活在恐惧之中。
我盘算了一下,当时最低点的我,亏了得有二十多万。从盈利六万,一下子到亏二十多万。只需要一个多月的时间。
我哪里经历过这些,投资以来,我都是顺风顺水的,基本没有亏过钱,从来都是挣钱,怎么会成这个样子。
当时的我,没空反思,我只希望,我要赚回来!我一定会赚回来,当时能借的支付宝和招行都已经借到最大额度了…… 我也没有什么办法了,只能躺平。
所以股价最低点的时候,基本都没有钱加仓。
侥幸反弹,但不忍心止盈
股价跌了四个月,这是我人生极其灰暗的四个月。后来因为种种原因,股价涨回来了,当时被传闻的事情不攻自破,公司用实际的业绩证明了自己。
股价开始慢慢回暖,后来开始凶猛的反弹,当时的我一直认为:股价暴跌时我吃的所有苦,所有委屈,我都要股市给我补回来!
后来这段时间,股价最高又回到了1000元一股(复权前)。最高点,我赚了二十多万,但是我不忍心止盈卖出。
我觉得还会继续涨,我还在畅想:公司达到,万亿市值。
我觉得自己当时真的 失了智了。
结婚买房,卖在最高点
这段时间,不光股市顺丰顺水,感情上也比较顺利,有了女朋友,现在是老婆了。从那时起,我开始反思自己的行为,我开始意识到,自己彻彻底底是一个赌徒。
因为已经回本了,也赚了一点钱,我开始不断的纠结要不要卖出,不再炒股了。
后来因为两件事,第一件是我姐姐因为家里要做小买卖,向我借钱。 当时的我,很纠结,我的钱都在股市里啊,借她钱就得卖股票啊,我有点心疼。奈何是亲姐,就借了。
后来我盘算着,不对劲。我还有带款没还呢,一共三十万。我寻思,我从银行借钱收6%的利息,我借给别人钱,我一分利息收不到。 我TM 妥妥的冤大头啊。
不行,我要把带款全部还上,我Tm亏大了,于是我逐渐卖股票。一卖出便不可收拾。
我开始担心,万一股价再跌回去,怎么办啊。我和女朋友结婚时,还要买房,到时候需要一大笔钱,万一要是被套住了,可怎么办啊!
在这这样的焦虑之下,我把股票全部都卖光了!
冥冥之中,自有天意。等我卖出之后的第二周,长春高新开启了下一轮暴跌,而这一轮暴跌之后,直至今日,再也没有翻身的机会。从股价1000元一股,直至今天 300元一股(复权前是300,当前是150元)。暴跌程度大达 75%以上!
全是侥幸
我觉得我是幸运的,如果我迟了那么一步!假如反应迟一周,我觉得就万劫不复。因为再次开启暴跌后,我又会开始赌徒心理。
我会想,我要把失去的,重新赢回来!我不能现在卖,我要赢回来。再加上之前抄底成功一次,我更加深信不疑!
于是我可能会从1000元,一路抄底到300元。如果真会如此,我只能倾家荡产!
不是每个人都有我这么幸运,在最高点,跑了出去。 雪球上之前有一个非常活泼的用户, 寒月霖枫,就是因为投资长春高新,从盈利150万,到亏光100万本金,还倒欠银行!
然而这一切,他的家人完全不知道,他又该如何面对家人,如何面对未来的人生。他想自杀,想过很多方式了结。感兴趣的朋友可以去 雪球搜搜这个 用户,寒月霖枫。
我觉得 他就是世界上 另一个自己。我和他完全类似的经历,除了我比他幸运一点。我因为结婚买房和被借钱,及时逃顶成功,否则我和他一样,一定会输得倾家荡产!
我觉得,自己就是一个赌狗!
然而,在成为赌狗之前,我是非常认真谨慎对待投资理财的!
极其谨慎的理财开局
一开始,我从微信理财通了解到基金,当时2019年,我刚毕业两年,手里有几万块钱,一直存在活期账户里。其中一个周末,我花时间研究了一下理财通,发现有一些债券基金非常不错。于是分几批买了几个债券基金,当时的我对于理财既谨慎又盲目。
谨慎的一面是:我只敢买债券基金,就是年利息在 5%上下的。像股票基金这种我是不敢买的。
盲目的一面是:我不知道债券基金也是风险很大的,一味的找利息最多的债券基金。
后来的我好像魔怔了,知道了理财这件事,隔三差五就看看收益,找找有没有利息更高的债券基金。直到有一天,我发现了一个指数基金,收益非常稳定。
是美股的指数基金,于是我买了1万块钱,庆幸的是,这只指数基金,三个月就赚了八百多,当时的我很高兴。那一刻,我第一次体会到:不劳而获真的让人非常快乐!
如饥似渴的学习投资技巧
经过一段时间的理财,我对于理财越来越熟悉。
胆子也越来越大,美股的指数基金赚了一点钱,我害怕亏回去,就立即卖了。卖了以后就一直在找其他指数基金,这时候我也在看国内 A股的指数基金,甚至行业主题的基金。
尝到了投资的甜头以后,我开始花更多的时间用来 找基。我开始从方方面面评估一只基金。
有一段时间,我特别自豪,我在一个周末,通过 天天基金网,找到了一个基金,这只基金和社保投资基金的持仓 吻合度非常高。当时的我思想非常朴素, 社保基金可是国家队,国家管理的基金一定非常强,非常专业,眼光自然差不了。这只基金和国家队吻合度如此高,自然也差不了。
于是和朋友们,推荐了这只基金。我们都买了这只基金,而后的一个月,这只基金涨势非常喜人,赚了很多钱,朋友们在群里也都感谢我,说我很厉害,投资眼光真高!
那一刻,我飘飘然……
我开始投入更多的时间用来理财。下班后,用来学习的时间也不学习了,开始慢慢的过度到学习投资理财。我开始不停地 找基。当时研究非常深入,我会把这只基金过往的持仓记录,包括公司都研究到。花费的时间也很多。
我也开始看各种财经分析师对于股市的分析,他们会分析大盘何时突破三千点,什么时候股市情绪会高昂起来,什么行业主题会热门,什么时候该卖出跑路了。
总之,投资理财,可以学习的东西多种多样!似乎比编程有趣多了。
换句话说:我上头了
非常荒谬的炒股开局
当时我还是非常谨慎地,一直在投资基金,包括 比较火爆的 中欧医疗创新C 基金,我当时也买了。当时葛兰的名气还很响亮呢。后来股市下行,医疗股票都在暴跌,葛兰的基金 就不行了,有句话调侃:家里有钱用不完,中欧医疗找葛兰。腰缠万贯没人分,易方达那有张坤。
由此可见,股市里难有常胜将军!
当时的我,进入股市,非常荒谬。有一天,前同事偷偷告诉我,他知道用友的内幕,让我下午开盘赶紧买,我忙追问,什么内幕,他说利润得翻五倍。 我寻思一下,看了一眼用友股票还在低位趴着,心动了。于是我中午就忙不迭的线上开户,然后下午急匆匆的买了 用友。 事后证明,利润不光没有翻五倍,还下降了。当然在这之前,我早就跑了,没赚着钱,也没咋亏钱。
当时的我,深信不疑这个假的小道消息,恨不得立即买上很多股票。害怕来不及上车……
自从开了户,便一发不可收拾,此时差2个月,快到2019年底!席卷全世界的病毒即将来袭
这段时间,股市涨势非常好,半导体基金涨得非常凶猛! 我因为初次进入股市,没有历史包袱,哪个股票是热点,我追哪个,胆子非常大。而且股市行情非常好,我更加相信,自己的炒股实力不凡!
换句话说:越来越上头,胆子越来越大。 学习编程,学个屁啊,炒股能赚钱,还编个屁程序。
刚入股市,就赶上牛市,顺风顺水
2019年底到2020年上半年,A股有几年不遇的大牛市,尤其是半导体、白酒、医疗行业行情非常火爆。我因为初入股市,没有历史包袱,没有锚点。当前哪个行业火爆,我就买那个,没事就跑 雪球 刷股票论坛的时间,比上班的时间还要长。
上班摸鱼和炒股 是家常便饭。工作上虽然不算心不在焉,但是漫不经心!
在这之前,我投入的金额不多。最多时候,也就投入了10万块钱。当时基金收益达到了三万块。我开始飘飘然。
开始炒股,也尝到了甜头,一开始,我把基金里的钱,逐渐的转移到股市里。当时的我给自己定纪律。七成资金投在基金里,三成资金投在股市里。做风险平衡,不能完全投入到风险高的股市里。
我自认为,我能禁得住 炒股这个毒品。
但是逐渐的,股票的收益越来越高,这个比例很快就倒转过来,我开始把更多资金投在股市中,其中有一只股票,我非常喜欢。这只股票后来成为了很多人的噩梦,成为很多股民 人生毁灭的导火索!
长春高新 股票代码:000661。我在这只股票上赚的很多,后来我觉得股市涨了那么多,该跌了吧,于是我就全部卖出,清仓止盈。 当时的我利润有六万,我觉得非常多了,我非常高兴。
其中 长春高新 一只股票的利润在 两万多元。当时这是我最喜欢的一只股票。我做梦也想不到,后来这只股票差点让我倾家荡产……
当时每天最开心的事情就是,打开基金和证券App,查看每天的收益。有的时候一天能赚 两千多,比工资还要高。群里也非常热闹,每个人都非常兴奋,热烈的讨论哪个股票涨得好。商业互吹成风……
换句话说:岂止是炒股上头,我已经中毒了!
之后就发生了,上文说的一切,我在抄底的过程中,越套越牢……
总结
以上都是我的个人真实经历。 我没有谈 A 股是否值得投资,也不评论当前的股市行情。我只是想分享自己的个人炒股经历。
炒股就是赌博
我想告诉大家,无论你在股市赚了多少钱,迟早都会还回去,越炒股越上头,赚的越多越上头。
赌徒不是一天造成的,谁都有赢的时候,无论赚多少,最终都会因为人性的贪婪 走上赌徒的道路。迟早倾家荡产。即使你没有遇到长春高新,也会有其他暴跌的股票等着你!
什么🐶皮的价值投资! 谈价值投资,撒泡尿照照自己,你一个散户,你配吗?
漫漫人生路,总会错几步。股市里错几步,就会让你万劫不复!
”把钱还我,我不玩了“
”我只要把钱赢回来,我就不玩了“
这都是常见的赌徒心理,奉劝看到此文的 程序员朋友,千万不要炒股和买基金。
尤其是喜欢打牌、打德州扑克,喜欢买彩-票的 赌性很强的朋友,一定要远离炒股,远离投资!
能救一个是一个!
来源:juejin.cn/post/7303348013934034983
离职后的这半年,我前所未有的觉得这世界是值得的
大家好,我是一名前端开发工程师,属于是没有赶上互联网红利,但赶上了房价飞涨时代的 95 后社畜。2024 年 3 月份我做了个决定,即使已经失业半年、负收入 10w+ 的如今的我,也毫不后悔的决定:辞职感受下这个世界。
为什么要辞职,一是因为各种社会、家庭层面的处境对个人身心的伤害已经达到了不可逆转的程度,传播互联网负面情绪的话我也不想多说了,经历过的朋友懂得都懂,总结来说就是,在当前处境和环境下,已经没有办法感受到任何的快乐了,只剩焦虑、压抑,只能自救;二是我觉得人这一辈子,怎么也得来一次难以忘怀、回忆起来能回甘的经历吧!然而在我的计划中,不辞职的话,做不到。
3 月
在 3 月份,我去考了个摩托车驾-照,考完后购买了一辆摩托车 DL250,便宜质量也好,开始着手准备摩旅。
4 月份正式离职后,我的初步计划是先在杭州的周边上路骑骑练下车技,直接跑长途还是很危险的,这在我后面真的去摩旅时候感受颇深,差点交代了。
4 月
4.19 号我正式离职,在杭州的出租屋里狠狠地休息了一个星期,每天睡到自然醒,无聊了就打打游戏,或者骑着摩托车去周边玩,真的非常非常舒服。
不过在五一之前,我家里人打电话跟我说我母亲生病了,糖尿病引发的炎症,比较严重,花了 2w+ 住院费,也是从这个时候才知道我父母都没有交医保(更别说社保),他们也没有正式、稳定的工作,也没有一分钱存款,于是我立马打电话给老家的亲戚让一个表姐帮忙去交了农村医保。所有这些都是我一个人扛,还有个亲哥时不时问我借钱。
说实话,我不是很理解我的父母为什么在外打工那么多年,一分钱都存不下来的,因为我从小比较懂事,没让他们操过什么心,也没花过什么大钱。虽然从农村出来不是很容易,但和周围的相同条件的亲戚对比,我只能理解为我父母真的爱玩,没有存钱的概念。
我可能也继承了他们的基因吧?才敢这样任性的离职。过去几年努力地想去改变这个处境,发现根本没用,还把自己搞得心力交瘁,现在想想不如让自己活开心些吧。
5 月
母亲出院后,我回到杭州和摩友去骑了千岛湖,还有周边的一些山啊路啊,累计差不多跑了 2000 多公里,于是我开始确立我的摩旅计划,路线是杭州-海南岛-云南-成都-拉萨,后面实际跑的时候,因为云南之前去过,时间又太赶,就没去云南了。
6 月
在摩友的帮助下,给摩托车简单进行了一些改装,主要加了大容量的三箱和防雨的驮包,也配备了一些路上需要的药品、装备,就一个人出发了。
从杭州到海南这部分旅行,我也是简单记录了一下,视频我上传了 B 站,有兴趣的朋友可以看看:
拯救焦虑的29岁,考摩托车驾-照,裸辞,买车,向着自由,出发。
摩托车确实是危险的,毕竟肉包铁,即使大部分情况我已经开的很慢,但是仍然会遇到下大雨路滑、小汽车别我、大货车擦肩而过这种危险情况,有一次在过福建的某个隧道时,那时候下着大雨,刚进隧道口就轮胎打滑,对向来车是连续的大货车,打滑之后摩托车不受控制,径直朝向对向车道冲过去,那两秒钟其实我觉得已经完蛋了,倒是没有影视剧中的人生画面闪回,但是真的会在那个瞬间非常绝望,还好我的手还是强行在对龙头进行扳正,奇迹般地扳回来且稳定住了。
过了隧道惊魂未定,找了个路边小店蹲在地上大口喘气,雨水打湿了全身加上心情无法平复,我全身都是抖的,眼泪也止不住流,不是害怕,是那种久违地从人类身体发出的求生本能让我控制不住情绪的肆意发泄。
在国道开久了人也会变得很麻木,因为没什么风景,路况也是好的坏的各式各样,我现在回看自己的记录视频,有的雨天我既然能在窄路开到 100+ 码,真的很吓人,一旦摔车就是与世长辞了。
不过路上的一切不好的遭遇,在克服之后,都会被给予惊喜,到达海南岛之后,我第一次感觉到什么叫精神自由,沿着海边骑行吹着自由的风,到达一个好看的地方就停车喝水观景,玩沙子,没有工作的烦扰,没有任何让自己感受到压力的事情,就像回到了小时候无忧无虑玩泥巴的日子,非常惬意。
在完成海南环岛之后,我随即就赶往成都,与前公司被裁的前同事碰面了。我们在成都玩了三天左右,主要去看了一直想看的大熊猫🐼!
之后我们在 6.15 号开始从成都的 318 起始点出发,那一天的心情很激动,感觉自己终于要做一件不太一样的事,见不一样的风景了。
小时候在农村,读书后在小镇,大学又没什么经济能力去旅行,见识到的事物都非常有限,但是这一切遗憾在川藏线上彻底被弥补了。从开始进入高原地貌,一路上的风景真的美到我哭!很多时候我头盔下面都是情不自禁地笑着的,发自内心的那种笑,那种快乐的感觉,我已经很久很久很久没有了。
同样地,这段经历我也以视频的方式记录了下来,有兴趣的朋友可以观看:
以前只敢想想,现在勇敢向前踏出了一步,暂时放下了工作,用摩托跑完了318
到拉萨了!
花了 150 大洋买的奖牌,当做证明也顺便做慈善了:)
后面到拉萨之后我和朋友分开了,他去自驾新疆,我转头走 109 国道,也就是青藏线,这条线真的巨壮美,独自一人行驶在这条路,会感觉和自然融合在了一起,一切都很飘渺,感觉自己特别渺小。不过这条线路因为冻土层和大货车非常非常多的原因,路已经凹凸不平了,许多炮弹坑,稍微骑快点就会飞起来。
这条线还会经过青海湖,我发誓青海湖真的是我看到过最震撼的景色了,绿色和蓝色的完美融合,真的非常非常美,以后还要再去!
拍到了自己的人生照片:
经历了接近一个半月的在外漂泊,我到了西宁,感觉有点累了,我就找了个顺丰把摩托车拖运了,我自己就坐飞机回家了。
这一段经历对我来说非常宝贵,遇到的有趣的人和事,遭遇的磨难,见到的美景我无法大篇幅细说,但是每次回想起这段记忆我都会由衷地感觉到快乐,感觉自己真的像个人一样活着。
这次旅行还给了我感知快乐和美的能力,回到家后,我看那些原来觉得并不怎么样的风景,现在觉得都很美,而且我很容易因为生活中的小确幸感到快乐,这种能力很重要。
7 月
回到家大概 7 月中旬。
这两个多月的经历,我的身体和心态都调整的不错了,但还不是很想找工作,感觉放下内心的很多执念后,生活还是很轻松的,就想着在家里好好陪陪母亲吧,上班那几年除了过年都没怎么回家。
在家里没什么事,但是后面工作的技能还是要继续学习的,之前工作经历是第一家公司用的 React 16,后面公司用的是 Vue3,对 React 有些生疏,我就完整地看了下 React 18 的文档,感觉变化也不是很大。
8、9 月
虽然放下了许多执念,对于社会评价(房子、结婚、孩子)也没有像之前一样过于在乎了,但还是要生活的,也要有一定积蓄应对未来风险,所以这段时间在准备面试,写简历、整理项目、看看技术知识点、刷刷 leetcode。
也上线了一个比较有意义的网站,写了一个让前端开发者更方便进行 TypeScript 类型体操的网站,名字是 TypeRoom 类型小屋,题源是基于 antfu 大佬的 type-challenges。
目前 Type Challenges 官方提供了三种刷题方式
- 通过 TypeScript Playground 方式,利用 TypeScript 官方在线环境来刷题。
- 克隆 type-challenges 项目到本地进行刷题。
- 安装 vscode 插件来刷题。
这几种方式其实都很方便,不过都在题目的可读性上有一定的不足,还对开发者有一定的工具负担、IDE 负担。
针对这个问题,也是建立 TypeRoom 的第一个主要原因之一,就是提供直接在浏览器端就能刷题的在线环境,并且从技术和布局设计上让题目描述和答题区域区分开来,更为直观和清晰。不需要额外再做任何事,打开一个网址即可直接开始刷题,并且你的答题记录会存储到云端。
欢迎大家来刷题,网址:typeroom.cn
因为个人维护,还有很多题目没翻译,很多题解没写,也还有很多功能没做,有兴趣一起参与的朋友可以联系我哦,让我一起造福社区!
同时也介绍下技术栈吧:
前端主要使用 Vue3 + Pinia + TypeScript,服务端一开始是 Koa2 的,后面用 Nest 重写了,所以现在服务端为 Nest + Mysql + TypeORM。
另外,作为期待了四年,每一个预告片都看好多遍的《黑神话·悟空》的铁粉,玩了四周目,白金了。
现在
现在是 10 月份了,准备开始投简历找工作了,目前元气满满,不急不躁,对工作没有排斥感了,甚至想想工作还蛮好的,可能是闲久了吧,哈哈哈,人就是贱~
最后
其实大多数我们活得很累,都是背负的东西太多了,而这些大多数其实并不一定要接受的,发挥主观能动性,让自己活得开心些最重要,加油啊,各位,感谢你看到这里,祝你快乐!
这是我的 github profile,上面有我的各种联系方式,想交个朋友的可以加我~❤️
来源:juejin.cn/post/7424902549256224804
每一个失业的前端er都必须有一个稳定盈利的独立开发项目
如题,最近非常焦虑,因为考试临近了,所以只好来祸害一下网友了
俺从2023年离职,经历了考研,独立开发,remote,好几段经历
首先是考研,去年考的其实还行,但还是复试被刷,至今被刷原因未知,盲猜是因为本科是民办三本吧
然后remote就是找了个美国的区块链公司,但是因为四月份我忙着搞调剂,过程十分煎熬,根本无心顾暇remote那边天天开会的节奏,所以只能离职,当然啦,最终也没调剂上
这都不是重点,重点是独立开发
从我离职到现在,也快两年了,聪明的人已经发现了,整个互联网技术栈这两年可以说毫无变化,新的端没有,新的框架没有,新的红利也没有,新的独角兽公司也没有
道理很简单,因为现在是僧多粥少的时代,每个人手机上就固定几个app,而且都是存量状态(不需要推翻重来,只需要shi山跳舞)
与此同时,还有若干小公司不断倒闭
懂了吧,现在是需求没了,业务没了,招聘的公司没了
独立开发就只不过是,没有业务,我们自己发现制造业务罢了
但是呢,会更难,因为,资本虽然是傻逼,但它们也不是完全没脑子,如果轻易能成功,他们就不需要跑路了
现实就是,我朋友圈有很多独立开发的,推特上也有很多,但能做到稳定盈利的人,几乎为0
有的是卖小册,有的是搞博客,还有开公司做面试辅导的,也有外包接活的,也有收费技术咨询的
这些统统都是噶韭菜——因为我说的很清楚了,现在是业务没了,是需求没了,但凡不制造需求的,都是瞎扯
——所以我把c站卖了,c站转让前日活5w,但是动漫行业实在太卷了,各种各样的竞品,让我自己都不想看番,更别提服务给他人看了
之前在携程,我的老板和我说,你就当独立创业,携程三万人就是你的第一批客户,我觉得老板说的没错,就是比起b端,我更喜欢c端的用户
所以毫无疑问,我不可能再回去写前端框架了,纯粹浪费时间,浪费我的❤
唉,说了这么多,总而言之,言而总之
回到题目,那就是,每个人失业的前端er都必须有一个稳定盈利的独立开发项目
我也在开新坑了,敬请期待~
来源:juejin.cn/post/7426258631161528335
凌晨四点,线上CPU告警,绩效没了
前言
凌晨4点,我被一阵刺耳的手机铃声惊醒。迷迷糊糊地摸索着手机,屏幕上赫然显示着"线上CPU告警"的字样。瞬间,我的困意全无,取而代之的是一阵冷汗和心跳加速。作为公司核心系统的负责人,我深知这意味着什么——用户体验受损、可能的数据丢失,更糟糕的是,我的年终绩效可能就此化为泡影。
我迅速起身,开始了一场与时间赛跑的故障排查之旅。
1. 初步诊断:快速定位问题
首先,我登录了服务器,使用top命令查看系统资源使用情况:
$ top
输出显示CPU使用率接近100%,load average远超服务器核心数。这确实是一个严重的问题。
接下来,我使用htop命令获取更详细的进程信息:
$ htop
我发现有几个Java进程占用了大量CPU资源。这些进程正是我们的核心服务。
2. JVM层面分析:寻找热点方法
确定了问题出在Java应用上,我开始进行JVM层面的分析。首先使用jstat命令查看GC情况:
$ jstat -gcutil [PID] 1000 10
输出显示Full GC频繁发生,这可能是导致CPU使用率高的原因之一。
接着,我使用jstack命令生成线程转储,查看线程状态:
$ jstack [PID] > thread_dump.txt
分析thread dump文件,我发现大量线程处于RUNNABLE状态,执行着相似的方法调用。
为了进一步定位热点方法,我使用了async-profiler工具:
$ ./profiler.sh -d 30 -f cpu_profile.svg [PID]
生成的火焰图清晰地显示了一个自定义的排序算法占用了大量CPU时间。
3. 应用层面优化:重构算法
找到了罪魁祸首,我立即查看了相关代码。这是一个用于大量数据的自定义排序算法,原本设计用于小规模数据,但随着业务增长,它的性能问题暴露无遗。
我迅速重构了算法,使用Java 8的并行流进行优化:
List<Data> sortedData = data.parallelStream()
.sorted(Comparator.comparing(Data::getKey))
.collect(Collectors.toList());
同时,我添加了缓存机制,避免重复计算:
@Cacheable("sortedData")
public List<Data> getSortedData() {
// 优化后的排序逻辑
}
4. 数据库优化:索引与查询改进
在排查过程中,我还发现了一些低效的数据库查询。使用explain命令分析SQL语句:
EXPLAIN SELECT * FROM large_table WHERE status = 'ACTIVE';
结果显示这个查询导致了全表扫描。我立即添加了合适的索引:
CREATE INDEX idx_status ON large_table(status);
并重写了部分ORM查询,使用更高效的原生SQL:
@Query(value = "SELECT * FROM large_table WHERE status = :status", nativeQuery = true)
List<LargeTable> findByStatus(@Param("status") String status);
5. 部署优化:资源隔离
为了防止单个服务影响整个系统,我决定使用Docker进行资源隔离。创建了如下的Dockerfile:
FROM openjdk:11-jre-slim
COPY target/myapp.jar app.jar
ENTRYPOINT ["java", "-Xmx2g", "-jar", "/app.jar"]
并使用Docker Compose进行服务编排,限制了CPU和内存使用:
version: '3'
services:
myapp:
build: .
deploy:
resources:
limits:
cpus: '0.50'
memory: 512M
6. 监控告警:防患未然
最后,为了避免类似问题再次发生,我升级了监控系统。使用Prometheus和Grafana搭建了全面的监控平台,并设置了更加智能的告警规则:
- alert: HighCPUUsage
expr: 100 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) > 80
for: 5m
labels:
severity: warning
annotations:
summary: "High CPU usage detected"
description: "CPU usage is above 80% for more than 5 minutes"
结语:危机与成长
经过近4小时的奋战,系统终于恢复了正常。CPU使用率降到了30%以下,服务响应时间也恢复到了毫秒级。
这次经历让我深刻意识到,在追求业务快速发展的同时,我们不能忽视技术债务的累积。定期的代码审查、性能测试和压力测试是必不可少的。同时,建立完善的监控和告警机制,能够帮助我们更快地发现和解决问题。
虽然这次事件可能会影响我的年终绩效,但它带给我的经验和教训是无价的。持续学习和改进永远是我们的必修课。
凌晨的阳台上,我望着渐亮的天空,心中暗自庆幸:又一次化险为夷。但我知道,明天将是新的挑战,我们还有很长的路要走。
来源:juejin.cn/post/7424522247791247394
我终于从不想上班又不能裸辞的矛盾中挣扎出来了
最近的状态有一种好像一个泄了气的皮球的感觉一样,就是对生活中很多事情都提不起来兴趣。
我希望自己可以多看一点书,但是我不想动;我希望自己可以练习书法,但是我不想动;我希望自己可以学会一门乐器,但是我不想动。
相比上面三点,我更希望的是我可以早上起来不用上班,但是这只是我的希望而已。
这就是我最近的生活状态。
我有一种我的生活仿佛失去了控制的感觉,每一天我的内心好像都有一个小人在不断呐喊,说我不想上班。因为这个声音,我一度非常非常想要裸辞,但是我为什么没有裸辞呢?
还不是因为我买房买车欠了十几万,我到现在才还了两万而已,再加上我每个月还有房贷要还。
然而,当我经常不情愿地做着跟我心里想法相悖的行为的时候,我发现自己常常会做一些小动作来向自己表达抗议和不满。
比如说,我的工作会变得越来越低效,上班的时候会偷偷地摸鱼,还有就是变得越来越容易拖延。
就好像这样的我,可以让那个不想上班的我,取得了一丢丢的小胜利一样。
一旦开始接受自己没有办法辞职,并且还要上个几十年班这样的结果时,就会让人有一种破罐子破摔的想法。
而且随之而来的是一种对未来,对生活的无力感。
这种无力感渐渐地渗透在我生活的方方面面,以至于让我慢慢地对很多东西都提不起兴趣,我生活中的常态就变成了不想动。
但是有趣的事情发生了,有一天我在和我朋友聊天的时候,我的脑子里面突然出现了一个想法,就是我决定两年之后我要实现我不上班的这个目标。
当有了这个想法之后,我就开始认真思考这件事情的可行度。
通过分析我现在收支情况,我把两年之内改成了2026年之前,因为我觉得这样会让我更加信服这个目标的可行性。
同时我把这个想法也拆分成了两个更为具体的目标,其中一个就是我要在2026年之前还完欠的所有钱。
第二个就是我需要给自己存够20万,这20万是不包括投资理财或者基金股票里面的钱,而是我完全可以自由支配的。
毕竟没有人可以在没有工作的情况下,没有收入的情况下。没有存款的情况下,还能保持一个不焦虑的状态。
当我得出了这两个具体的目标之后,我整个人瞬间被一种兴奋的状态填满,我瞬间找到了工作的意义和动力。
也许你会说,我的这个想法对我现在生活根本起不到任何的改变作用。
我依旧还需要每天七点起床,还是要每天重复地去过我两点一线的生活。
但是于我自己而言,当我给我上班的这件事情加了一个两年的期限之后,我突然觉得我的未来,我的生活都充满了希望。
我整个人从不想动的状态,变成了一种被兴奋的状态填满的感觉。
所以,如果你和我一样有一些类似的困扰,有一些你不想做而又不得不做的事情,让你有一种深陷泥潭,无法前进的感觉,那你不妨试一下这个方法。
结合你自己的实际情况,为你不想做这件事情,设计一个期限,这个期限必须要是你认可,你接受,并且你认为你可以在这个截止时间之前完成的。
我想这个决定应该会对你的生活带来一些改变。
来源:juejin.cn/post/7428154034480906278
35 岁时我改掉的三个习惯
大家好,我是双越老师,wangEditor 作者。
我正在开发一个 Nodejs 全栈 AIGC 知识库项目 划水AI,包括富文本编辑器,多人协同编辑,AI 写作,AI 处理文本等。有兴趣的同学可以围观项目。
开始
虽然标题是 35 岁,但其实本文 2024 年我 36 岁时写的。36 岁总结 35 岁,也没毛病。
35 岁对于我们程序员来说是一个非常敏感的年龄,但我已过 35 ,看看往后会越来越敏感,还是越来越麻木?
本文和大家分享一下我个人在业余生活中的,我觉得很有意义的事情。甚至我觉得这些是事情的意义,都大于工作的成绩。
生活是一个整体,工作只是其中一部分,只是我们养家糊口的一个手段。工作以外的其他部分应该更加重要,例如业余爱好、饮食、休息、娱乐、家庭等。
1. 戒烟
我从大学毕业开始学着吸烟,到 35 岁已经有十几年的烟龄了。虽然每天吸烟量不大,但也断不了,有瘾。
我为什么要戒烟呢?
是觉得吸烟有害健康?—— 对,吸烟肯定有害健康,但人类天生是一种及时行乐的动物,谁会在乎 20 年 30 年以后的健康呢?人类天生是一个心存侥幸的动物(赌徒性质),也不是每个吸烟者都会有 xxx 病,对吧?之前看过一个段子,说某呼吸外科医生做完,累几个小时做完一台手术,先出去吸烟休息一下。
我戒烟,单纯就是想戒。我想摆脱烟草和尼古丁的控制,而且是想了很久了,不是一时突发奇想,之前就有充分的心理准备。
还有,我想在 35+ 的年纪做一点叛逆的事情,叛逆使人年轻,叛逆使人保持活力。年轻时吸烟是叛逆,年龄大了戒烟就是叛逆。年轻时叛逆是狂,年龄大了叛逆是帅。所以,各位大龄程序员,有机会要让自己叛逆起来,做一点帅的事情。
最后,当时 2023 年夏天,我正好不忙,天天闲着,总得找点事儿干。既然工作上不忙,那就在自己身上找点有意义事情做吧 —— 外求不得而向内求,如果没法从外面挣取,那就去提高自身。
烟瘾是什么?就是尼古丁的戒断反应,没有其他理由,没人其他任何事情会让你 1-2 小时就想一次,而且持续想。
关于烟草的本质,烟草的历史,烟草的商业化推广过程,烟草的洗脑广告…… 还有很多内容可以讲,本文就不展开了,有兴趣的可以留言咨询。我很早之前就看过,去学习这些,并且接受这些,才能更好的帮助戒烟。
所以,就这么戒了,到写作本文的时候,正好是戒了一年。我觉得这是我去年做过的最有价值的事情,比我工作挣的钱都有价值。
2. 戒酒
之前我是比较喜欢喝酒的,喜欢一帮人聚餐那种兴奋的状态。但后来喝多了就肚子难受,一躺下就想吐,于是决定不喝了。
有些人说:你可以少喝点。但在中国北方的酒桌上,只有 0 和 1 ,没有中间态。只要你喝了,一开始朋友劝你多喝点,再喝多一点就不用别人劝了,自己就开始主动找酒瓶子了。
我不懂酒,没喝过啥好酒,很少喝红酒。就日常喝的白酒和啤酒而言,我觉得都不好喝。
白酒,度数高,辣(尤其酱味的),容易醉。全世界就中国及其周边人喝白酒,国内几千的白酒没有国际市场。而且单就中国而言,白酒蒸馏技术几百年了,也只有最近这不到 100 年喝白酒。《红楼梦》上层人不喝白酒,《孔乙己》下层人也不喝白酒。
现在喝白酒的人,有两类:1. 被酒桌文化感染而顺从的人; 2. 有酒瘾想快速体验酒精的人。
啤酒,要分好多种,咱日常喝的瓶装的、桶装的,都可以统称为工业啤酒,像水一样,轻薄寡淡 —— 但它有酒精啊!
那种全麦啤酒(忘记名字了,不常喝)还是很好喝的,但价格较高,自己买点喝还行,聚餐喝那个太贵了(普通饭店也没有卖的),很少喝。
我身边也有一些朋友,每周都喝好几次,大部分是为了工作,拉拢客户关系。我觉得我还是比较幸运的,写写代码,改改 bug ,也不用太考虑人际关系。程序员的为数不多的好处。
3. 不看和自己无关的事情
我从不刷抖音(虽然我会发布一些抖音视频),但我之前很喜欢看今日头条 app ,每天闲了就刷一下,吃饭也看,睡前也看。
但是我都看了些啥呢?有一些是娱乐性的小视频,搞笑的,猎奇的,做饭吃饭的,我觉得这些很好,提供情绪价值。
其他的,什么俄 x 战争,什么国外 xxx 冲突,什么体育明星谁比谁厉害,什么传统武术,什么中医 …… 还有这些的评论,各路网友互怼。有时候看的都让人很带情绪,感觉有些人是不是傻,这么简单的道理看不明白?有些人是不是坏,不看事实,只看立场?
这些不仅不能提供情绪价值,反而会增加你的负面情绪。而且,根据《乌合之众》大众心理学研究,你只要参与了其中,你参与了互怼,你就会成为他们其中的一员,也变成傻子或坏人。围观,也是一种参与,你的心里会支持某一方。
更关键的是,这些事情我自己有关系吗?或者我的表态能决定这件事儿的走向吗?哪怕投一票决定一点点呢 —— 答案是显然的,要么没有任何关系,要么自己瞎操心。
所以,我卸载了今日头条 app ,不看了,眼不见心不烦,这些事情我不知道,也不影响我个人工作生活。从此以后,我觉得我的世界瞬间清净了,至少不会被那些负面情绪所打扰。
另外,我睡前也不看手机了,把手机扔在书房充电,直接睡觉。如果偶尔失眠或想事情,那就想,也不用非得拿着手机想,对吧。
总结
35 岁是一个里程碑和转折点,工作上如此,生活中也是如此。程序员是一个相对来说比较“单纯”的群体,我觉得更应该关注个人生活中的成长,共勉,加油~
来源:juejin.cn/post/7417630844100247590
35 岁时我改掉的三个习惯
大家好,我是双越老师,wangEditor 作者。
我正在开发一个 Nodejs 全栈 AIGC 知识库项目 划水AI,包括富文本编辑器,多人协同编辑,AI 写作,AI 处理文本等。有兴趣的同学可以围观项目。
开始
虽然标题是 35 岁,但其实本文 2024 年我 36 岁时写的。36 岁总结 35 岁,也没毛病。
35 岁对于我们程序员来说是一个非常敏感的年龄,但我已过 35 ,看看往后会越来越敏感,还是越来越麻木?
本文和大家分享一下我个人在业余生活中的,我觉得很有意义的事情。甚至我觉得这些是事情的意义,都大于工作的成绩。
生活是一个整体,工作只是其中一部分,只是我们养家糊口的一个手段。工作以外的其他部分应该更加重要,例如业余爱好、饮食、休息、娱乐、家庭等。
1. 戒烟
我从大学毕业开始学着吸烟,到 35 岁已经有十几年的烟龄了。虽然每天吸烟量不大,但也断不了,有瘾。
我为什么要戒烟呢?
是觉得吸烟有害健康?—— 对,吸烟肯定有害健康,但人类天生是一种及时行乐的动物,谁会在乎 20 年 30 年以后的健康呢?人类天生是一个心存侥幸的动物(赌徒性质),也不是每个吸烟者都会有 xxx 病,对吧?之前看过一个段子,说某呼吸外科医生做完,累几个小时做完一台手术,先出去吸烟休息一下。
我戒烟,单纯就是想戒。我想摆脱烟草和尼古丁的控制,而且是想了很久了,不是一时突发奇想,之前就有充分的心理准备。
还有,我想在 35+ 的年纪做一点叛逆的事情,叛逆使人年轻,叛逆使人保持活力。年轻时吸烟是叛逆,年龄大了戒烟就是叛逆。年轻时叛逆是狂,年龄大了叛逆是帅。所以,各位大龄程序员,有机会要让自己叛逆起来,做一点帅的事情。
最后,当时 2023 年夏天,我正好不忙,天天闲着,总得找点事儿干。既然工作上不忙,那就在自己身上找点有意义事情做吧 —— 外求不得而向内求,如果没法从外面挣取,那就去提高自身。
烟瘾是什么?就是尼古丁的戒断反应,没有其他理由,没人其他任何事情会让你 1-2 小时就想一次,而且持续想。
关于烟草的本质,烟草的历史,烟草的商业化推广过程,烟草的洗脑广告…… 还有很多内容可以讲,本文就不展开了,有兴趣的可以留言咨询。我很早之前就看过,去学习这些,并且接受这些,才能更好的帮助戒烟。
所以,就这么戒了,到写作本文的时候,正好是戒了一年。我觉得这是我去年做过的最有价值的事情,比我工作挣的钱都有价值。
2. 戒酒
之前我是比较喜欢喝酒的,喜欢一帮人聚餐那种兴奋的状态。但后来喝多了就肚子难受,一躺下就想吐,于是决定不喝了。
有些人说:你可以少喝点。但在中国北方的酒桌上,只有 0 和 1 ,没有中间态。只要你喝了,一开始朋友劝你多喝点,再喝多一点就不用别人劝了,自己就开始主动找酒瓶子了。
我不懂酒,没喝过啥好酒,很少喝红酒。就日常喝的白酒和啤酒而言,我觉得都不好喝。
白酒,度数高,辣(尤其酱味的),容易醉。全世界就中国及其周边人喝白酒,国内几千的白酒没有国际市场。而且单就中国而言,白酒蒸馏技术几百年了,也只有最近这不到 100 年喝白酒。《红楼梦》上层人不喝白酒,《孔乙己》下层人也不喝白酒。
现在喝白酒的人,有两类:1. 被酒桌文化感染而顺从的人; 2. 有酒瘾想快速体验酒精的人。
啤酒,要分好多种,咱日常喝的瓶装的、桶装的,都可以统称为工业啤酒,像水一样,轻薄寡淡 —— 但它有酒精啊!
那种全麦啤酒(忘记名字了,不常喝)还是很好喝的,但价格较高,自己买点喝还行,聚餐喝那个太贵了(普通饭店也没有卖的),很少喝。
我身边也有一些朋友,每周都喝好几次,大部分是为了工作,拉拢客户关系。我觉得我还是比较幸运的,写写代码,改改 bug ,也不用太考虑人际关系。程序员的为数不多的好处。
3. 不看和自己无关的事情
我从不刷抖音(虽然我会发布一些抖音视频),但我之前很喜欢看今日头条 app ,每天闲了就刷一下,吃饭也看,睡前也看。
但是我都看了些啥呢?有一些是娱乐性的小视频,搞笑的,猎奇的,做饭吃饭的,我觉得这些很好,提供情绪价值。
其他的,什么俄 x 战争,什么国外 xxx 冲突,什么体育明星谁比谁厉害,什么传统武术,什么中医 …… 还有这些的评论,各路网友互怼。有时候看的都让人很带情绪,感觉有些人是不是傻,这么简单的道理看不明白?有些人是不是坏,不看事实,只看立场?
这些不仅不能提供情绪价值,反而会增加你的负面情绪。而且,根据《乌合之众》大众心理学研究,你只要参与了其中,你参与了互怼,你就会成为他们其中的一员,也变成傻子或坏人。围观,也是一种参与,你的心里会支持某一方。
更关键的是,这些事情我自己有关系吗?或者我的表态能决定这件事儿的走向吗?哪怕投一票决定一点点呢 —— 答案是显然的,要么没有任何关系,要么自己瞎操心。
所以,我卸载了今日头条 app ,不看了,眼不见心不烦,这些事情我不知道,也不影响我个人工作生活。从此以后,我觉得我的世界瞬间清净了,至少不会被那些负面情绪所打扰。
另外,我睡前也不看手机了,把手机扔在书房充电,直接睡觉。如果偶尔失眠或想事情,那就想,也不用非得拿着手机想,对吧。
总结
35 岁是一个里程碑和转折点,工作上如此,生活中也是如此。程序员是一个相对来说比较“单纯”的群体,我觉得更应该关注个人生活中的成长,共勉,加油~
来源:juejin.cn/post/7417630844100247590
谈谈在大环境低迷下,找工作和入职三个月后的感受
前言
今天是新公司入职后的三个多月了个人也是如愿的转正了,对于我个人而言此时的心情好像没有三个月前刚拿到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
入职第一天,看了公司代码,牛马沉默了
入职第一天就干活的,就问还有谁,搬来一台N手电脑,第一分钟开机,第二分钟派活,第三分钟干活,巴适。。。。。。
打开代码发现问题不断
- 读取配置文件居然读取两个配置文件,一个读一点,不清楚为什么不能一个配置文件进行配置
一边获取WEB-INF下的配置文件,一边用外部配置文件进行覆盖,有人可能会问既然覆盖,那可以全在外部配置啊,问的好,如果全用外部配置,咱们代码获取属性有的加上了项目前缀(上面的两个put),有的没加,这样配置文件就显得很乱不可取,所以形成了分开配置的局面,如果接受混乱,就写在外部配置;不能全写在内部配置,因为
prop_c.setProperty(key, value);
value获取外部配置为空的时候会抛出异常;properties底层集合用的是hashTable
public synchronized V put(K key, V value) {
// Make sure the value is not null
if (value == null) {
throw new NullPointerException();
}
}
- 很多参数写死在代码里,如果有改动,工作量会变得异常庞大,举例权限方面伪代码
role.haveRole("ADMIN_USE")
- 日志打印居然sout和log混合双打
先不说双打的事,对于上图这个,应该输出包括堆栈信息,不然定位问题很麻烦,有人可能会说e.getMessage()最好,可是生产问题看多了发现还是打堆栈好;还有如果不是定向返回信息,仅仅是记录日志,完全没必要catch多个异常,一个Exception足够了,不知道原作者这么写的意思是啥;还是就是打印日志要用logger,用sout打印在控制台,那我日志文件干啥;
4.提交的代码没有技术经理把关,下发生产包是个人就可以发导致生产环境代码和本地代码或者数据库数据出现不一致的现象,数据库数据的同步是生产最容易忘记执行的一个事情;比如我的这家公司上传文件模板变化了,但是没同步,导致出问题时开发环境复现问题真是麻烦;
5.随意更改生产数据库,出不出问题全靠开发的职业素养;
6.Maven依赖的问题,Maven引pom,而pom里面却是另一个pom文件,没有生成的jar供引入,是的,我们可以在dependency里加上
<type>pom
来解决这个问题,但是公司内的,而且实际也是引入这个pom里面的jar的,我实在不知道这么做的用意是什么,有谁知道;求教
以上这些都是我最近一家公司出现的问题,除了默默接受还能怎么办;
那有什么优点呢:
- 不用太怎么写文档
- 束缚很小
- 学到了js的全局调用怎么写的(下一篇我来写,顺便巩固一下)
解决之道
怎么解决这些问题呢,首先对于现有的新项目或升级的项目来说,spring的application.xml/yml 完全可以写我们的配置,开发环境没必要整外部文件,如果是生产环境我们可以在脚本或启动命令添加 nohup java -Dfile.encoding=UTF-8 -Dspring.config.location=server/src/main/config/application.properties -jar xxx.jar &
来告诉jar包引哪里的配置文件;也可以加上动态配置,都很棒的,
其次就是规范代码,养成良好的规范,跟着节奏,不要另辟蹊径;老老实实的,如果原项目上迭代,不要动源代码,追加即可,没有时间去重构的;
我也曾是个快乐的童鞋,也有过崇高的理想,直到我面前堆了一座座山,脚下多了一道道坑,我。。。。。。!
来源:juejin.cn/post/7371986999164928010
离了大谱,和HR互怼后被开了!
世界之大无奇不有,不靠谱的人见多了,但是不靠谱的公司还是第一次见。
今天故事的主角是某上市公司,其号称为中国电声行业的龙头企业,名字这里就不说了。
故事发生的背景是某大学生秋招找工作,投递和面试的是这家公司的嵌入式开发,但最终却被分到了 IT 部门(猜测应该是 IT 支持岗)。
于是这位哥们儿不服,就找到了这家公司的 HR,但却没想到被 HR 怒怼,并被质问“你配做嵌入式开发吗?”、“我可没有你这么闲”等极具人身攻击的词汇,以下是聊天截图:
当然,故事的结局也大快人心,这哥们儿把他和 HR 的天截图反馈给了官方,于是不出意外,这位 HR 很就被光速开除了(可以看出满满的求生欲),如下图所示:
人在做天在看,不是不报时候未到。打工人何必为难打工人呢?这下好了,小伙子的事情解决了,HR 可倒好,还得重新找工作。
但博主在评论区看到这家公司随意更改应聘者的岗位也是常规操作了,有个哥们儿说他投入的是算法但被直接干到行政去了,离了大谱:
合着找工作这件事,也能像报考大学的志愿一样,上不了某个专业,还可以滑到另一个专业?这也是让我开眼了,大家怎么看?欢迎评论区讨论留言。
本文已收录到我的面试小站 http://www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、设计模式、消息队列等模块。
来源:juejin.cn/post/7426315840222593062
为什么程序员的社会地位不高?
互联网时代,程序员承担着数字世界构建和技术发展的大任,如此重要,为什么存在感不高,社会地位不高呢?
知乎上针对这个问题也有过讨论,分享给大家。
http://www.zhihu.com/question/58…
回答1
什么是社会地位?
社会地位可以简化成,一个人可支配社会资源的数量,例如:
医生 医疗资源
教师 教育资源
...
而程序员可支配的社会资源只有他自己。从这一点上说,程序员和工人没有本质上的区别。
时代的红利成就了这个职业,抛弃它的时候,一样不会留情。
回答2
程序员作为一种社会职业,既没有政府职能部门的公权力,又没有有钱人的一掷千金,挣得也都是辛苦钱,何来社会地位高不高一说,无非就是资本的韭菜罢了。
回答3
这个问题我曾经思考过很久。按知乎的习惯,先问是不是,再问为什么。
首先说“是不是”。
按大家的直觉也好,或者现有的各个社区讨论来看,程序员的社会地位肯定不是高的。
最多有人说程序员的社会地位和其他职业一样高,但没见过谁说程序员的社会地位能高过GWY,医生,老师的。这么说来,“是不是”这个问题已经基本没有大的争议——在公众认知内,程序员的社会地位的确不高。
再来就是“为什么”。
这个为什么是我想了很久了,如果单独拿程序员和某个职业/行业比较,可以有很多个维度的对比,但如果想把大部分的职业/行业进行对比,需要找一个更有共性的比较方式,或者说是能归纳出比较重要的影响因素。对此,我归纳出来的最主要因素是“自由裁量权”。
这里的“自由裁量权”,又分为两个维度:
第一个是权力本身影响后果的大小,比如影响10块钱和影响10亿元的大小肯定不一样;
第二个是权力影响的范围,比如影响一个区和影响全国肯定不一样。
这里举电视剧《人民的名义》里面的人物来说明这一点。
第一个剧中是京州市副市长兼光明区区委书记丁义珍。丁义珍是“负责土地划批,矿产资源整合,还有老城改造”,这里无论是土地划批给某开发商,或者矿产资源交给哪个煤老板开挖,对于这些开发商和煤老板,都一笔稳赚不赔的买卖。而剧中的丁义珍在具体能把这块地或者这片矿批给谁上面,有很大的自由裁量权,也就是说,他能在规则范围之内,把地给批了。于是各个房地产开发商老板,煤矿老板都要找丁义珍去批地批矿,自然丁义珍社会地位就高了。
第二个是京州市城市银行副行长欧阳菁。作为银行副行长,很多带款她拥有最终决定权。是放贷或者不放贷,放贷放给哪个企业,她拥有决定权力,甚至还能影响汉东农信社的决定。比如在蔡成功申请六千万的带款的事情上,欧阳菁一直阻挠,甚至打电话让汉东农信社不给蔡成功带款。为什么以前能贷给蔡成功,而这次不行了呢,那是因为之前每次过桥贷蔡成功都给欧阳菁50万好处费,而这次没有。
从以上两个例子可以出,无论是在ZF,还是银行这种企业里,当官至一定地位时,就拥有了影响社会面的一定量的自由裁量权。无论是丁义珍还是欧阳菁,他们的自由裁量权总体上还是在规则之内运行的,没有明显超出规则之外。要不是赵德汉被查,丁义珍还没那么快会被抓以至于后面要逃亡国外。而欧阳菁如果不是因为侯亮平下来查山水集团等案子,也不会露出马脚。
在最开始说了,自由裁量权除了影响的后果大小,还有涉及面的大小,比如丁义珍和欧阳菁的影响力,主要还是在京州市之内,出了京州市,尤其是出了汉东省,他们也影响不到啥。而剧中的第一个出场的贪官赵德汉,就有影响全国资源项目的审核权,这就是影响面的区别了。所以才有那个全国各地都有人找赵德汉,在他办公室门口排队的事情了。
通过《人民的名义》这三个例子,自由裁量权的影响力和影响面应该都有一定的了解了。
那么我们回过头来看现实中的程序员,这个职业带来的对于社会影响的自由裁量权,可以看出是非常小的,影响面也非常不适合操作。
首先,程序员可以决定程序的技术架构和代码,但很难影响其功能。真正决定功能是怎么样的,是产品经理(网站、APP类)、策划(游戏类)、甲方(to B和to G类),程序员本身几乎没有话语权,即没有自由裁量权,更多地是执行权。即使程序员做到了manager,或者技术VP,甚至CTO,对于这些功能特性的影响都是有限的。
比如说你是某游戏的技术leader,过年了你侄子在玩这款游戏,他希望你帮他的角色属性全部乘以10,你也是做不到的,甚至在内部评审阶段都被砍了。从影响面的角度来看,如果程序员是做某个APP的,他没法影响同公司另一款APP怎么做,更别说影响别的公司的APP怎么做。用通俗点的话来说,无论是社会上的陌生人,还是亲戚朋友,希望找程序员去做一些其职业内能自由裁量的内容从而获益,是很难的。这也就是程序员社会不高的主要原因。
同理,按照这个框架,我们能分析其他的一些职业的社会地位,同时也能看到一些职业除了稳定之外,还有自由裁量权这一微妙的东西,让不少人甘愿去追逐。
全文完
或许,这些讨论,并不能改变现实。
我觉得我们要思考的是:
社会地位的标准到底是什么?
技术人如今的社会地位,合理不合理?
技术人做什么,能够改变自己的社会地位?
来源:juejin.cn/post/7425807410764546098
程序员攻占小猿口算,炸哭小学生!
小学生万万没想到,做个加减乘除的口算练习题,都能被大学生、博士生、甚至是程序员大佬们暴打!
最近这款拥有 PK 功能的《小猿口算》App 火了,谁能想到,本来一个很简单的小学生答题 PK,竟然演变为了第四次忍界大战!
刚开始还是小学生友好 PK,后面突然涌入一波大学生来踢馆,被网友称为 “大学生炸鱼”;随着战况愈演愈烈,硕士生和博士生也加入了战场,直接把小学生学习软件玩成了电子竞技游戏,谁说大一就不是一年级了?这很符合当代大学生的精神状态。
然而,突然一股神秘力量出现,是程序员带着科技加入战场! 自动答题一秒一道 ,让小学生彻底放弃,家长们也无可奈何,只能在 APP 下控诉严查外挂。
此时很多人还没有意识到,小学生口算 PK,已经演变为各大高校和程序员之间的算法学术交流竞赛!
各路大神连夜改进算法,排行榜上的数据也是越发离谱,甚至卷到了 0.1 秒一道题!
算法的演示效果,可以看我发的 B 站视频。
接口也是口,算法也是算,这话没毛病。
这时,官方不得不出手来保护小学生了,战况演变为官方和广大程序员的博弈。短短几天,GitHub 上开源的口算脚本就有好几页,程序员大神们还找到了多种秒速答题的方案。
官方刚搞了加密,程序员网友马上就成功解密,以至于 网传 官方不得不高价招募反爬算法工程师,我建议直接把这些开源大佬招进去算了。
实现方法
事情经过就是这样,我相信朋友们也很好奇秒答题目背后的实现原理吧,这里我以 GitHub 排名最高的几个脚本项目为例,分享 4 种实现方法。当然,为了给小学生更好的学习体验,这里我就不演示具体的操作方法了,反正很快也会被官方打压下去。
方法 1、OCR 识别 + 模拟操作
首先使用模拟器在电脑上运行 App,运用 Python 读取界面上特定位置的题目,然后运用 OCR 识别技术将题目图片识别为文本并输入给算法程序来答题,最后利用 Python 的 pyautogui 库来模拟人工点击和输入答案。
这种方法比较好理解,应用范围也最广,但缺点是识别效果有限,如果题目复杂一些,准确度就不好保证了。
详见开源仓库:github.com/ChaosJulien…
方法 2、抓包获取题目和答案
通过 Python 脚本抓取 App 的网络请求包,从中获取题目和答案,然后通过 ADB(Android Debug Bridge)模拟滑动操作来自动填写答案。然而,随着官方升级接口并加密数据,这种方法已经失效。
详见开源仓库:github.com/cr4n5/XiaoY…
方法 3、抓包 + 修改答案
这个方法非常暴力!首先通过抓包工具拦截口算 App 获取题目数据和答案的网络请求,然后修改请求体中的答案全部为 “1”,这样就可以通过 ADB 模拟操作,每次都输入 1 就能快速完成答题。 根据测试可以达到接近 0 秒的答题时间!
但是这个方法只对练习场有效,估计是练习场的答题逻辑比较简单,且没有像 PK 场那样的复杂校验。
详见开源仓库:github.com/cr4n5/XiaoY…
方法 4、修改 PK 场的 JavaScript 文件
这种方法就更暴力了!在 PK 场模式下,修改 App 内部的 JavaScript 文件来更改答题逻辑。通过分析 JavaScript 响应中的 isRight
函数,找到用于判定答案正确与否的逻辑,然后将其替换为 true,强制所有答案都判定为正确,然后疯狂点点点就行了。
详见开源仓库:github.com/cr4n5/XiaoY…
能这么做是因为 App 在开发时采用了混合 App 架构,一些功能是使用 WebView 来加载网页内容的。而且由于 PK 场答题逻辑是在前端进行验证,而非所有请求都发送到服务器进行校验,才能通过直接修改前端 JS 文件绕过题目验证。
官方反制
官方为了保护小学生学习的体验,也是煞费苦心。
首先加强了用户身份验证和管理,防止大学生炸鱼小学生;并且为了照顾大学生朋友,还开了个 “巅峰对决” 模式,让俺们也可以同实力竞技 PK。
我建议再增加一个程序员模式,也给爱玩算法的程序员一个竞技机会。
其实从技术的角度,要打击上述的答题脚本,并不难。比如检测 App 运行环境,发现是模拟器就限制答题;通过改变题目的显示方式来对抗 OCR 识别;通过随机展示部分 UI, 让脚本无法轻易通过硬编码的坐标点击正确的答案;还可以通过分析用户的答题速度和操作模式来识别脚本,比如答题速度快于 0.1 秒的用户,显然已经超越了人类的极限。
0.0 秒的这位朋友,是不是有点过分(强大)了?
但最关键的一点是,目前 App 的判题逻辑是在前端负责处理的,意味着题目答案的验证可以在本地进行,而不必与服务器通信,这就给了攻击者修改前端文件的机会。虽然官方通过接口加密和行为分析等手段加强了防御,但治标不治本,还是将判题逻辑转移到服务端,会更可靠。
当然,业务流程改起来哪有那么快呢?
不过现在的局面也不错,大学生朋友快乐了,程序员玩爽了,口算 App 流量赢麻了,可谓是皆大欢喜!
等等,好像有哪里不对。。。别再欺负我们的小学生啦!
来源:juejin.cn/post/7425121392738140214
14 款超赞的代码片段生成工具😍(程序员必备)
在本文中,我将介绍 14 款代码片段图片生成器,每款工具都具备独特功能,能够满足不同需求,帮助你将代码转化为精美、易于分享的视觉内容。无论你是追求简约设计、高度自定义,还是想要生成动态代码片段,希望这篇文章能帮助你找到合适的工具,提升代码展示的效果。
CodeImage
CodeImage
是一个开源项目,为希望全面控制代码片段外观的开发者提供了丰富的自定义选项。它提供了多种窗口和边框设置、丰富的字体和主题选择,非常适合创建专业外观的代码视觉效果。
价格:免费
Codetoimg
Codetoimg
提供了现代化的用户界面,用于生成代码片段图片,并配有便捷的参数控制功能,操作简单直观。对于希望简单工作流程的开发者来说,这是一个绝佳选择。只需添加代码,调整几个滑块或开关,几秒钟内即可导出图片。
价格:免费
ShowCode
ShowCode
允许开发者通过横向标签布局创建高质量、可分享的代码图片,同时提供多种自定义选项。在左侧的代码编辑器中进行更改时,ShowCode
会为你提供即时预览。此外,它还配备了一个免费且不限使用次数的API
,非常方便实用。
价格:免费
Carbon
Carbon
是一款广受欢迎的工具,帮助开发者创建精美的代码片段。它提供了丰富的主题和字体选择,因其简洁清晰的视觉效果而备受青睐。支持多种编程语言,适用于所有希望将代码可视化的程序员,具备极高的通用性。
价格:免费
Ray.so
RaySo
是一款出色的工具,拥有直观的用户界面和色彩鲜艳、现代感十足的背景,简化了代码片段图片的创建过程。提供了暗模式和酷炫的渐变背景,非常适合需要为社交媒体或演示创建时尚代码图片的开发者。
价格:免费
Snappify
Snappify
以其强大的功能脱颖而出,不仅允许用户创建静态图片,还能生成动态代码片段,并提供丰富的自定义选项,满足更精细的展示需求。非常适合那些希望让代码具备视觉交互效果的用户,是展示代码的全方位解决方案。
价格:免费 + 3 个高级功能付费计划
Chalk.ist
Chalk.ist
是一款专为使代码片段视觉效果更具吸引力的工具,提供多种自定义选项,并支持添加多个代码块,增强展示灵活性。支持多种主题,并允许用户自定义背景,非常适合那些希望在输出效果上拥有更多创意和控制的开发者。
价格:免费
CodePNG
CodePNG
是一款极简风格的代码片段图片生成器,适合那些希望工作流程简洁、专注于任务的开发者使用。提供下拉菜单选择主题、编程语言和窗口控制,用户还可以选择自定义背景,并自由启用或禁用行号,进一步简化代码图片生成过程。
价格:免费
Pika Code
Pika Code
是一款帮助开发者创建精美代码视觉效果的工具。它允许用户完全编辑背景图案,灵活调整代码片段的外观,增强视觉吸引力。特别适合那些希望在保持专业美感的同时,创造独特代码片段的开发者使用。
价格:免费 + 1 个高级功能付费计划
Code to Image
Code to Image
以其简洁性脱颖而出,开发者可以通过自定义字体、颜色和阴影,轻松创建美观的代码图片。其用户友好的界面使其成为那些希望简单设置但仍能生成高质量图片的用户的理想选择。
价格:免费
HackReels
HackReels
是一款将代码片段转换为动画视频的工具,而非静态图片,非常适合在社交媒体平台上吸引观众的注意力。这一功能使HackReels
成为开发者展示互动代码片段或通过动态视觉效果分享代码教程的理想工具。
价格:免费 + 3 个高级功能付费计划
Codebit
Codebit
是另一个用于创建视觉上吸引人的代码片段动画的工具,动画的顺序通过Markdown
格式进行定义,非常适合那些希望以简洁方式生成代码动画的开发者。它非常适合开发者或教育者通过多步骤的方式解释某些编码概念。您可以将动画导出为MP4
视频文件,便于分享和展示。
价格:免费 + 2 个高级功能付费计划
CodeSnap
CodeSnap
是一款Visual Studio Code
扩展,允许开发者直接从编辑器中捕获高质量的代码图片,非常方便实用。与VS Code
的无缝集成使开发者能够即时将代码转化为美观的图片,而无需离开IDE
,非常适合注重效率的开发者。
价格:免费
Polacode
Polacode
是另一款实用的VS Code
扩展,在代码编辑器中直接生成代码片段图片时表现出色,方便开发者快速创建视觉效果优雅的代码图片。它使用简单,非常适合那些希望节省时间、不必切换到浏览器的开发者,能够快速将代码转换为可分享的视觉效果。
价格:免费
通过以上工具,您可以根据需求,找到最适合的代码片段生成器,轻松创建视觉效果出众的代码展示内容!
来源:juejin.cn/post/7424045557067907113
Mac 备忘录妙用
之前使用 Windows 的过程中,最痛苦的事是没有一款可以满足我快速进行记录的应用
基本都得先打开该笔记软件,然后创建新笔记,最后才能输入,这么多步骤太麻烦了
在切换到 MacOS 之后,让我惊喜的就是自带的备忘录,只需要简单地把鼠标移动到屏幕右下角,就可以创建一篇快速备忘录
Amazing!
这种方式叫做触发角,触发角可以在「系统设置 » 桌面与程序坞 » 触发角」设置:
四个触发角分别可以自由设置:
除了触发角,快捷键【 fn(🌐) + Q】同样能创建一篇快速备忘录
还有一个问题是,触发角 or 快捷键默认会打开上一次编辑的备忘录,如果想要每次都创建一篇新的快速备忘录的话,可以在设置这里:
把「始终回到上个快速备忘录」取消勾选
备忘录支持大部分高频的文本样式,选取文本后,在头部导航栏 Aa 这里做修改样式:
也能支持 check 清单:
表格功能比较弱鸡,就一个简单的表格,什么合并、冻结等高级功能都没有
另外还有图片、链接,这里就不再赘述。
备忘录默认支持文件夹分类,另外还支持标签分类,只需要在备忘录中使用井号(#
)加上对应文字,Mac 即会生成对应的标签清单:
之前在浏览网页的时候,特别想高亮某些内容,同时做一些拓展记录,安装过插件 Weava Highlighter,但是不好用,每次只要选中文字就 Weava 就会弹出,特别烦人。
没想到 Mac 备忘录居然原生支持这个功能
在 Safari 中,可以选择想要收藏的内容,右键「添加到快速备忘录」
创建快速备忘录之后,选中的这句话在 Safari 中会被高亮:
在最新的 MacOS 15 中更新中,备忘录新支持了录音功能:
并且还支持实时的语言转文本,但目前又又又又仅支持英语
库克的母语是英语,我的母语是无语 😅
另外,还新增了高亮颜色,分别有紫色、粉色、橙色、薄荷色和蓝色,不得不说,这几种颜色确实还挺好看的
最有用的功能当属于这个数学功能了
直接输入像是 (27/3)^2=
或者 47*96=
算式,备忘录会自动计算结果:
还支持自定义变量:
总体来说,Mac 的备忘录还算是一个不错的笔记软件,虽然缺乏像 Notion 的文档目录结构和块编辑的一些先进笔记能力,但它有着原生的支持,能够满足快速记录和基础编辑的需求
One more thing 👇
来源:juejin.cn/post/7424901430371696679
Java已死,大模型才是未来?
引言
在数字技术的浪潮中,编程语言始终扮演着至关重要的角色。Java,自1995年诞生以来,便以其跨平台的特性和丰富的生态系统,成为了全球范围内开发者们最为青睐的编程语言之一
然而,随着技术的不断进步和新兴语言的崛起,近年来,“Java已死”的论调开始不绝于耳。尤其是在大模型技术迅猛发展的今天,Java的地位似乎更加岌岌可危。然而,事实真的如此吗?Java的春天,真的已经渐行渐远了吗?本文将从多个维度深入探讨Java的现状、大模型技术的影响,以及Java与大模型融合的可能性,为读者提供一个更为全面和深入的视角。
Java的辉煌历史与稳健地位
Java,作为Sun Microsystems在1995年推出的编程语言,一经问世便凭借其独特的跨平台特性和丰富的生态系统,迅速在全球范围内赢得了广泛的认可和应用。从最初的Java Applet,到后来的Java Web开发、Java EE企业级应用,再到如今的Android应用开发、大数据处理等领域,Java都展现出了其强大的生命力和广泛的应用前景。
在最新的TIOBE编程语言排行榜上,Java长期位居前列,这足以证明其在开发界的重要地位。而在中国这个拥有庞大IT市场的国家中,Java更是受到了广泛的关注和追捧。无论是大型企业还是初创公司,Java都成为了其首选的开发语言之一。这背后,是Java的跨平台特性、丰富的库和框架、强大的社区支持等多方面的优势所共同铸就的。
然而,随着技术的不断进步和新兴语言的崛起,Java也面临着一些挑战和质疑。
一些人认为,Java的语法过于繁琐、性能不够优越、新兴语言如Python、Go等更加轻便灵活。这些观点在一定程度上反映了Java在某些方面的不足和局限性。
但是,我们也不能忽视Java在企业级应用、Web开发、大数据处理等领域的深厚积累和广泛应用。这些领域对Java的稳定性和可靠性有着极高的要求,而Java正是凭借其在这方面的优势,赢得了众多企业和开发者的青睐。
大模型技术的崛起与影响
近年来,随着人工智能和机器学习技术的飞速发展,大模型技术逐渐成为了人工智能领域的一大热点,可谓是百家争鸣。大模型技术通过构建庞大的神经网络模型,实现对海量数据的深度学习和处理,从而在各种应用场景中取得了令人瞩目的成果。
在自然语言处理领域,大模型技术通过训练庞大的语言模型,实现了对自然语言的深入理解和生成。这使得机器能够更加智能地处理人类的语言信息,从而实现更加自然和流畅的人机交互。在图像处理领域,大模型技术也展现出了强大的能力。通过训练庞大的卷积神经网络模型,机器能够实现对图像的精准识别和分析,从而在各种应用场景中发挥出巨大的作用。
大模型技术的崛起对软件开发产生了深远的影响。
首先,大模型技术为开发者提供了更加高级别的抽象和智能化解决方案。这使得开发者能够更加专注于核心业务逻辑的实现,而无需过多关注底层技术的细节。其次,大模型技术降低了AI应用的开发门槛。传统的AI应用开发需要深厚的数学和编程基础,而大模型技术则通过提供易于使用的工具和框架,使得开发者能够更加方便地构建和部署AI应用。最后,大模型技术推动了软件开发的智能化升级。从需求分析、设计到开发、测试和维护等各个环节都在经历着智能化的变革,这使得软件开发过程更加高效和智能。
Java与大模型的融合与变革
在大模型技术崛起的背景下,Java作为一种成熟且广泛应用的编程语言,自然也在探索与大模型技术的融合之路。事实上,Java与大模型的融合已经取得了不少进展和成果。
首先,Java社区对于大模型技术的支持和探索已经初见成效。一些开源项目和框架在Java环境中实现了深度学习和大模型技术的支持,如Deeplearning4j、ND4J等。这些项目和框架为Java开发者提供了丰富的工具和资源,使得他们能够更加方便地构建和部署基于大模型的应用。
其次,Java自身的特性和优势也为其与大模型的融合提供了有力的支持。Java作为一种面向对象的语言,具有强大的抽象能力和封装性,这使得它能够更好地处理大模型中的复杂数据结构和算法。同时,Java的跨平台特性也使得基于Java的大模型应用能够在不同的操作系统和硬件平台上运行,从而提高了应用的兼容性和可移植性。
最后,Java与大模型的融合也推动了软件开发的智能化升级。在需求分析阶段,大模型技术可以通过对海量数据的学习和分析,帮助开发者更加准确地把握用户需求和市场趋势。在设计阶段,大模型技术可以通过对已有设计的分析和优化,提高设计的合理性和效率。在开发阶段,大模型技术可以为开发者提供智能化的编程辅助和错误检查功能,从而提高开发效率和代码质量。在测试和维护阶段,大模型技术可以通过对应用的持续监控和分析,及时发现和修复潜在的问题和缺陷。
未来趋势与展望
随着AI和机器学习技术的不断发展,大模型技术将在未来继续发挥重要的作用。而Java作为一种成熟且广泛应用的编程语言,也将继续在大模型时代发挥其独特的优势和作用。
首先,Java将继续优化其性能和语法,提高开发者的开发效率和代码质量。同时,Java还将加强对大模型技术的支持和整合,为开发者提供更加全面和强大的工具和框架。
其次,Java将与更多新兴技术进行融合和创新。例如,随着云计算和边缘计算的兴起,Java将加强与这些技术的融合,推动云计算和边缘计算应用的发展。此外,Java还将与物联网、区块链等新兴技术进行深度融合,开拓新的应用领域和市场空间。
最后,Java将继续发挥其在企业级应用、Web开发、大数据处理等领域的优势,为各行各业提供更加稳定、可靠、安全的解决方案。同时,Java也将积极拥抱开源文化和社区文化,与全球开发者共同推动Java生态系统的繁荣和发展。
总之,Java作为一种历久弥新的编程语言巨头,将在大模型时代继续发挥其独特的优势和作用。通过与大模型技术的深度融合与创新,Java将引领编程世界的潮流,为各行各业带来更加智能化和自动化的解决方案。让我们共同期待Java在未来的辉煌!
写在最后
我不禁要感慨Java这一编程语言的深厚底蕴和持久魅力。它不仅是一段技术史,更是无数开发者智慧与汗水的结晶。在大模型时代,Java也会以其独特的稳定性和可靠性,持续为各行各业提供着坚实的支撑。正如历史的河流永不停息,Java也在不断地进化与创新,与新兴技术深度融合,共同推动着科技发展的浪潮。让我们携手前行,继续书写Java的辉煌篇章,为构建更加智能、更加美好的未来贡献力量。
来源:juejin.cn/post/7419967609451675700
架构师之道:为什么需要架构师
在聊架构师这个角色之前,我们得先搞清楚一件事:行业里对这个职位的看法其实挺模糊的。回顾一下,过去在一些大公司,有那么一段时间,架构师被视作一个专职的角色。但现在,情况有所变化,这个称呼渐渐退回到了“工程师”、“专家”或“研究员”这类更加技术性的职位名称里。换句话说,那些曾经被冠以“架构师”头衔的人,现在可能更多的是以工程师或研究的身份出现。
但这并不意味着架构师这个角色就消失了。事实上,在我的个人工作经验中,遇到的所谓“架构师”五花八门。特别是在一些小团队中,项目经理可能也会自封为架构师。这里的“架构师”,更多的时候不是一个官方职位,而是根据项目需要,某人暂时扮演的一个角色。
如果你想了解架构师到底是什么,先得接受一个事实:在当前的技术领域,架构师这个角色还没有一个清晰且统一的定义。它更像是一个根据项目情况变化的角色,而不是一个固定的职业路径。这也就意味着,成为一个架构师,与其说是达到某个职位的高度,不如说是在特定情境下,扮演的一个必要角色。
1、架构师的定义
架构师:任何复杂结构的设计人员。
架构师这个概念是从建筑业借鉴过来的。实际上,如果我们将“Software Architect”直译成中文,它意味着“软件建筑师”。这不仅仅是一个简单的名字借用;在很多方面,软件架构师的角色确实与建筑师有着相似之处。为了深入理解这种联系,我曾经翻阅了不少关于建筑设计的书籍(比如,《建筑的永恒之道》是一本极好的参考资料),通过这些学习,我发现软件架构与建筑设计之间不仅有着历史上的联系,它们的发展轨迹在某些方面也可能朝着相同的方向前进。
- 一脉相承:无论是传统的建筑师还是现代的软件架构师,他们的核心职责都是为了构建一个宏大的设计蓝图,确保在需求方和实施团队之间架起一座沟通的桥梁。
- **分道扬镳:**这种分歧主要是因为两个领域发展阶段的不同。建筑行业有数千年的实践历史和几百年的理论基础,已经发展成为一个高度模式化的领域。相比之下,软件架构作为一个领域的历史还不足二十年,仍然处于快速发展和变化之中。在这个阶段,软件架构师更多的是关注于技术的选择和实现方式,而不是设计的美感,这也是为什么软件架构师通常被看作是高级工程师,而不是设计师。
- 殊途同归:尽管如此,计算机科学的发展历程也证明了技术的持续抽象和模式化。从面向服务的架构(SOA)到物联网(IoT),再到“如果这个,那么那个”(IFTTT)的编程理念,我们已经开始看到软件领域向着建筑业已经达到的模块化水平迈进。随着技术的发展,软件架构师的工作越来越多地涉及到决定“要做什么”,而不仅仅是“怎么做”。这种变化预示着,未来软件架构师可能真正成为一个关注设计本身的职业,大学中甚至可能开设专门的“软件架构”专业。
当然,要实现这样的转变,我们这一代技术人员面临着巨大的挑战。我们需要像建筑行业的先驱那样,不断地规范化技术实践,形成设计模式,同时还需要建立一套既考虑架构美学又不忽视功能设计的统一标准。这是一条漫长而艰难的道路,但正如建筑领域所展现的那样,通过不懈努力,最终能够达到的成就是无限的。
2、架构师的职责
在软件行业的早期,"架构师"这个职位并不存在。那时候,大家都是程序员,也许会有一个领头的,称之为"主程序员"。但随着时间的推移,计算机技术飞速发展,软件开始渗透到生活的方方面面,不仅覆盖面广,而且复杂度大增。现在,拥有数百万甚至数千万行代码的软件系统已经变得司空见惯。随着软件日益复杂,开发者面临的挑战也与日俱增,因为人脑处理信息的能力终究是有限的。为了应对这些挑战,软件开发工具和方法也在不断进化,从汇编语言到高级编程语言,从基本的函数编程到复杂的框架,从面向过程到面向对象,从设计模式到架构模式,这一切都在展示着人类在软件工具开发上不断追求"封装"和"抽象"。
在这个抽象和封装的进程中,架构设计可谓达到了顶峰。作为架构师,不再需要过分纠结于编程语言、函数或设计模式等具体细节,而是要从一个更高的视角,全面考虑整个软件系统的设计,确保技术方案的合理性、需求的完整实现,以及与商业目标的契合度——这些构成了架构师的技术职责。
随着行业的不断发展,软件项目参与的角色和人员也变得越来越多样化,不仅仅局限于程序员和需求方,还扩展到了技术、产品、设计、商务、项目管理等多个团队。同时,技术团队内部的分工也越发细化,形成了前端、后端、测试、运维、技术支持等多个专业领域。在这种背景下,架构师成为了技术团队与产品、设计等非技术团队之间的桥梁,负责协调不同团队间的沟通,确保技术与业务的有效结合。作为技术团队的领导者,架构师需要勾画出整个项目的蓝图,明确各个环节的边界,引导各个专业领域的团队成员协同工作,共同完成软件系统的构建和发布——这就是架构师的组织职责。
2.1、架构师的技术职责
讨论软件架构师和建筑师的角色时,我们常常会发现两者之间存在着引人入胜的相似性和关键性的差异。这种比较不仅帮助我们理解软件架构师的角色,还揭示了软件开发过程中的独特挑战和机遇。
让我们来看看那两个在建筑领域根深蒂固,但在软件架构界至少目前不完全适用的基本理念:
- 职业路径的差异:在建筑领域,成为一名建筑设计师通常不需要经历建筑工人或工程师的角色。相反,软件架构师的成长路径几乎总是从软件工程师开始的,通过深入实践中积累经验和技术深度,逐渐演化成为能够担当架构设计重任的专家。这种差异反映了软件行业对于实际编码和项目经验的高度重视。
- 职责范围的差异:建筑学与工程学之间存在明确的分工——建筑师负责概念化设计,即决定要建造什么,而工程师解决实现问题,即如何建造。软件架构师则通常需要兼顾这两方面,他们不仅定义软件的功能和外观,还必须深入到技术实现的关键部分,确保设计的可行性和实用性。
这两个差异引出了软件架构师的三大技术职责,主要分为三大块:抽象设计、非功能设计以及关键技术设计。每一项都对成功的软件开发至关重要。
抽象设计的艺术:架构师的任务是在不同的抽象层次上自由地分析需求,每个层次或视角都为我们提供了一个独特的视图。这些视图不仅相互验证,而且共同组成了一个完整的设计蓝图。抽象设计可以从两个维度来看:
- 垂直维度:这里我们从顶层的企业架构到底层的系统架构,分别关注不同层面的需求和决策。比如,CTO更关心企业架构,因为它关系到公司整体的IT战略方向;产品经理和运维团队则更关注应用架构,涉及产品的业务流程和部署问题;而研发团队则深入到系统架构,专注于具体系统的设计和框架。
- 水平维度:针对特定业务,架构设计可以进一步细化为业务架构、数据架构、技术架构和应用架构。这些视角涵盖了从业务流程分析到技术选型的全方位设计。架构师和产品经理合作确定业务的核心领域模型;数据架构师设计数据模型;技术架构师选定技术栈;应用架构师规划应用的架构布局。
这样的划分使得每个角色都能在其专业领域内发挥最大的作用,同时确保整体设计的协调一致。架构设计的目的是为了确保技术解决方案能够精准地匹配业务需求,正如不同类型的桥梁设计师面对的挑战各不相同,软件架构的设计也需要根据业务领域的特性来定制。每个业务领域的独特性要求架构设计必须具有灵活性和创新性,以实现最佳的业务支持。
非功能需求的分析:架构的真正价值体现在对非功能性需求的满足上。这不仅仅是关于软件能做什么,更重要的是它如何做得好。我们谈到的非功能性需求包括软件系统的可靠性、扩展性、可测性、数据一致性、安全性和性能等方面。在真实世界的约束条件下,如成本、运行环境的限制,往往难以同时满足所有这些需求。
这就要求架构师进行精细的权衡。例如,在算法设计中可能需要在时间和空间之间做出选择,或者在系统性能和可靠性之间找到平衡点。有时,这种权衡甚至触及到学术领域,例如CAP理论就是关于在一致性、可用性和分区容错性之间做权衡的经典案例。架构师的工作就是在这些多维度的需求中找到最优解,确保系统在满足核心需求的同时,保持良好的性能和可用性。
关键技术设计:架构师的角色并不仅限于宏观设计。正如建筑师不仅关心建筑的整体外观,还会深入到细节设计一样,软件架构师也需要关注那些对系统整体质量有重大影响的关键技术细节。拿高迪的巴塞罗那圣家堂为例,连一把椅子的设计都不放过,每个细节都被赋予了深思熟虑的考虑。
在软件架构中,这意味着对系统中的关键组件进行详尽的设计,不仅是功能实现,更包括如何实现这些功能的具体技术选型、性能优化、安全策略等。架构师需要深入到系统的内部,确保每一个关键点都经得起考验,无论是在系统扩展、数据处理还是安全性方面。通过这样的细节关注,架构师确保软件不仅在今天有效,也能面对未来的挑战。
2.2、架构师的组织职责
架构师,作为企业中的一个核心角色,担当着“边界人”的重要职责。他们不仅是技术决策的制定者,也是不同角色和团队之间沟通协调的桥梁。
架构师与业务、产品团队的合作
在现实世界里,每个软件系统背后都有一个问题需要解决。简单地说,这就是软件存在的理由。但问题的解决并不只是随便写写代码就行,而是需要深入理解业务本身。这就是为什么,当一个软件的商业模式明确后,架构师要和业务、产品团队紧密地工作在一起。他们的目标是什么呢?是确定软件系统应该如何支撑业务,也就是说,他们需要设计出一个既能解决当前问题,又能支持未来业务发展的架构和领域模型。
这里的“架构”和“领域模型”其实就是把复杂的业务逻辑分解成一个个更容易理解和实施的部分。这种分解的好坏,直接影响到软件是否只能解决眼前的问题,还是能成为一个真正能随着业务成长的产品。
但要注意,业务和产品团队与架构师之间的关系并不总是那么简单。他们既是合作伙伴,又可能是谈判桌上的对手,尤其是在外包项目中。这时,架构师的角色不仅仅是技术决策者,更是需要在业务需求和技术实现之间找到平衡点的关键人物。简而言之,架构师的任务是确保软件既能满足当前的业务需求,又能灵活适应未来的发展。
架构师与技术团队的合作
在与技术团队的合作中,架构师的角色不仅仅是技术的引领者,更是团队合作的枢纽和策略制定者。直接切入重点,我们看到架构师在研发阶段的作用不仅限于构建技术框架和确定开发边界,还包括对项目中关键的非功能性需求——比如系统的性能、可靠性和安全性——进行精准的设计和实现。这意味着架构师不仅需要具备宏观的视野,将不同的研发团队和业务领域有序地编织在一起,还需要深入到技术细节中,亲自确保这些非功能需求能够得到满足。
在部署阶段,架构师与运维团队的合作变得尤为关键。他们需要共同评估如何在确保系统满足所有预定非功能需求的同时,实现成本和性能的最优平衡。这涉及到复杂的决策过程,如选择合适的硬件资源、决定是否采用CDN以提高性能、如何确保系统的高可靠性以及部署安全策略等。架构师在这一过程中扮演的是策略家和协调者的角色,旨在设计出一个既经济又高效的部署方案。
站在技术团队的角度,架构师的定位呈现出一种动态平衡。一方面,深耕于技术团队让架构师能够更深入地理解产品和业务需求,从而做出更加精准的技术设计和决策。另一方面,保持适当的独立和客观视角使得架构师能够从更宏观的层面审视和规划软件架构,避免过分陷入具体技术细节而失去整体的协调和控制。架构师需要在深入与独立之间找到合适的定位,确保既不脱离技术团队的实际,又能保持必要的全局视角。
除了技术设计和决策,架构师还承担着重要的组织职能——团队培养。架构师通过制定关键技术方案,不仅展示了技术领导力,还为团队成员提供了学习和成长的机会。这要求架构师既要有足够的技术洞察力亲自解决核心问题,又要给予团队足够的空间和信任,让他们在实践中学习和成长,即使这意味着需要承担一定的风险和责任。架构师的这一角色不仅是技术领导者,更是教练和导师,引导团队不断前进,提升技术实力。
综上所述,架构师与技术团队的协作是一场精心设计的平衡游戏,需要架构师在保证技术先进性和系统稳定性的同时,促进团队的协作与成长。架构师必须在技术的深度与广度、团队内部与外部的定位、以及领导与培养之间精准把握,以确保既能实现高效的技术创新,又能维护和促进团队的整体协作和发展。
和其他角色的协作
想象一下,一个架构师不仅仅是坐在电脑前写代码的技术人员,他其实更像是一个大指挥官。他的任务是什么呢?是确保软件项目从开始到结束都能顺利进行。这听起来简单,实际上却涉及到很多方面。
架构师需要和谁合作?首先是产品和技术团队,这个不用说,毕竟软件是由他们一起打造的。但这还不够,架构师还要和项目经理合作,确保项目按时按质完成。还有外部客户,他们是软件的最终用户,架构师需要理解他们的需求。甚至连公司财务部门也逃不过架构师的合作名单,毕竟软件项目的预算和成本也是非常关键的部分。
架构师的角色远不止是技术实施那么简单,他必须与所有相关方保持沟通和协调,从技术方案的角度出发,确保每个人的需求都得到满足。这就是架构师作为技术方案总负责人的真正含义:他是连接所有点的线,确保这些点能够形成一个完整的、成功的项目。
如何沟通
沟通是团队合作的基石,而对于架构师来说,沟通的艺术不仅仅是说话和写字那么简单。他们需要的是一种更高效、更直观的沟通方式——图表。为什么呢?因为图表能够跨越语言和专业的界限,让复杂的概念变得易于理解。
对不同的团队,架构师使用不同的图表作为沟通工具。比如,和产品团队沟通时,架构师会用业务架构图、用例图和领域模型图来说明软件要解决的业务问题和如何解决。这些图表帮助产品团队理解软件的业务价值和功能范围。
当转向研发团队,架构师则切换到应用架构图、组件图和时序图。这些工具帮助研发人员把握软件的内部结构和各部分如何协同工作。
对于运维团队,架构师又会用部署架构图来说明软件如何在实际环境中部署和运行。这样运维团队就能更好地理解和准备所需的资源和配置。
图表的力量在于它们提供了一个共同的语言,让所有人都能理解软件的设计和运作原理,无论他们的专业背景如何。同时,图表还能将设计文档化,便于传承和未来参考,确保软件的长期成功。简而言之,架构师通过使用图表作为沟通的桥梁,不仅促进了团队之间的理解和合作,也为软件的成功奠定了基础。
3、架构师的成长
在探讨架构师的角色时,我们首先要明确一点:架构师的职责直接定义了他们必须具备的能力。这意味着,作为架构师,不仅需要掌握广泛的技术知识,成为一个全面的技术专家,同时还要精通沟通与协作技巧。这样的定位要求架构师在技术领域有深入的理解和广泛的视野,能够看到技术如何服务于业务目标;另一方面,他们还需要具备出色的人际交往能力,能够有效地与团队成员、利益相关者进行沟通和协作,确保技术解决方案的顺利实施。简而言之,架构师的角色是技术与沟通能力的完美结合体,他们在将复杂概念分解成易于理解的部分方面发挥着关键作用,确保所有人都能跟上项目的进展。
所以,如果我们要总结架构师成长的路径,其实可以看作是两个主要方向:
3.1、技术层面
作为架构师,你的主战场是抽象建模,但战斗前的准备不能少,那就是深入了解你的业务领域。只有当你对业务有深刻的理解时,你才能高效地进行抽象和建模,并能够提炼出通用的设计方法。回想起几年前,我看到我们公司首席架构师的书单时,明白了这一点。尽管我们那时仅是金融领域边缘的一家支付公司,他的书单上却涵盖了银彳亍卡组织介绍、零售银行业务分析等领域。
另外,架构师不仅需要理解业务,还得对涉及的技术领域有广泛甚至深入的知识。对于互联网行业的架构师而言,这包括从编程语言、算法、数据库,到网络协议、分布式系统、服务器、中间件、IDC等各个层面。简而言之,架构师既是技术团队的门面,也是解决外部技术问题的关键人。除了技术的广度,深度同样重要,架构师对关键技术模块的设计应具备权威性见解。这样的角色定位,要求架构师既是全面的技术探索者,也是业务领域的深度分析师。
3.2、组织和个人成长层面
架构师站在技术与业务的十字路口,不仅需要精通各自的语言,更要在沟通中架起桥梁。这意味着,架构师的能力远不止于技术深度,还包括能够以口头和书面(特别是通过标准化图表)的形式,清晰、准确地传达设计思路和决策逻辑。这样的沟通技巧对于确保团队成员、利益相关者和客户之间的顺畅交流至关重要。
架构师的工作本质上是一场不断的权衡和平衡艺术,涉及技术选型、团队合作方式、人才培养、任务分配,以及如何在商业需求与成本控制、产品需求与技术能力之间找到最佳匹配点。这种持续的权衡过程不仅展现了架构师的策略思维,也是他们价值的体现。与工程师的角色相比,架构师更需要适应并接受不完美的解决方案和在给定条件下的近似精确,这往往是因为现实世界的复杂性和资源的限制。
从工程师到架构师的转变,意味着从追求代码的完美到追求系统设计和决策的优化平衡。这个过程中,架构师需要发展出对业务敏感性,深入理解业务背后的逻辑和需求,并以此为基础设计出既符合技术发展又服务于业务目标的架构方案。同时,架构师还要在技术前沿不断学习和探索,确保所采用的技术方案既前瞻性又实用,能够支撑业务的长期发展。
来源:juejin.cn/post/7361752279718297652
当一个程序员决定脱下孔乙己的长衫
前言
Hi 你好,我是东东拿铁,一个正在探索个人IP的后端程序员。
在探索个人IP半年的时间里,自己利用业余时间学习写作,输出内容。
为爱发电半年了,我认为是时候做出点改变了。
行动、破除了一切焦虑
在起步之初,我就暗暗下定决心,在前半年的时间里,我不去思考如何变现,而是专注开阔眼界,锻炼写作能力。
上半年接触了很多做自媒体的朋友,很多都在做知识付费,各种各样的项目让人眼花撩乱,更是可以付费和他们学习。看着他们朋友圈不断发出的日入xxx、月入xxx的信息,说实话很难让人不心动。
当然,心动的同时,伴随你的一定还有焦虑。我加入了十几个群,群里面又不断的有着分享,一天需要看的消息内容可能有上千条。
正是自己给自己定下的锻炼写作能力的目标,和前半年不去思考如何变现的决定,让我在日常生活中,需要花大量的时间阅读、思考、输出,加上下班后还要看娃、看书,因此时间有限,做完该做的事情后,剩下的时间所剩无几,很多群、朋友圈我几乎没有时间去看了。
很庆幸自己给自己做了这个要求,不然我一定会在繁多的信息和项目中迷失自己。
行动,能够破除很多焦虑。
现在半年过去了,这段时间里,用心学习了不少东西,比如标题、框架、内容,最重要的是养成了持续输出的习惯,从自己过去的一些经历,到自己想要学习的东西,已经写了39篇文章,掘金的创作等级终于到了lv5,挺开心的。
复盘问题
半年时间,总结自己存在的问题,大概有两个点。
- 内容缺乏深度,主要是阅历不足,这个短时间内很难提升。
- 更新速度较慢,最快也需要集中精力两天,才能打磨好一个自己满意的文章。
我对自己输出的文章,是有自己的一个要求在里面的,比如不能标题党,内容框架要好,要有深度,还不能只罗列知识,要有自己的经历与感悟。
这导致我的输出速度较低,因为当你要讲明白一个观点、思维的时候,你一定会发现自己有不了解的地方,然后就要去重新学习、思考、整合。
但个人的见识、思维在短时间内不可能有突破性的提升,所以写出来的东西,一定只停留在我当下的能力阶段,吸引到的人也有限。自媒体就是要不断增加自己的更新速度,才能在这个信息爆炸的时代,吸引到更多人的注意力。
我还是蛮羡慕那些商业、技术大佬,能够吸引到几十万的粉丝,但如果按照目前的增长速度,错过平台红利期的我,或许几年后也无法积累这么多粉丝。
没有用户,没有这么多认可我的人,我做自媒体的目的:成为一个自由职业者,也就无法达到了。
现在,是时候去尝试一下,做一些能够赚钱的项目了。
脱下孔乙己的长衫
我决定深度参与一个项目,去做之前我认为没有价值的,写公众号爆文。
先介绍一下公众号爆文。
项目很简单,就是在公众号发布用户喜欢的内容,比如热点、公众人物、情感等文章,公众号平台会推荐,如果被推荐了,阅读量提升,你可以开通流量主,文章会自动插入广告,那么文中的广告,就会给你带来收益。
之前自己的一篇文章在1w左右阅读的情况下,收入大概在50元左右。文章在被推荐的情况下,如果达到10w+,单篇文章收入会在5、600左右,是一个门槛比较低的副业。
说实话,做这个决定很难,内心内耗的两个点:
- 对流量文这件事情,并不是很认可。我之所以用心去写每一篇文章,就是因为看过太多靠标题、热点,写出的没营养的文章了,我认为这完全就是在浪费每一个读者的时间。
- 如果仅看单篇文章的收益,我之前1w+阅读的文章,至少花费了我4、5天的业余时间,最终几十元的收益,对于一个程序员来讲,性价比极低,我瞧不上。
但我最近从思想上想清楚了上面的两个问题:
- 事实是最重要的。既然一些流量文能够达到10w+的阅读量,这正是代表了他符合用户、平台的需求。我或许觉着他毫无价值,但是有很多读者就是会认为阅读这类文章很爽,很休闲。毕竟不是谁都能踏下心来,在手机上阅读一篇大几千字满是干活的文章的。
- 我之所以瞧不上,是因为我认为收益较低。但这并不妨碍有不少人,通过大量的发布文章,可以每天都写出10w+的文章来,那么一天的收益至少在500以上,那么一个月至少破万。你看,当量积累到一个程度,那你很难忽视它能够达到的高度了。
而我现在遇到的问题,正好是无法获得更多的流量,无法提升自己的更新速度。结合我自媒体的方向,通过这个项目都可以打开我的思路,帮助我提升用户视角、提升效率。
所以,不能只是瞧不起那些只有流量、没有深度的流量文了,应该去尝试下场干干,而且我很笃定,这件事情,可以收获许多,不仅是在金钱,还有方法与认知。
说在最后
好了,文章到这里就要结束了。
所以你看,程序员想要在业余时间赚到一点工资以外的收入,其实真的挺难的, 不仅是行动上需要牺牲休闲、陪家人的时间,思维上面的卡点,一样重要。
但同时也很沮丧,或许务实主义确实是无数过来人想要告诉我们的真理。但是当自己不再这么的理想主义,我只能觉着我自己成熟了,但并不能感到高兴。
以上,就是我半年来的一个小小的复盘,与后续的计划。
来源:juejin.cn/post/7381349596637102089
工作两年以来,被磨圆滑了,心智有所成长……
刚毕业时候年轻气盛,和邻居组的老板吵了几句。后来我晋升时,发现他是评委…… 曾经的我多么嚣张,现在的我就多么低调。
一路走来,磕磕绊绊,几年来,我总结了工作上的思考……
工作思考
- 有效控制情绪,在沟通时使用适当的表情包以传达善意。无论线上还是线下,都应避免争吵。只有和气相处,我们才能推动工作的进展。
- 在讨论具体问题之前,先进行一些预备性的交流。情绪应放在第一位,工作讨论放在第二位。如果对方情绪不好,最好选择另一个时间再进行讨论。
- 在与他人交流时要保持初学者的态度和需求,不要用技术去怼人。
- 进入新团队先提升自己在团队的业务能力,对整个系统有足够的了解,不要怕问问题和学习。不要新入职就想毁天灭地,指手画脚 ”这里的设计不合理,那里有性能瓶颈“。
- 在各个事情上,都要比别人多了解一点。对于关键的事情要精通,对于其他事情也要多花一点时间去投入。
- 遇到困难时,先自己思考和尝试解决,然后再请教他人。不要机械地提问,也不要埋头一直搞而不主动提问。但如果是新入职,可以例外,多提问总没有坏处,但要在思考的基础上提问。
- 当向他人求助时,首先要清晰地阐述自己正在面临的问题、目标、已尝试的方法以及所需要的帮助和紧迫程度。所有的方面都要有所涉及。在提问之前,最好加上一句是否可以帮忙,这样对解决问题是否有帮助更加明确。因为别
- 一定有时间来帮助你,即使有时间,你也不一定找对了人。
- 在明确软件产品要解决的业务问题之前,先了解自己负责的那部分与业务的对应关系。
- 主要核心问题一定要提前叙述清楚,不要等别人问
- 要始终坚持追踪事情的进展,与与自己有交互的队友讨论接口,并关注他们的进度,以确保协调一致。
- 要主动向队友述说自己的困难,在项目延期或遇到困难时,要主动求助同事或领导,是否能分配部分工作给其他人,不要全部自己承担。
- 如果预计任务需要延期,要提前告知领导。如果有进展,也要及时向领导汇报。
- 如果无法参加会议但是自己是会议的重要参与者,一定要提前告知领导自己的进度、计划和想法,最好以书面形式或电话告知。如果可以远程参加,可以选择电话参加。除非有极其重要的事情,务必参加会议。不要假设别人都知道你的进度和想法。
- 要少说话,多做事。在开会时,不要凭借想当然的想法,可以询问其他小组的细节,但不要妄自揣测别人的细节,以为自己是对的。否则会被批评。
- 程序员如果经验丰富,很容易产生自我感觉良好的情绪。要避免这种情况,我们必须使用自己没有使用过的东西,并进行充分的测试,这样才能减少问题的出现。要提前考虑好所有细节,不要认为没有问题就不加考虑。要给自己留出处理问题的时间,并及时反馈并寻求帮助。
- 当与他人交流时,要始终保持有始有终的态度,特别是当寻求他人帮助时,最后一定要确认OK。要胆大心细,不要害怕犯错,要有成果,要快速并提高效率,不择手段地追求快速,并对结果负责。工作一定要完成闭环,要记事情要好,记住重要的事情并使用备忘录记录待办事项。
- 每完成一个项目后,应该回顾一下使用了什么知识、技能和工具。要总结并记录下这些,并与之前积累的知识和技能进行关联。如果发生了错误,也要记录下来,并将经验进行总结。
- 每天早上先思考今天要做什么,列出1、2、3,然后每天晚上下班时回顾已完成的任务、未完成的任务以及遇到的问题。
- 如果有待办事项没有立即处理,一定要用工具记录下来,不要心存侥幸以为自己能记住。
代码编写和技术问题
- 在代码编写过程中要认真对待,对于代码审核之前,要自己好好检查,给人一种可靠的感觉。
- 对于代码审核,不要过于苛刻,要容忍个人的发挥。
- 在提交代码给测试之前,应该先自行进行测试验证通过。
- 如果接口没有做到幂等性,那就会给未来的人工运维增加困难。当数据存在多份副本时,例如容量信息和上下游同时存在的资源,需要评估数据不一致的可能性以及解决方法。可以考虑通过数据校准或严格的代码编写来保证最终的一致性,或者考虑只在一方保存数据或以一方的数据为准。一旦出现数据不一致,则以其中一方的数据为准,无需人为干预即可自动达到数据再次一致。
- 要学会横向和纵向分割隔离系统,明确系统的边界,这样可以更好地进行并发合作开发和运维,提高效率。各个子系统应该独立变化,新的设计要考虑向后兼容性和上下游兼容性问题,包括上线期间的新老版本兼容。在设计评审阶段就应该重视这些问题。
- 如果在代码审查中无法发现业务问题或代码风格问题,不妨重点关注日志的打印是否合理和是否存在bug。
- 在依赖某个服务或与其他服务共享时,要确认该服务是否要废弃、是否是系统的瓶颈,以及是否可以自己进行改造或寻找更优的提供者。
- 使用缓存时注意预热,以防止开始使用时大量的缓存未命中导致数据库负载过高。
- 在使用rpc和mq、共享数据库、轮询、进程间通信和服务间通信时,要根据情况做出选择,并注意不要产生依赖倒置。
- 在接口有任何变动时,务必通过书面和口头确认。在这方面,要多沟通,尽量详细,以避免出现严重问题!毕竟,软件系统非常复杂,上下游之间的理解难以保持一致。
- 尽可能使用批量接口,并考虑是否需要完全批量查询。当批量接口性能较差时,设置适当的最大数量,并考虑客户端支持将批量接口聚合查询。批量接口往往是tp99最高的接口。
- 对于系统重要设计和功能,要考虑降级预案,并加入一些开关来满足安全性和性能需求。
- 如果数据不一致,可以考虑对比两方的不一致数据并打印错误日志,例如es/db等。
- 在系统设计之前,要充分调研其他人的设计,了解背景和现状。
- 废弃的代码应立即删除,如果以后需要,可以从git中找回。如果实在不想删除,也要注释掉!特别是对外的rpc、http接口,不使用的要立即删除,保持代码简洁。接手项目的人不熟悉背景情况,很难判断这段废弃代码的意义,容易造成混乱和浪费时间。要努力将其和其他有效代码联系起来,但这很困难。
- 在代码中要有详尽的日志记录!但是必须有条理和规范,只打印关键部分。对于执行的定时任务,应该打印足够详细的统计结果。最好使用简洁明了的日志,只记录最少量但最详细的信息,反馈程序的执行路径。
- 如果接口调用失败或超时,应该如何处理?幂等和重试如何处理?
当你写下一行代码前
- 要明确这行代码可能出现的异常情况以及如何处理,是将异常隔离、忽略还是单独处理,以防遗漏某些异常。
- 需要确保该行代码的输入是否已进行校验,并考虑校验可能引发的异常。
- 需要思考由谁调用该代码,会涉及哪些上游调用,并确定向调用者提供什么样的预期结果。
- 需要确定是否调用了一个方法或接口,以及该调用是否会阻塞或是异步的,并考虑对性能的影响。
- 需要评估该行代码是否可以进行优化,是否可以复用。
- 如果该行代码是控制语句,考虑是否能简化控制流程是否扁平。
- 对于日志打印或与主要逻辑无关的输出或报警,是否需要多加关注,因为它们可能还是很重要的。
- 如果代码是set等方法,也要仔细检查,避免赋错属性。IDE可能会有误提示,因为属性名前缀类似,set方法容易赋值错误。
当你设计一个接口时
- 接口的语义应该足够明确,避免出现过于综合的上帝接口
- 如果语义不明确,需要明确上下游的期望和需求。有些需求可以选择不提供给上游调用。
- 对于接口超时的处理,可以考虑重试和幂等性。在创建和删除接口时要确定是否具有幂等性,同时,幂等后返回的数据是否和首次请求一致也需要考虑。
- 接口是否需要防止并发,以及是否成为性能瓶颈也需要考虑。
- 设计接口时要确保调用方能够完全理解,如果他对接口的理解有问题,就需要重新设计接口。这一点非常关键,可以通过邮件确认或者面对面交流来确保调用方理解得清楚。
- 在开发过程中,需要定期关注队友的开发进度,了解他们是否已经使用了接口以及是否遇到了问题。这个原则适用于所有的上下游和相关方,包括产品和测试人员。要想清楚如何对接口进行测试,并与测试人员明确交流。
- 最好自己整理好测试用例,不要盲目地指望测试人员能发现所有的bug。
- 需要考虑是否需要批量处理这个接口,以减少rpc请求的次数。但即使是批量处理,也要注意一次批处理最多处理多少条记录,不要一次性处理全部记录,避免由于网络阻塞或批量处理时间过长导致上游调用超时,需要适度控制批量处理的规模。
来源:juejin.cn/post/7306025036656787475
地表最强全息 AR 眼镜问世!Meta 十年绝密豪赌烧 10 亿,现场开箱老黄亲测
【新智元导读】就在刚刚,小扎携掉最强 AR 眼镜 Orion 登场!Meta 首款 AR 眼镜,苦研十年后,终于诞生了,成本高达 10000 美元。果然,小扎让我们离元宇宙又近了一步。这会是一次全新的范式转变吗?
Meta 首款 AR 眼镜,终于亮相了!
酝酿十年,烧钱数十亿,作为小扎元宇宙宏图大业的一部分,我们今日终于得见 Meta AR 眼镜的真容。
这款名为 Orion 的产品,由带 MicroLED 投影的眼镜、人机交互的腕带、提供计算能力的小盒子组成。
轻快的外观,领先行业的 AR 体验,Meta 再为业内做出开创性的壮举。虚拟现实世界的入口,元宇宙的雏形,或许就是这般样子。
有趣的是,因为制作成本高达 10000 美元,这款眼镜本次仅做展示之用,是产品原型,并不会正式发售。
英伟达老黄已经试戴上了
每个计算平台,都会带来我们与设备交互方式的范式转变。上一次是鼠标、智能手机,这一次,会是 AR 眼镜吗?
此外,在 Meta Connect 2024 发布会上,其他重要产品也悉数亮相——
Meta Quest 3S 头显眼镜发布;Meta Ray-Ban 眼镜上线新功能;Meta 首个拥有多模态能力的开源大模型 Llama 3.2 亮相。
AR 眼镜:元宇宙入口的新范式?
地表最强 AR 眼镜,终于诞生了!
在昨晚的发布会上,小扎激动地向全世界展示了这款地表最强 AR 眼镜。
研发过程,经历了整整十年。目标很简单,但技术挑战却极其艰巨。
目标有多简单,无非是要满足是眼镜而非头戴设备、无线、重量不超过 100g、宽广视野、全息显示、清晰度够高、能捕捉到细节、亮度足、在不同光线下都能看清、显示面积够大、足以呈现电影银幕或多个工作用显示器、能透过它看到外界这些要求罢了。
研发工程师们呕心沥血了整整十年,终于做出了 Orion。
注意,这不是透视效果,这是物理世界上面叠加了全息图
如果收到消息,你不必掏出手机,只要在全息图中做出几个手势,就可以回复了。
远方的人,可以以全息图的形式瞬间传送到你身边。
敲敲手指,你就可以玩纸牌、象棋、全息乒乓球了。
小扎表示,Orion 会给未来的元宇宙世界提供更多入口。
可以说,它包含着 AI 空间计算终极形态的野心。
比起苹果过于笨重的 Vision Pro,Orion 的确有了未来空间计算 AI 设备的雏形。
此次发布的 Orion,具有宽视野显示器,内置无线 AI,是 Meta 十年来一直致力实现的事。
显示器
在 Orion 中,Meta 选择了微型 LED 显示器。
可以说,这款 AR 眼镜的最大挑战,就是显示器。
由于需要以不符合原理的方式弯曲光束,团队需要建造一个全新的显示架构。
它可以让眼镜框架中的微型投影仪将光线射入波导,将纳米级 3D 结构打印到透镜中,使光线发生折射,从而在我们的环境中显示不同深度和尺寸的全息图。
为此,团队没有使用玻璃光学器件,而是使用了碳化硅的新材料。
后者很轻,不会产生奇怪的光学伪影或 C stray 散光,且具有非常高的折射率,这,就是实现大视野和有效利用光子的关键。
散热
另一个挑战就是散热。我们不可能把风扇塞进一副眼镜里,怎么办呢?
唯一消除热量的方式,就是将其辐射出去。
团队做了两件事。首先,框架由散热材料镁制成。其次,Orion 中的许多定制组件也是用镁材料设计。
而且团队构建了数十个定制硅芯片,不仅节能,还能针对 AI 机器感知和图形算法进行优化。
这样,Orion 就可以采用手眼跟踪以及 slam 算法,大大降低了算法所需的功耗。
外形
Orion 的尺寸为一英尺,具有光学对准功能,精度达到了人类头发丝厚度的 1/10。
它有七个微型摄像头和传感器,尺寸很小,因而可以嵌入镜框边缘。
Meta 表示,在目前最小的眼镜外形中,他们实现了可用的最大视野。
这使得数字内容能与我们所看到的世界融为一体。
全新互动模式:肌电图腕带
传统的 AR 眼镜,是用语音控制和手眼跟踪来导航用户界面。
但 Meta 认为,我们还需要一种更谨慎、私密的全新方式,跟 AR 眼镜进行交流。
这就是全新上线的肌电图腕带和眼球注视功能。
腕带会检测你的神经运动信号,这样你就可以用手势进行点击。
只需看着目标,就可以进行选定。
总之,Orion 的输入和交互系统,将语音、眼镜注视、手部追踪和 EMG 腕带无缝结合,让我们可以更轻松、更快、更舒适地操作。
AR 眼镜能否成为主流?Meta 表示,只要解决了这两个问题,就能实现。
第一,能否实现根本性的技术突破,比如将大显示屏融入一副普通眼镜中?
第二,什么用例是你只能在 AR 眼镜上操作,不能在其他设备上完成的?
而 Orion 原型,就是 Meta 对这两个问题的回答。这个原型是对未来的一瞥,现实已触手可及。
虽然作为消费产品,它的价格仍然昂贵得吓人,但毫无疑问,它可能是未来最先进的消费电子产品,是自智能手机以来最有影响力的新设备。
在下一波以人为本的计算浪潮中,借助 Orion,Meta 又迈出了重要一步。
与此同时,戴上头显办公,也是一个不错的选择。
Meta 将微软办公软件集成到应用之中,画布延展,多人协作,打工人都不曾想到,未来办公这么美好。
很快,Quest 头显也将轻松连接到 Windows 11 个人电脑上,通过键盘直接配对。
电脑屏不够用,也不用外接显示屏了,一个 Quest 头显就能实现。
Meta 称,我们正在建设的:不是下一个游戏平台,而是下一个计算平台。
在这个平台中,你可以看电影、听音乐、做电子表格、与朋友一起玩游戏,闲逛,甚至聊天。
因此,计算平台系统 Horizon OS,便是开启这一幕最理想的界面。
会上,Meta 还公布了基于 Horizon OS 平台上工具更新。
主要有扩展混合显示功能的套件,比如音频到表情、声线追踪(ART)、微手势、直通摄像头访问 API 等。
如下,是通过微手势触发移动的示例。
另外,在虚拟化身上更新,Meta 计划让照片在虚拟空间动起来。
这就非常类似,苹果 Vision Pro 中的「空间视频」。
这里,Meta 将其称之为 Hypersscape,可以将你带入照片中的虚拟世界,就像是在一个平行时空中的自己。
这背后就利用高斯渲染技术,通过云渲染和流媒体方式,让其在 Quest 3 头显中活灵活现。
小扎在主旨演讲中,展示了纽约 Daniel Arsham 的艺术家工作室。
通过手机扫描房间,并在 Horizon 中便可轻松将物理世界,带到数字世界中。
根据官方定价,配备 128GB 入门级 Quest3S,仅需 299.99 美元。256GB 存储空间,售价 399.99 美元。
想要直通顶级体验,那就得配上 512 GB Quest 3。
新增记忆能力,Ray-Ban 眼镜再升级
另一边,首发自研 AR 眼镜之外,Meta 还为 Ray-Ban 眼镜更新了一些新功能。
几个月前,集成 Meta AI 助手眼镜,大秀了一场。
这次,Meta 称不用说「嘿,Meta」,直接用唤醒词即可开启对话,让人与设备之间交谈更丝滑。
比如,当你拿起面前这件衣服,盯着它并表示,「帮我记住这件夹克,这样我就可以向 Nas 展示」。
同时,Ray-Ban 眼镜新增了记忆功能。
假设当你打飞的到了某个地方时,不必绞尽脑汁记住自己在哪里,眼镜就可以为你代劳了。
而且,更贴心的是,你可以用自己声音设置一个提醒——安全着陆时,三个小时内给妈妈发短信。
眼睛看哪,Ray-Ban 便会指向哪。
比如,看着传单上的电话号码、或者二维码,眼镜可以根据你所看内容,采取行动。
另外,眼镜的视频输入正添加 Meta AI 助手支持,方便获得实时的帮助。
当你去另一座城市,遇到新的地标,或者想要了解下一步旅行计划,直接可以与 Meta AI 实时交流。
大会上,Meta 还预告了下一个新功能——实时翻译。
当你与西班牙语、法语、意大利语的人交谈时,可以通过眼镜的开耳扬声器,直接听到的是「英语」的版本。
小扎现场和同事演示了,西班牙语和英语如何无缝交流精彩一幕。
这简直就是异域旅行者们的福音,完全无障碍畅玩全世界。
总结一波:Quest 3S 头显、雷朋智能眼镜、全息 AR 眼镜、Llama 3.2 大模型…… 这届 Meta Connect 2024 大会,小扎赢麻了。
参考资料:
来源:juejin.cn/post/7418507128871993363
为什么年轻人要珍惜机会窗口
今天来跟大家分享一下什么是机会窗口以及为什么要珍惜机会窗口?首先从我个人的经验出发,我觉得不管是在学习,在职业,在投资,现在社会各个方面都是有很多非常好的机会的。但是这些好的机会又不经常有,那到底如何定义好机会,又如何抓住机会?那这里面先说一下什么叫好的机会。
什么是好机会
就以职业的成长性来说,互联网整个行业的二十年蓬勃发展就是极好的一个机会,大概从20年起到如今这个时间段都有一个非常好的机会,那指的就是哪怕你的能力稍微弱一点,你都能够在这个机会里面找到自己的红利。比如我有很多稍微找我几届的同事或者主管,他们可能在学历或者能力方面都没有特别高,但是正因为赶上了红利,他们的晋升特别快,拿到了股票也特别多,我好几个同事基本上在上海或者杭州都有两三套房,并且还有大量的现金。甚至有一些大专的同事,都拿到大量的股票,接近财富自由。
所以这种机会窗口是整个行业变革,整个现代社会发展带来的,它打开了一扇可以改变命运的窗口。这种时间窗口相对来说会比较长,特别是相对一个人的职业三十年来说。而且这种行业的机会,可能就有持续五年或者十年这样的时间。而在这样的机会窗口内,你不管是哪个点入局都能吃到一定的发展红利。
比如我记得早个五六年,很多人在找工作的时候,往往会纠结于去百度还是腾讯或者是阿里,但实际上我们发现站在更高,更长远的角度来说,他们选择任何一个公司收获到的都非常的丰厚,相比现在的毕业生,哪怕是双985可能也是无法找到一份工作,想想那时候是不是很幸福?在这种大背景下,在机会窗口来临的时候,你选错了,选的不是很好,都没有关系,你都能够收获到足够的红利,最多就是你赚50万还是100万的区别,而时代没有的话,上限就是赚10万。
除了这个例子之外,还有一个红利机会点就是房地产。我知道在差不多2005年~2018年这个时间段里面,只要你买房基本上都是赚的,所以我很多同学往往都有一个非常巨大的认知论,就认为他买房赚钱是因为他牛逼,他地段选的好,户型选的好,他完全归因于他买的房价大涨是因为眼光好,怎么样怎么样才能赚到钱,而实际上这只是时代给他的红利而已,其实再往回倒个七八年你在哪里买房都是赚的。但实际上以我的经验来看,不管那个时候,哪怕你在小城市买一套房子,涨幅可能都是两三倍的。
所以当时的眼光和认知和选择能力确实会决定了你的资产增值多少,但是只要在那个红利周期内,你做的选择大概率都不会太差,这也是雷军所说,站在风口上的猪也可以飞起来,说的就是这个道理。
这就是整个时代给我们的窗口,这个窗口可能会给的特别大,而且很多时候在这个周期里面,你根本感觉不到这是时代给你的机会,你只是做你正常的操作,到了指定的时间去指定的公司,去选合适热门专业,去买认为合适的房子,你觉得很自然,但实际上从后面再看,你会发现你在十年前做的选择和十年后做的选择成本、难度以及你付出的代价完全不一样。同样是89平米的房子,放在2010年就是3000一平米,放在现在就是8万一平米。同样是去阿里巴巴,以前大专就行,现在本硕985都直接被Pass。
上面说的都是比较大的机会,那我再说一个相对来说比较小的窗口。这些非常大的机会窗口还是依赖于各种不同不一样的大背景,但是有很多机会并没有像这种时代给的机会一样,可以有长达五年,十年你可以认真去选,你可以去大胆的犯错和试错,选错了你重新再来一次就可以了,但是我们在实际工作里面,我们碰到的一些机会点,其实时间窗口非常的短。如果你稍微不慎,可能就错过了这个机会,而等待下一个机会就不知道猴年马月了,所以我们就要在这个地方要抓住那稍纵即逝的机会窗口。
我举一个例子,比如说这两年是低代码的元年,而这个时候如果你之前刚好一直在从事低代码或者低代码相关的工作,那么到了这两年,你的议价空间是非常大的,因为很多公司都在如火如荼的去做这块的业务,在短时间内是没有办法慢慢培养出或者招聘到这类专才,所以往往公司愿意溢价去花费大价钱去购买和招聘相关的同学,所以这个时候如果你抓住了机会,你可以得到一个很高的议价,比如说层级直接变高了一层或者你的总包直接变成了两倍,甚至非常有机会作为骨干负责人拉起一支团队,那么你进入管理岗位也就水到渠成了。
为什么机会有窗口
而这种机会窗口往往只有半年,一年或者最多两年,因为到了一两年之后,有很多的同学也感知到了这个先机,往往就会把自己的精力投到这一块来,那么意味着供需就发生了变化,供应方就会越来越多,那么就使得需求方有溢价的能力,这个时候到了两年之后可能就完全拉平了,这个低代码行业跟其他行业变得完全一样,甚至再往后人才堆积的更加的过分,你可能连这个机会都没有了,只剩下被选择的命运。历史历代,都演绎着完全相同的剧本。
到了直播行业也是一样,在直播刚刚兴起的时候,如果你恰巧做的是相关业务,这个时候你跳过去往往会能够涨薪特别高,工资的幅度也是特别高,所以在这个时候你有充分的议价权,但是窗口我们也知道往往只有几年,而且在互联网这么变化快的情况下的话,时间可能会进一步缩短,比如这两年已经到了直播的红海,基本上该用直播的用户已经到顶了,这个时候虽然还有大把的招聘,但需求实际上已经是强弩之末了。
随着人口红利到底的时候,我们所谓的互联网这些机会的窗口实际上已经是没了,变得普普通通的一份职业而已,而且这个时候入局往往有可能会遭受灭顶之灾,比如说最近就听说到整个直播行业要整顿,一旦业务发生了整顿,对人才的需求的调整就会变得非常的明显,往往再激烈一点可能就会快速裁员,不要说红利了,拿到的全部是负债。
再往小的一些说,可能针对每个人的职业窗口也是不一样的,比如说对于有些大企业,有一些管理的岗位,但往往是因为原管理的同学离职或者新增的岗位,这个时候会有短时间的招聘名额来等待这个位置,而一旦你错过了这个机会以后,这个位置没了以后,可能这个坑位就不需要人了。这个时候不是你能力好不好的问题,是有没有坑位的问题。
所以好机会往往只是一瞬间而已,很多同学担心稳定性,希望在一个地方一直苟着求稳定,这个其实跟体制内没有任何的区别。风险和收益从哲学层面上来说,都是相对的,或者说没有决定的风险,也没有决定的稳定,风险和稳定阶段性只能取其一,长期看稳定和风险是互相转化的。我经常听到有人说大厂稳定,但是实际上我们在分析背后的原因,大厂稳定本身就是个伪命题。又稳定,又高薪,又轻松,这是不可能的。所以我称之为「工作不可能的三角特点」。
但很多人说我能否要里面的两个因素,我要稳定要高薪但是我愿意加班吃苦。
对不起,这个其实也是不可能的。我们可以站在企业的角度来考虑一下,一旦我这个工作特别的高薪又稳定的情况下的话,那虽然你干的很苦,但我始终在人力成本特别充分的情况下的话,公司能找到更好的替代者来。同样的工作量,但是花更少的钱来解决,说白了大部分所谓的高薪岗位没有什么严格的技术壁垒。
所以我们说过的,站在更大的角度来说,互联网也是一个机会窗口,因为过了这个窗口之后,可能你想加班加点熬夜,你可能都拿不到这样的一个薪水和待遇。
如何抓住机会窗口
反而换一个角度来说,我们一定要抓住这样的机会窗口,这样的机会窗口可以给我们的发展带来一个质的变化,当然也有很多时候我们会做一些错误的选择,比如说我们找到了一个我们认为好的机会,但实际上这个机会是有问题的,比如说我去了某一个创业公司,原本以为会有巨大的发展,但是后面倒闭了。当然这个也是一种博弈,这里面非常考核一个同学的综合的认知能力、选择能力和纠错能力。不仅要判断能否找到合适的机会,还要在碰到了困难的时候能够去快速的去纠错。
从我的例子来看,如敢于去挑战这种新机会的同学,哪怕其中有一些不如意的变动,但是大概率他的结果大概率不会太差。比如我有个同学从集团跳槽到蚂蚁国际,呆了一年就觉得部门有问题,后面又去了字节头条,现在也非常稳定。还有一个同学出去创业,也不顺利,但是后面又折腾成了另外一个大型公司的高级主管。
反而是事事求稳,稳住某一个大厂,稳住某一个职位,稳住每一个薪水,到了最后往往收益会越来越小,直到最后完全被动。整体上来看,整个社会会把更多的报酬分向于这些敢于挑战,敢于冒险,敢于拼搏的人的,而不会把大量的资源分享到又稳定,又顽固,又不愿意改变的这群人,这是当前社会的游戏规则。这个在大数据上面完全是合理的,只不过落到每个人的头上的尺度和比例会有点不一样。
所以站在我现在的角度上来看,我觉得所有的想向上奋进的同学都应该主动抓住变革的机会。因为这个好机会可能对在你的人生来说,几十年可能就这么一两次,甚至有些都是完全为你量身定做的机会,如果你一旦错过了以后,可能你抓住下一个机会的成本和代价就变得会非常的大。
尤其是年轻人更应该去折腾,因为你的试错的成本会非常低,当你发现了你的错误决策以后,你能够快速的去更正,去变化,所以在年轻的时候往往就应该多折腾一点,善于去准备好去等待好的机会,如果机会来了,大胆的出击。
来源:juejin.cn/post/7296865632166805513
开源生态:谁在提供中文翻译?
前言
不知道大家有没有发现,几乎所有的有名有姓的开源仓库,都有英文文档,即使是国人开源的,也会一本正经的机翻一个英文文档,更有甚者将readme默认语言以英文展示
我们如此自觉的为全世界提供英文文档,那谁为我们提供中文文档?
中文文档翻译生态
虽然
像vue这种由国人发起的项目,自然而然的会有中英或更多语言的文档。
vuejs-translations/docs-zh-cn 是vue官方团队的开源翻译文档,由社区维护更新,至今已有700+人参与贡献
人多力量大,我们看到了质量非常高的 vue 中文文档。
但是
老外开源的项目却很难有自觉撰写中文文档的积极性,比如 mapboxGL 退出后,至今还没有一个对标官方文档的中文站,即使它在国内仍旧可用。
但是但是
开发者在网络上冲浪的时候,发现我们常用的开源库,基本也都有中文文档,那么这些文档是哪来的呢?当然是有一批兴趣使然,不求回报,为爱发电的开源字幕组了。
开源字幕组
他们或是有三三两两的小团体,或是社区性的向一个仓库贡献,或是独立完成翻译,这其中最难得的,当属个人独立翻译了。
独立翻译不光考验外语功底,还要有足够的耐心和毅力,耐得住寂寞,更要持之以恒。如果说把文档机翻一遍相当于在一座山外挑了两桶水,那么足够细致且同步原版文档更新就相当于每天挑两桶水,且不洒出一滴。
@远方OS 是 Vue 和 VueUse 的官方团队成员
vue-draggable-plus、v-scale-screen 的开源作者,会飞
此人对开源的热爱达到了狂热的地步
远方OS 目前维护了两个开源库的中文翻译:
一个是他所在的 vueuse 团队的中文文档,地址:vueuse.pages.dev/
一个是 unocss 的中文文档:unocss-cn.pages.dev/
其质量之高,各位可以自行观之
甚至还配备了演武场unocss-cn.pages.dev/play/,
交互式文档:unocss-cn.pages.dev/interactive…
还有专门给读者解惑的微信群,可谓大义。
他的翻译完全对标英文原版文档
并且约每周会同步更新一次,保证文档的及时性。
为爱发电
做开源是没有稳定回报的,做开源翻译亦是如此,也曾有人尝试过收费翻译,但是在网友的群攻之下,也是取消了收费,开源大佬们需要一边上班糊口,一边为爱发电,作为受益者,我们有义务表示尊重和支持。
结语
此文章没有收钱,没有收钱
作为掘金第一营销怪,我义不容辞。
来源:juejin.cn/post/7387291151734980617
英伟达 5090 被曝 32G 大显存、核心是 5080 的两倍!网友:怕不是 B200 双芯封装技术下放
32GB GDDR7 内存,CUDA 核心数 21760 个——
关于英伟达下一代旗舰消费级显卡 5090,知名消息人士 kopite7kimi 给出了最新爆料。
同时,5080 被曝内存容量为 16G,是 5090 的一半。
当然 5080 恰好是 5090 一半的还不只是内存,所以有人怀疑 5090 的 GPU 会不会像 B200 等服务器 GPU 一样,是两块芯片拼接出来的产物。
另外按 kopite7kimi 的爆料,5090 的(TGP)功耗将达到 600W,比 450W 的 4090 多出了三分之一。
老牌科技网站 Gizmodo 更是调侃说,5090 一启动,周围街区的灯都会变暗。
虽然功耗问题确实明显,但不妨碍还是有网友预计 5090 会大卖——
一方面,对于游戏玩家,他们虽然不一定需要如此高的性能,但会有强烈的购买欲望;
另一方面,它可以满足 AI/ML 从业者的算力需求,可以用来运行本地模型。
5090 和 5080 配置怎样?
对比着目前英伟达已有型号中最先进的 4090,我们来看下 5090 和 5080 被爆料的配置。
GPU 上,两款显卡都将采用 3nm 制程 Blackwell 架构的 GPU,5090 和 5080 分别将使用 GB202-300 和 GB203-400。
还是据 kopite7mimi 的爆料,GB202 共有 96 个 TPC,支持 512bit GDDR7 显存,GB203 的 TPC 数量则为 42 个,支持的 GDDR7 显存则为 256bit。
kopite7mimi 对网友的回复显示,这两款 GPU 芯片在今年 5 月底时已经流片。
内存方面,两款显卡都将采用最新一代的 GDDR7 内存,2022 年业内就一开始讨论,但最终的 JEDEC 规范发布时间是今年 3 月。
而上一代 GDDR6 的发布时间是 2018 年,4090 中采用的 GDDR6X 为 GDDR6 的升级版,G6X 的发布时间距今也已超过四年。
容量上看,kopite7mimi 的说法是 5090 和 5080 将分别使用 32 和 16GB 内存,也就是说 5080 的内存容量要小于 4090 的 24GB。
但在 chipcell 论坛上,另一名叫做 PolyMorph 的爆料者称,之后 5080 也会推出 24GB 版本。
这一消息还被 Tom’sHardware 引用,然而另一家科技媒体 VideoCardz 将其标记为了 “传闻”。
当然关于英伟达的爆料本就众说纷纭,加上其自身也可能对某些规格做出更改,所以在正式发布之前,消息无法被证实或证伪。
至于发布时间,kopite7mimi 曾表示,CES(2025 年 1 月)之前是没指望了。
另外,50 系显卡的插槽是今年刚出的 PCIe5.0,这意味着,如果手里只有 PCIe 4.0 的话,想体验 50 系显卡就得连主板一同更换。
不过可以肯定的是,5090 将能进一步满足 AI/ML 领域日益增长的算力需要,满足本地化的模型运行需求。
游戏方面,网友认为高端游戏显卡市场或将饱和——随着 4K 分辨率逐渐普及,游戏画质提升空间变小,游戏玩家对更高性能显卡的需求可能见顶。
但是随着游戏中 AI 技术的引入,未来游戏也可能对 GPU 产生更新的需求。
另外对于 5090 的功耗问题,有网友表示,如果这种(不管功耗猛堆料的)趋势得不到遏制,那么未来的显卡可能都是外置的了,这非常糟糕……
另外,高功耗也可能带来噪音和散热问题,影响使用体验。
有网友用表情包调侃,按照这个趋势,等到 8090 的时候,显卡恐怕是要像空调外机一样装在室外了。
爆料者曾预言 Blackwell 架构
5090 和 5080 的爆料者,在 X 上叫 kopite7kimi,他时业界非常著名的爆料人士,被 Gizmodo 等媒体认为是英伟达爆料者中消息最可信的。
甚至 5090 和 5080 据传采用的 Blackwell 架构,kopite7kimi 在 2021 年就给出了爆料。
当然表述上没有那么直白,只是发了一张美国数学家和统计学家 David Blackwell 的照片。
但还是有人看出了背后的含义,在评论区询问是不是英伟达架构的名称,kopite7kimi 则回复说:
也许就是 Ampere(当时的最新架构)的下下代。
而英伟达这边在 Ampere 之后,相继推出了 Ada Lovelace 和 Hopper,但 Hopper 主要用于数据中心而不是消费级显卡。
考虑到这一点的话,那就真的和 kopite7kimi 的预测一模一样了。
参考链接:
[1]gizmodo.com/the-leaked-…
[2]videocardz.com/newz/nvidia…
[3]http://www.tomshardware.com/pc-componen…
[4]news.ycombinator.com/item?id=416…
— 完 —
来源:juejin.cn/post/7419907933255352339
有了小孩后,对我的影响还是挺大的
张雪峰曾经说: 闺女是上帝对父母的恩赐,儿子是上帝对父母的惩罚。
2023年8月9日,上帝惩罚了我。
事情的经过是这样的
我和我媳妇其实很早就领证结婚了,但是一直没要宝宝,因为那个时候感觉两个人过日子真是太滋润了,周六日可以睡到自然醒,也可以夜里12点去泡澡,一脚油门想去哪去哪。

2022年房子装修好了,除完甲醛后就搬进来住了。“正好”那个时间又赶上了疫情,很多小区就封了,我们小区也不不例外。我记得那个时候买了好多肉和吃的,所以吃喝不用担心,再加上我和媳妇都是干的程序员,可以居家办公,家庭收入也没受到影响,总之那段时间过得还是挺爽😍。
也就是在这段很爽的时间里,我们有了宝宝😂。
怀孕的这段时间
除了正常的产检外,还拍了很多B超,不小心摔着了拍个B超,肚子疼了去拍个B超,胎动异常了去拍个B超🤓...
总之也是一块不小的支出

小插曲
到了孕晚期,我媳妇的胎位不正,不能顺产,但是我媳妇又想顺产,然后医生说可以做外道转手术,把胎位移正。
然后发了5000大洋,在医院住了三天,终于把胎位搞正了。

谁承想回到家不到一个星期,自己又掉转过来了😹
最后还是选择了剖腹产
看来干什么事情都要顺其自然,强求不来
宝宝顺利出生了
时间过得最慢的就是媳妇推进手术室做剖腹产,我们在外面等着的时候,真是度秒如年,生怕出了什么意外。

好在最后一切顺利

当爸爸的第一个晚上,真是一夜没睡,因为没有任何经验,什么东西都得现学,比如如何喂奶,如何包裹小孩...
所以干什么还是提前做好功课为好
现在已经一岁多啦
现在宝宝已经一岁一个月了,时间过得既快又慢,经历了很多很多。
下面就谈谈有了孩子后的感受吧!
可支配的时间越来越少
有了孩子后最大的变化就是,自己可支配的时间越来越少了。没有孩子之前,我和媳妇还可以有时间看电影,泡温泉啥的,有了孩子后二人世界彻底崩塌😭
还有就是
说来也奇怪,有了孩子后,基本上对学习没啥动力了,除非是工作中要用到的一些技术,可能有时间会自己研究下(很少),大部分时间都不会再关注技术,有点时间就想着刷刷抖音,打打游戏😑

我之所以打算写点东西,很大一部分原因就是为了减少我刷抖音的时间😶
越来越像爸爸
有小孩的前三个月,我媳妇有产假,加上我妈也来共同照护孩子,所以在带小孩上我基本上没怎么操心。有些时候为了睡好觉就直接一个人跑到次卧去,做个甩手装柜。
后来我媳妇也上班了,加上她离公司比较远,基本上都是我先下班,所以我也要承担一部分照护小孩的责任。
怎么说呢,这种感觉很奇妙,就是你陪伴孩子的时间越长,你就会越喜欢哄小孩,然后小孩也会越来越喜欢你

每当孩子有什么头疼发烧啥的,当父母的就像心里压住个千斤顶,这个做父母的应该都懂吧。
现在就希望孩子可以快点长大,我有更多的时间和精力干我自己感兴趣的事。
来源:juejin.cn/post/7420001862487654409
与其造神,不如依靠群体的力量:这家公司走出了一条不同于 OpenAI 的 AGI 路线
看过剧版《三体》的读者或许都记得一个名场面:来自三体的智子封锁了人类科技,还向地球人发出了「你们是虫子」的宣告。但没有超能力的普通人史强却在蝗群漫天飞舞的麦田中喊出:「把我们人类看成是虫子的三体人,他们似乎忘了一个事实,那就是虫子从来就没有被真正地战胜过」。
三体人看到的是单个虫子脆弱的一面 —— 你可以轻松踩死一只蚂蚁,打死一只蝗虫、蜜蜂。但他们没有看到的是,当这些虫子集结在一起时,它们可以涌现出远超个体简单相加的力量。
科学家们很早就发现了这种力量,并将其命名为「群体智能」(Swarm Intelligence)。这种智能不是由某个中央大脑控制,而是通过个体间的简单互动和信息交换自然形成的。它是一种集体智慧的体现,是自然界中一种奇妙而高效的协作方式。
其实,从宏观上说,人类社会的不断发展和演化也是一种群体智能现象,绝大多数文明成果都是人类个体在长期群体化、社会化的生产生活中逐渐演化形成的产物。
那么,人工智能的发展能否借鉴这种模式?答案自然是「能」。但长期以来,由于机器的个体智能化程度较低等原因,「群体智能」迟迟难以涌现。
生成式 AI 的发展或许可以推动这些问题的解决,也让「群体智能」获得了新一轮的关注。
「这波生成式 AI 相当于把个体的智能化水平提升上去了。而个体智能的提升,意味着群体的智能有望实现指数级增长。」在近期的一次访谈中,RockAI CEO 刘凡平向机器之心表达了这样的观点。
RockAI 是一家成立于 2023 年 6 月的 AI 初创,他们自研了国内首个非 Attention 机制的 Yan 架构通用大模型,并将这个大模型部署在了手机、PC、无人机、机器人等多种端侧设备上,还尝试让自己的大模型在这些设备上实现「自主学习」能力。
而这一切均服务于一个宏大的目标 —— 让每一台设备都拥有自己的智能,而且是可以像人类一样实时学习、个性化自主进化的系统。刘凡平认为,当这些拥有不同能力、不同个性的智能单元得以协同,即可完成数据共享、任务分配和策略协调,涌现出更为宏大、多元的群体智能,最终实现个性化与群体智能的和谐统一,开启人与机器的智能新时代。
那这一切怎么去实现呢?在访谈中,刘凡平和邹佳思(RockAI 联合创始人)向机器之心分享了他们的路线图和最新进展。
一条不同于 OpenAI 的 AGI 路线
前面提到,「群体智能」的研究进展受限于单个个体的智能化程度,所以研究者们首先要解决的问题就是让单个个体变得足够聪明。
要说「聪明」,OpenAI 的模型可以说是出类拔萃。但从目前的情况来看,他们似乎更侧重于训练出拥有超级智能的单个大模型。而且,这条路线走起来并不容易,因为它高度依赖海量的数据和计算资源,这在能源、数据和成本上都带来了可持续性的问题。
此外,通过一个超级智能模型来处理所有任务是一种高度中心化的模式,这在实践中容易出现智能增长的瓶颈,因为单一模型缺乏灵活的适应能力和协作效应,导致其智能提升速度受到限制。
那么,OpenAI 未来有没有可能也走群体智能的路线?这个问题目前还没有明确答案。但可以看到的一点是,以该公司和其他大部分公司当前采用的 Transformer 架构去构建群体智能的单个个体可能会遇到一些障碍。
首先是高算力需求的障碍。以 Attention 机制为基础的 Transformer 架构对计算资源的需求非常高,其计算复杂度为 O (n^2)(n 为序列长度)。这意味着随着输入序列的增长,计算成本急剧增加。在构建群体智能时,我们需要多个单元大模型协同工作,而这些单元大模型往往部署在低算力的设备上(如无人机、手机、机器人等)。如果不经过量化、裁剪等操作,Transformer 架构的模型很难在低算力设备上直接部署。所以我们看到,很多公司都是通过这些操作让模型成功在端侧跑起来。
但对于群体智能来说,光让模型跑起来还不够,还要让它们具备自主学习的能力。在刘凡平看来,这一点至关重要。
他解释说,在一个没有自主学习的群体中,最聪明的个体会主导其他智能体的决策,其他智能体只能跟随它的指引。这种情况下,群体智能的上限就是最聪明个体的水平,无法超越。但通过自主学习,每个智能体都可以独立提升自身的智能水平,并逐渐接近最聪明的个体。而且,自主学习促进了知识共享,类似于人类的知识传承。这样,群体中的所有智能体都会变得更聪明,群体整体的智能水平有望实现指数级增长,远远超出简单的个体累加。
而量化、裁剪等操作最致命的问题,就是破坏了模型的这种自主学习能力。「当一个模型被压缩、量化、裁剪之后,这个模型就不再具备再学习的能力了,因为它的权重已经发生了变化,这种变化基本是不可逆的。这就像我们把一个螺丝钉钉入墙中,如果在敲入的过程中螺丝钉受到损坏,那么想要把它取出来重新使用就变得很困难,让它变得更锋利就变得不可能。」刘凡平解释说。
讲到这里,实现群体智能的路线其实就已经非常清晰了:
- 首先,你要在架构层面做出改变,研发出一种可以克服 Transformer 缺陷的新架构。
- 然后,你要将基于这个架构的模型部署到各种端侧设备上,让模型和这些设备高度适配。
- 接下来,更重要的一点是,这个架构的模型要能够在各种端侧设备上自主学习,不断进化。
- 最后,这些模型与端侧设备结合成的智能体要能够自主协作,共同完成任务。
这其中的每个阶段都不简单:
- 在第一阶段,新架构不止要具备低算力、部署到端侧原生无损的特点,还要具备可以媲美 Transformer 架构的性能,保证单个个体足够聪明且可以自主学习。
- 在第二阶段,「大脑和身体」的高度适配涉及感知层面和数据处理的不同模态,每种设备有着不同的需求,这增加了模型和设备适配的复杂性。
- 在第三阶段,让模型部署之后还可以学习就意味着要挑战现有的训练、推理完全分离的机制,让模型参数在端侧也可以调整,且调整足够快、代价足够小。这就涉及到对传统反向传播机制的挑战,需要的创新非常底层。
- 在第四阶段,主要挑战是如何实现智能体之间的有效协作。这个过程要求智能体自主发现并形成完成任务的最佳方案,而不是依赖于人为设定或程序预设的方案。智能体需要根据自己的智能水平来决定协作的方式。
这些难点就决定了,RockAI 必须走一条不同于 OpenAI 的路线,挑战一些传统的已经成为「共识」的方法。
刘凡平提到,在前两个阶段,他们已经做出了一些成果,针对第三、四个阶段也有了一些实验和构想。
群体智能的单元大模型 ——Yan 1.3
第一阶段的标志性进展是一个采用 Yan 架构(而非 Transformer 架构或其变体)的大模型。这个模型的 1.0 版本发布于今年的 1 月份,为非 Attention 机制的通用自然语言大模型。据了解,该模型有相较于同等参数 Transformer 的 7 倍训练效率、5 倍推理吞吐和 3 倍记忆能力。而且,这一模型 100% 支持私有化部署应用,不经裁剪和压缩即可在主流消费级 CPU 等端侧设备上无损运行。
经过半年多的攻关,这一模型刚刚迎来了最新版本 ——Yan 1.3。
Yan 1.3 是一个 3B 参数的多模态模型,能够处理文本、语音、视觉等多种输入,并输出文本和语音,实现了多模态的模拟人类交互。
尽管参数量较小,但其效果已超越 Llama 3 8B 的模型。而且,它所用的训练语料比 Llama 3 要少,训练、推理算力也比 Llama 3 低很多。这在众多非 Transformer 架构的模型中是一个非常领先的成绩,其训练、推理的低成本也让它比其他架构更加贴近工业化和商业化。
这些出色的性能得益于高效的架构设计和算法创新。
在架构层面,RockAI 用一个名叫 MCSD(multi-channel slope and decay)的模块替换了 Transformer 中的 Attention 机制,同时保留 Attention 机制中 token 之间的关联性。在信息传递过程中,MCSD 强调了有效信息的传递,确保只有最重要的信息被传递给后续步骤,而且是以 O (n) 的复杂度往下传,这样可以提高整体效率。在验证特征有效性和 token 之间的关联性方面,MCSD 表现优秀。
**在算法层面,RockAI 提出了一种类脑激活机制。**这是一种分区激活的机制,就像人开车和写字会分别激活脑部的视觉区域和阅读区域一样,Yan 1.3 会根据学习的类型和知识范围来自适应调整部分神经元,而不是让全量的参数参与训练。推理时也是如此。具体有哪些神经元来参与运算是由仿生神经元驱动的算法来决定的。
在今年的 GTC 大会上,Transformer 论文作者之一 Illia Polosukhin 提到,像 2+2 这样的简单问题可能会使用大模型的万亿参数资源。他认为自适应计算是接下来必须出现的事情之一,我们需要知道在特定问题上应该花费多少计算资源。RcokAI 的类脑激活机制是自适应计算的一种实现思路。
这或许听起来和 MoE 有点像。但刘凡平解释说,类脑激活机制和 MoE 有着本质的区别。MoE 是通过「专家」投票来决定任务分配,每个「专家」的网络结构都是固定的,其结果是可预测的。而类脑激活机制没有「专家」,也没有「专家」投票的过程,取而代之的是神经元的选择过程。其中的每个神经元都是有价值的,选择的过程也是一个自学习的过程。
这种分区激活机制在 MCSD 的基础上进一步降低了 Yan 架构模型的训练、推理计算复杂度和计算量。
「这也符合人类大脑的运行方式。人脑的功耗只有二十几瓦,如果全部的 860 亿个神经元每次都参与运算,大脑产生的生物电信号肯定是不够用的。」刘凡平说道。目前,他们的类脑激活机制已经得到了脑科学团队的理论支持和实际论证,也申请到了相关专利。
以端侧设备为载体,迈向群体智能
在 Yan 1.3 的发布现场,我们看到了该模型在 PC、手机、机器人、无人机等端侧设备的部署情况。鉴于 Yan 1.2 发布时甚至能在树莓派上运行,这样的端侧部署进展并不令我们感到意外。
部署了 Yan 1.3 的机器人。机器人内置硬件为 Intel Core i3。
而且我们知道,这些端侧智能体的潜力才刚刚显露。毕竟,以上创新的目标不只是让模型能够在端侧跑起来(当前很多模型都能做到这一点),而是使其具备自主学习的能力,作为「群体智能的单元大模型」持续进化。无论是 Yan 架构的「0 压缩、0 裁剪」无损部署,还是分区激活的高效计算,都是服务于这一目标。这是 RockAI 和其他专注于端侧 AI 的公司的一个本质区别。
「如果我们拿一个 10 岁的孩子和一个 30 岁的博士来比,那肯定 30 岁的博士知识面更广。但是,我们不能说这个 10 岁的孩子在未来无法达到甚至超越这位博士的成就。因为如果这个 10 岁的孩子自我学习能力足够高,他的未来成长速度可能比 30 岁的博士还要快。所以我们认为,自主学习能力才是衡量一个模型智能化程度的重要标志。」刘凡平说道。可以说,这种自主学习能力才是 RockAI 追求的「scaling law」。
为了实现这种自主学习能力,RockAI 的团队提出了一种「训推同步」机制,即让模型可以在推理的同时,实时有效且持续性地进行知识更新和学习,最终建立自己独有的知识体系。这种「训推同步」的运行方式类似于人类在说话的同时还能倾听并将其内化为自己的知识,对底层技术的要求非常高。
为此,RockAI 的团队正在寻找反向传播的更优解,方法也已经有了一些原型,并且在世界人工智能大会上进行过展示。不过,他们的方法原型目前仍面临一些挑战,比如延迟。在后续 Yan 2.0 的发布中,我们有望见到原型升级版的演示。
那么,在每一台设备都拥有了智能后,它们之间要怎么联结、交互,从而涌现出群体智能?对此,刘凡平已经有了一些初步构想。
首先,它们会组成一个去中心化的动态系统。在系统中,每台设备都拥有自主学习和决策的能力,而不需要依赖一个中央智能来控制全局。同时,它们之间又可以共享局部数据或经验,并通过快速的通信网络互相传递信息,从而在需要时发起合作,并利用其他智能体的知识和资源来提升任务完成的效率。
路线「小众」,挑战与机遇并存
纵观国内 AI 领域,RockAI 走的路可以说非常「小众」,因为里面涉及到非常底层的创新。在硅谷,有不少人在做类似的底层研究,就连「神经网络之父」Hint0n 也对反向传播的一些限制表示过担忧,特别是它与大脑的生物学机制不符。不过,大家目前都还没有找到特别有效的方法,因此这一方向还没有出现明显的技术代差。对于 RockAI 这样的国内企业来说,这既是挑战,也是机遇。
对于群体智能,刘凡平相信,这是一条迈向更广泛的通用人工智能的路线,因为它的理论基础是非常坚实的,「如果没有群体智能,就没有人类社会的文明,更不会有科技的发展」。
而且,刘凡平认为,群体智能所能带来的生产力变革比拥有超级智能的单个大模型所能带来的更全面、更多样。随着自主架构大模型的研发成功和多元化硬件生态的构建,他们相信自己正在逐渐接近这一目标。
我们也期待看到这家公司的后续进展。
参考链接:
news.sciencenet.cn/sbhtmlnews/…
http://www.shxwcb.com/1205619.htm…
© THE END
来源:juejin.cn/post/7418813003783929868
寒门子弟想跨越阶层有多难
快要高考了,最近身边发生了不少事,感触颇深,我想记录一下。大家都知道高考是唯一公平竞争的机会,也是寒门贵子唯一一次想翻身的机会。但是,每个人情况和起点不一致,考试是公平的,但出身是不公平的,出身在河南落后的农村的小镇做题家和出身在上海的繁华大都市的国际学校的先进教育资源一样吗?答案可想而知。
身边有个亲人出身河南农村,这几天刚大学本科毕业,通过校招拿到了某物流领域独角兽公司的offer,base杭州,待遇是6k左右底薪,思考再三,他弟弟选择拒掉了offer,原因是,觉得靠自己这个收入全年无休也买不起杭州的房子,还要跟对象常年异地(对象在老家教师),于是选择去卷老家的编制岗,至少不用考虑买房,还能顾上了家庭,但是他的父母却表示不理解:说一辈子都没出息了,作为农民出身辛苦一辈子供出来的大学生,还要继续留在那个贫穷落后的小地方。为此他感到很苦恼,如何做才能不负如来不负卿!
同样,他说,比起其他同样出身在农村的孩子已经好很多了,至少有个月薪三千的稳定工作,很多农村的孩子都是提前辍学,进厂打螺丝或者失业待家,甚至娶不起农村媳妇,只能通过玩游戏,对抗父母证明自己的存在感,不然要被周围人的流言蜚语的唾沫星子淹死。提到这里甚至还有一丝欣慰。
他说,你不懂,像我这样出身农村的底层孩子,大多数在高考前就已经被淘汰掉了,因为太多穷苦老百姓,觉得读书没有直接去社会上进厂打工来的实在,孩子叛逆不想上学,也不会管太多,更不会觉得人生被毁掉了,相反,早点出去打过工挣钱才是农村人的常态,就这样,穷人的孩子干着穷苦的工作,攒点钱早点结婚生子,一代又一代,恶性循环,也不会觉得有任何不对,因为身边的环境和周围的人大多命运也都是这样。
形成鲜明对比的是,另一个同学,出身在江浙沪独生子,他说,从小只要学习不好,父母就感觉天塌了,因为他父母是很早一批的大学生,虽然他父母也是农村人的孩子,但是是最早一批的大学生,吃到了知识改变命运的红利,甚至不惜任何代价,帮他找资源,托关系,请到了他的老师给他在家补课开小灶,他说他学习一直不好,但是就是这么一路走过来的,甚至他父亲还帮他联系到了211院校的校长,讲到这里,大家意识到差距了吧。他说他学习很差,但被父母一路逼下去读到了研究生。。。毕业后家人关系托底去了某国有五大行,待遇不用多说大家也都懂。
同样,出身农村,学习很差就要回农村继续种地,娶个媳妇生个娃,干着廉价的劳动力,甚至都不知道好日子好工作是什么意思,因为资源和眼界有限,接触不到,也没见过,也无法给孩子形容出来,更没法用言语具体说服叛逆期的孩子。只好为了多挣钱去大城市,离开家人,最后挣点钱回到家了,孩子不理解,继续叛逆,等到了懂事的年纪,已经没有机会翻身了。这里声明:并不是我歧视农村,农村环境好,农村人淳朴,农村土地辽阔,除了经济医疗交通教育不发达,农家乐也非常有趣。
别的行业咱不敢说,至少计算机行业对比传统行业,给了穷人一次走向小康的机会,但这种机会也不会一直都有,互联网寒冬的背景下,即使选择了计算机专业,大多数底层出身的孩子也无法真正的跨越阶层,因为那个时代的红利,已经褪去了。。。
最近看到了一条新闻,说曾经在衡水中学的高考状元,出身农村,声称自己是“乡下的土猪拱了城里的白菜”,报考了浙大计算机专业,三年过后了,这位高考状元却迷茫了,因为他对计算机专业并没有兴趣,当初仅仅因为觉得这个行业高薪才报名的,但是行业在变化,在这个时代下,计算机行业已经发展迅速,没有了昨日的如日中天,相反,他的眼里没有光,他厌倦了这种一天都坐在电脑面前的工作,但是未来何去何从,他依然迷茫,他只知道学习高考,却没有好好规划自己的人生,没有认真思考自己的定位,不懂得人生价值,只知道脱离贫苦。这点也许是大多数底层出身孩子的迷茫吧!
回过神来,今年高考,如果再给你一次机会,你还会像曾经一样,没有把高考当成唯一一次公平翻身的机会吗?寒门贵子想跨越阶层到底有多难?大多数人的机会,也许就这么一次吧。
来源:juejin.cn/post/7376407925646770239
如何组装一台高性价比的电脑
前言
最近想配置一台电脑,由于在这方面是小白,就花了一部分时间以及精力在这方面,相信你看完,也能轻轻松松装电脑。
目标
高性价比、小钱办大事
电脑配置基础知识
组装一台台式机需要考虑多个组件,以下是一份基本的装机配置清单,包括了主要硬件和一些可选配件
我把他们划分为必须和非必须(可理解为表单的必填或者非必填)
有了必须项目的配置就可以组装出一台电脑,非必须项目属于个人需求(可理解为个性化定制)
必须项
- 处理器(CPU) :
- 选择适合需求的处理器,如Intel Core系列或AMD Ryzen系列。
- 显卡(GPU) :
- 集成显卡或独立显卡,如NVIDIA GeForce或AMD Radeon系列。
- 主板(Motherboard) :
- 根据CPU选择相应插槽类型的主板,如ATX、Micro-ATX或Mini-ITX规格。
- 内存(RAM) :
- 至少8GB DDR4内存,更高需求可以选择16GB或32GB。
- 固态硬盘(SSD) :
- 用于安装操作系统和常用软件,256GB或更大容量。
- 散热器(Cooler) :
- CPU散热器,盒装CPU可能附带散热器。
- 电源供应器(PSU) :
- 根据系统需求选择合适的功率,如500W、600W等,并确保有80 PLUS认证。
- 机箱(Case) :
- 根据主板规格和个人喜好选择机箱。
机箱严格来讲属于非必须,因为你用纸箱子也能行,但是对于小白来说还是整个便宜的比较好
- 外围设备:
- 显示器、键盘、鼠标。
- 音频设备:
- 耳机、扬声器。
非必须项
- 机械硬盘(HDD, 可选) :
- 用于数据存储,1TB或更大容量。
- 机箱风扇(可选) :
- 用于改善机箱内部空气流通。
- 光驱(可选) :
- 如有需要,可以选择DVD或蓝光光驱。
- 无线网卡(可选) :
- 如果主板不支持无线连接,可以添加无线网卡。
- 声卡(可选) :
- 如果需要更好的音频性能,可以添加独立声卡。
- 扩展卡(可选) :
- 如网络卡、声卡、图形卡等。
- 机箱装饰(可选) :
- RGB灯条、风扇等。
处理器(CPU)天梯图
显卡(GPU)天梯图
如何选择显示器
选择电脑显示器时,有几个关键因素需要考虑:
- 分辨率:分辨率决定了显示器的清晰度。常见的有1080p(全高清)、1440p(2K)、2160p(4K)等。分辨率越高,画面越清晰,但同时对显卡的要求也越高。
- 屏幕尺寸:根据你的使用习惯和空间大小来选择。大屏幕可以提供更宽广的视野,但也需要更大的桌面空间。
- 刷新率:刷新率表示显示器每秒可以刷新多少次画面。常见的有60Hz、144Hz、240Hz等。高刷新率可以提供更流畅的视觉效果,特别适合游戏玩家。
- 响应时间:响应时间指的是像素从一种状态变化到另一种状态所需的时间,通常以毫秒(ms)为单位。响应时间越短,画面变化越快,越适合快速变化的游戏或视频。
- 面板类型:主要有TN、IPS、VA三种面板。TN面板响应速度快,但色彩表现一般;IPS面板色彩表现好,视角宽,但响应时间相对较慢;VA面板则介于两者之间。
- 连接接口:确保显示器的连接接口与你的电脑兼容,常见的有HDMI、DisplayPort、DVI、VGA等。
- 色彩准确性:如果你的工作涉及到图像或视频编辑,那么选择色彩准确性高的显示器非常重要。
- 附加功能:一些显示器可能提供额外的功能,如USB接口、扬声器、可调节支架等。
- 预算:根据你的预算来决定购买哪种类型的显示器。通常来说,价格越高,显示器的性能和功能也越全面。
- 品牌和售后服务:选择知名品牌的显示器通常可以保证较好的质量和售后服务。
根据你的具体需求和预算,综合考虑上述因素,选择最适合你的显示器。 并不是配置越高越好,重点是根据你的显卡和CPU来看,实现极致性价比,需要对应电脑配置能带动的最大区间,比方说 英特尔 i5-12400F(6核心12线程,睿频4.4GHz)+ 华硕DUAL-RTX 4060-8G游戏显卡能带起来的刷星率极限基本就是165Hz左右,那么你配置2K,180Hz的显示器就够用了,当然你有钱也可以整个4K,200+Hz的
关于外围设备(键鼠、耳机、音响等)
这个看个人喜好以及预算来决定吧,比方说有线还是无线,机械还是非机械等等....
不同价位装机性价比清单(根据目前市场上)
装机其实主要花费就在显卡(GPU)和处理器(CPU)上,显卡(GPU)金额占比超过50%比比皆是,处理器(CPU)金额占比一般是在百分之20%~30%,其他配件金额占比20%~30%左右。
如果预算足够建议优先升级显卡
CPU分为盒装和散片,预算充足盒装,预算不足散片也能用
3K推荐
- CPU: Intel 12代酷睿i5 12400F
- 显卡: 华硕DUAL RTX 3050 6G
- 内存: 威刚D4 16GB 3200MHz
- 硬盘: 英睿达 500GB PCI-E 4.0 M.2
- 主板: 圣旗H610M
- 电源: 爱国者额定500W
- 跑分: 107W±
- 合计:3.5K左右
4K极致性价比
4K-6K这个价位其实CPU最佳的就是就是在下图区间 同理可自行对比GPU天梯图
- CPU: 英特尔 i5-12400F(6核心12线程,睿频4.4GHz)
- 显卡: 华硕DUAL-RTX 4060-8G游戏显卡 升级选项: +299元升级至华硕TX-RTX 4060-O8G-GAMING天选白三风扇
- 散热: 动力火车四铜管白色强劲散热器
- 主板: 华硕PRIME B760M-FD4(支持AURA神光同步)
- 内存: 雷克沙DDR4 16GB 3200MHz高频内存
- 硬盘: 雷克沙500GB NVMe PCIe SSD(读速高达3300MB/S)
- 电源: 源之力静音大师额定600W安规3C白色
- 机箱: 动力火车琉璃海景房
- 合计:4K左右
5K极致性价比
6K极致性价比
7K极致性价比
8K极致性价比
1W极致性价比
1W预算以上可能考虑的不单单是配置了,还有外观之类的,可以DIY定制之类的
1.2W极致性价比
1.3w极致性价比
总结下,其实根据CPU、GPU天梯图就可以找到自己的目标区间,其他配置看个人预算来就行,核心就是两大件!如果有装机高手,欢迎留言交流,有不懂的,欢迎提问。后续会根据问题持续补充
来源:juejin.cn/post/7379420157670670372
35 岁时我改掉的三个习惯
大家好,我是双越老师,wangEditor 作者。
我正在开发一个 Nodejs 全栈 AIGC 知识库项目 划水AI,包括富文本编辑器,多人协同编辑,AI 写作,AI 处理文本等。有兴趣的同学可以围观项目。
开始
虽然标题是 35 岁,但其实本文 2024 年我 36 岁时写的。36 岁总结 35 岁,也没毛病。
35 岁对于我们程序员来说是一个非常敏感的年龄,但我已过 35 ,看看往后会越来越敏感,还是越来越麻木?
本文和大家分享一下我个人在业余生活中的,我觉得很有意义的事情。甚至我觉得这些是事情的意义,都大于工作的成绩。
生活是一个整体,工作只是其中一部分,只是我们养家糊口的一个手段。工作以外的其他部分应该更加重要,例如业余爱好、饮食、休息、娱乐、家庭等。
1. 戒烟
我从大学毕业开始学着吸烟,到 35 岁已经有十几年的烟龄了。虽然每天吸烟量不大,但也断不了,有瘾。
我为什么要戒烟呢?
是觉得吸烟有害健康?—— 对,吸烟肯定有害健康,但人类天生是一种及时行乐的动物,谁会在乎 20 年 30 年以后的健康呢?人类天生是一个心存侥幸的动物(赌徒性质),也不是每个吸烟者都会有 xxx 病,对吧?之前看过一个段子,说某呼吸外科医生做完,累几个小时做完一台手术,先出去吸烟休息一下。
我戒烟,单纯就是想戒。我想摆脱烟草和尼古丁的控制,而且是想了很久了,不是一时突发奇想,之前就有充分的心理准备。
还有,我想在 35+ 的年纪做一点叛逆的事情,叛逆使人年轻,叛逆使人保持活力。年轻时吸烟是叛逆,年龄大了戒烟就是叛逆。年轻时叛逆是狂,年龄大了叛逆是帅。所以,各位大龄程序员,有机会要让自己叛逆起来,做一点帅的事情。
最后,当时 2023 年夏天,我正好不忙,天天闲着,总得找点事儿干。既然工作上不忙,那就在自己身上找点有意义事情做吧 —— 外求不得而向内求,如果没法从外面挣取,那就去提高自身。
烟瘾是什么?就是尼古丁的戒断反应,没有其他理由,没人其他任何事情会让你 1-2 小时就想一次,而且持续想。
关于烟草的本质,烟草的历史,烟草的商业化推广过程,烟草的洗脑广告…… 还有很多内容可以讲,本文就不展开了,有兴趣的可以留言咨询。我很早之前就看过,去学习这些,并且接受这些,才能更好的帮助戒烟。
所以,就这么戒了,到写作本文的时候,正好是戒了一年。我觉得这是我去年做过的最有价值的事情,比我工作挣的钱都有价值。
2. 戒酒
之前我是比较喜欢喝酒的,喜欢一帮人聚餐那种兴奋的状态。但后来喝多了就肚子难受,一躺下就想吐,于是决定不喝了。
有些人说:你可以少喝点。但在中国北方的酒桌上,只有 0 和 1 ,没有中间态。只要你喝了,一开始朋友劝你多喝点,再喝多一点就不用别人劝了,自己就开始主动找酒瓶子了。
我不懂酒,没喝过啥好酒,很少喝红酒。就日常喝的白酒和啤酒而言,我觉得都不好喝。
白酒,度数高,辣(尤其酱味的),容易醉。全世界就中国及其周边人喝白酒,国内几千的白酒没有国际市场。而且单就中国而言,白酒蒸馏技术几百年了,也只有最近这不到 100 年喝白酒。《红楼梦》上层人不喝白酒,《孔乙己》下层人也不喝白酒。
现在喝白酒的人,有两类:1. 被酒桌文化感染而顺从的人; 2. 有酒瘾想快速体验酒精的人。
啤酒,要分好多种,咱日常喝的瓶装的、桶装的,都可以统称为工业啤酒,像水一样,轻薄寡淡 —— 但它有酒精啊!
那种全麦啤酒(忘记名字了,不常喝)还是很好喝的,但价格较高,自己买点喝还行,聚餐喝那个太贵了(普通饭店也没有卖的),很少喝。
我身边也有一些朋友,每周都喝好几次,大部分是为了工作,拉拢客户关系。我觉得我还是比较幸运的,写写代码,改改 bug ,也不用太考虑人际关系。程序员的为数不多的好处。
3. 不看和自己无关的事情
我从不刷抖音(虽然我会发布一些抖音视频),但我之前很喜欢看今日头条 app ,每天闲了就刷一下,吃饭也看,睡前也看。
但是我都看了些啥呢?有一些是娱乐性的小视频,搞笑的,猎奇的,做饭吃饭的,我觉得这些很好,提供情绪价值。
其他的,什么俄 x 战争,什么国外 xxx 冲突,什么体育明星谁比谁厉害,什么传统武术,什么中医 …… 还有这些的评论,各路网友互怼。有时候看的都让人很带情绪,感觉有些人是不是傻,这么简单的道理看不明白?有些人是不是坏,不看事实,只看立场?
这些不仅不能提供情绪价值,反而会增加你的负面情绪。而且,根据《乌合之众》大众心理学研究,你只要参与了其中,你参与了互怼,你就会成为他们其中的一员,也变成傻子或坏人。围观,也是一种参与,你的心里会支持某一方。
更关键的是,这些事情我自己有关系吗?或者我的表态能决定这件事儿的走向吗?哪怕投一票决定一点点呢 —— 答案是显然的,要么没有任何关系,要么自己瞎操心。
所以,我卸载了今日头条 app ,不看了,眼不见心不烦,这些事情我不知道,也不影响我个人工作生活。从此以后,我觉得我的世界瞬间清净了,至少不会被那些负面情绪所打扰。
另外,我睡前也不看手机了,把手机扔在书房充电,直接睡觉。如果偶尔失眠或想事情,那就想,也不用非得拿着手机想,对吧。
总结
35 岁是一个里程碑和转折点,工作上如此,生活中也是如此。程序员是一个相对来说比较“单纯”的群体,我觉得更应该关注个人生活中的成长,共勉,加油~
来源:juejin.cn/post/7417630844100247590
为什么不写注释?写“为什么不”注释?
代码是用结构化的机器语言编写的,而注释是用富有表现力的人类语言编写的。人类语言让注释比代码更具表达性和沟通能力。代码中也包含少量类似于人类语言的内容,例如标识符。所谓“注释要写为什么,而不是写做了什么”,意思是尽可能将信息嵌入到标识符中。并非所有“做了什么”都能这样嵌入,但很多都可以。
近年来,我看到越来越多的人主张,连“为什么”也不应该出现在注释中,它们可以通过LongFunctionNames
(长函数名)或测试用例的名称体现出来。几乎所有“自解释”代码库都通过增加标识符来进行文档化。
那么,有哪些人类表达的内容是无法通过更多代码来呈现的呢?
反面信息,也就是引起注意系统中“没有的”东西。“为什么不”的问题。
一个近期的例子
这是一个来自《Logic for Programmers》的例子。由于技术上的复杂原因,epub 电子书构建过程中未能将数学符号(\forall
)正确转换为符号(∀
)。我写了一个脚本,手动遍历并将数学字符串中的标记替换为对应的 Unicode 等价符号。最简单的方法是对每个需要替换的 16 个数学符号依次调用string = string.replace(old, new)
(一些数学字符串包含多个符号)。
这种方法效率非常低,我可以将所有 16 个替换在一次遍历中完成。但那将是一个更复杂的解决方案。因此,我选择了简单的方法,并加了一条注释:
对每个字符串进行了 16 次遍历。
整本书中只有 25 个数学字符串,大多数字符少于 5 个。
因此,速度仍然足够快。
你可以把这看作是“为什么我用了慢的代码”的解释,但也可以理解为“为什么不用快的代码”。它引起了对“没有的东西”的关注。
为什么要有注释
如果慢速代码没有造成任何问题,为什么还要写注释呢?
首先,这段代码可能以后会成为问题。如果将来的《Logic for Programmers》版本中有上百个数学字符串,而不是几十个,这个构建步骤将成为整个构建过程的瓶颈。现在留下标注,方便将来知道该修复什么。
即使这段代码永远不会有问题,注释仍然很重要:它表明我意识到了权衡。假设两年后我回到这个项目,打开epub_math_fixer.py
,看到我这段糟糕的慢代码。我会问自己:“当时为什么写了这么糟糕的代码?” 是因为缺乏经验,时间紧迫,还是纯粹的随机失误?
这条反面注释告诉我,我知道这段代码很慢,考虑过替代方案,并决定不做优化。这样,我不必花大量时间重新调查,却得出同样的结论。
为什么这不能通过代码“自解释”(self-documented)
当我第一次尝试这个想法时,有人告诉我,我的反面注释没有必要,只需将函数命名为RunFewerTimesSlowerAndSimplerAlgorithmAfterConsideringTradeOffs
。除了名字过长、未解释权衡点,并且如果我优化了代码,还得在所有地方修改函数名外……这实际上使代码更不能自解释。因为它没有告诉你函数实际做了什么。
核心问题在于,函数和变量的标识符只能包含一条信息。我无法在一个标识符中同时存储“函数做了什么”和“它作出了什么权衡”。
那么用测试代替注释呢?我猜你可以写一个测试,用grep
查找书中的数学块,并在超过 80 个时失败?但这并没有直接测试EpubMathFixer
。函数本身没有任何内容可以让你直接关联上。
这是“自解释”反面信息的根本问题。“自解释”是伴随代码书写的,它描述了代码在做什么。而反面信息是关于代码没有做什么的。
最后的思考
我在想,是否可以将“为什么不”注释视为反事实的一个例子。如果是这样,那么“人类沟通的抽象”是否一般都无法“自解释”?你能“自解释”一个比喻吗?不确定性呢?伦理主张呢?
来源:juejin.cn/post/7413311432970993704
从《逆行人生》聊聊中年程序员的出路
赶在下架前去看了《逆行人生》。
这部电影讲述了高志垒——一个架构师,被裁员后,在找工作两个月颗粒无收的情况下,被逼无奈去跑外卖的故事。
个人感觉还是很值得一看的,是一部很好的现实题材电影,并没有网上说的资本迫害打工人还要打工人努力奋斗的感觉。
有年轻人说,难以共情。70万年薪的人最后要落到为了 15k 的月薪而奔波,他不理解为什么。然而就我亲身经历而言,无路可走的时候,我们的确会做这样的选择。
我们先来看看中年程序员有哪些选择。
中年程序员有哪些出路?
继续打工
打工,无疑是多数人的选择。毕竟上一天班赚一天的钱,这种稳稳的幸福还是大部分人的追求。但打工也不能停滞不前,还是要不断学习、拓展自己的能力,尤其是我们IT行业,技术更新迭代快。如果不学习,很可能 3 到 5 年就被淘汰了。
程序员要晋升、跳槽,主要学习方向以下两种:
- 拓展技术的深度与广度:高级开发、架构师、热门行业的开发如AI等;
- 向外拓展自己的能力:培训机构老师、高校老师;技术管理;
自己单干
继续打工,无疑都会碰到被裁员的风险,你个人的命运始终掌握在老板甚至顶头上司的手里。如果你不甘于此,就要开创性地走其他路了。这对个人的挑战都是极大的。
程序员可以凭借技术能力逐渐向外扩展:
- 独立开发:承接项目或者自研产品
- 创业:成立公司、团队,完成开发工作
彻底转行
也有部分人被彻底伤透了心,完全不再进入这个行业了,转向其他行业了。
- 网络兼职:写手、影视剪辑等;
- 中年三保、铁人三项:保安、保姆、保洁、快递、司机、外卖。这个是被大家调侃最多的;
- 其他行业的打工者:如制造业、外贸等行业;
- 开店或者创业:存上一笔钱开店或者做一间自己喜欢的公司,也是一些人的选择。
我们应该如何选择?
如上所见,程序员能做的选择还是比较多的。我们将这些工作列个表,列一下所需要的能力与所承担的责任,以及最后的风险,以便做选择:
可以看到,每个方向其实都是有风险的,并没有不存在无风险的职业与方向。那是不是我们就可以完全凭借个人喜好来决定呢?并非如此,这些选择对大部分人而言,还是有优劣之分的。
不推荐铁人三项、中年三宝
首先,我个人其实非常不建议程序员转行去做起他行业的,除非迫不得已,尤其是从事体力劳动。
因为这需要消耗大量的体力与时间。中年人无法靠比拼体力取胜,工作时间长,也无法取得工作生活平衡。在电影《逆行人生》中,高志垒虽然赢了第一个单王,但可以看出其靠的更多是运气,行业老大哥或退出竞赛、或家里有事提早离开。
另外就是,AI 技术发展和市场供需变化。不久前武汉的萝卜快跑落地,相信大部分滴滴司机都感受到了被淘汰的可能。而且这类工作市场基本上已经饱和,所以薪酬只会越来越低。
其他的网络兼职、去制造业服务业打工,这些都是门槛低,程序员即使有技术与能力,也不见得有任何优势的,所以也是不推荐的。
而开店或按自己的兴趣来创业,则非常看你个人能力了,同样需要更谨慎的考虑,当然你如果家财万贯,倒是可以任性一把。
更推荐提早规划、提早行动
剩下的职业方向其实都是推荐的,因为多多少少跟我们自身学习的技术是相关的。将我们的能力逐步往外扩,逐渐走出舒适圈,是更合适的一个发展路径。但是需要注意的是,建议尽早立下目标,提前规划,尽快行动的。
如,希望做老师,可以提早在企业内部做讲师、技术讲师,给新人讲解。锻炼好自己的沟通表达能力,多想想如何让新人更好地融入企业、进入工作状态。
又如,你想自己创业,那可以开始就留意你手头上做的产品是如何开发、运营的。公司如何分配人力物力去做的,如何做商业变现的,如何寻找客户的等等这些问题。不仅要站在技术角度、也要站在公司的角度多思考、多学习、多实践。甚至在时机成熟的时候,提出转岗去做产品、技术管理,更早地锻炼自己所需的创业的能力,能让自己日后的路走的更顺。
高志垒为何还是选择送外卖?
回到电影,既然都不建议程序员从事体力劳动,高志垒好好的一个架构师,也是有脑子的,为啥最后还是选择了外卖员呢?
首先,从影片一开始可以看出,高志垒选择了架构师或者技术管理偏技术方向,因其手头上还有一线开发的任务。显然对于 45 岁的他,在打工这条路上几乎已经到顶了。
然而,他并没有做好职业规划,甚至从未考虑过失业的风险。在突然失业时,才发现市场上几乎找不到自己的职位、薪酬,最后简历也是乱投一气了;而中产返贫三件套:高额房贷、全职太太、国际学校,他几乎全都拥有;并且还大笔地投资了 P2P ,因其爆雷导致家庭财产大量损失;再加上其父亲突发重病,住院急需要钱。
所有的状况同时出现,所有的压力压在身上,在两个月投递简历无果时,他听说送外卖能补上房贷月供差额的数目,宛如找到救命稻草一般,毅然加入了外卖行业。
如何避免陷入被动状况?
如何避免我们也陷入高志垒的状况?
除了像上面说的提早积攒自己的能力,提早做规划、更早地行动外,程序员也应提升技能多样性,特别是专业外的技能;同时在职业中后期应寻找到更利于个人发展的公司或项目;还需要拓展人脉,保持与行业内的沟通交流;在最后,保持健康的生活习惯和平衡好工作,让自己的职业寿命尽可能地延长。
而在财务上,做好失业准备、甚至为后续独立开发、创业等积攒资金都是必要的,所以需要采取一些措施,做好家庭财务的规划,如:
- 留出紧急备用金:为应对突发事件,如失业或疾病,应建立足够的紧急基金,一般建议为家庭日常开支的3-6个月。
- 谨慎投资:只投资自己熟悉的产品;了解自身的风险承受能力再投资;同时避免将所有资金投入到单一的高风险产品中,如P2P,应进行资产配置,分散风险。
- 购买保险:为家庭成员购买适当的健康保险,以减轻因病致贫的风险。
- 做好财务预算、规划:每年、每月做好财务预算;同时对于房贷和教育投资等大额支出,应进行详细的财务规划,确保在收入中断时也能应对。
- 增加收入来源:尽可能地增加家庭收入来源,比如配偶就业或开展副业,减少对单一收入的依赖。
总结与思考
在戏里的高志垒无疑是幸运的,家庭和睦,家人都给予最大的支持,愿意一起度过难关。再加上自己开发的小程序“路路通”,同事间互助互利,最后,成功拿到了单王,并帮家里度过经济危机。
然而最后的结局,高志垒并没有“逆袭”人生,而是在“逆行”人生中,调整了自己。最后他卖掉了大房子,搬到了小房子住,老婆依然在工作,孩子也放弃了就读国际学校、老人靠自身意志力完成了康复。
这也是我觉得这部电影还算现实主义之处。并没有理想中的事情发生,就像现实生活中那些受挫的人们一样,最后选择降低生活标准,继续前行。
最后的最后,问一下大家,如果你面临电影结尾彩蛋中的情景,有一个外卖公司的高层老板对你开发的“路路通”小程序感兴趣,你会如何选择?
- 卖掉小程序,拿钱走人
- 加入外卖公司,继续开发
- 不卖,开源
欢迎留下你的答案与思考,一起讨论。
来源:juejin.cn/post/7414732910240972835
刚刚,英特尔发布最强CPU,AI PC迎来最高效x86芯片
金磊 发自 柏林
量子位 | 公众号 QbitAI
最高效的x86芯片,应当是一种怎样的“打开方式”?
就在刚刚,英特尔给出了一份答案——
英特尔® 酷睿™ Ultra 200V系列处理器。
△英特尔高级副总裁Jim Johnson
话不多说,直接上亮点:
- 最快的CPU:E核比上一代快68%,P核则快了14%
- 最快的内置(built-in)GPU:首次推出全新Xe2图形微架构,平均提升30% 的移动图形性能
- 最高AI性能:CPU、NPU和GPU整体算力高达120TOPS,直接拉高AI体验
- 最高效x86:整体功耗降低50%
- 超强的兼容性:各种软件应用程序均可兼容
由此,在搭载英特尔® 酷睿™ Ultra 200V系列芯片之后,AI PC们的生产力也迎来了“蜕变”:
- 每线程处理性能提高3倍
- 峰值性能提高80%
- 续航长达20小时
不仅如此,全球顶级的OEM和ISV们纷纷前来站台,例如谷歌、微软、联想、戴尔、惠普等等。
那么英特尔具体又是如何做到的?以及这个“史上最高效”又是如何界定的?我们继续往下看。
史上最高效的x86处理器
首先我们需要说明的是,Ultra 200V系列一共包含9款处理器,CPU均为8核8线程,GPU和NPU的核心数量会有所不同:
在低功耗方面,这里比较重要的一个变化,就是英特尔对低功耗岛(Low Power Island)做出的改变。
它把Lunar Lake核心数量和缓存增加了一倍(达到4MB和4个内核),并将E核从Crestmont更新到Skymont。
然后英特尔使用各种电源管理技术(包括 Thread Director),通过这个低功耗岛以低功耗来实现效率上的大幅提升。
一个比较有意思的点是,从这里开始,英特尔就直接开始向高通猛开炮火了,性能表现如下:
而除了高通之外,AMD也没能逃过被英特尔拿来公开做比较的命运。
例如在电池寿命方面,英特尔就表示已经超过了AMD和高通。
其次,是CPU方面。
英特尔在CPU上采用了全新的架构,即4个Skymont E核和4个Lion Cove P核,官方所展示的核心信息如下:
不过这里有一个关键的问题。
那就是P核不包括超线程,这个技术实际上允许单个CPU内核支持多个任务线程。
根据英特尔的说法,不采用超线程是因为这样会有助于芯片的整体集成。
尽管英特尔这次是“4+4”模型(8个线程,比上一代少很多),但从给出来的性能结果来看,要比AMD和高通要好得多。
在CPU之后,便是英特尔的内置GPU了。
英特尔这次首次亮相了全新的Xe2图形微架构,不仅适用于集成图形领域,而且适用于独立显卡。
在GPU性能的比较上就更有意思了。
英特尔先是用Ultra 7 155H和Ultra 9 288V在众多游戏上进行了PK,在Xe2加持之下,有了31%的性能提升。
然而到了与高通相比较的时候,结果是这样的:
高通X1E-84-100无法运行23款游戏。
在与AMD HX 370的比较过程中,Ultra 9 288V表现出来的结果是要快出16%。
除此之外,光线追踪也是Xe2的另一大亮点,领先于竞争对手,RT性能提高了30%。
最后,便是Ultra 200V在AI方面的性能了。
正如我们在开头提到的,英特尔此次整体算力达到了120TOPS,其中GPU是67TOPS,NPU 48TOPS,以及还有CPU的5 TOPS。
在性能对比上,同样是和高通相比,在使用Adobe Premiere和Lightroom功能等应用程序时,明显是要快得多。
值得一提的是,在量子位与英特尔交流过程中了解到,英特尔是目前与同行相比,唯一一家在CPU、NPU和GPU三个AI Engine都能做到均衡发展的那一个,而这也成为了其核心竞争力之一。
AI PC们都来站台了
除了英特尔此次“最高效x86处理器”的发布之外,现场的OEM和ISV们也是不可忽视的亮点。
以OEM为例,其数量之多,从一张图就能感受到这个feel了:
近乎所有的AI PC们都有所参与:20多个品牌,80多款机型都搭载了最新的Ultra 200V系列处理器。
不仅如此,在发布活动的现场,谷歌、微软、联想、戴尔和惠普等,也上台表达了对Ultra 200V能上机、上服务而感到的期待。
同样的,即便是在场外,PK的味道依旧是非常浓郁。
例如在demo演示区,英特尔就拉着AMD现场以赛车的游戏来比拼了一番:
**,时长00:17
当然,高通依旧是不能落下:
据了解,首批搭载Ultra 200V处理器的笔记本电脑将在9月24日上线。
不过在此之前,我们也不妨蹲一波更多的实测结果。
One More Thing
英特尔除了Ultra 200V系列芯片之外,此次还发布了Evo Edition标识。
据悉,获得标识的电脑必须通过严苛的英特尔Evo Edition OEM系统验证流程。
每款机型须首先通过预评估,并在通过之后的六个月内接受 10 种不同的测试标准。在此期间会对该机型进行调优,以满足英特尔Evo标准。
来源:juejin.cn/post/7410786086580437004
保守点,90%的程序员不适合做独立开发
大家好,我卡颂。
近两年互联网行业不景气,很多程序员都在寻找新出路。很自然的,独立开发成为一个充满吸引力的选择 —— 背靠自己的开发技能,不用看老板脸色,靠产品养活自己,想想就很美好。
但恕我直言,保守点说,90%的程序员不适合做独立开发。
这篇文章全是大实话,虽然会打破一些人的幻想,但也提供解决方案,希望对迷茫的同学有些帮助。
独立开发赚钱么?
如果你满足如下画像:
- 程序员工作多年,编程水平不错
- 收入完全来源于工资
- 日常学习的目的是提升技术
那对你来说,独立开发是不赚钱的。不赚钱并不是说做这事儿一分钱赚不到,满足以上画像的大部分独立开发者在持续经营半年到一年产品后,还是能稳定获得几刀~几十刀收益的。只是相比于付出的心血来说,这点收益实在是低。
以至于出海独立开发圈儿在谈收益时的语境都不是我开发了1年,现在每月能赚50刀,而是我开发了1年,现在拥有了等效于3w刀年化2%的货基(3w * 2% / 12 = 50)
这么一换算,欣慰了许多。
为什么不赚钱?因为独立开发的重点并不在于开发,叫独立产品会更准确些。
对于一款形成稳定变现闭环的产品,有3个最重要的环节:
- 流量获取
- 运营转化
- 产品交付
程序员只是产品交付环节下的一个工种,与你同处产品交付环节的工种还包括产品经理、QA、项目经理、运维......
做独立开发的本质就是你一个人抗下上述所有工种。
话又说回来,如果你即会编程又会流量获取,会运营转化,这样的复合人才在公司根本不用担心被裁,也没必要做独立开发。
所以,对于满足以上画像的同学,我劝你不要把独立开发当作失业后的救命稻草。
认识真实的商业世界
虽然我不建议你all in
独立开发,但我建议有空闲时间的同学都去尝试下独立开发。
尝试的目的并不是赚钱,而是更具象的感知流量获取 -> 运营转化 -> 产品交付的路径。
大部分互联网产品往简单了说,都是表格 + 表单的形式,比如推特就是2个大表单(推荐流、关注流)以及描述用户之间关系的表格。
既然如此,当我们有了独立开发的想法时,首先考虑的应该是 —— 我的产品能不能用表格 + 表单 + 高效沟通实现,比如腾讯/飞书文档 + 微信群交流。
像多抓鱼(做二手书业务)早期验证需求时,就是几个用户群 + 保存二手书信息的excel表组成。
如果你发现需求靠微信群交流就能解决,付款靠微信转账就能解决,那还有必要写代码开发项目,对接微信支付API么?
当聊到微信交流时,其实就触碰到另一个工种的工作范围了 —— 私域运营。在私域运营看来,通过微信(或其他社交软件)成交是再正常不过的商业模式,但很多程序员是不知道的。
这就是为什么我不建议你把独立开发当作被裁后的救命稻草,但建议有空闲时间的同学都去尝试下独立开发 —— 涉猎其他工种的工作范围,认识真实的商业世界。
当达到这一步后,我们再考虑下一步 —— 发掘你的长处。
发掘你的长处
当我们认识到一款完整的产品有3个最重要的环节:
- 流量获取
- 运营转化
- 产品交付
就应该明白 —— 如果我们想显著提高独立开发的成功率,最好的方式是找到自己最擅长的环节,再和擅长其他环节的人合作。
这里很多程序员有个误区,会认为程序员擅长的肯定就是产品交付下的开发。
实际上,就我交流过的,或者亲自带出来的跑通变现闭环的程序员中,很多人有编程之外的天赋,只是他们没有意识到罢了。
举几个非常厉害的能力(或者说天赋):
- 向上突破的能力
有一类同学敢于把自己放到当前可能还不胜任的位置,然后通过不断学习让自己完成挑战。举几个例子:
- 在不懂地推的时候,参与到校园外卖团队做地推,学习市场和推广的知识
- 在只看了一本
HTML
书的情况下,敢直接接下学校建设国际会议网站的任务 - 在不懂做运营的时候,有老板找他当公司运营负责人,他也接下来,并也做得很好
这类同学很容易跑出有自己特色的非标服务,再包装成产品售卖。
- 源源不断的心力支持
有位同学看短视频趋势不错,正好大学也玩过一段时间单反,就买了一套专业的影视设备,准备一边学做饭一边拍短视频,想做一名美食博主。
每天下班拍视频、剪辑加后期的,每个视频都需要花 10+ 个小时。熬了半年多,数据一直不行,就放弃了。
虽然他失败了,但很少有人能在没有正反馈的事上坚持半年,这种源源不断的心力支持其实是一种天赋。
靠这个天赋,只要踩到合适的赛道,成功是迟早的事儿。
- 链接人的能力
有些同学特别喜欢在群里唠嗑,与大佬聊天也不犯怵。这就是链接人的天赋。
在如今的时代,有价值的信息通常是在小圈子中传播,再慢慢破圈到大众视野中。这类同学靠链接人的天赋,可以:
- 从小圈子获得有价值的信息,做信息差生意
- 做中间人整合资源
假设你探寻一圈后发现 —— 自己最拿得出手的就是编程能力,那你的当务之急不是发掘需求。
以咱们普通程序员的产品sense
,也就能想出笔记应用、Todo List应用这类点子了......
你需要做的,是多认识其他圈子的人,向他们展示你的编程能力,寻找潜在的需求方。
以我在运营的Symbol社区
举例,这是个帮程序员发展第二曲线的社群。
之前社群有个痛点:每天社群会产生大量有价值的碎片知识,但这些知识分散在大量聊天消息中,爬楼看消息很辛苦。
基于这个痛点出发,我作为产品经理和群里两位小伙伴合作开发了识别、总结、打标签、分发有价值聊天记录的社群机器人:
作为回报,这两位小伙伴将获得付费社群的收入分成。
总结
对于满足如下画像的程序员:
- 程序员工作多年,编程水平不错
- 收入完全来源于工资
- 日常学习的目的是提升技术
不要把独立开发当作被裁后的救命稻草,而应该将其作为认识真实商业世界分工的途径,以及发掘自身优势的手段。
拍脑袋想没有用,只有真正在事儿上修,才能知道自己喜欢什么、擅长什么。
当认清自身优势后,与有其他优势的个体合作,一起构建有稳定收益闭环的产品。
来源:juejin.cn/post/7345756317557047306
华为三折叠手机19999元起!全展开10.2寸大屏3.6mm厚度,电池只留1.9mm
梦晨 发自 凹非寺
量子位 | 公众号 QbitAI
华为三折叠新品发布会,弹幕一片的 “报价吧,让我死心” 。
全球首款三折叠手机MateXT,价格正式揭晓:
- 256GB版,19999元
- 512GB版,21999元
- 1TB版,23999元
预计9月20日上午10点08分正式开售,发布会与苹果同一天,正式开卖也与苹果同一天。
看到这里,你是死心了还是动心了?
华为MateXT系列是全球最大折叠屏手机,全展开总计10.2英寸屏幕。
同时,它还是全球最薄折叠屏手机,三屏展开状态只有3.6mm。
余承东手持样机在现场表示,“把平板装在口袋里”,这个梦想已经实现了。
作为对比华为平板在售型号最小尺寸为11英寸。
不过也有许多网友表示: “它和平板的区别在于平板我买得起”。
配合官方配件折叠触控键盘,把电脑装在口袋里也实现了。
余承东表示这是一款“大家都能想得到,但是做不出来的产品”。
这样一款全新形态的手机,究竟有哪些使用场景?
发布会现场也做了演示。
三折叠屏都能怎么用
面向商务人士,出差路上也要办公,是华为MateXT这次主打的场景之一。
单屏折叠,扫码登机便于持握。
双屏展开,适合在线浏览简单资讯。
三屏全展开,连复杂的行业报告都能拿捏。
放在一起对比,余承东称三屏模式的实际可视内容在双屏的两倍以上。
除了严肃的工作场景,三屏展开来看电影视觉效果也更震撼。
三折叠除了常规横向使用,华为也考虑到了竖起来使用这种需求,官方支架配件也支持90度旋转。
竖屏短视频刷起来也更带感了。
对于APP的适配方面,余承东开了个玩笑: “小红书秒变大红书” 。
再接下来还演示了华为系统搭载的一些AI功能。
比如AI总结,可以实现左边原文,右边摘要,无需来回切换。
AI翻译同理,方便跳转回原文。
AI修图能力虽然和三折叠屏没太多联动关系,而且很多人已经上手体验过。
但鉴于前面有几款手机并未召开发布会,华为官方在新机发布会上讲解还是第一次。
三折叠手机还有哪些亮点?
看过三折叠屏都有哪些玩法之后,是时候再了解一下背后的技术突破了。
这是折叠屏铰链系统同时实现内外弯折。
也是超薄大屏第一次实现内外弯折。
余承东讲解“Z”字形内外弯折最大的难点在于,会出现两种互斥的力。
这一次能实现,背后最大助力也在现场揭秘:华为首创的天工铰链系统,实现双轨联动。
具体细节并未透露太多,目前已知采用多向弯折柔性材料,外折部分抗拉伸,内折部分抗挤压。
与之配合,屏幕本身也有特别设计,内侧是业界最大的UTG玻璃,最外层为非牛顿流体材料,双层都有不错的抗冲击能力。
还记得整部手机只有3.6mm厚度么,刨去前后外壳、屏幕、电路板等,留给电池的空间只剩……
1.9mm!
最后,华为高端手机向来重视的影像系统、通信能力这次依然保持高水准。
华为首款三折叠手机,满足你的期待了吗?
来源:juejin.cn/post/7412813889689272383
低谷期,什么是最好的理财方式?买房、炒股、存钱?
2024年宏观环境肉眼可见地恶化之下,程序员等普通人如何度过这次危机?
如何度过危机?对于个人最优的方案,是郭嘉最不想看到的方案
对于普通人,度过危机最好的办法是 降低消费、降低负债和多存钱。对于郭嘉而言,这是最不想看到的行为。 个人的最优方案和郭嘉的最优方案是相反的。 在经济下行期,郭嘉和个人的利益不一致也很正常。(上行期当然一致了)
记住这一点,不要认为郭嘉都已经提倡了,就认为对自己是最好的,作为理智的成年人要有独立判断能力。
郭嘉希望大家多带款、多消费、少存钱,只有如此需求端提振后,经济才能复苏。但是对于个人而言,外部环境的危机让我们对未来充满不安全感,多带款、多消费、少存钱就是作死的行为……
非必要不要买房
在中国34个省市区和直辖市,我相信绝大部分城市的房产已经是垃圾资产,拿到手里就会成为传家宝,可能永远也卖不出去。
只有极少数一线城市和 优质地段、优质物业、优质小区质量的少量小区或者别墅区存在增值空间。参照日本的经验,经济泡沫破裂后,虽然人口快速向一线城市群东京和大阪聚集,但是东京的房价依然持续在下跌
记住下跌趋势不要抄底,宁可追高,绝不抄底!
务必远离股市,尤其是A股
这是我的炒股心路历程,虽然赚了钱,但是差一点点就倾家荡产,万劫不复
虽然炒股赚了十多万,但差点倾家荡产!劝你别入坑
2019年,我开始涉足股市,在2021年中旬为了购房,将持有的股票全部卖出,赚了十多万元。在最高峰时期,我获利超过了二十多万元,但后来又回吐了一部分利润。虽然我的炒股成绩不是最出色的,但也超过了很多人。因为大多数股民都是亏损的,能够在股市长期盈利的人真的是凤毛麟角。
股市中普遍流传的七亏二平一赚的说法并不只是传闻,事实上,现实中的比例更加残酷,能够长期赚钱的人可能连10%都达不到。
炒股就是赌博
我想告诉大家,无论你在股市赚了多少钱,迟早都会还回去,越炒股越上头,赚的越多越上头。
赌徒不是一天造成的,谁都有赢的时候,无论赚多少,最终都会因为人性的贪婪 走上赌徒的道路。迟早倾家荡产。
之前炒股的经历分享
虽然炒股赚了十多万,但差点倾家荡产!劝你别入坑
多存钱,降低杠杆和负债率
虽然存钱的利率不到2%,但是总比亏本强很多啊,要明白现在中国的经济困境是 经济通缩,什么意思呢?就是各种工业品都在降价(例如汽车一直在降价),未来的钱更加值钱,所以利率低,希望大家赶紧花出去。
经济通胀的时候,物价在飞速上涨,虽然利率高,但是物价涨得更高,钱越来越不值钱,所以银行希望大家都去存钱。
记住银行希望你干什么,大概率对你是不好的。 银行赚的就是你的钱~
现在越是利率低,越是要存在银行这样才保险。 如果你的路子特别野,可以考虑将资产转成美元或港币,这两种货币的存款利率更加高,可以达到4%+
有房贷的提前还房贷
存量房贷的利率比存款利率高了将近3%, 100万的带款,每年就多3万元的利息,长达30年,将近五六十万元的利差,千万不可小觑。
但是银行会有各种手段限制大家提前还房贷。归根结底,经济下行期,银行的利益和个人的利益是对立的~
第一次提前还房贷,就尝到了甜头,使用6万块钱,起到了18万的效果
我在工行App上,申请 提前还贷,选择缩短 18个月的房贷,只需要 6万2,而我每个月房贷才1万,相当于是用 6 万 顶 18 万的房贷。还有比这更划算的事情吗?
提前还房贷的经历
买房后,害怕失业,更不敢裸辞,心情不好就提前还房贷,缓解焦虑
对于房奴而言,提前还房贷就是最好的投资方式,没有之一,就是最好的投资方式。
欲买桂花同载酒,人生要及时行乐
虽然推荐大家降低消费,但是不建议大家为了省钱,牺牲青春。
100块钱对于一个10岁孩子的快乐,和对于30岁成年人的快乐是完全不对等的。
小时候有10块钱,够我买三四个玩具,可以和小伙伴开开心心的玩一个暑假。现在我有1000张10块钱,也找不回儿时的快乐。
人活着是为了享受人生的,不是为了受罪来的。建议大家 可持续性的及时行乐,该玩还是要玩。不要老了感慨道:欲买桂花同载酒,终不似,少年游
好好学习,提高自己,度过危机期,遍地是机会
经济危机过后,资产的价格一定一落千丈,各行各业都非常萧条,但是随着需求复苏,这意味着遍地都是机会。前提是你有发现机会的眼光、抓住机会的能力和勇于行动的魄力。
想一想,危机过后,我们手握大量的现金,面对遍地的廉价资产,面对日渐热情的消费需求,再加上更加成熟强大的自我,一定大有可为。 前提是好好存钱,好好积累提高自己。(如何判断危机过去,是一门学问,不要太冲动)
要想做到这一切,一定要注重低谷期、危机期的积累。
祝各位长期有耐心,把未来的信心全部放在投资自己上,不要把未来的信心投资在股票和、产和奢侈消费上哦~
祝未来的大家纵情四海、前途似锦
2024 七夕随笔
来源:juejin.cn/post/7402141246176428095
一个失败的独立开发的300多天的苦果
历史是成功者书写的,所以我们能看到的成功的独立开发者,正所谓一将功成万骨枯,其实失败的才是大多数。从2023年7月14到现在2024年5月22,10个多月,一个313天总共的收入只有652元(😭😭😭)
appStore的收入($72.14=¥522)
微软商店的收入($17.97=¥130)
总结一下失败原因
- 做了一堆垃圾,没有聚焦的做好一款产品
- 没有扬长避短,其实前端开发最适合的产品方向应该是web和微信小程序,在electron上架appStore上花费了大量的时间(15天真实的时间)
- 归根结底还是在做产品这方面的储备不够,做产品没有定力,心静不下来,如果其他的都不做把全部的精力都拿来做aweb浏览器(包括研发和宣传),结果也不至于这么差。
分享一下失败的经验吧
- 全职独立开发初期很难沉下来打磨产品,还是建议边工作边搞,沉不下来就会原来越乱
- 如果感觉效率低,还是不要在家里办公了,咖啡馆、图书管、公创空间(武汉这边500一个公位)都是不错的选择
- 有单还是接吧,不然真的是太难了
来源:juejin.cn/post/7371638121279848499
Linux新系统正式发布,易用性直接向Windows看齐!
提到 Linux Mint 这个系统,相信不少喜欢折腾Linux系统的小伙伴可能之前有尝试过。
该系统旨在为普通用户提供一个免费、易用、舒适、优雅的桌面操作系统。
就在不久前,备受期待的 Linux Mint 22(代号为“Wilma”)正式官宣发布,这一消息也在对应的爱好者圈子里引起了一阵关注和讨论。
作为Linux Mint系列的一个重要里程碑,Linux Mint 22不仅继承了Ubuntu 24.04 LTS的稳定性和安全性,还在此基础上进行了大量的改进和优化,为用户带来了全新的桌面体验。
长期支持
本次发布的全新Linux Mint 22作为一个难得的长期支持版(LTS),将更新支持到2029年,期间将会定期推送安全更新。
这意味着在未来几年中,用户可以享受到稳定且持续的安全更新。
内核升级
新版Linux Mint 22与时俱进,同样采用了Linux 6.8内核,这一更新不仅提升了与现代硬件、应用程序和软件包的兼容性,还带来了更好的系统性能和稳定性。
此外,内核的升级也为后续的维护和升级提供了更广阔的空间。
桌面环境
Linux Mint 22默认搭载了Cinnamon 6.2桌面环境,为用户带来更加流畅、智能和高效的桌面体验,并且同时提供了Xfce和MATE版本供用户选择。
Cinnamon 6.2带来了诸多新特性和改进,从而进一步提升用户体验。
- 启动应用管理更便捷:添加启动应用时,搜索栏默认显示,方便用户快速定位所需应用。
- 工作区管理更灵活:工作区切换器支持用鼠标中键删除工作区,操作更加直观;Cornerbar小程序允许自定义点击操作,提升效率。
- 快捷键和Spices功能增强:支持可配置的快捷键绑定,键盘快捷方式编辑器新增搜索功能,设置更便捷。
- 界面优化:用户小程序可在面板显示个人头像,提升个性化程度;Cinnamon会话界面新增欢迎徽章,提升用户体验;屏幕键盘添加关闭按钮,使用更方便,等等。
软件管理器
Linux Mint 22的一大重点更新就是针对mintinstall软件管理器的改进。
新版本不仅提升了加载速度,还增加了多线程支持、新的偏好设置页面和横幅幻灯片。
新的软件管理器默认禁用未验证的Flatpak软件包,以提高系统的安全性。同时,已验证的Flatpak软件包会显示维护者姓名,以增加用户信任度,而如果要启用未经验证的 Flatpak 软件包,它们将被清楚地标记出来。
其他更新
Linux Mint 22还带来了其他诸多更新,比如:
- 高分辨率屏幕支持得到增强,确保在不同分辨率下都能获得最佳显示效果;
- 默认音频服务器切换为了PipeWire,以提供更好的音频处理和兼容性;
- 所有使用libsoup2的软件均迁移到libsoup3;
- 支持GTK4;
- Matrix加持;
- ……等等。
此外,Linux Mint 22还包含了大量底层的Bug修复、稳定性提升和性能优化,这些都是为了确保系统运行更加流畅、稳定。
后记
总而言之,这次Linux Mint 22的发布,使得Linux桌面系统的易用性又进了一步。
感兴趣的小伙伴也可以直接去官网下载ISO镜像来安装使用。
我也特地看了一下新版本安装要求,对机器配置要求还真不高,最近有时间我也准备收拾出来一台老电脑来安装试试。
文章的最后也期待Linux桌面系统在未来能百花齐放,发展得越来越好。
来源:juejin.cn/post/7411032557074710543
移动开发者终于失去了往日荣耀?
部分原因在于AI浪潮. 但可能还有其他原因.
作为一名资深移动开发者, 我渴望了解苹果, 安卓和跨平台生态系统的最新趋势. 然而, 最近业界发出的信号并不令人振奋.
这篇文章并不是要讨论在最新的 WWDC 或 Google I/O 上开发者们被灌输了什么. 我们要讨论的是当前的趋势是如何影响开发者的职业生涯的.
移动开发人员的工作岗位正在迅速消失 -- 至少我在 脉脉 上搜索到的情况是这样. 关于这一点, 还有一个有趣的Reddit讨论, 以及StackOverflow 开发人员调查开发人员数量统计: 移动开发调查受访者人数从 12.45% 降至 3.38%.
虽然行业领先论坛的结果不足以详细反映真实问题, 但线上+线下论坛的集体反馈也能反映些许蛛丝马迹.
我们是如何走到这一步的?
就在不到十年前, 移动开发还是最酷的技术. 每家领先的科技公司都在努力征服 iOS 和 Android 这两个平台.
近十年来, 原生平台和跨平台之争持续不断. 在此之前, Cordova, Xamarin 和 Titanium 是每个技术Manager口中的热门词汇. 这些框架在技术上并不出众, 但它们成功地维持了业界最喜欢的“一次开发, 到处发布, 节省资金”的信念.
同类产品的第二波浪潮以 React Native 和 Flutter 等跨平台框架的形式出现. Facebook 和谷歌称赞它们是完全原生的.
但是, 只有每天与它们打交道的程序员才知道, 在开发具有流畅性, 高性能和可玩性(利用传感器功能--使移动体验更加深入和个性化)用户体验(智能手机人机交互的最大组成部分)的大型应用时, 它们是多么的力不从心.
虽然用户体验是由 Facebook 和谷歌开发的, 但它们的整个发展历程都是由那些必须向大客户推销开发人员的代理商传播的. 在以降低开发成本为价值主张时, 他们开始声嘶力竭地高唱跨平台的大戏. 为了提高代理公司的投资组合, 他们还通过开发组件来扩大各自框架的 GitHub 代码仓库. Facebook 和谷歌的开发人员看着自己的边缘项目蓬勃发展, 乐得合不拢嘴. 大家都很高兴.
实际上, 从长远来看, 跨平台项目让拥有项目的公司付出了更大的代价, 因为这种方法存在明显的缺陷:
- 只提供两个平台的最大公约数.
- 开发人员疲劳(除了《Hello World》, 开发人员无论如何都得学习本地程序)
- 开源(因此没有问责制)开发.
在完全原生的跨平台工具(Unity 及其朋友)与忠实于原生的 XCode 和 Eclipse 之间也发生了有趣的采用战争, 不过, 根据设计, 这场战争仅限于游戏开发.
这些战争是否削弱了移动开发事业? 也不尽然. 但它们确实割裂了普通开发人员对行业的认知. 新手急于跳槽, “得学那个东西(跨平台)”, 这将是他们进入IT行业的单程票, 但后来却失望了. 老手们还在坚持使用那些经过时间考验的东西(C++, Java, 以及后来的 Swift, Kotlin), 但他们常常发现, 由于这样或那样的原因, 他们很难在不断摇摆不定的市场中立足.
尤其是, 摇摆不定.
是AI, 还是其他原因?
似乎随着 GenAI 的到来, 关于移动开发的讨论已经酝酿成型.
然而, 移动开发的第一块多米诺骨牌倒在了 2017 年, 当时剑桥分析的宝贝竟然是从 Facebook 的壁橱里走出来的.
西方世界的民主理念与隐私紧密相连. 未经同意追踪用户成了至今不被承认的罪过. 剑桥分析丑闻引发了政府在全球范围内对大型科技公司的攻击.
Facebook就是最直接的受害者. 谷歌作为智能手机市场最大的利益相关者, 同时也是全球著名的雇主和政府服务提供商(GCP, 谷歌教育等), 成功地争取到了时间. 为了遵守规定, 谷歌对其广告产品和货币化 SDK 进行了多次修改. 安卓开发者的收入来源主要是广告, 他们不得不拖着不做, 否则就会失去市场.
苹果公司站在隐私保护的制高点上, 选择成为手握大棒的人, 将广告追踪的权力交到用户手中. Facebook 成为此举的最大受害者. 为了支持这一立场, 苹果开始将其备受推崇的订阅模式奉为应用开发的黄金标准. 2020 年是苹果开始改进其备受诟病的订阅 API 支持的第一年.
隐私合规对移动开发行业的冲击是前所未有的. 独立开发者受到的冲击最大, 但公司级的开发也放慢了脚步. 开发人员本可用于创建新框架的时间开始被浪费在与支持和法律专业人士进行无休止的问答, 快速修复以及与企业主进行无用的讨论上.
与此同时, 无代码也在兴起. 虽然它的成功还远未得到验证, 但它已成为管理讨论中的一个主要观点, 并成为主流开发的有力竞争者.
一些小型开发公司选择转向无代码/网页产品开发上. 大公司不再在移动交付方面冒大的风险. 预算不再流向开源项目. 维护商店评级成了新的焦点, 为此, 预先开发的功能大多已经足够了.
“不要破坏已有的工作. 不要冒险去创造什么了不起的东西, 因为我们不知道什么叫了不起."成了新的口头禅.
移动开发人员无法应对这种对他们有利的转变. 为什么? 这就引出了我们的下一个问题.
移动开发者的真正力量在哪里?
这要看什么是优秀移动开发者的真正定义.
优秀开发人员的标准定义(“设计师, 编码员, 测试员”)并不能完全定义优秀的移动开发人员.
关于“怎样才能成为一名优秀的移动开发人员”, 人们几乎没有达成共识. 移动开发技能与网页开发技能几乎没有区别.
一个优秀的移动应用应该更多地与UE和UI有关, 还 应该与智能手机传感器的巧妙使用有关. 优秀开发人员的标准定义(“程序设计师, 编码员, 测试员”)并不能完全定义优秀的移动开发人员. 一个人首先必须是一名优秀的开发人员, 但还不止于这些.
绑定(UI + 数据库 + API)必须弄清楚. 必须选择在架构上最合适的. MVC 是否足够? 还是需要ViewModel? Coordinator等顽固模式呢?
设计的坏处在于没有经过验证的验证器. 衡量一个好设计的唯一指标是, 未来的开发人员是否能在其能力和主动性的基础上进行改进.
说到移动开发, 还必须掌握硬件集成的工作流程. 例如, 蓝牙, 加速计, 光传感器, 陀螺仪等. 这正是嵌入式工程师的优势所在. 金融技术(苹果和谷歌支付)增加了另一个维度: NFC.
虽然成功集成所有这些功能需要付出大量的精力和时间, 但从管理/领导的角度来看, 它们只是具有相同即插即用接口的简单盒子. 尽管 “Mobile First”的口号已经深入人心, 个人体验也越来越丰富, 但在公司的 IT 战略中, 移动仍然 只是一个辅助出口.
一个像样的移动应用代码库需要一个专门的架构师, 但小型团队很少有这样的人. 即使是大公司的团队也会因为平台分散而在此方面偷工减料.
只有大公司才有能力开发可重复使用的库和框架. 中小型公司的团队没有护城河, 无法证明在平台巨头随时可能破坏任何东西的情况下, 他们的长期努力是有道理的.
与网络不同的是, 网络上的伟大感知来自于个人创作者, 而移动应用的伟大则是由平台决定的: 苹果和谷歌. 《人机界面指南》和《材料设计》标准引导着业界的期望.
然而, 在大多数情况下, 这些标准仍未得到充分展示. 这是因为定义优秀应用的标准是在没有此类范例的情况下制定的. 它们的示例大多是开发人员必须在此基础上构建的简易版.
这种设计是一种简化主义, 阻碍了许多可能的创新, 只有那些获得平台奖励(安卓和苹果编辑选择的舞台)的创新才会不断被复制.
超越标准的杰出移动体验只是一个例外(设计师在其中同样发挥着重要作用). 规则就是要萧规曹随, 即使是最杰出的移动开发者也不得不这样做.
如果一个独立移动开发者向世界展示了他/她能为这些平庸的平台带来惊喜, 那么这些平台就会刺探他/她的作品, 并将其打上自己的烙印.
总结一下
AI(特别是 GenAI)正在吸走其他各个部门的资金. Manager们想证明自己没有错过潮流,即使他们知道这只是错失良机的焦虑。.
在移动端大语言模型成为现实之前, 移动开发人员几乎不可能再次大放异彩. 在那里, 他们将不得不与数据科学家分享荣耀.
当形势一片大好时, 所有开发人员都会有机地成长为镇上最大的赢家. 当经济不景气时, 有能力的开发人员会通过创建框架, 库和可重复使用的组件来倍增他们的影响力. 中低技能的开发人员受到顶级开发人员的启发, 开始提升自己的技能. 当他们再也找不到这条路时, 他们就会转换领域. 他们离开狭窄的溪流(移动开发), 开始在海洋中游泳, 模式如下:
同一平台的所有设备(Mac, Vision pro) => 跨平台(iOS + Android) => 网页开发(+web).
当情况变得更糟时, 大多数水手都会下船. 船长会留下来. 但当海盗占据上风时, 船长们也会被屠杀. 如果船还算幸运, 海盗们将会考虑重建.
入门级开发人员或来自边缘领域的开发人员就是这些海盗. 他们受雇充当临时工, 让这艘船保持漂浮, 直到老手重新发现它.
这就是今天移动开发的现状. 它还没有被毁灭. 也永远不会. 中级入门级开发人员将移动开发保持在 2015 年的水平.
这些人热衷于通过构建组合应用来炫耀自己的技能, 他们不想购买域名/托管服务, 并且对 500 多个 NPM/Yarn 软件包望而却步.
这些新手能否夺回平台? 更重要的是, 他们能找到值得热爱的创作领域吗? 唯一的办法就是超越单纯的软件开发, 成为硬件 + 设计的大师.
在AI重塑每个人期望的时代, 这种可能性并不存在.
一家之言, 欢迎拍砖!
Happy Coding! Stay GOLDEN!
来源:juejin.cn/post/7410989416866955291
作为技术Leader如何带散一个团队
大家好,我是程序员凌览。
这个话题本身就很有趣——如何有效地带散一个团队,精选了两位网友的回答让我们一起来看看。
第一位网友的回答
1938年10月14日,毛泽东谈了如何把团队带好。你反着来,肯定能把团队带散。
毛泽东说,要带好团队,必须善于爱护干部。爱护的办法是:
“第一,指导他们。这就是让他们放手工作,使他们敢于负责;同时,又适时地给以指示,使他们能在党的政治路线下发挥其创造性。”
你反着来,你就处处摆你下属的谱,不管自己会不会,都要装着自己会的样子。同时要求团队的人不能有任何主观能动性,什么事都要跟你汇报。谁敢改变你的任何看法,就处理谁。说一不二。
“第二,提高他们。这就是给以学习的机会,教育他们,使他们在理论上在工作能力上提高一步。”
你反着来,不要给他们任何学习机会,也不进行任何业务培训,绝不多花一分钱在他们的学习上,因为学好了,他们就跳槽了,这不是浪费吗?
“第三,检查他们的工作,帮助他们总结经验,发扬成绩,纠正错误。有委托而无检查,及至犯了严重的错误,方才加以注意,不是爱护干部的办法。”
你反着来,平时不管不顾,听之任之,一旦发生了问题,就把犯错误的人骂得狗血喷头。该扣工资的扣工资,该开除的开除。谁让你们自己要犯错呢。
“第四,对于犯错误的干部,一般地应采取说服的方法,帮助他们改正错误。只有对犯了严重错误而又不接受指导的人们,才应当采取斗争的方法。在这里,耐心是必要的;轻易地给人们戴上‘机会主义’的大帽子,轻易地采用‘开展斗争’的方法,是不对的。”
你反着来,犯了错误就扣帽子,就人身攻击,就骂人家蠢,“这点事都能搞砸,你干什么吃的。”
“第五,照顾他们的困难。干部有疾病、生活、家庭等项困难问题者,必须在可能限度内用心给以照顾。”
你反着来,生病的只要没有三甲医院医生开的证明,就不能请假,家里有事的,能克服也要克服,不能克服的也要克服,遇到重要的工作,即使孕妇要生孩子,也要她晚几天生,工作重要。
你要这么干下去,你团队不散,你就去法院告我。
本文来源:《毛泽东选集》第二卷文章《中国共产党在民族战争中的地位》(1938年10月14日)
第二位网友的回答
1、开会!
早会,汇报会,进度会,总结会,推进会复盘会,总之不要闲着。
不管什么会,在中午吃饭前,下午下班前开! 晚上回家后再整个线上会议就可着吃饭点,线上会议还要开摄像头,效果满分!
2、做表
统计表,进度表,复盘报告,问题报告,项目总结。
不管什么事,就一句话先做张表给我,要抓重点,也能看出细节,同时手上事情不能停!
效果最好的就是同样的内容用不同的模板来做,还要突出不一样的重点!
3、打官腔
维度,抓手,组合拳,底层逻辑,赛道,载体。
总之就是不说人话! 这个不好总结举个例子
项目管理底层逻辑是打通信息屏障,创建项目新生态,顶层实际是聚焦用户感知赛道,通过差异化和颗粒度达到引爆点,交付价值是在采用复用打法达成持久受益,抽离透传归因分析作为抓手为产品赋能,体验度量作为闭环的评判标准,亮点为载体,优势为链路,思考整个项目生命周期,完善逻辑考虑资源倾斜,是组合拳,最终达到平台标准化
4、吃饼
薪资翻倍,奖金十万,三年买房。
激励政策一发放,人人都打鸡血,月中发政策大家努力来不及。
次月大家拼命干,公司一看卧槽要给这么多奖金?老板签批,同意发放但不是现在。然后就没有然后了。
5、突发情况。
项目重大问题,大老板要审查,明天xxx要看项目进度。
别管在干嘛,吃饭?睡觉?OOXX? 也别管几点钟,就一句话,赶紧把ppt做好,明天要。赶紧去客户现场安抚客户。
这种事情越多效果越好。
6、团建
团建这个就有讲究了。
一定要选在节假日,周末随便选一天,三天选中间,五天搞长点,七天去外地。
胡吃海喝肯定达不到效果,所以什么马拉松?爬山?参观什么展览?等等等。 形式不限重点是时间。
比如十一放假,10.2早上出发去XXX,下午布置场地,10.3早上跑个十几二十公里健身,跑完开个会做个动员,下午统一服装去xxx观光。10.4上午大合照,下午回家。
我补充一下
1、制度、制度、制度
别管是什么日常琐事,一率立制度。从工作流程到个人习惯,如用餐和使用洗手间。不是在立制度就是在立制度的路上。
2、Pua
Pua的P要懂的12种不同的写法。做错就扣帽子,就人身攻击,就骂人家蠢;做对就打压,就贬低,就泼冷水。
3、日报、周报、月报、双周报、季度报等等
日报、周报、月报、双周报、季度报等等必不可少,要求写个四五千字的。至于我作为领导看不看报告?那我当然看的啦,你管我啥时候看呢
来源:juejin.cn/post/7410710728783413299
我用这10招,能减少了80%的BUG
前言
对于大部分程序员来说,主要的工作时间是在开发和修复BUG。
有可能修改了一个BUG,会导致几个新BUG的产生,不断循环。
那么,有没有办法能够减少BUG,保证代码质量,提升工作效率?
答案是肯定的。
如果能做到,我们多出来的时间,多摸点鱼,做点自己喜欢的事情,不香吗?
这篇文章跟大家一起聊聊减少代码BUG的10个小技巧,希望对你会有所帮助。
1 找个好用的开发工具
在日常工作中,找一款好用的开发工具,对于开发人员来说非常重要。
不光可以提升开发效率,更重要的是它可以帮助我们减少BUG。
有些好的开发工具,比如:idea
中,对于包没有引入,会在相关的类上面标红
。
并且idea还有自动补全
的功能,可以有效减少我们在日常开发的过程中,有些单词手动输入的时候敲错的情况发生。
2 引入Findbugs插件
Findbugs是一款Java静态代码分析工具,它专注于寻找真正的缺陷或者潜在的性能问题,它可以帮助java工程师提高代码质量以及排除隐含的缺陷。
Findbugs运用Apache BCEL 库分析类文件,而不是源代码,将字节码与一组缺陷模式进行对比以发现可能的问题。
可以直接在idea中安装FindBugs插件:
之后可以选择分析哪些代码:
分析结果:
点击对应的问题项,可以找到具体的代码行,进行修复。
Findbugs的检测器已增至300多条,被分为不同的类型,常见的类型如下:
- Correctness:这种归类下的问题在某种情况下会导致bug,比如错误的强制类型转换等。
- Bad practice:这种类别下的代码违反了公认的最佳实践标准,比如某个类实现了equals方法但未实现hashCode方法等。
- Multithreaded correctness:关注于同步和多线程问题。
- Performance:潜在的性能问题。
- Security:安全相关。
- Dodgy:Findbugs团队认为该类型下的问题代码导致bug的可能性很高。
3 引入CheckStyle插件
CheckStyle作为检验代码规范的插件,除了可以使用配置默认给定的开发规范,如Sun、Google的开发规范之外,还可以使用像阿里的开发规范的插件。
目前国内用的比较多的是阿里的代码开发规范,我们可以直接通过idea下载插件:
如果想检测某个文件:
可以看到结果:
阿里巴巴规约扫描包括:
- OOP规约
- 并发处理
- 控制语句
- 命名规约
- 常量定义
- 注释规范
Alibaba Java Coding Guidelines 专注于Java代码规范,目的是让开发者更加方便、快速规范代码格式。
该插件在扫描代码后,将不符合规约的代码按 Blocker、Critical、Major 三个等级显示出来,并且大部分可以自动修复。
它还基于Inspection机制提供了实时检测功能,编写代码的同时也能快速发现问题。
4 用SonarQube扫描代码
SonarQube是一种自动代码审查工具,用于检测代码中的错误,漏洞和代码格式上的问题。
它可以与用户现有的工作流程集成,以实现跨项目分支和提取请求的连续代码检查,同时也提供了可视化的管理页面,用于查看检测出的结果。
SonarQube通过配置的代码分析规则,从可靠性、安全性、可维护性、覆盖率、重复率等方面分析项目,风险等级从A~E划分为5个等级;
同时,SonarQube可以集成pmd、findbugs、checkstyle等插件来扩展使用其他规则来检验代码质量。
一般推荐它跟Jenkins集成,做成每天定时扫描项目中test分支中的代码问题。
5 用Fortify扫描代码
Fortify 是一款广泛使用的静态应用程序安全测试(SAST)工具。
它具有代码扫描、漏斗扫描和渗透测试等功能。它的设计目的是有效地检测和定位源代码中的漏洞。
它能帮助开发人员识别和修复代码中的安全漏洞。
Fortify的主要功能:
- 静态代码分析:它会对源代码进行静态分析,找出可能导致安全漏洞的代码片段。它能识别多种类型的安全漏洞,如 SQL 注入、跨站脚本(XSS)、缓冲区溢出等。
- 数据流分析:它不仅分析单个代码文件,还跟踪应用程序的数据流。这有助于找到更复杂的漏洞,如未经验证的用户输入在应用程序中的传播路径。
- 漏洞修复建议:发现潜在的安全漏洞时,它会为开发人员提供修复建议。
- 集成支持:它可以与多种持续集成(CI)工具(如 Jenkins)和应用生命周期管理(ALM)工具(如 Jira)集成,实现自动化的代码扫描和漏洞跟踪。
- 报告和度量:它提供了丰富的报告功能,帮助团队了解项目的安全状况和漏洞趋势。
使用Fortify扫描代码的结果:
一般推荐它跟Jenkins集成,定期扫描项目中test分支中的代码安全问题。
6 写单元测试
有些小伙伴可能会问:写单元测试可以减少代码的BUG?
答案是肯定的。
我之前有同事,使用的测试驱动开发模式,开发一个功能模块之前,先把单元测试写好,然后再真正的开发业务代码。
后面发现他写的代码速度很快,而且代码质量很高,是一个开发牛人。
如果你后期要做系统的代码重构,你只是重写了相关的业务代码,但业务逻辑并没有修改。
这时,因为有了之前写好的单位测试,你会发现测试起来非常方便。
可以帮你减少很多BUG。
7 功能自测
功能自测,是程序员的基本要求。
但有些程序员自测之后,BUG还是比较多,而有些程序员自测之后,BUG非常少,这是什么原因呢?
可能有些人比较粗心,有些人比较细心。
其实更重要的是测试的策略。
有些人喜欢把所有相关的功能都开发完,然后一起测试。
这种情况下,相当于一个黑盒测试,需要花费大量的时间,梳理业务逻辑才能测试完整,大部分情况下,开发人员是没法测试完整的,可能会有很多bug测试不出来。
这种做法是没有经过单元测试,直接进行了集成测试。
看似节省了很多单元测试的时间,但其实后面修复BUG的时间可能会花费更多。
比较推荐的自测方式是:一步一个脚印。
比如:你写了一个工具类的一个方法,就测试一下。如果这个方法中,调用了另外一个关键方法,我们可以先测试一下这个关键方法。
这样可以写出BUG更少的代码。
最近就业形式比较困难,为了感谢各位小伙伴对苏三一直以来的支持,我特地创建了一些工作内推群, 看看能不能帮助到大家。你可以在群里发布招聘信息,也可以内推工作,也可以在群里投递简历找工作,也可以在群里交流面试或者工作的话题。
8 自动化测试
有些公司引入了自动化测试的功能。
每天都会自动测试,保证系统的核心流程没有问题。
因为我们的日常开发中,经常需要调整核心流程的代码。
不可能每调整一次,都需要把所有的核心流程都测试一遍吧,这样会浪费大量的时间,而且也容易遗漏一些细节。
如果引入了自动化测试的功能,可以帮助我们把核心流程都测试一下。
避免代码重构,或者修改核心流程,测试时间不够,或者测试不完全的尴尬。
自动化测试,可以有效的减少核心流程调整,或者代码重构中的BUG。
9 代码review
很多公司都有代码review机制。
我之前也参与多次代码review的会议,发现代码review确实可以找出很多BUG。
比如:一些代码的逻辑错误,语法的问题,不规范的命名等。
这样问题通过组内的代码review一般可以检查出来。
有些国外的大厂,采用结对编程
的模式。
同一个组的两个人A和B一起开发,开发完之后,A reivew B的代码,同时B review A的代码。
因为同组的A和B对项目比较熟,对对方开发的功能更有了解,可以快速找出对外代码中的一些问题。
能够有效减少一些BUG。
10 多看别人的踩坑分享
如果你想减少日常工作中的代码BUG,或者线上事故,少犯错,少踩坑。
经常看别人真实的踩坑分享,是一个非常不错的选择,可以学到一些别人的工作经验,帮助你少走很多弯路。
最后说一句,本文总结了10种减少代码BUG的小技巧,但我们要根据实际情况选择使用,并非所有的场景都适合。
来源:juejin.cn/post/7359083483237859367
了解这四个心理陷阱,让你摆脱心理上的“贫穷”
背景
Hi 你好,我是东东拿铁,一个正在探索个人IP的后端程序员。
我发现自己的经济情况正在处于一个紧张的状态。上个月的信用卡需要还款8600块钱,仔细看了下账单,分期支付的却有3000多,占比将近4成,这很可怕。
明明我已经每个月都尽量的省吃俭用,克制消费,但看到月底还款金额仍然居高不下,便会不由自主的有一些焦虑的情绪,甚至影响到日常的消费。
比如消耗更多精力去克制自己买想要东西的欲望,消费时去对比不同渠道的价格,变得对价格更加敏感。
我意识到我陷入到了“稀缺”的情绪中,并且这个情绪总是出现,并且影响着我做事的思路和方式。我想摆脱它,因为我们有很多重要的事情等着我去做,比如去看书学习更多的东西,又或者持续输出写下一篇篇文章。
上周看了《稀缺》这本书,罗振宇评价说:“我们的肉身刚步入富足的时代,但我们的精神还滞留在稀缺的恐惧之中。穷人思维,根植于人类的基因。率先用理性击碎它的人,也将率先获得心与灵的富足。”
我已经陷入了金钱稀缺的状态,这是是因为之前的各类分期导致的。那么稀缺是什么,它是如何影响我们的,又该如何摆脱它?
看完这篇文章,相信你会有答案。
稀缺
什么是稀缺
先说第一点,什么是稀缺?稀缺是长期缺乏,而导致的一种稀缺心态,是“拥有”少与“需要”的感觉。
- 我们觉着积蓄太少,我们需要更好的房、车,永远都有还不完的账单
- 我们觉着时间太少,我们需要时间旅游、健身、陪伴家人
- 我们觉着精力太少,我们需要关注工作、关注个人成长 、关注国家大事
举个例子,老板给你安排了一项周五要完成的任务,然而到了周四还没有做完,这时候你会变的心急如焚,这是你就会全神贯注的地开始工作,相比于其他事情,你会优先处理这项紧急任务,只关注手头的工作,这就是进入到了一种稀缺状态。
幸运的是,稀缺带给你了专注红利,让你你在老板问你进度之前,完成了工作并顺利交差,你长舒一口气。就像开学前最后一天写完了暑假作业,像毕业设计答辩前终于写完了论文一般,这种场景似乎已经经历了很多次。
专注红利:就是短时间内集中精力爆发出高度的注意力,让我们高产出地工作,我们会在专注红利的帮助下把剩下的资源用得淋漓尽致。
话又说回来,虽然这样的专注在短时间内能够带来好处,但如果长时间处于稀缺心态中,并不是什么好事。它会把一个人拖向“贫穷”,进入一个匮乏的恶性循环。要理解这个循环,我们需要看看稀缺会对我们产生什么样的影响。
管窥
第一种叫做管窥效应。管窥就好像你通过一根管子看东西,这时你只能看到管子里面的东西,而管子外面的什么都看不见。中国有句成语:一叶障目,不见泰山。
管窥效应会改变我们的决策方式,举个例子,程序员日常的工作很忙碌,不但要写代码、改bug,还要参加需求评审的各种各样的会议。我们平常都会在工作疲惫的时候,选择站起来走做,接杯水,活动一下身体。但是在忙碌的时候,就会觉着喝水、 散步也没有这么重要了,赶紧把手头的工作做完吧,半天不喝水,一坐一整天似乎也没什么关系。(你多久没有起来活动活动身体了?)
我们虽然都知道,久坐在电脑前,对颈椎、眼睛的伤害很大,工作一个小时我们至少要起来活动五分钟,眼睛远眺一下。长远来看,你很明显知道对身体的投资是重要的,但是你在稀缺状态下,你就会做出损害长期价值的决定。
这是一段我自己很真实的经历,在上家公司时我接到了一个比较大的项目,面临新入职和换语言的情况,项目的排期显得尤其紧张,那段时间我几乎白天不怎么站起来活动,即使是在眼睛干涩的情况下,我也不得不写下一行行代码,改一个个难以排查的bug。
我的眼睛很早之前做过激光手术,其实并不适合一直盯着电脑工作。但那段时间在高压的工作环境下,最终项目上线了,却对眼睛造成了很大的伤害。
借用
再说稀缺导致的第二种影响,是借用。借用非常好理解,就是习惯性地透支未来的资源。
比如说,开头提到的我的情况,信用卡。我通过信用卡分期来解决之前遇到的现金问题,但造成影响却是长期的。每次收到工资,我就需要去还房贷、信用卡等一系列的债务。
这时候,如果我的一个同学或者朋友需要结婚,我需要给他们包一个大红包,那这个月就会更加紧张。而且银行不当人,每个月在账单出来之后,都会打电话问是否需要办理分期。
我们说到的借用,其实不止是钱。忙碌的时候,我们忙碌时也会对时间做借用。比如说,这周的工作没做完,我们就放到下一周。但下一周会有下一周的工作,所以我们会长期处于一种稀缺状态里。
再比如说,白天繁忙的工作让我们缺少娱乐时间,这时候我们就会选择熬夜。但熬夜会导致第二天的工作效率更低,结果我们的工作时间可能会更长。
没有余闲
稀缺导致的第三个影响是没有余闲,余闲就是我们剩余下来的,没有利用的时间和空间。
举一个例子,之前在外地工作的时候,假期结束前,总会带不少东西回北京,临走之前,我会把所有需要装的东西放进去,比如鞋、衣服、数码装备,甚至是一些吃吃喝喝。如果我这次用一个大的箱子,那么装完必须的用品之后,我们可能还会发现有很多剩余的空间。我们就可以放进去一些不那么需要的东西,比如珍藏的几本小说,甚至是一些下个季度才需要穿的衣物。在这个过程中,我们的心情会非常舒畅,有极大的”富裕感“。
但是,如果我们只有一个背包,那就不能像刚刚那样舒服了。我们需要开始权衡和比较:鞋子到底带哪一双?换洗的衣服要带多少?游戏机和书本要不要带呢?为了保证空间的使用,我们甚至需要我妈把里面的东西全部拿出来,通过分门别类的方式再塞回去。这样反反复复地收拾几次,直到包变的满满当当。
也许你会说,这样是不是更高效呀?毕竟我们用一个并不大的背包装完了所有需要的行李。从某种角度上来说是这样的,但是在这个过程中,我耗费了大量的精力和时间,去权衡一些无关紧要的东西。这种思维看起来很高效,但会让人产生大量的心智负担。这些心智负担会消耗注意力和精力,从而进一步产生管窥效应,只让你注重当前的事情,而忽略真正重要的事情。
带宽不足
稀缺导致的第四个影响,也是我认为最重要的一个点,那就是带宽不足。这里的带宽,指的是我们的认知能力和执行控制力。
我们从处理日常问题到思考问题都需要带宽,但是我们一般最多只能关注七件事。比如日常使用的APP不会超过七个,经常交往的联系人也不会超过七个。“七”通常是人类认知所能承受的一个临界点。超过这个数字,一个人就会产生严重的带宽负担,这个时候就会感觉精力不够用。
如果说在物质不够丰富的时代,养家糊口让人的带宽降低。可目前科技、社会发展这么快,我们这一代年轻人,需要考虑的事情也变得越来越多,比如,工作的压力,结婚,房车,再到各种风口什么小红书、AI、国家政策。
我们或许不贫穷了,但是我们的带宽一样被占的很满。
作者在书中提到了一个实验,实验者进行了两次测试,让被测试者去做测试题。
第一次测试,让他们什么都不想的去做测试题。第二次测试,提前对他们进行诱导,让他们思考自己的经济状况和他们关注自己缺乏的东西。这两组测试结果显示,第一组的分数要高很多,基本上是第二组的两倍,表明带宽会影响我们的智力水平。
比如说,不少年轻人喜欢熬夜(我也是),晚上睡不好,白天可能就会进入一种游离迟钝的状态。遇到难题的时候,选择去去抽烟喝酒,然后让自己陷入更大的问题中。其实绝大部分人缺的不是时间,而是带宽。
你有多长时间没有做一份自己的长期规划了?最近有学习什么新的技能吗?有去定期投资、理财吗?你需要更多的注意力放在长远的事情上,这样才能最终跳出稀缺的怪圈。
跳出稀缺陷阱
我们要明白稀缺并非个人特质,而是自身创造的环境条件所引发的结果,而这些条件是可以进行管理的。我们越是深入了解稀缺在大脑中的发展历程,就越有可能找到办法去避免稀缺陷阱,或至少去减轻稀缺陷阱的影响程度。
节约带宽
如何节约带宽?这里介绍几个我在生活中亲身实践并感觉有所收益的方式。
减少决策
马克·扎克伯格的标志性穿衣风格是灰色T恤和拉链连帽衫。
他这样的穿衣风格主要是为了节省时间,避免每天早上花费时间选择衣服。他曾经在接受采访时表示,他希望生活尽可能简单,减少不必要的决策,以便将更多的精力集中在重要的事情上。
我的穿衣风格都是休闲类,所以没有太大的选择空间,鞋子的话空军一号有两双且都是白色,买新衣服和新鞋我也会尽量从已有的风格里去挑选,这样无论是买东西还是日常穿衣,都不需要做太多决策。
减少信息过载
控制社交媒体和新闻资讯的浏览时间,过多的信息会占据我们的大脑,消耗带宽。我个人实践比较有效的方式是手机上卸载抖音,但是在iPad保留,想刷的话只能等下班孩子睡了再刷一会。这样白天即使是碎片时间也不会被浪费,其余时间专注于其他事情。
关闭大部分APP通知,屏蔽不重要的群。目前我的手机通知开启的APP大概只有银行类、微信、短信等的通知。微信里面不重要的微信群都会屏蔽掉,甚至是工作群,如果实在怕错过信息,微信群可以设置特别关注的用户,这样也能帮你过滤掉大部分信息。
缓解压力
定期进行体育锻炼,不开心的事情,和朋友们交流,可以减轻心理压力,释放带宽。
有一些心里的事情,也可以通过文字的方式记录下来,比如我很多想说的话就会通过写作的方式写下来,分享出来,心里的带宽也就释放了。
留有余闲
在金钱上,再没有钱,也要留出一小部分来投资、储蓄,投资也可以是投资自己。定期储蓄如果你总是忘记,银行的APP都提供了自动储蓄的功能,每当发工资就自动把一部分钱自动存起来。
其实现在的公积金、五险一金也是同理,自动帮我们对未来进行储蓄,让忽视变成默许。
在时间上,当天的工作当天完成,未来还有未来的事情要做。
这里分享一个小技巧,之前在字节工作的时候,如果你的日历上面没有日程的话,很容易就会被别人约会或者约面试。你可以在需要余闲的时间,自己给自己约一个2个小时的会议,这段时间就可以确保不会有人来打扰你。
设置提醒
现在的打工人,都会因为工作的繁忙,白天一坐一整天,甚至连喝水的时间都没有,直到体检时候颈椎生理曲度变直,发现有肾结石才开始重视身体。
晚上不停的熬夜,10点钟打开抖音,回过神来时已经凌晨1点,第二天上班昏昏欲睡才懊悔不已。
善用提醒, 比如类似Eye Monitor的监控工具,可以监控你使用电脑的时常,在你疲劳的时候提醒你,或者给自己配一个智能手表,久坐时给予提示。
手机上设置睡眠时间,短视频上设置休息时间,那么过了那个时间,就会不断的提醒你,该睡觉了。
本质上提醒就是让你从管窥的视角中拽出来,让更多重要的事情进入到你的视角里,让你无法忽视那些更重要的事情。
说在最后
好了,文章到这里就要结束了,感谢你能看到最后。
总结一下,稀缺是一种心态,短暂的稀缺有一定好处,会让我们产生专注红利,但是长期的稀缺,这种稀缺心态就会掉进稀缺的陷阱里。让我们产生管窥效应,就是只关注紧急的东西,而忽视重要的东西。它会让我们没有余闲,让自己的工作、生活缺乏弹性;而且它会让我们容易借用,去透支未来的资源;它还会减少我们的带宽,增加做出错误决定的几率,最终让我们进入一个稀缺怪圈的恶性循环。
如果想跳出这个怪圈,方法有三个:一是节约带宽,减少权衡式的思维;二是留有余闲,让自己的效率更高;三是设置提醒,让重要的事情及时出现在视野当中。
来源:juejin.cn/post/7410220431821111296