工作7年了,才明白技术的本质不过是工具而已,那么未来的方向在哪里?
前言
Hi 你好,我是东东拿铁,一个正在探索个人IP&副业的后端程序员。
五一过去了,不知道大家有没有好好的放松自己呢?愉快的假期总是这么短暂,打工人重新回到自己的岗位。
我目前工作7年了,这几年来埋头苦干,学习了很多技术,做了不少系统,也解决过不少线上问题。自己虽然在探寻个人IP与副业,自己花了很多时间去思考技术之外的路该怎么走。但转念一想,我宁愿花这么多时间去探索技术之外的路线,但是却从没好好静下来想一下技术本身。
技术到底是什么,你我所处的技术行业为什么会存在,未来的机会在哪里。
因此,我结合自己的工作经历,希望和大家一起聊聊,技术的本质与未来的方向,到底在哪里,才疏学浅,如果内容有误还希望你在评论区指正。
背景
行业现状
互联网行业发展放缓,进入调整阶段,具体表现为市场需求、用户规模、营收利润、创新活力等方面的放缓或下降。
一些曾经风光无限的互联网公司也遭遇了业绩下滑、股价暴跌、裁员潮等困境,你是不是也曾听过互联网的寒冬已至的言论?
其实互联网本身,并没有衰败或消亡,而是因为互联网高速发展的时代过去了。
- 中国经济增速放缓、消费升级趋势减弱、人口红利消失等因素的影响,中国互联网市场的需求增长趋于饱和或下降。
- 用户规模停滞,智能手机普及率饱和,互联网用户规模增长趋于停滞,由增量市场变为存量市场,互联网获客成本越来越高。
- 监管政策收紧,互联网行业规范和监管愈加严格,更加注重合规,因此互联网行业也会收到影响。
供需环境
供需环境变化,应届生要求越来越高,更加注重学历。
社招更是看中学历的同时,开始限制年龄。招聘更看重项目经验,业务经验。五年前,你只要做过一些项目,哪怕不是实际使用的,也很容易拿到offer。而现在企业在看中技术能力的同时,还会关注候选人对与行业的理解,以及以往的工作经验。
技术的本质
先说结论,技术的本质是工具。 我把过去几年的认知变化分成了四个阶段,给大家展示一下我对于技术的认知成长过程。
第一阶段
技术就是应用各类前沿的框架、中间件。
刚毕业时,我就职于一家传统信息企业。谈不上所谓的架构,只需要Spring、Mysql就构建起了我们的所有技术栈。当然,微服务框架更不可能,Redis、MQ在系统中都没使用到。
此时互联网企业已经开始快速发展,抖音诞生区区不过一年。
一线城市的互联网公司,都已经开始使用上了SpringBoot、微服务,还有各类我没有听说过的中间件。
工作环境的闭塞,让我对各类技术有着无限憧憬,因为很多当下难以解决的问题,应用一些新技术、新架构,就能立刻对很多难题降维打击。
举个例子,如果你使用本地缓存,那么集群部署时,你一定要考虑集群的缓存一致性问题,可这个问题如果用上分布式缓存Redis,那么一致性问题迎刃而解。
所以那个时候的我认为,技术就是应用各类中间件,只要用上这些中间件、框架,我就已经走在了技术的前沿。
第二阶段
技术对我而言就是互联网。
半年后,我摆脱传统行业,来到了一个小型互联网公司,用上了不少在我眼中的新技术。
但任何新技术,如果只停留在表面,那么对于使用者来说,就是几个API,几行代码,你很快就会感到厌倦,发现问题也会焦虑,因为不清楚原理,问题就无从排查。
很快,所谓的“新技术”,就不能给我带来成就感了。我开始羡慕那些互联网行业APP,无时无刻都在畅想着,如果我做的产品能够被大家看到并应用,那该是多么有意思的一件事情。
于是我又认为,技术就是做那些被人看见、被人应用的网站、APP。
第三阶段
技术就是高并发、大流量、大数据。
当自己真正负责了某一个APP的后端研发后,很多技术都有机会应用,也能够在AppStore下载自己的APP了,没事刷一刷,看到某一个信息是通过我自己写的代码展示出去,又满足了第二阶段的目标了。
那么我接下来追求的变成了,让更多的人使用我做的产品,起码让我的亲人、朋友也能看到我做的东西。
当然,随之而来的就是日益增长的数据规模和大流量,这些无时无刻都在挑战系统的性能,如何去解决这些问题,成为了我很长一段时间的工作主线。
应对高并发、大流量,我们需要对系统作出各种极致性能的优化。
为了性能优化,还需要了解更多的底层原理,才能在遇到问题时有一个合理的解决方案。
所以,我认为技术就是高并发、大数据,做好这些,才算做好了技术。
第四阶段
经过了传统企业,到互联网公司,再到互联网大厂的一番经历,让我发现技术的本质就是工具,在不同阶段,去解决不同的问题。
在第一阶段,技术解决了各类行业的数据信息化问题,借助各类中间件、架构把具体的需求落地。
在第二阶段、第三阶段,技术解决了业务的规模化问题,因为在互联网,流量迅猛增长,我需要去用技术解决规模化带来的各类的问题,做出性能优化。
当然,技术在其他领域也发挥着作用,比如AI&算法,给予了互联网工具“智能化”的可能,还有比如我们很难接触到的底层框架研发,也就是技术的“技术”,这些底层能力,帮助我们更好的发挥我们的技术能力。
未来机会
大厂仍是最好的选择
即使是在互联网增速放缓、内卷持续严重的今天,即使我选择从大厂离职,但我依然认为大厂是最好的选择。
为什么这么说,几个理由
- 大厂有着更前沿的技术能力,你可以随意选择最适合的工具去解决问题
- 大厂有着更大的数据、流量规模,你所做的工作,天然的就具备规模化的能力
- 大厂有先进的管理方法,你所接触的做事方法、目标管理可能让你疲倦,但工作方法大概率是行业内经过验证的,你不会走弯路,能让你有更快的进步速度
数字化转型
如果你在互联网行业,可能没有听说过这个词,因为在高速发展的互联网行业,本身就是数字驱动的,比如重视数据指标、AB实验等。但在二线、三线城市的计算机行业或者一些传统行业,数字化转型是很大的发展机会。
过去十年,传统行业做的普遍是信息化转型,也就是把线下,需要用纸、笔来完成工作的,转移到系统中。
那什么是数字化转型?
我用我自己的理解说一下,数字化转型就是业务流程精细化管理,数据驱动,实现降本增效。
我目前所在的公司的推进大方向之一,就是数字化转型。因为许多行业的数字化程度非常低,本质而言,就是把数字驱动的能力,带给传统企业,让传统企业也能感受到数字化带来的发展可能。
举个例子,比如一个餐饮系统数字化转型后,一方面可以把用户下单、餐厅接单、开始制作、出餐、上餐线上化,还可以和原材料供应系统打通,当有订单来时,自动检测餐饮的库存信息,库存不足及时提供预警,甚至可以作出订单预测,比如什么时间点,哪类餐品的点单量最高。
当然,数字化转型与互联网有着极大的不同,在互联网行业,你只需要坐在工位,等着产品提出需求就可以了。但是传统行业,你需要深入客户现场,实地查看业务流程,与用户交谈,才能真正的理解客户需求。
或许这样的工作并不炫酷,还需要出差,但在互联网行业饱和的今天,用技术去解决真实世界的问题,也不失为一个很好的选择。
AI&智能化
随着AI快速发展,各类智能化功能已经遍布了我们使用的各类APP,极客时间有了AI自动总结,懂车帝有了智能选车度搜索问题,有时候第一个也会是AI来给我们解答。
任何行业遇上AI都可以再做一遍。
抛开底层算法、模型不谈,但从使用者角度来说,最重要的是如何与行业、场景结合相使用。但是想要做好应用,需要你在行业有着比较深的沉淀,有较深的行业认知。
当然,智能化也不仅限于AI,像上面餐饮系统的例子,如果能够实现订单预测、自动库存管理,其实也是智能化的体现。
终身学习
技术能力
持续精进专业技术能力,相信大家对此都没有疑问。
对于日常使用到的技术,我们需要熟练掌握技术原理,积累使用经验,尤其是线上环境的问题处理经验。
第一个是基础。比如对集合类,并发包,IO/NIO,JVM,内存模型,泛型,异常,反射,等有深入了解,最好是看过源码了解底层的设计。
第二你需要有全面的互联网技术相关知识。从底层说起,你起码得深入了解mysql,redis,nginx,tomcat,rpc,jms等方面的知识。
第三就是编程能力,编程思想,算法能力,架构能力。
在这个过程中,打造自己的技能树,构建自己的技术体系。
对于不断冒出的新技术,我们一方面要了解清楚技术原理,也要了解新技术是为了解决什么问题,诞生于什么背景。
业务能力
前面说到技术是一种工具,解决的是现实世界的问题,如果我们希望更好的发挥技术的作用,那么就需要我们先掌握好业务领域。
互联网领域
如果你想要快速地入门互联网领域的业务,你可以使用AARRR漏斗模型来分析。
AARRR这5个字母分别代表 Acquisition、Activation、Retention、Revenue 和 Refer
五个英文单词,它们分别对应用户生命周期中的 5 个重要环节:获取(Acquisition)、激活(Activation)、留存(Retention)、收益(Revenue)和推荐(Refer)。
AARRR 模型的核心就是以用户为中心,以完整的用户生命周期为指导思想,分析用户在各个环节的行为和数据,以此来发现用户需求以及产品需要改进的地方。
举一个简单的例子,我们以一个互联网手游 LOL来举例:
获取就是用户通过广告、push等形式,了解到了游戏并注册或者登陆。
激活就是用户真正的开始游戏,比如开始了一场匹配。
留存就是用户在7天、30天内,登陆了几次,打了几把比赛,几天登陆一次,每日游戏时常又是多少。
收益,用户购买皮肤了,产生了收益。
推荐,用户邀请朋友,发送到微信群中,邀请了朋友一起开黑。
如果你所在的行业是C端产品,那么这个模型基本可以概括用户的生命周期全流程。
传统行业
传统行业没有比较通用的业务模型,如果想要入手,需要我们从以下三个角度去入手
- 这个行业的商业模式是什么,也就是靠什么赚钱的?比如售卖系统收费,收取服务费等
- 行业的规模如何?头部玩家有哪些?它们的模式有哪些特色?
- 这个行业的客户是谁、用户是谁?有哪些经典的作业场景?业务操作流程是什么样的?
如何获取到这些信息呢?有几种常见的形式
- 权威的行业研究报告,这个比较常见
- 直接关注头部玩家的官网、公众号、官媒
- 深入用户现场
我们以汽车行业来举例
商业模式:整车销售、二手车、汽车租赁等,细分一点,又有传统动力和新能源两种分类。
规模:如下图
头部车企:传统的四大车企一汽、东风、上汽、长安,新势力 特斯拉、蔚小理
经典场景:直接去4S店体验一下汽车销售模式、流程
说在最后
好了,文章到这里就要结束啦,我用我自己工作几年的不同阶段,给你介绍了我对于技术的本质是工具的思考过程,也浅浅的探寻了一下,未来的发展机会在哪里,以及我们应该如何提升自己,很感谢你能看到最后,希望对你有所帮助。
不知道你对于技术是怎么看的,又如何看待当下的市场环境呢?欢迎你在评论区和我分享,也希望你点赞、评论、收藏,让我知道对你有所收获,这对我来说很重要。也欢迎你加我的wx:Ldhrlhy10,一起交流。
本篇文章是第33篇原创文章,2024目标进度33/100,欢迎有趣的你关注我~
来源:juejin.cn/post/7365679089812553769
我在团队内部提倡禁用单元测试
先说结论:
在绝大部分的业务前端开发中,写单元测试的收益非常小,但是带来的维护成本却非常大,请不要再写单元测试感动自己,为难同事了。
现在很多单元测试的教程都是那种很简单的比如,测个 1+1=2,这需要测吗?下面这段代码已经出现过很多次了,纯纯的误导人。
const sum = (a,b) => a+b
it('1+1=2',()=> {
expect(sum(1,1)).toBe(2)
})
稍微上点复杂度,来写个组件的单测,比如一个用户信息展示组件,叫 UserInfoBlock,支持设置头像的大小,点击名字支持跳转到个人主页,组件代码大致长这样
interface UserInfoBlockProps {
name: string
size: 16 | 24
id: string
icon: string
}
export const UserInfoBlock:FC<UserInfoBlockProps> = (props) => {
const navigate = useNavigate()
return <div
class='xxxxxx'
style={{width: props.size}}
onClick={() => {navigate(`/user/${props.id}`)}}>
<img src={props.icon}/>
{props.name}
</div>
}
然后开始给组件写单测,先测头像大小的功能
import { UserInfoBlock, UserInfoBlockProps } from './user-info-block'
import { fireEvent, render, screen } from '@testing-library/react'
describe('UserInfoBlock 组件单测', () => {
const userInfo:UserInfoBlockProps = {
name: '张三',
icon:'https://xxx.png',
id:'abcd1234',
size: 16
}
const userInfoLarge:UserInfoBlockProps = {
name: '张三',
icon:'https://xxx.png',
id:'abcd1234',
size: 24
}
describe('展示默认头像大小', () => {
const component = render(<UserInfoBlock {...userInfo}/>)
it('img 标签的宽度为 16px', () => {
expect(screen.getByTag('img').style.width).toBe(16)
})
})
describe('展示large头像大小', () => {
const component = render(<UserInfoBlock {...userInfoLarge}/>)
it('img 标签的宽度为 24px', () => {
expect(screen.getByTag('img').style.width).toBe(24)
})
})
})
接下来测一下跳转,因为用了 react-router,所以在渲染组件的时候必须包裹一下 RouterProvider
...
describe('点击可以跳转', () => {
const component = render(<MemoryRouter>
<UserInfoBlock {...userInfoLarge}/>
</MemoryRouter>
)
fireEvent.click(component.div)
it('url 会变成 user/abcd1234', () => {
expect(location.pathname).toBe('user/abcd1234')
})
})
...
这个组件的测试就写完了,看起来挺有用,但实际没啥用。
首先这个测试的收益不高,因为这是一个很简单的组件,五分钟写完,但是写这个测试需要翻倍的时间,因为需要构造数据,之前没有经验不知道要加 MemoryRouter
,jest
测 location
对象不方便,还要 mock
一下。等把这一套搞完了才能跑通,这就好像你疯狂锻炼,练出麒麟臂,就是为了举自拍杆举的稳一点。如果组件内要发请求,要做的准备工作就更加多了。
其次,user/abcd1234
是什么,断言这个没用,因为别人改了链接,你的测试也一样会过,应该断言成功的打开了用户主页,比如断言一个必定会存在的文字expect(screen.getByText('用户详情')).toBeInDocument()
这才能证明真的打开了用户主页。
1+1 什么时候不等于 2。头像设置 16px,什么时候不会是 16 px。什么时候点击不跳转到用户主页。肯定是有人修改了这里的业务逻辑才会这样,只有在做产品需求,代码优化的时候才会去改以前的代码。那么这时,这段测试对接手这段代码的人就是负担。
假设我接到需求,用户主页url 变了,改成 user?id=xxx
。我心想这个简单,一秒钟解决,提了 pr 发现测试挂了,然后我就得把测试也改一下。
如果一段测试代码在我每次修改需求的时候都要改,甚至有的时候还会为了便于测试在业务代码中留一些后门,那这个测试就是纯纯的副作用。
大家肯定深有体会,一般一个模块自己不会出问题,但是多个模块组合起来就很容易出问题了,所以测试的重点不应该是一个组件内部各种细节,而应该测这个组件在被使用的地方是否正确。
举个例子,比如在一个列表里面,使用头像为 24px 的用户组件,然后有一天出 bug 了,说这里变成 16 了。那这会是组件的 bug 吗,这肯定是使用的地方没有用对。所以应该要测试的是这里。如果有个测试断言了在列表中用户头像必须为 24px,即使没有组件的单测,这个组件也不会被改坏,因为上层已经覆盖到了。
什么是好的测试?
- 我认为好的测试是稳定的测试,不仅不需要经常修改,甚至还能扛住代码重构。比如你把项目从
react
完全迁移到了vue
,测试都能跑过。 - 好的测试是可以当作项目文档的,组内来新人了,不需要给他介绍过多,有问题让他自己看测试用例就能理解业务。
那么怎么写出这样的测试呢?答案就是写集成测试,集成测试说白了就是一个超级大的单测,之前测试 render
的是一个组件,现在直接 render(<App/>)
,将路由跳转,请求 mock,fake数据库等等都统一处理。可以将上面写的测试简单的改为
import { creatAppContext, AppContext } from './app-test-context'
describe('S: 测试头像组件', () => {
let _:AppContext
beforeEach(() => {
- = creatAppContext()
})
describe('W: 去用户列表也', () => {
beforeEach(() => {
_.click(screen.getByText('查看用户列表'))
})
it('T: 列表页有十个用户,用户头像是 24px', ()=>{
expect(screen.getAllByTestid('user-item').length).toBe(10)
expect(screen.getAllByTestid('user-item')[0].img.style.width).toBe(24)
})
describe('W: 点击第一个用户', () => {
beforeEach(() => {
_.click(screen.getAllByTestid('user-item')[0])
})
it('T: 打开了用户主页', () => {
expect(screen.getByText('用户详情')).toBeInDocument()
})
})
})
})
关于怎么写好测试可以展开的点实在太多了,就不过多阐述,想要了解的朋友可以查看我的主页,之前专门出过一些列文章详细的讲这些事情。
来源:juejin.cn/post/7478515057510154255
8年程序员本以为到头了,没想到柳暗花明...
讲一个这两年发生在我身上的故事,一个从程序员到AI产品负责人,一个选择大于努力的故事:
回到2022年,作为一个8年的前端程序员的我,在一家行业头部的企业中勤勤恳恳,兢兢业业。每天与代码为伴,沉浸在React的世界里,整日优化、升级、写框架、写工具,解决点疑难杂症,改改BUG,后来甚至成为了React的contributor。
我的生活和工作都很稳定,技术能力也得到了领导和团队的认可。
但内心深处却隐隐感到一种不安——前端技术的发展似乎进入了瓶颈期,我的职业生涯也仿佛停滞不前。
随着时间的推移,我开始面临两个无法回避的问题:
- 个人能力无法进一步提升:前端技术的更新速度放缓,框架和工具趋于成熟,我能做的事情越来越少了。
- 薪资增长停滞:薪资似乎已经到达了行业的天花板,如果我不能做更多的事情,也再难有突破。
自己是否已经走到了职业生涯的尽头?
面对这个问题,我一度陷入迷茫。跟其他程序员一样,我也尝试学习新的技术栈来缓解心中的这份焦虑,更底层的语言比如Rust、更宽的技术栈比如three.js、学学区块链、学学算法。
但是随之而来的就是,这些东西我学了之后除了做做demo、写写小工具之外,我好像做不了什么大事,我没有动力向着更深的内容走下去,这反而更加加深了我的焦虑。
那时候我32岁,每天都在担心中年危机。担心三年之后我凭什么和体力更好的、钱更少的、拥有同样技术栈的年轻人竞争?【虽然三年后的今天,并没有这样的年轻人出现】
幸运的是,2022年年底,chatGPT爆火全球。一夜之间,所有人都在讨论GPT,我也不例外,按照惯例,我再次把学习AI加入了我的日程。
当时体验了chatGPT之后,我两眼放光,我觉得,只要我努力学习这个技术,我一定可以像当初选择前端开发一样,再次进入一个程序员的风口,于是报课、买书、找行业大佬交流。
就这样过来两三个月......
你以为怎么了?我柳暗花明了? 这是一个前端程序员逆袭转战AI年薪百万的故事? 很不幸,这并不是。
事实是三个月之后,我再次陷入了困境:AI的底层技术,一我根本学不会,二我学了好像也没有用武之地。总不能跟老板说:给我几千万美金我给你撸个大模型?
世界再次灰暗下来......
可是,天无绝人之路,就在我已经准备放弃的时候,我在某个产品群里看到了这样一句话:
“???,这居然没人知道?”
过去三个月的高强度学习,在我看来在业务中找到嵌入AI的场景,甚至为了AI单独新增功能都是非常容易的事情。
AI时代已经来了,GUI到LUI是必然发生的事情,所有企业的产品都将会经历加入AI的功能或者逻辑。如果必须有一人主导这件事情的话,那为什么不能是我?
“汽车干掉马车之后,所有的司机都是之前的马车司机么?”
“计算器干掉算盘之后,所有的会计都是之前的师爷么?”
“安卓干掉塞班之后,所有的安卓工程师都是之前的塞班工程师么?”
既然都不是,那么AI带来全新的交互体验,必须是传统产品去做么?显然不是,这玩意,谁先干算谁的啊。
我决定接受这个挑战,开始把视野放到应用层。开始研究产品的逻辑,尝试找到AI技术与业务需求的结合点。
不会怎么办? 学呗,这流程咱熟,报班、买书、找大佬交流。
一边学,我就一边结识了一些志同道合的伙伴,我们一起讨论、尝试、失败、再尝试。
经历过那一年的朋友应该知道,国内大模型的能力远远没有广告上说的那些效果,底层能力的限制一度成为我们思路中最大的卡点。
不过,我们也总结整理了一大批不同的产品中,不训练自己的大模型的情况下,能够结合AI的逻辑,这里简单放几个例子。
- TOB的管理系统,新用户没办法很好的知道产品中有什么功能,可以直接通过AI助手来唤起、使用对应功能。【我很喜欢这个,典型的GUI升级LUI的场景】
- 产品售卖,通过AI + 埋点的技术,实时分析用户的行为,在恰当的时机向用户推送VIP折扣。
- 电商详情页浏览助手。【页面上的AI助手,也是这两年很多产品已经落地了的选择】
- TOC的评论页面,AI拥有很好的控评能力
- 智能问答产品,【我们认为是受到冲击最大的产品,跟AI比起来,现在市场上所有的智能问答产品,都不够智能。都应该被重做升级!】
- 多模态能力会带来的全新产品。【情感陪伴是目前最为广泛且收益较快的赛道。】
不扯远了,说回我自己。
我的转机出现在我们自己的领导也开始说要结合AI,升级产品能力。
我以最快的速度,做好agent流程的思维导图、MVP(最小可行性产品)。 开会,给领导布道,说服领导们相信我的这套设计。
因为之前就进行过AI相关的内容分享,所以这一步比较容易。一顿操作猛如虎之后,终于获得了领导认可,接到了协助产品负责AI升级的任务,升级过程其实遇到了非常多的困难。
再次吐槽一下那一年的国产大模型,流程稍微多一点,响应时间就巨慢,流程少了,大模型的理解能力又不足。
有时候一个提示词一调就是半天,我甚至一度都要放弃了。不过好在最终我们选择了曲线救国,采用大模型+小模型,配合多专家 + RAG + 变种function call组合的架构,我们在23年底也做出了不错的东西。
上线之后,客户表示了满意。领导表示了满意。团队表示了满意。
水到渠成,后来一切就按部就班了,24年我又虚线负责了两个AI产品的升级和功能迭代。从确定需求是否适用AI实现,到方案选型,到设计agent流程,到功能上的交互设计,组织团队最终交付。
今年开始实线负责多个产品,有了自己的团队负责大模型方向的新产品设计和落地,也有需要横向拉通的部门,负责协助规划旧产品AI方向的升级和产品中AI需求的挖掘。
柳暗花明,未来可期。
结语
虽然我是前端转型到AI产品负责人的,但是如果你问我AI一定会代替掉程序员么?
我的回答是:不会,但是AI一定会让这个岗位所需要的人数减少,无论你是初级岗还是高级岗。
我们要做的就是抓住新的机会、占据有利位置、执行下去,然后等待时代的洪流将我们高高托起。
你看deepseek这不就来了? 我前面两年所做的事情,因为deepseek的出现,再次被抬高了一个维度,这就是时代,选择大于努力。
如果大家对“程序员如何转型AI产品负责人”感兴趣,可以点个赞。如果大家喜欢,后面我再多多分享转型细节。
文章更新列表
来源:juejin.cn/post/7469263585287651340
10年深漂,放弃高薪,回长沙一年有感
大明哥是 2014 年一个人拖着一个行李箱,单身杀入深圳,然后在深圳一干就是 10 年。
10 年深漂,经历过 4 家公司,有 20+ 人的小公司,也有上万人的大厂。
体验过所有苦逼深漂都体验过的难。坐过能把人挤怀孕的 4 号线,住过一天见不到几个小时太阳的城中村,见过可以飞的蟑螂。欣赏过晚上 6 点的晚霞,但更多的是坐晚上 10 点的地铁看一群低头玩手机的同行。
10 年虽然苦、虽然累,但收获还是蛮颇丰的。从 14年的 5.5K 到离职时候的 xxK。但是因为种种原因,于 2023年 9 月份主动离职离开深圳。
回长沙一年,给我的感觉就是:除了钱少和天气外,样样都比深圳好。
生活
在回来之前,我首先跟我老婆明确说明了我要休息半年,这半年不允许跟我提任何有关工作的事情,因为在深圳工作了 10 年真的太累,从来没有连续休息超过半个月的假期。哪怕是离职后我也是无缝对接,这家公司周五走,下家公司周一入职。
回来后做的第一件事情就是登出微信、删除所有闹钟、手机设置全天候的免打扰,全心全意,一心一意地陪女儿和玩,在这期间我不想任何事情,也不参与任何社交,就认真玩,不过顺便考了个驾-照。
首先说消费。
有很多人说长沙是钱比深圳少,但消费不比深圳低。其实不然,我来长沙一年了,消费真的比深圳低不少。工作日我一天的消费基本上可以控制在 40 左右,但是在深圳我一天几乎都要 80 左右。对比
长沙 | 深圳 | |
早 | 5+ | 5+ |
中 | 15 ~ 25 | 25 ~ 35 |
晚 | 10 ~ 15,不加班就回家吃 | 25 ~ 35,几乎天天加班 |
同时,最近几个月我开始带饭了,周一到超时买个百来块的菜,我一个人可以吃两个星期。
总体上,一个月消费长沙比深圳低 1000 左右(带饭后更低了)。
再就是日常的消费。如果你选择去长沙的商城里面吃,那与深圳其实差不多了多少,当然,奶茶方面会便宜一些。但是,如果你选择去吃长沙的本土菜,那就会便宜不少,我跟我朋友吃饭,人均 50 左右,不会超过 70,选择美团套餐会更加便宜,很多餐馆在支持美团的情况下,选择美团套餐,两个人可以控制在 30 ~ 40 之间。而深圳动不动就人均 100+。
当然,在消费这块,其实节约的钱与少的工资,那就是云泥之别,可忽略不计。
再说生活这方面。
在长沙这边我感觉整体上的幸福感比深圳要强蛮多,用一句话说就是:深圳都在忙着赚钱,而长沙都在忙着吃喝玩乐加洗脚。我说说跟我同龄的一些高中和大学同学,他们一毕业就来长沙或者来长沙比较早,所以买房就比较早,尤其是 16 年以前买的,他们的房贷普遍在 3000 左右,而他们夫妻两的工资税后可以到 20000,所以他们这群人周末经常约着一起耍。举两个例子来看看他们的松弛感:
- 晚上 10 点多喊我去吃烧烤,我以为就是去某个夜市撸串,谁知道是开车 40+公里,到某座山的山顶撸串 + 喝酒。这是周三,他们上班不上班我不知道,反正我是不上班。
- 凌晨 3 点多拉我出来撸串
跟他们这群人我算是发现了,大部分的聚会都是临时起意,很少提前约好,主打就是一个随心随意。包括我和同事一样,我们几乎每个月都会出来几次喝酒(我不喜欢喝酒,偶尔喝点啤酒)、撸串,而且每次都是快下班了,某个人提议今晚喝点?完后,各回各家。
上面是好的方面,再说不好的。
长沙最让我受不了的两点就是天气 + 交通。
天气我就不说了,冬天冻死你,夏天热死你。去年完整体验了长沙的整个冬天,是真他妈的冷,虽然我也是湖南人,但确实是把我冻怕了。御寒?不可能的,全靠硬抗。当然,也有神器:火桶子,那是真舒服,我可以在里面躺一整天。
交通,一塌糊涂,尤其是我每天必经的西二环,简直惨不忍睹,尤其是汽车西站那里,一天 24 小时都在堵,尤其是周一和周五,高德地图上面是红的发黑。所以,除非特殊情况,我周一、周五是不开车的,情愿骑 5 公里小电驴去坐地铁。
然后是一大堆违停,硬生生把三车道变成两车道,什么变道不打灯,实线变道,双黄线调头见怪不怪了,还有一大群的小电驴来回穿梭,对我这个新手简直就是恐怖如斯(所以,我开车两个月喜提一血,4S点维修报价 9800+)。
美食我就不说了,简直就是吃货的天堂。
至于玩,我个人觉得长沙市内没有什么好玩的,我反而喜欢去长沙的乡里或者周边玩。所以,我实在是想不通,为什么五一、国庆黄金周长沙是这么火爆,到底火爆在哪里???
还有一点就是,在深圳我时不时就犯个鼻炎,回了长沙一年了我一次都没有,不知道什么原因。
工作
工资,长沙这边的钱是真的少,我现在的年收入连我深圳的三分之一都没有,都快到四分之一了。
当然,我既然选择回来了,就会接受这个低薪,而且在回来之前我就已经做好了心理建设,再加上我没有房贷和车贷,整体上来说,每个月略有结余。
所以,相比以前在深圳赚那么多钱但是无法和自己家人在一起,我更加愿意选择少赚点钱,当然,每个人的选择不同。我也见过很多,受不了长沙的低工资,然后继续回深圳搬砖的。
公司,长沙这边的互联网公司非常少,说是互联网荒漠都不为过。大部分都是传统性的公司,靠国企、外包而活着,就算有些公司说自己是互联网公司,但也不过是披着互联网的羊皮而已。而且在这里绝大多数公司都是野路子的干法,基建差,工作环境也不咋地,福利待遇与深圳的大厂更是没法比,比如社保公积金全按最低档交。年假,换一家公司就清零,我进入公司的时候,我一度以为我有 15 天,一问人事,试用期没有,转正后第一年按 5 天折算,看得我一脸懵逼。
加班,整体上来说,我感觉比深圳加班得要少,当然,大小周,单休的公司也不少,甚至有些公司连五险一金都不配齐,劳动法法外之地名副其实。
同时,这边非常看重学历,一些好的公司,非 985 、211 不要,直接把你门焊死,而这些公司整体上来说工资都很不错,40+ 起码是有的(比如某银行,我的履历完美契合,但就是学历问题而被拒),在长沙能拿这工资,简直就是一种享受,一年就是一套房的首付。
最后,你问我长沙工资这么低,你为什么还选择长沙呢?在工作和生活之间,我只不过选择了生活,仅此而已!!
来源:juejin.cn/post/7457175937736163378
努力工作,你已经是很了不起的成年人了
1、像潮水一样的焦虑
"我二十三岁,靠自己的努力,全款小米Su7 Ultra。"
"二十七岁,工作之余,副业一个月赚两万。"
"用 DeepSeek 做副业,三天赚了九千"
对的,这些是目前互联网上短视频、问答平台、公众号里再常见不过的文案,衬托之下:
仿佛早上挤地铁四号线、一边走路一边吃热干面、坐在格子间里连喝一口水都要见缝插针、晚上加班结束要迈着飞快的脚步去赶最后一班地铁的你,是一个恬不知耻正在迈向中年的你,像是一个混吃等死毫无作为的废物。
凌晨你回到出租屋,打开朋友圈,看到的却是这样那样的焦虑:
三十天写作训练营、素人短视频日入八百、宝妈靠手作实现财务自由。
这些标题像便利店门口的霓虹灯,在深夜里闪烁得格外刺眼,仿佛在质问每个失眠的成年人:你的人生怎么还没开张?
你躺在床上,闭上眼睛的时候还在脑海里反复复盘着:“我这领个死工资也不是个事儿啊,什么时候能搞个副业,也实现一下财务自由。赚够两百万存款的时候,我要把辞职信拍到领导的脸上。”
在焦虑、自责、懊恼之余,你是否忘了什么事情?
你是否忘了,你其实是一个:
经过完整的高等教育,每天算上通勤,为工作付出超过12小时时间,没有沾染赌毒行为,勤勤恳恳态度认真的年轻人。工作之余,你唯一的爱好可能就是下班后躲在出租屋里打两把游戏。
从任何角度上看,你都是一个努力的,踏实的,积极向上的年轻人。
那么,究竟是谁在引导你否定自己的努力,对自己的状态进行 PUA
呢?
副业如果真那么神奇的话,为什么它还是 “副业” 呢?
了解那些焦虑的本质,你会发现:“副业可能是版本陷阱”。
2,副业可能是版本陷阱
我们 Dota2
玩家有个经常被挂在嘴边的词语,叫 “版本陷阱”,指的是那些版本更新之后,被大家口口相传多么厉害,但是真在职业赛场上被选出来却胜率惨不忍睹的英雄。
很抱歉,我可能要说一句丧气话:
“副业就是这个版本的【版本陷阱】。”
为什么呢?
- 先聊副业本质
副业的本质是跳出主页赛道,恰好进入一条机会更多、收入更高的蓝海赛道;这个机会可能来自于你自身(你恰好擅长某些主业之外的能力),更多的时候来自于时代红利(早几年间你非常擅长制作短视频)。
因此,少量时间+副业可以带来高收入的本质,是个人长项在蓝海领域博取一个创收机会,但是你先问问自己,有没有主业之外领域的优势技能。
- 再说版本环境
在上一条里面我们提到了“蓝海行业”,这一点非常重要,只有某个赛道出现明显的技术缺口或人员缺口时,副业者才有腾挪的空间。但如果一个行业或赛道已经人满为患,你准备拿每天2个小时和那些每天12个小时的团队作战吗?
- 最后分析下“口口相传”的那些人
你以为天天分享副业赚钱的人群:“人生导师、大公无私、先富的来带动后富的。”
实际发那些文案的人群:那些教你"睡后收入"的博主,自己往往在通宵直播卖课;晒着海岛定位说走就走的旅行博主,回程机票可能都是网贷分期。这个魔幻的时代,连贩卖成功学的都在996加班。
而他们兜售焦虑的最后一环,还是希望焦虑者咬上他们那锈迹斑斑的铁钩,成为下一个为“财富自由”付费的“上进者”。
请容许我再说一句丧气话:
绝大多数普通人的搞钱手段就是上班,只有上班。
哪有那么多暴富的机会在前方等着你?哪有那么多“睡后”的收入在梦中等着你?哪有那么一劳永逸又无比轻松的战役,在彼岸等着你。
你之所以相信彼岸的美好,有没有可能是因为你看不穿横在河面上的浓雾?
3,努力上班,已经是很棒的成年人了
每天我总能见到大家在各种空间和途径输出焦虑:
女孩责怪男孩不上进,下班只知道打游戏。
男孩抱怨不该生孩子,没有时间和机会创业搞财富自由。
总有人和自己身边的成功同龄人做比对,反思得出“自己是个废物”的神奇结论。
可是啊同学,我们也只是一群普通人而已。
在步入三十五岁之后,变成互联网行业里的“下岗预备役”之后,我逐渐开始认清了自己的属性和位置,不再苛求自己与众不同。
经过完整的高等教育,每天算上通勤,为工作付出超过12小时时间,没有沾染赌毒行为,勤勤恳恳态度认真的年轻人。工作之余,你唯一的爱好可能就是下班后躲在出租屋里打两把游戏。
每周可以有时间陪家人一起做一些不花钱的娱乐。
每周可以有时间陪孩子梳理一下近期的学习、分享一下思考。
每周有那么几个小时可以做一些让自己从内在感到快乐、感到满足、感到宁静的事情。
你没有去赌博欠下一屁股债,没有去加杠杆投资卖掉父母的房产,没有闷着头贷款创业亏光爹妈的棺材本。
同学,你可能意识不到,但我今天非常想郑重地告诉你:
在成年人这个群体之中,你已经是非常杰出、非常棒的那一批了。
副业焦虑?让它见鬼去吧。
来源:juejin.cn/post/7481187555866804224
都2025年了,还在用Markdown写文档吗?
俗话说得好:“程序员宁愿写 1000 行代码,也不愿意写 10 个字的文档。”
不愿写文档的原因,一方面是咱理科生文采确实不好,另一方面则是文档的更新维护十分麻烦。
每次功能有变更的时候, 时间又急(其实就是懒),很难想得起来同时去更新文档。
特别是文档中代码片段,总是在几天之后(甚至更久),被用户找过来吐槽:“你们也太不专业了,文档里的代码都跑不通。”
作为有素养的程序员,被人说 “不专业”,简直不能忍,一定要想办法解决这个问题。
文档代码化
很多开发者喜欢用语雀,飞书或者钉钉来写文档。
不得不承认,它们的编写和阅读的体验更好,样式也更丰富。
甚至就算是版本管理,语雀,飞书做得也不比 git 差。
不过对于开发者文档,我觉得体验,样式都不是最重要的。毕竟这些都是锦上添花。
更重要的是,文档内容有效性的保证,如果文档上的代码直接复制到本地,都要调试半天才能跑通,那不管它样式再好看开发者都要骂娘了。
所以文档最好就和代码放在同一个仓库中,这样代码功能有更新时,顺便就把文档一起改了。团队前辈 Review 代码时,也能顺便关注下相关的文档是否一同更新。
如果真的一定要搞一个语雀文档,也可以考虑用 Git Action,在分支合并到 master 时触发一次文档到语雀的自动同步。
Markdown 的问题
程序员最常用的代码化文档就是 Markdown 了,估计也是很多开发者的首选,比如我这篇文章就是用 Markdown 写的。
不过 Markdown 文档中的代码示例,也没有经过单元测试的验证,还是会出现文档中代码跑不通的现象。
Python 中有一个叫做 doctest 的工具,能够抽取文档中的所有 python 代码并执行,我们只要在分支合并前,确保被合并分支同时通过了单元测试和 doctest,就能保证文档中的代码示例都是有效的。
在 Java 中我找了半天没有找到类似工具,很多语言(比如 Go, Rust 等等)据我所知也没有类似的工具。
而且对于 Java,文档中给的一般都是不完整的代码片段,无法像 Python 一样直接就能进入命令行执行。
有句俗话 ”单元测试就是最好的文档“。我觉得没必要将单元测试和文档分开,最好的方式就是从单元测试中直接引用部分代码进入文档。
在变更功能时,我们一定也会改单元测试,文档也会同步更新,不需要单独维护。
在合并分支或者发布版本之前,肯定也会有代码门禁执行单元测试,这样就能确保文档中代码示例都是有效的。
目前我发现了一个能解决该问题的方案就是 adoc 文档。
adoc 文档
adoc 的全称是 Asciidoctor, 官网链接。
Github 已经对其实现了原生支持,只要在项目中将 README 文件的后缀改成 README.adoc
,Github 就会按照 adoc 的语法进行解析展示。
adoc 最强悍的能力就是可以对另一个文件的一部分进行引用。以我负责的开源项目 QLExpress 为例。
在单元测试 Express4RunnerTest
中,用 // tag::firstQl[]
和 // end::firstQl[]
圈出一个代码片段:
// import 语句省略...
/**
* Author: DQinYuan
*/
public class Express4RunnerTest {
// 省略...
@Test
public void docQuickStartTest() {
// tag::firstQl[]
Express4Runner express4Runner = new Express4Runner(InitOptions.DEFAULT_OPTIONS);
Map<String, Object> context = new HashMap<>();
context.put("a", 1);
context.put("b", 2);
context.put("c", 3);
Object result = express4Runner.execute("a + b * c", context, QLOptions.DEFAULT_OPTIONS);
assertEquals(7, result);
// end::firstQl[]
}
// 省略...
}
然后在文档 README-source.adoc
中就可以 firstQl
这个 tag 引用代码片段:
=== 第一个 QLExpress 程序
[source,java,indent=0]
----
include::./src/test/java/com/alibaba/qlexpress4/Express4RunnerTest.java[tag=firstQl]
----
include::./src/test/java/com/alibaba/qlexpress4/Express4RunnerTest.java[tag=firstQl]
用于引用 Express4RunnerTest 文件中被 firstQl tag 包围的代码片段,其他的部分,等价于 Markdown 下面的写法:
### 第一个 QLExpress 程序
```java
```
这个 adoc 文档在渲染后,就会用单测中真实的代码片段替换掉 include
所占的位置,如下:
缺点就是 adoc 的语法和 Markdown 相差还挺大的,对以前用 Markdown 写文档的程序员有一定的熟悉成本。但是现在有 AI 啊,我们可以先用 Markdown 把文档写好,交给 Kimi 把它翻译成 Markdown。我对 adoc 的古怪语法也不是很熟悉,并且项目以前的文档都是 Markdown 写,都是 AI 帮我翻译的。
Github 渲染 adoc 文档的坑
我最开始尝试在 Github 上用 README.adoc
代替 README.md
,发现其中的 include
语法并没有生效:
Github 对于 adoc
include
的渲染逻辑还挺诡异的,既不展示引用文件的内容,也没有原样展示 adoc 代码
查询资料发现 Github 根本不支持 adoc 的 include
语法的渲染(参考)。不过好在参考文档中也给了解决方案:
- 源码中用
README-source.adoc
编写文档 - 使用 Git Action 监听
README-source.adoc
文件的变化。如果有变动,则使用asciidoctor
提供的命令行工具先预处理一下include
语法,将引用的内容都先引用进来。再将预处理的后的内容更新到README.adoc
中,这样README.adoc
就都是 Github 支持的语法了,可以直接在 Github 页面上渲染
Github Action 的参考配置如下(QLExpress中的配置文件):
name: Reduce Adoc
on:
push:
paths:
- README-source.adoc
branches: ['**']
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v3
- name: Install Asciidoctor Reducer
run: sudo gem install asciidoctor-reducer
- name: Reduce README
# to preserve preprocessor conditionals, add the --preserve-conditionals option
run: asciidoctor-reducer --preserve-conditionals -o README.adoc README-source.adoc
- name: Commit and Push README
uses: EndBug/add-and-commit@v9
with:
add: README.adoc
添加这个配置后,你会发现很多额外的 Commit,就是 Git Action 在预处理 README-source.adoc
后,对 README.adoc
发起的提交:
至此,就再也不用担心被人吐槽文档不专业啦。
来源:juejin.cn/post/7464247481227100196
我终于从不想上班又不能裸辞的矛盾中挣扎出来了
最近的状态有一种好像一个泄了气的皮球的感觉一样,就是对生活中很多事情都提不起来兴趣。
我希望自己可以多看一点书,但是我不想动;我希望自己可以练习书法,但是我不想动;我希望自己可以学会一门乐器,但是我不想动。
相比上面三点,我更希望的是我可以早上起来不用上班,但是这只是我的希望而已。
这就是我最近的生活状态。
我有一种我的生活仿佛失去了控制的感觉,每一天我的内心好像都有一个小人在不断呐喊,说我不想上班。因为这个声音,我一度非常非常想要裸辞,但是我为什么没有裸辞呢?
还不是因为我买房买车欠了十几万,我到现在才还了两万而已,再加上我每个月还有房贷要还。
然而,当我经常不情愿地做着跟我心里想法相悖的行为的时候,我发现自己常常会做一些小动作来向自己表达抗议和不满。
比如说,我的工作会变得越来越低效,上班的时候会偷偷地摸鱼,还有就是变得越来越容易拖延。
就好像这样的我,可以让那个不想上班的我,取得了一丢丢的小胜利一样。
一旦开始接受自己没有办法辞职,并且还要上个几十年班这样的结果时,就会让人有一种破罐子破摔的想法。
而且随之而来的是一种对未来,对生活的无力感。
这种无力感渐渐地渗透在我生活的方方面面,以至于让我慢慢地对很多东西都提不起兴趣,我生活中的常态就变成了不想动。
但是有趣的事情发生了,有一天我在和我朋友聊天的时候,我的脑子里面突然出现了一个想法,就是我决定两年之后我要实现我不上班的这个目标。
当有了这个想法之后,我就开始认真思考这件事情的可行度。
通过分析我现在收支情况,我把两年之内改成了2026年之前,因为我觉得这样会让我更加信服这个目标的可行性。
同时我把这个想法也拆分成了两个更为具体的目标,其中一个就是我要在2026年之前还完欠的所有钱。
第二个就是我需要给自己存够20万,这20万是不包括投资理财或者基金股票里面的钱,而是我完全可以自由支配的。
毕竟没有人可以在没有工作的情况下,没有收入的情况下。没有存款的情况下,还能保持一个不焦虑的状态。
当我得出了这两个具体的目标之后,我整个人瞬间被一种兴奋的状态填满,我瞬间找到了工作的意义和动力。
也许你会说,我的这个想法对我现在生活根本起不到任何的改变作用。
我依旧还需要每天七点起床,还是要每天重复地去过我两点一线的生活。
但是于我自己而言,当我给我上班的这件事情加了一个两年的期限之后,我突然觉得我的未来,我的生活都充满了希望。
我整个人从不想动的状态,变成了一种被兴奋的状态填满的感觉。
所以,如果你和我一样有一些类似的困扰,有一些你不想做而又不得不做的事情,让你有一种深陷泥潭,无法前进的感觉,那你不妨试一下这个方法。
结合你自己的实际情况,为你不想做这件事情,设计一个期限,这个期限必须要是你认可,你接受,并且你认为你可以在这个截止时间之前完成的。
我想这个决定应该会对你的生活带来一些改变。
来源:juejin.cn/post/7428154034480906278
如何优雅的回复面试官问:“你能接受加班吗?”
面试官问:“你能接受加班吗?”我脑袋嗡的一声,余音绕梁三日不绝于耳。
那一刻,我简直觉得自己像被突然砸中脑袋,脑袋里嗡的一声,余音绕梁三日。作为一个职场小白,这种问题简直颠覆了我对面试的认知。于是,我一时心血来潮,脱口而出一句:“领导抗揍吗?” 结果,大家猜到了,面试是上午结束的,Offer是当天中午凉的。
如何巧妙回答
“我认为加班是工作中不可避免的一部分,尤其是在一些特殊项目或紧急情况下。我非常热爱我的工作,并且对公司的发展充满信心,因此我愿意为了团队的成功付出额外的努力。当然,我也注重工作效率和时间管理,尽量在正常工作时间内完成任务。如果确实需要加班,我也会根据公司合理的安排,积极的响应。”
作为一名资深的面试官,今天面对这个问题,坐下来和大家聊聊应该怎么回答呢?面试官究竟喜欢怎样的回答?让我们深入分析一下。
面试官的心理
在职场中,想要出色地应对面试,需要具备敏锐的观察力和理解力。学会细致入微地观察,善于捕捉每一个细微的线索,这样才能在面试中游刃有余。懂的察言观色,方能尽显英雄本色。
面试官的考量点
- 评估工作稳定性
面试官提出“能否接受加班”的问题,旨在深入了解求职者的职业稳定性和对加班安排的适应性。这一评估有助于预测求职者入职后的表现和长期留任的可能性。工作稳定性是企业考量员工的关键指标之一,通过这一问题,面试官能够洞察求职者的职业发展规划及其对未来工作的期望。
- 筛选合适的候选人
通过询问加班的接受度,面试官筛选出那些愿意为达成工作目标而投入额外时间和精力的候选人。这种筛选方式有助于确保团队的整体运作效率和协作精神。合适的候选人不仅能快速融入团队,还能显著提升工作效率。因此,面试官借此问题寻找最匹配岗位需求的员工。
- 了解求职者的价值观
面试官还利用这个问题来探查求职者的价值观和工作态度,以此判断他们是否与公司的文化和核心价值观相契合。员工的价值观和态度对公司的长远发展起着至关重要的作用。通过这一询问,面试官能够确保求职者的个人目标与公司的发展方向保持一致,从而促进整体的和谐与进步。
考察的问题的意义
要理解问题的本质……为什么面试官会提出这样的问题?难道是因为你的颜值过高,引发了他的嫉妒?
- 工作态度
面试官通过询问加班的接受度,旨在评估求职者是否展现出积极的工作态度和强烈的责任心。在许多行业中,加班已成为常态,面试官借此问题了解求职者是否愿意在工作上投入额外的时间和精力。积极的工作态度和责任心是职场成功的关键因素,通过这一问题,面试官能够初步判断求职者是否适应高强度的工作环境。
- 岗位匹配度
特定岗位因其工作性质可能需要频繁加班。面试官通过提出加班相关的问题,旨在了解求职者是否能适应这类岗位的工作强度。由于不同岗位对工作强度的要求各异,面试官希望通过这一问题确保求职者对即将承担的角色有明确的认识,从而防止入职后出现期望不一致的情况。
- 抗压能力
加班往往伴随压力,面试官通过这一问题考察求职者的抗压能力和情绪管理技巧。抗压能力对于职场成功至关重要,面试官借此了解求职者在高压环境下的表现,以判断其是否符合公司的需求。
- 公司文化
面试官还利用这个问题来评估求职者对公司加班文化的接受程度,以此判断其价值观是否与公司相符。公司文化对员工的工作体验和满意度有着深远的影响,面试官希望通过这一问题确保求职者能够认同并融入公司文化。
回答的艺术
“知己知彼,百战不殆。”在面试中,回答问题的关键在于展现出积极和正向的态度。
- 积极态度
在回答有关加班的问题时,表达你对工作的热爱和对公司的忠诚,强调你愿意为了团队的成功而付出额外的努力。这种积极的态度不仅展示了你的职业素养和对工作的热情,还能显著提升面试官对你的好感。
例如:“我非常热爱我的工作,并且对公司的发展充满信心。我相信为了实现公司的目标和团队的成功,适当的加班是可以接受的。”
- 灵活性和效率
强调你在时间管理和工作效率上的能力,表明你在确保工作质量的同时,会尽可能减少加班的需求。灵活性和效率是职场中极为重要的技能,面试官可以通过这个问题了解你的实际工作表现。
例如:“我在工作中注重效率和时间管理,通常能够在规定的工作时间内完成任务。当然,如果有特殊情况需要加班,我也会全力以赴。”
- 平衡工作与生活
适当地提到你对工作与生活平衡的重视,并希望公司在安排加班时能够充分考虑到员工的个人需求。平衡工作与生活是职场人士普遍关注的问题,面试官通过这个问题可以了解你的个人需求和期望。
例如:“我非常重视工作与生活的平衡,希望在保证工作效率的同时,也能有足够的时间陪伴家人和进行个人活动。如果公司能够合理安排加班时间,我会非常乐意配合。”
- 适度反问
在回答时,可以适当地向面试官询问关于公司加班的具体情况,以便更全面地了解公司的加班文化和预期。这样的反问可以展现你的主动性和对公司的兴趣,有助于获取更多信息,做出更加明智的回答。
例如:“请问公司通常的加班情况是怎样的?是否有相关的加班补偿或调休安排?”
最后
所谓士为知己者死,遇良将则冲锋陷阵,择良人则共谋天下。在职场这场没有硝烟的战争中,我们每个人都是一名战士,寻找着属于自己的知己和良将。当面试官提出挑战性问题时,我们不仅要展示自己的能力和才华,更要表现出对工作的热爱和对公司的忠诚。
面对“你能接受加班吗?”这样的问题,我们应以积极的态度、灵活的思维和对工作与生活平衡的重视来回应。这样的回答不仅能展示我们的职业素养,还能让我们在众多求职者中脱颖而出,赢得面试官的青睐。
正如士为知己者死,我们在职场中也要找到那个能理解我们、支持我们的知己;遇良将则冲锋陷阵,我们要在优秀的领导下发挥自己的潜能,为公司的发展贡献力量;择良人则共谋天下,我们要与志同道合的同事共同努力,实现职业生涯的辉煌。
总之一句话,在面试中展现出积极向上的形象,不仅能为我们的职业生涯加分,更能让我们在职场上找到属于自己的价值和归属感。让我们以这句话为指引,勇敢地迎接职场的挑战,书写属于自己的辉煌篇章。
来源:juejin.cn/post/7457211584709066792
DeepSeek R1 对编程语言未来的预测
欢迎关注我的训练营:云原生AI实战营,一个助力 Go 开发者在 AI 时代建立技术竞争力的实战营。
今天分享下 DeepSeek 对于编程语言未来的预测,这个应该也是很多开发者关注的,因为它可能会影响未来的职业选择。
因我自己最近也在关注这方面,所以今天就问了 DeepSeek。DeepSeek 给出的回答跟我的想法很一致,所以今天把 DeepSeek 的回答分享出来。
问题:Go、Java、Rust、Python 语言未来前景如何
我的问题是Go、Java、Rust、Python 语言未来前景如何。之所以问这 4 门语言,是因为这四门语言在后端开发中最受欢迎,各自在其擅长的领域中发光发热。
目前,我觉得 Go 和 Java 在领域上有一定程度或者很大程度的重合。Rust、Python、(Go、Java)有其擅长的领域,交叉点不多。
我想弄明白的是,每门语言是否会在其领域继续发展状态,或者会有蚕食其他领域的现象。通过这些,也想知道未来编程语言的选型为何。
DeepSeek 思考过程
提示:以下是 DeepSeek 的思考过程
好的,用户问的是Go、Java、Rust、Python这四种语言的未来前景如何。我需要逐一分析每种语言的特点、现状以及发展趋势,同时比较它们的优缺点和应用场景。首先,我应该回忆每种语言的主要用途和社区活跃度,然后看看市场需求和技术趋势。
对于 Go 语言,它由Google开发,以高并发和高效编译著称,适合云原生和微服务。近年来Docker、Kubernetes的流行推动了Go的应用,尤其是在后端和DevOps领域。但Go在泛型和生态系统方面可能不如其他语言,所以需要评估这些因素是否会影响其未来。
Java作为老牌企业级语言,稳定性强,广泛应用于大型系统、Android开发和大数据。虽然有人认为Java在下降,但它的庞大现有代码库和企业依赖意味着它仍会长期存在。不过,Java需要面对Kotlin等语言的竞争,尤其是在Android开发方面,还有云原生趋势下轻量级语言的挑战。
Rust以内存安全和性能为卖点,逐渐在系统编程、嵌入式和高性能计算领域崭露头角。被Linux内核和Windows驱动采用,说明其潜力。但Rust的学习曲线陡峭,可能在普及上需要时间,但在对安全性要求高的领域会持续增长。
Python作为脚本语言之王,在数据科学、AI、Web开发等领域占据主导。随着AI的爆发,Python的需求持续增长,但性能问题可能在需要高性能的场景中成为瓶颈。不过,Python的易用性和丰富的库支持使其在教育和小型项目中保持优势。
接下来要考虑的是行业趋势,比如云计算的持续增长对Go有利,AI发展促进Python,系统级需求推动Rust,而企业维护则维持Java。同时,新语言的出现是否会影响这些老牌语言,例如Rust可能替代部分C/C++的领域,而Go可能继续在云原生领域扩展。
用户可能的深层需求是选择学习方向或技术选型,需要明确各语言的优劣势和适用场景,帮助他们做出决策。因此,回答时要突出各语言的优势领域和未来可能的发展方向,以及潜在的风险点,比如Java可能面临市场份额被蚕食,但不会很快消失。
总结部分需要对比各语言,指出它们在不同领域的地位,并给出建议,比如根据项目需求选择合适语言,而不是盲目跟风。同时,强调多语言掌握的重要性,因为现代开发往往需要多种技术结合。
DeepSeek R1 四种语言前景分析
以下是 DeepSeek R1 关于 Go、Java、Rust、Python 四种语言的前景分析,结合技术趋势、市场需求和生态系统发展分析如下:
1. Go (Golang)
优势领域:
- 云原生与微服务:Go 的并发模型(goroutine)和高效编译特性使其成为 Kubernetes、Docker、Istio 等云原生工具的首选语言。
- 高性能后端:适合 API 网关、分布式系统、实时通信等高并发场景(如 Twitch、Uber 的后端)。
- 开发效率:语法简洁,编译速度快,适合快速迭代的工程团队。
未来前景:
- 持续增长:随着云计算的普及,Go 在云原生领域的地位将进一步巩固。
- 企业采用:越来越多公司(如字节跳动、腾讯)将 Go 作为核心后端语言。
- 挑战:泛型支持的完善程度、生态多样性仍需提升。
推荐方向:云原生开发、基础设施工具链、高性能服务端。
2. Java
优势领域:
- 企业级应用:银行、电信、政府等传统行业的核心系统(如 IBM、Oracle 的解决方案)。
- Android 开发:仍占据主导地位(尽管 Kotlin 在 Android 中逐渐取代)。
- 大数据生态:Hadoop、Spark、Flink 等框架依赖 Java 生态。
未来前景:
- 稳定但缓慢衰退:Java 的存量市场庞大,但新项目可能更倾向于现代语言(如 Kotlin、Go)。
- 云原生转型:Quarkus、Spring Native 等框架帮助 Java 适应云原生环境。
- 挑战:冗长的语法、内存消耗较高,对轻量级场景竞争力不足。
推荐方向:传统企业系统维护、Android 底层开发、大数据工程。
3. Rust
优势领域:
- 系统编程:取代 C/C++ 的潜力(如操作系统、嵌入式、浏览器引擎)。
- 内存安全:所有权模型彻底解决内存泄漏和数据竞争问题,适合对安全性要求极高的场景(如区块链、金融系统)。
- 高性能计算:在游戏引擎、实时渲染等领域逐渐应用(如 Discord 的音频服务)。
未来前景:
- 高速增长:被 Linux 内核、Windows 驱动开发等官方支持,逐步进入主流。
- 生态扩展:WebAssembly、区块链(如 Solana)等领域对 Rust 需求激增。
- 挑战:学习曲线陡峭,中小型项目采用成本较高。
推荐方向:系统级开发、安全敏感型应用、区块链底层。
4. Python
优势领域:
- 数据科学与 AI:TensorFlow、PyTorch、NumPy 等库的绝对统治地位。
- 脚本与自动化:运维、测试、爬虫等场景的首选语言。
- 教育与科研:语法简单,适合快速验证算法和原型开发。
未来前景:
- AI 驱动的霸主:随着生成式 AI(如 ChatGPT)的爆发,Python 需求将持续增长。
- 性能瓶颈:在需要高性能的场景(如高频交易)可能被 Rust/Go 取代。
- 生态护城河:庞大的库和社区资源确保其长期不可替代性。
推荐方向:机器学习工程、数据分析、快速原型开发。
综合对比与趋势总结
维度 | Go | Java | Rust | Python |
---|---|---|---|---|
增长潜力 | 高(云原生) | 低(存量市场) | 极高(系统替代) | 高(AI 驱动) |
学习曲线 | 中等 | 中等偏高 | 高 | 低 |
性能 | 高 | 中等 | 极高 | 低 |
适用领域 | 后端/基础设施 | 企业系统/Android | 系统/安全/区块链 | AI/脚本/科研 |
未来 5 年预测:
- Go 和 Rust 将成为增长最快的语言,分别主导云原生和系统级开发。
- Python 因 AI 热潮保持霸主地位,但需警惕性能相关的替代方案。
- Java 缓慢衰退,但仍长期占据企业市场。
建议:
- 根据职业目标选择:
- 追求高薪和前沿技术:优先 Rust 或 Go。
- 稳重型职业发展:Java 或 Python。
- 多语言组合:例如 Python(AI) + Go(后端) 或 Rust(底层) + Python(脚本)。
个人观点
提示:以下是我个人总结,非 DeepSeek 的输出。
DeepSeek R1 对于四种语言的前景分析、未来 5 年预测及给出的建议,其实跟我的想法是完全一致的。
根据 JetBrains2024 的市场调研,Go 在四种语言中的工资是最高的,背后的原因可能是因为云原生的技术门槛。Go 在云原生领域占据霸主地位,而云原生本身技术门槛要比业务 CURD 高很多,所以薪资自然要比其他语言高。其实,这也说明了,越是门槛高、技术含量高的岗位薪资越有竞争力(这是一句废话)。
Python 依托于其强大的生态及数据处理能力,在 AI 领域成为霸主语言。在 AI 时代,程序员不可避免的要去学习、掌握 Python。
Rust 优点是高性能、高安全,但缺点是学习门槛高、开发效率相较于 Go 低。所以 Rust 很适合系统层软件的开发,反倒不适合应用层软件的开发。在一个业务向的企业中,一般系统层会使用云基础设施,非核心的系统层,也可以用 Go 语言开发。当前很多优秀的系统层软件都是基于 Go 语言开发的。
所以,在一个企业中,系统层软件和应用层软件,往往是二选一的关系,也意味着,在编程语言上,也有了明确的选择:应用型企业选择 Go。如果企业核心产品是系统层软件,那么可以选择 Rust。
所以最终的编程语言选择一般是:Python(AI) + Go(后端) 或 Rust(底层) + Python(AI)。
当然,企业完全可以根据需要选择更多的编程技术栈组合。上述只是介绍一种通用情况下的选择建议。
另外,在编程语言选择时,建议主攻一门核心语言,同时根据职业目标补充其他相关语言,或者在不同阶段调整策略。这样既避免单一风险,又保持专业性。
来源:juejin.cn/post/7475609849939410983
央国企求职“性价比分析”:为什么这几年央国企火了?
浣熊say官方网站:hxsay.com/
浣熊say官方星球:hxsay.com/about/我的星球/…
正文
不知道最近大家有没有发现,越来越多的人在职业选择上都偏向与央国企、体制内等稳定性较高的岗位,而放弃了去私企、互联网等工资高但是强度大的工作。
从我身边的人了解到这一趋势不仅仅存在于工作了多年的职场老油条,希望找个地方躺平,在应届毕业生的群体里面也越来越明显。然而放在10年前,也就是2014年的时候谁毕业要是去国企、体制内可能会被笑话没有理想、躺平。
但是这两年风向仿佛突然变化了,公务员、央国企突然之间变得香了起来,似乎打工人也随着年龄的增长突然明白了一个道理,比起靠着燃烧生命加班挣来的卖命钱以及生活在不知道什么时候就会被干掉的压力之下,不如稳定的央国企来得实在。
35岁被毕业和干到退休的收入差距有多大?
首先叠甲,我这里说的国企是垄断央企的二级以上的公司或者省属国企总部,这些国企一般掌握着国家、省级的核心资源,不违法犯罪的情况下大概率是能干到退休的。当然,如果有人跟我杠说什么某某银行科技子公司,某某央企的孙子公司一样末尾淘汰,一样裁员不稳定,那么我只能说你说得都对!
假设我硕士毕业就去国企,然后月薪8k,2个月年终(央企二级公司,省属国企很容易达到),那么一年的收入是14*0.8 = 11.2w,然后男性目前的法定退休年龄是65岁,从25岁~65岁工作40年,总收入为 448w。
假设你硕士毕业就去互联网大厂,然后月薪3w,4个月年终(这里也是取得平均值来估计的),那么一年的收入为48w,然后35岁一般确实是互联网的大限,25~35岁工作10年,总收入为:480w。
其实,大多数情况下互联网大厂拿到3w的也是凤毛麟角,国企8k一个月的其实还是遍地都是,甚至一些省会的公务员都能达到8k/月甚至更多,两者职业生涯的总收入其实是差不多的。而且这里为了公平都没有考虑随着工龄增长工资的增长情况,其实在互联网大厂拿到100w年薪的难度远远大于你在国企熬年限,涨到1.5w。
所以,其实无论是选择私企打工挣钱,还是垄断国企躺平,你整个职业生涯获得的工资性收入都是差不多的,以2024年的世界观来看,很多私企甚至很难稳定拿到3w/月的工资到35岁。
有时候一个裁员毕业潮下来,你就不得不面临重新找工作的窘境,以前经济好的时候且没有AI时候,从事技术研发的人还可以自信的说我有技术走到哪里都不怕 。 如今,AI取代大多数工作岗位已经是明牌的事情了,那些掌握技术的人可能也不得不担忧自己能否快速找到合适自己的工作。
虽然,最近两会有委员提出取消35岁的年龄限制,我其实个人并不看好这个提案,因为本质说社会上的私企卡35岁主要是因为廉价、能加班的年轻人太多了,企业处于成本考虑肯定愿意招聘这些年轻人,那么上了年龄的中年人不能加班就可以滚蛋了。 这个事情不是一个提案就能解决的,除非整个职场氛围得到了改变,所有公司都将老员工视作一种公司财富而不是消耗品的时候,才是35岁年龄其实真的消失的时候。
普通打工人还真的需要考虑当你年龄上来之后,失去手头这份工作之后怎么办,你辛辛苦苦寒窗苦读这么多年,出入的高级写字楼,做的都是产值上千万的项目。突然让你失业在家,跑滴滴,送外卖这个心里落差你能接受吗?
当35岁你在街头送着外卖,跑着滴滴,你在央国企的同学或许已经是一个小领导,你去当公务员的同学现在是一个科长,他们再不济也是个小职工有着稳定的收入,不太为生计发愁,不知道那个时候的同学聚会你还有心情去参加不?
对于打工人来说稳定到底意味着什么?
20多岁的年轻人总觉得世界是自己的,脑子里面全部是幻想,总觉得爽文小说当中的主角是自己,不说大富大贵至少能够在企业混的风生水起,升职加薪,当上领导。
这些愣头青的想法我也有过,但是对大多数没有抱上大腿的人来说,工作2~3年之后就会让你明白这个世界的真实运转规则,很多事情不是下位者能够决定的,无论是在国企还是私企,本质上事情还是上位者说了算。
简单来说就是,领导说你行你就是行,领导说你不行那么就赶紧想办法跑路吧。
这种情况在私企、国企其实都会遇到,大家刻板印象中老是说国企的官僚主义严重,但是其实私企才是官僚主义更加严重的地方,而且比起来国企就是小打小闹。
本质上来说在真的央国企你的领导实际上是没有人事权的,他就算再讨厌你也只能通过调岗、扣绩效等方式来恶心你,但是真的没办法裁掉你。
但是在私企领导其实就是你们这个地方的土皇帝,你让领导不开心或者领导不喜欢你,那么是真的可以裁掉你,可能就是一句话的事你下午就不用来上班了都是有可能的事情。在这种地方,你除了舔领导,拼命加班,拼命卷之外没有任何办法,因为上位者掌握着你的生死存亡。
在这种极度竞争和内卷的环境下,你的全部精力都会投入到工作当中,但是其实你并不参与蛋糕的分配,也就是你卷出来的成果、剩余价值大部份被老板拿走了。同时,高强度的工作还会剥夺你其它的可能,让你没时间陪家人,没时间发展自己的事业,当你不得不开始发展自己的事业的时候,就是你已经失业的时候。
而在央国企的工作情况就会好很多,首先大多数岗位是比较稳定的,你不用过于担心失业裁员的情况发生。其次,至少在项目不忙的时候,你的休息时间是可以保障的,利用这些时间你其实可以选择发展自己的事业,就像刘慈心一样写科幻小说未来说不定能从副业上面赚到你一辈子赚不到的钱。
所以,比起那些完全占用你时间和心智的工作,我其实觉得轻松但是钱不那么多的工作更加适合一个人的长期发展,从一生的尺度上看财富积累未必会比短短的靠25~35这10年间挣到的钱少。
为什么这几年央国企火了?
其实很多在校的学弟、学妹们沟通,我发现现在的孩子比我们当年看得明白很多,也可能是不同的时代背景造就了不同的人的观点。
我们还是学生的时候听到的故事还都是什么王者荣耀100个月年终,互联网财富自由之类的神话,但是疫情的3年互联网和诸多的财富神话跌落神坛,大多数普通人能够保住手头的这份工作就是件值得庆幸的事情了。 即使是去华为、阿里、腾讯这样的大厂也很难有机会再实现当年的财富神话,技术改变世界的思潮也正在慢慢退潮,现在这些大厂也很难让你挣到财富自由的钱,逐渐变成了一份普通工作而已。
当你在校园中搏杀了20几年好不容易拿到了学士、硕士、博士文凭,这些私企会告诉你现实的残酷,你手中的文凭只能帮你到入职的3个月,之后就各凭本事了。 资本是逐利的,中国的企业更加喜欢揠苗助长,没有任何培养一个员工的文化在里面。所谓的培养更多的是PUA,告诉你这儿也不行,哪儿也不行,然后在绩效考核的时候顺利成章的把锅甩给你,来满足组长必须找一个倒霉蛋背绩效的制度要求。 我不否认能力极强者、能卷的人在这种环境中能够获得快速的升职加薪和财富,但并不是每个人都是大神,也不是每个人在做好本职工作之外还有心情去舔领导。
入职央国企能够在很大成都上帮你避免上述的问题,大型的央国企平台很大有足够的时间和资源来让员工成长,对于刚入职的新员工可能前面半年都不会给你安排真正意义上的工作,多数是各种培训,各种学习。 我以前经常听到在国企的同学抱怨又是什么培训、什么学习、什么党会,让人觉得很烦没有意义,但是在我看来每个人都应该感恩这些公司花着钱让你不干活儿的活动,真的不是所有的公司都这么有耐心。 除此之外,很少有央国企会期待从你身上压榨什么,因为大多数央国企从事的都是垄断行业,拥有足够的利润,并且这些利润也并非属于领导或者某个人的,而是属于整个集团,国家。你和领导本质上都一样,只是这个国企的打工人,没必要压榨你太过分,毕竟赚的钱也一分不会到领导自己包里,对你个人的包容性也会更强一些。
所以当经济增长变缓,私企难以让人挣到足以财富自由的钱,大家就会发现其实没有必要去承担那么大的压力只是比稳定的工作多一点儿钱。这个时候一份稳定、有自己业余时间的央国企工作性价比就变得更高了起来。一边可以用工资保障自己的生活,一边开拓自己的事业在副业这个第二战场挣到更多的钱,确实会比在私企打工35被裁要体面得多。
The End
其实对于职业的选择,有一个核心逻辑就是去门槛更高的地方。
有的人说,大厂门槛很高啊,问那么多技术,刷那么多题,也是万里挑一才能进去一个人。
但是,实际上这些东西不算门槛,真正的门槛是把人堵在外面的不可逾越的鸿沟,比如说:如果你本科不是学的临床专业,那么你一辈子都没办法当上医生,除非重新高考!这才是真正意义上的门槛,而无论是多么高深的技术,只要肯学都能够学会的。
所以,大型垄断央国企其实是个门槛更高的地方,好的岗位除了应届生就没有就会进去,同时一旦进去占住坑了也很难被裁掉,除非你自己离职。大家可能经常会听说哪个国企的用自己的业余时间努力学习然后去了互联网大厂的。但是你可能完全没有听过那个私企的毕业没去 "中国烟草" 靠着自己的不懈努力,社招进入了中国烟草。
如果是应届生,尽量去门槛高、稳定的地方,考虑长期发展而不是贪图短时间的利益,这样一来即使你的能力没有那么强,也可以用马拉松的方式跑到最后。
人生是一段长跑,不到最后一刻不知道谁输谁赢,就算是活得比别人长,那么其实你最后也胜利了。
来源:juejin.cn/post/7343161077061992458
小红书创始人瞿芳,武汉人,北京外国语大学毕业,2013 年从外企离职,目前身价 120 亿
大家好,我是二哥呀。
今天我们来聊聊小红书的创始人瞿芳,1985 年出生于湖北武汉,毕业于武汉外国语学校,硕士就读于北京外国语学校。
毕业后进入贝塔斯曼工作,这是一家老牌外企,1835 年就有了,真的非常老,瞿芳在这里工作了 5 年。
瞿芳的执行力也是拉满,2013 年 5 月底离职,6 月赴美寻找风投,7 月初就和老乡毛文超在上海创立了小红书的母公司行吟信息科技有限公司。
长相上我觉得有一点邓丽君的感觉,大家觉得呢?
- 2015-2016 年,瞿芳连续两年被《创业邦》评为“值得关注的女性创业者”;这些年小红书的成长,瞿芳确实功不可没,值得关注。
- 2017 年,瞿芳荣登腾讯“我是创始人”荣耀榜单;小红书背后有阿里和腾讯两家大佬的投资,原来两家是从来不投一家公司的,瞿芳背后的斡旋算是让两家暂时握了手。
- 2020 年,瞿芳入选“中国最具影响力的 30 位商界女性”榜单;目前来看,小红书还处在上升势头,并且流量拉满,瞿芳的身价肯定也会水涨船高。
- 2024 年,瞿芳以 120 亿元的人民币财富位列《2024-胡润榜》的第 433 位;这还是在小红书没有上市的情况下。
瞿芳曾在采访中强调,用户体验和社区氛围是小红书最看重的。
这也是小红书这个平台和微博、抖音最大的区别,你可能在小红书上百粉不到,但发布的内容却会被推荐到平台首页,成为爆款。
微的推荐机制现在也有这种趋势,就是粉丝数越少,反而被推荐的机会越多。
瞿芳认为,品牌与用户的沟通应该从“教学模式”转向“恋爱模式”。
也就是说,我们创作者不能再以老师的角度切入,把读者作为学生来传达信息,而是奔着双方恋爱的方式切入。
更加的纯粹,双方的地位更加的对等。
宝子们,都看到了吧,我爱你们,😄
2013 年的时候,跨境旅游开始兴起,于是,瞿芳就和毛文超一起去找当地的购物达人,把他们的经验编成了一本厚厚的 PDF,书名就叫“小红书”。
这本 PDF 放到网上以后,引起了巨大的反响,一个月的下载量就突破了 50 万次。
尝到了甜头后,瞿芳和毛文超再接再厉,于 2013 年 12 月上线了小红书 App,相当于提供了一个购物的分享平台,注意不是电商平台,而是社区分享平台,让用户来分享自己的购物心得。
这个定位就非常的巧妙。
如果单纯地做电商平台,那么竞争对手多了去,比如说淘宝、天猫、京东,以及拼多多。
但做社区平台的话,当时还没有什么竞争对手,虽然点评和美图秀秀都曾在自己的业务中加入大量的社区内容,并放出豪言,但最终都没有竞争过小红书。
2014 年,小红书就聚集了几百万用户了,于是瞿芳就上线了一款希腊产的清洗液,结果直接被秒光了。
到 2017 年,小红书的营收就突破了 100 亿。
截止到目前,小红书已经发展成为了一个生活社区,基本上你想要的东西,你想找的地方,你想看的美女,小红书上都有。据说,月活用户已经达到了 3 亿。
其中女性用户占比 70%,日均用户搜索渗透率达到 60%,用户生成内容(UGC)占比高达 90%。
根本不需要 KOL。
2025 年 1 月,由于 TikTok 可能会被美国封禁,所以大量的海外用户开始涌入小红书。
中西文化的融合,在此刻显然格外的自然和松弛。
我现在打开小红书,已经很少看到原住民发的东西了,这波算法也被太平洋彼岸的热情感染了。
瞿芳在一次采访中的一段话我觉得很值得分享给大家,我套用一下:
“就像今天手机屏幕前的你们,可能大学生可能是工作党,但不管大家是怎样的身份,回到家里,可能还是会跟家人吃一顿最简单的饭,跟最爱的人一起去做一些有创造性的事情。”
我们要回到生活中去,而不只是活在虚拟世界里。
三分恶面渣逆袭
我这人一向说到做到,每天给大家汇报一下面渣逆袭的进度,这就来。今天修改到第 36 题。
35.你们线上用的什么垃圾收集器?
我们生产环境中采用了设计比较优秀的 G1 垃圾收集器,因为它不仅能满足低停顿的要求,而且解决了 CMS 的浮动垃圾问题、内存碎片问题。
G1 非常适合大内存、多核处理器的环境。
以上是比较符合面试官预期的回答,但实际上,大多数情况下我们可能还是使用的 JDK 8 默认垃圾收集器。
可以通过以下命令查看当前 JVM 的垃圾收集器:
java -XX:+PrintCommandLineFlags -version
UseParallelGC
= Parallel Scavenge + Parallel Old
,表示新生代用Parallel Scavenge
收集器,老年代使用Parallel Old
收集器。
因此你也可以这样回答:
我们系统的业务相对复杂,但并发量并不是特别高,所以我们选择了适用于多核处理器、能够并行处理垃圾回收任务,且能提供高吞吐量的Parallel GC
。
但这个说法不讨喜,你也可以回答:
我们系统采用的是 CMS 收集器,能够最大限度减少应用暂停时间。
内容来源
三分恶的面渣逆袭:javabetter.cn/sidebar/san…
二哥的 Java 进阶之路(GitHub 已有 13000+star):github.com/itwanger/to…
最后,把二哥的座右铭送给大家:没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟。共勉 💪。
来源:juejin.cn/post/7461772464738402342
谈谈在大环境低迷下,找工作和入职三个月后的感受
前言
今天是新公司入职后的三个多月了个人也是如愿的转正了,对于我个人而言此时的心情好像没有三个月前刚拿到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
裸辞后,我活得像个废物,但我终于开始活自己
哈喽,大家好!我是Web大鹅只会叫!下去沉淀了那么久,终于有时间回来给大家写点什么了!
你问我人为什么活着?我哪知道啊?我又不是上帝!释迦牟尼为了解这个问题还跑去出家,结果发现人活着就是为了涅槃——也就是死。所以别问我人生的意义,我也没搞明白!不过我能告诉你一个答案,那就是裸辞后,我终于知道了为什么要活着——那就是为了“活得自由”!
裸辞后,那些走过的路,和你说的“脏话”
2024年8月,我做了一个震惊所有人的决定——裸辞!是的,没错,我就是那种毫不犹豫地辞了职、丢下稳定收入和安稳生活,拿着背包去走四方的“疯子”。放下了每天早起20公里开车上班的压力,放下了无聊的加班、枯燥的开会,放下了所谓的“你要努力争取美好生活”的叮嘱。一切都在“离开”这一刻轻轻拂去,带着一种挥之不去的自由感。
带着亲人的责怪、朋友的疑问、同事的眼神、以及自己满满的疑惑,我开始了这段没有目的的旅行。我不知道我想找什么,但我知道,我不想再活得像以前那样。
我走过了无数地方,南京、湖州、宁波、杭州、义乌、金华、嘉兴、镇江、扬州、苏州、无锡、上海……一路走来,路过了每个风景,每个城市,每个人生。我甚至去了中国最北的漠河,站在寒风凛冽的雪地里,终于明白了一个道理:“你活着,才是最值得庆祝的事。
你知道吗,最让人清醒的,不是远方的景色,而是走出去之后,终于能脱离了那一套“你该做什么”的公式。每天不用设闹钟,不用准时吃饭,不用打卡上班,不用开会骂娘,再也不被地铁里的拥挤挤得喘不过气。生活突然变得宽松,我竟然开始意识到:我一直追求的美好生活,原来只是在为别人拼命。
走出内卷圈子的那一刻,我认为我是世界上最快乐的小孩了,我们渴望着幸福却糟践着现在,你所期望的美好未来却始终都是下一个阶段!你认为你是一个努力拼搏美好未来的人。可是现实比理想残酷的多!你没日没夜的拼搏,却让别人没日没夜的享受!你用尽自己半条命,换来的是下半辈子的病!我在裸辞后就告诉我自己:从今以后你想干什么、就干什么!你就是世界的主人! 嗯~ 爽多了!
走过的路,都在暗示我
我在大兴安岭漠河市的市里住了5天,住在一个一天40元的宾馆、干净、暖和!老板是一个退休的铁道工人。脸和双手都布满了冻伤,他的妻子(大姨)很面善。每天都会在我回来的时候和我聊上几句从前,安排一些极寒天气的注意事项。
有一天我去北极村回来,大姨和我聊了一会。大姨对我讲:“趁年轻、别把自己困起来,出去走走。不像我们,60年没出过这片土地,到头还要葬在这片土地上!”。她说这句话的时候没有忧虑、没有悲伤,却是一种满足感。是啊!60多了,还能追求什么?忙了大半辈子,把孩子都送出了这片土地,自己也没有激情出去走走了,很害怕自己的以后也是这样。
我20多岁的年纪,想的不是努力拼搏挣钱、不是搞事业。却总想着无所事事。我觉得自己像一个没有完全“被时间遗弃”的人,我甚至觉得自己不属于这个时代,这个不知道为了什么而拼命的时代。每走一步都好像在掏空自己积压已久的情绪:压力、焦虑、焦灼,让我很享受这种感觉。然后我想起来一本书里的话:“你活着,不是为了活给别人看。“ 是啊,我们都明白这个大道理,可自己从来没打算让自己脱离这个主线。我开始明白,我这次的旅行不是去寻找什么,而是放下什么!
从别人嘴里听到的“脏话”,其实是自己内心的尖刺
这段时间里,我经常回想起来那些让我神经紧绷的日子。尤其是我对“人” 这个物种越来越敏感的那个时期————‘恶毒、自私、无理、肮脏’。朋友的欺骗、同事的推锅、亲人的折磨都是罪恶的!可是到头来,事情还是发生了。地球还是在自转,太阳一样正常升起落下。这些都没有在你认为的这些琐事中消失。我不明白我还在纠结什么?
事实上,这些乱七八糟的事情并不是指向我个人的,它只是我内心脆弱的反射。是的,我一直在内耗自己罢了,把自己放在了一个焦虑的漩涡里。假装没事、假装坚强,结果别人一句话就能作为击垮我的最后一击。直到有一天,我发现我讨厌的只是我自己。所以我决定我不要去在意别人说什么、做什么,我不要逃避问题,我想听听我内心的想法,我不想让自己认为别人在定义我。
过程的意义:也许就是为了“停一停”
好了,我知道我的文采不好,但是也应该有个结尾。
在这一路上,我认识了很多有趣的人,他们不同风格的服装、不同口音,各式各样的生活方式。也有着各式各样的理想和困惑。有的喜欢在山顶等着日出的奇迹,有的则是想在湖边静静地坐着。而我,就是个迷途的羔羊,没有群体头羊的带领,我穿行在这些不同的路途中,慢慢摸索着向所有方向前进着。
偶尔我也会停下来,坐在湖边吹着风、闭上眼睛,听风,感受这一刻的宁静。然后我会微笑,我认为这个时候的我有了轻松的感觉。生活的答案我在这个时候找到了。
我意识到,未来不是重要的,现在才是应该享受的。我不知道我下一步要去哪里,但是我想先停下来看一看,呼吸一下。停下来不是因为我没有了目的,而是我知道,目的地并不重要,重要的是,我和自己在一起,心里不再有那么多焦虑,不再被过去的焦虑所束缚。
所以,我选择了离开,离开这一切,放下所有的焦虑和期待,享受我自己想要的生活。也许,活着的意义不在于追寻一个遥远的目标,而是过好每一个‘现在’。
来源:juejin.cn/post/7454064311079813132
好人难当,坏人不做
好人难当,以后要多注意了,涨点记性。记录三件事情证明下:
1. 免费劳动
之前和一个同学一起做一个项目,说是创业,不过项目做好了,倒是他家店铺自己用起来了,后来一直让我根据他家的需求进行修改,我也一一的改了,他倒是挺感谢我的,说是请吃饭。不过也一直没请,后面都一年多过去了,还让我免费帮他改需求,我就说没时间,他说没时间的话可以把源码给他,他自己学着修改,我就直接把源码给他了,这个项目辛苦了一个多月,钱一毛也没赚到,我倒是搭进去一台服务器,一年花了三百多吧。现在源码给他就给他了吧,毕竟同学一场。没想到又过了半年,前段时间又找我来改需求了。这个项目他们家自己拿着赚钱,又不给我一毛钱,我相当于免费给他家做了个软件,还要出服务器钱,还要免费进行维护。我的时间是真不值钱啊,真成义务劳动了。我拒绝了,理由是忙,没时间。
总结一下,这些人总会觉得别人帮自己是理所当然的,各种得寸进尺。
2. 帮到底吧
因为我进行了仲裁,有了经验,然后被一个人加了好友,是一个前同事(就是我仲裁的那家公司),然后这哥们各种问题我都尽心回答,本着能帮别人一点就帮别人一点的想法,但是我免费帮他,他仲裁到手多少钱,又不会给我一毛钱。这哥们一个问题接一个,我都做了回答,后来直接要求用我当做和公司谈判的筹码,我严词拒绝了,真不知道这人咋想的,我帮你并没有获得任何好处,你这个要求有点过分了,很简单,他直接把我搬出来和公司谈判,公司肯定会找我,会给我带来麻烦,这人一点也没想这些事。所以之后他再询问有关任何我的经验,我已经不愿意帮他了。
总结一下,这些人更进一步,甚至想利用下帮自己的人,不考虑会给别人带来哪些困扰。
3. 拿你顶缸
最近做了通过一个亲戚接了一个项目,而这个亲戚的表姐是该项目公司的领导,本来觉得都是有亲戚关系的,项目价格之类开始问了,他们没说,只是说根据每个人的工时进行估价,后面我们每个人提交了个人报价,然后还是一直没给明确答复,本着是亲戚的关系,觉得肯定不会坑我。就一直做下去了,直到快做完了,价格还是没有出来,我就直接问了这个价格的事情,第二天,价格出来了,在我报价基础上直接砍半。我当然不愿意了,后来经过各种谈判,我终于要到了一个勉强可以的价格,期间群里谈判也是我一个人在说话,团队的其他人都不说话。后来前端的那人问我价格,我也把过程都实话说了,这哥们也要加价,然后就各种问我,我也啥都告他了。后来这个前端在那个公司领导(亲戚表姐)主动亮明身份,她知道这个前端和那个亲戚关系好,然后这个前端立马不好意思加价了,并且还把锅甩我头上,说是我没有告诉他她是他姐。还说我不地道,我靠,你自己要加价,关我啥事,你加钱也没说要分我啊,另外我给自己加价的时候你也没帮忙说话啊,我告诉你我加价成功了是我好心,也是想着你能加点就加点吧,这时候你为了面子不加了,然后说成要加价的理由是因为我,真是没良心啊。后面还问我关于合同的事情,我已经不愿意回答他了,让他自己找对面公司问去。
总结一下,这些人你帮他了他当时倒是很感谢你,但是一旦结果有变,会直接怪罪到你头上。
4. 附录文章
这个文章说得挺好的《你的善良,要有锋芒》:
你有没有发现,善良的人,心都很软,他们不好意思拒绝别人,哪怕为难了自己,也要想办法帮助身边的人。善良的人,心都很细,他们总是照顾着别人的情绪,明明受委屈的是自己,却第一时间想着别人会不会难过。
也许是习惯了对别人好,你常常会忽略自己的感受。有时候你知道别人是想占你便宜,你也知道别人不是真心把你当朋友,他们只是觉得你好说话,只是看中了你的善良,但是你没有戳穿,你还是能帮就帮,没有太多怨言。
你说你不想得罪人,你说你害怕被孤立,可是有人在乎过你吗?
这个世界上形形色色的人很多,有人喜欢你,有人讨厌你,你没有办法做到对每一个人好,也没办法要求每一个人都是真心爱你。所以你要有自己的选择,与舒服的人相处,对讨厌的人远离,过你自己觉得开心自在的生活就好,没必要为了便利别人,让自己受尽委屈。
看过一段话:善良是很珍贵的,但善良要是没有长出牙齿来,那就是软弱。
你的善良,要有锋芒,不要把时间浪费在不值得的人身上。对爱你的人,倾心相助,对利用你的人,勇敢说不。
愿你的善良,能被真心的人温柔以待。
来源:juejin.cn/post/7455667125798780980
我们都被困在系统里
前言
Hi 你好,我是东东拿铁,一个正在探索个人IP的后端程序员。
2020年外卖最火热的时候,有一篇文章《外卖骑手,困在系统里》。
作为一个互联网从业人员,我之前从未有机会体会到,当每一个工作都要被时间和算法压榨时,我会是一种怎样的感受。
而最近的一段经历,我感觉也被困在系统里了。
起因
如果你是一个研发人员,免不了要值班、处理线上问题。当然这都很正常,每个系统都有bug或者咨询类的问题。
由于我们面临的客户比较多,加上系统有一些易用性的问题或bug,提出来的问题不少。
公司有一项政策,当客服人员提交工单之后,系统对每一个单子有超时时间,如果超出一定时间你还未提交,罚款50元。
挺奇葩的,谁能保证1个小时就一定能排查出问题呢?
于是就会有一个场景,如果赶上问题多,一下子来5、6个工单,恰巧遇到不容易排查的耽误时间的话,处理后面的工单,都面临着超时的压力。
之前同事们对值班这件事,充满了怨言,大多都会吐槽几个点
- 系统bug太多了,又是刚刚某某需求改出来的问题
- 需求设计不合理,很多奇怪的操作导致了系统问题
- 客服太懒了,明明可以自己搜,非得提个工单问
- 基础设施差,平台不好用
我不太爱吐槽,但当工单一下子来的太多的时候,我不由自主的陷入机械的处理问题中,压缩思考的时间,只求不要超时就好。
明明系统有很多问题需要解决、流程也有很多可以优化,可当系统给到我们的压力越来越多时,我们便不去思考,陷入只有吐槽、怨言和避免罚款的状态。
当陷入了系统的支配,只能被动接受,甚至有了一些怨言的时候,我意识到,这样的状态,是有问题的。
被困住的打工人
外卖员为什么不遵守交通规则呢?
外卖小哥为了多赚钱、避免处罚,我之前也很不理解,为什么为了避免处罚,连自己的生命安全都可以置之不顾。
但转念一想,我们虽然不用在马路上奔波,可受到“系统”的压力,可是一点也不比外卖员少。
大家一定有过类似的经历:你骑车或者开车去上班,距离打卡时间所剩无几,你在迟到的边缘疯狂试探,可能多一个红绿灯,你就赶不上了,这时候你会不会狠踩几脚油门、闯一个黄灯,想要更快一点呢?
但随着裁员、降本增效、各类指标的压力越来越大,我们被迫不停的内卷,不断压榨自己,才能满足职场要求越来越严格的“算法”,比如,每半年一次的绩效考核,月度或者季度的OKR、KPI,还有处理不完的线上问题、事故,充斥在我们的脑海里面。
其实我们何尝不是“外卖员”呢?外卖员是为了不被扣钱,我们是为了年终奖、晋升罢了。
所以回过头来看,其实我们早早的就被困在“系统”中了,为了满足系统的要求,我们不得不埋头苦干,甚至加班透支身体,作出很多非常短线思维的事情。
但为什么,我之前从来没有过被困住的感觉,为什么我现在才回过神来,意识到这个问题呢?
我想,大概是越简单的事情,你作出的反应就越快、越激烈。而越复杂、时间越长的事情,你作出的反应就越缓慢,甚至忽略掉。
比如上班即将迟到的你,你会立刻意识到,迟到可能会受到处罚。但是年终评估你的绩效目标时,你或许只有在最后的几个月才会意识到,某某事情没完成,年终奖或许要少几个月而感到着急。
积极主动
最近正好在读《高效能人士的七个习惯》,其中第一个习惯就是积极主动。
书中说到:人性的本质是主动而非被动的,人类不仅能针对特定环境选择回应方式,更能主动创造有利的环境。
我们面对的问题可以分为三类:
- 可直接控制的(问题与自身的行为有关)
- 可间接控制的(问题与他人的行为有关)
- 无法控制的(我们无能为力的问题,例如我们的过去或现实的环境)
对于这三类问题,积极主动的话,应该如何加以解决呢。
可直接控制的问题
针对可直接控制的问题,可以通过培养正确习惯来解决。
从程序员角度来看,线上bug多,可以在开发前进行技术设计,上线前进行代码CR,自动化测试,帮助自己避免低级的问题。
面对处理工单时咨询量特别多的问题,随手整理个文档出来,放到大家都可以看到的地方。
可间接控制的
对于可间接控制的,我们可以通过改进施加影响的方法来解决。
比如流程机制的不合理,你可以通过向上反馈的方式施加影响,提出自己的建议而不是吐槽。
无法控制的
对于无法控制的,我们要做的就是改变面部曲线,以微笑、真诚与平和来接受现实。
虽然反馈问题的人或许能力参差不齐,导致工单量很多,但我们意识到这一点是无法避免的,不如一笑而过,这样才不至于被问题左右。
说在最后
好了,文章到这里就要结束了。
最近由于值班的原因,陷入了一段时间的无效忙碌中,每一天都很累,几乎抽不出时间来思考,所以更新的频率也降下来了。
但还好,及时的意识到问题,把最近的一点思考分享出来,希望我们每个人都不会被“系统”困住。
欢迎你在评论区和我分享,也希望你点赞、评论、收藏,让我知道对你有所收获,这对我来说很重要。也欢迎你加我的wx:Ldhrlhy10,一起交流~
本篇文章是第41篇原创文章,2024目标进度41/100,欢迎有趣的你,关注我。
来源:juejin.cn/post/7385098943942656054
独立开发:家人不支持怎么办?
大家好,我是农村程序员,独立开发者,前端之虎陈随易。
这是我的个人网站:chensuiyi.me,欢迎一起交朋友~
有很多人跟我聊到过这个问题:做独立开发,家人不支持怎么办?
。
在我交流沟通下,最终发现,这些人都走进了一个误区:独立开发者
等于 我要辞职全职做独立开发
。
请看我对独立开发者的分类:
- 业余独立开发。特点:
上班 + 下班的业余时间独立开发
。 - 兼职独立开发。特点:
不上班 + 没有充足的时间做独立开发
。 - 全职独立开发。特点:
不上班 + 有充足的时间做独立开发
。 - 混合独立开发。特点:
上班+兼职+没有充足的时间做独立开发
。
现在是不是一目了然了。
你可以根据自己当下的情况,特点,去选择做哪一种 独立开发
。
我们目前所看到的 全职独立开发
,只有极少数人可以做到。
这对于个人的内在要求,包括自律,坚持,执行力,产品力,都有着较高的要求。
同时呢,来自家人的态度和压力,也是 全职独立开发
的重要条件。
不要一开始,啥独立开发的经验都没有,就想做 全职独立开发
。
那么当你可以 理性地选择
适合自己当下情况的的独立开发方式后,你会发现,家人还会不支持吗?至少不会那么反对了。
所以这个问题的答案就是这么简单,只要看了我对独立开发的分类,你就明白了。
独立开发,本就是一个人的战斗,不要妄想这家人会支持你,他们最大的支持就是不反对。
我们遇到这样的问题时,不要觉得家人怎么怎么样,自己受到了多大的委屈和不理解一样。
他们的想法,是完全没有问题的。
人是社会动物,必然要考虑当下的生存问题,这是十分合理且正常的。
那么,如果上面的问题解决后,家人还是不支持,怎么办呢?
也很简单啊,自己偷摸摸继续折腾呗,难道一定要得到家人的支持,才能做独立开发吗?
《明朝那些事》
的作者,当年明月,赚了几千万家人才知道呢。
当然,我不是说你,也不是说我自己,可以赚几千万,我们可以定目标,但不能做梦。
总而言之就是说,做独立开发,要做好一个人长期战斗的准备。
因为你很有可能,很多年都无法比较稳定地每个月赚 5000 块钱,独立开发远没有我们想象的那么轻松。
如果你实在没有时间,没有干劲,没有激情做独立开发,那么不如其他方向,说不定能获得更好的回报。
独立开发是一个美好的梦,不稳定,也容易破碎。
那么我为什么一直在坚持做独立开发呢?因为我想让美梦成真。
来源:juejin.cn/post/7434366864866099234
关于生娃的思考
生娃是人生很重要的事,值得花时间思考。我断断续续想了几年,没想明白,最近看 B 站半佛老师对哪吒 2 的影评,理解了什么情况下可以生娃,把感受分享给大家。
什么时候可以给孩子无条件的、不抱任何期待的爱,什么时候就可以生娃了。
半佛老师在影评中表示非常羡慕哪吒有那样的父母,因为哪吒的父母给哪吒无条件的、不抱任何期待的爱,而半佛老师的童年比较悲惨,让他有点羡慕嫉妒恨。为此半佛特意查了导演饺子的家庭,希望饺子是因为缺爱才把哪吒父母写的那么好,结果发现饺子就是哪吒本吒,他彻底破防了。
过年回家免不了和父母共处几天,我也几度破防,好几次想直接回出租屋。也被催生,丈母娘也催。
之前对生娃的看法,我觉得生娃太费钱了,而我没钱,就算我有钱,我也不想把钱花在娃上面,我想花在自己身上,多体验人生。
其次我自己这辈子都没活明白,也挺痛苦,何必生个娃来这悲惨世间走一遭?所以我不生娃。
但这次我有新的想法,是否生娃,应取决于我是否做好了为人父母的准备,即是否可以给孩子无条件的、不抱任何期待的爱。这决定孩子一辈子是否幸福。
两个关键词,无条件、不抱期待。
无条件
考试考得好,父母就爱,考得不好就不爱;听话就爱,不听话就不爱;不知道你们怎样,我小时候是这样的。
这让我没有安全感,下意识会做些讨好父母的行为,来获得父母的 “ 爱 ”。
当我成年的时候,我妈发现这招不管用了,我不需要他们的爱,我需要钱,因为钱能给我安全感。
所以我大学去食堂打工,每天中午和晚上早点下课过去,结果一个月才 300 块钱包两顿饭。
不抱期待
期待这个东西,在教育中尤为突出,否则不会也有那么多鸡娃的父母。
父母对孩子的期待,让孩子有非常强烈的愧疚。我辛辛苦苦把你从农村带到城市,你就考这么几分?我辛辛苦苦把你拉扯大,你就这么对我?
在这种环境下,我成为了一个逆子,六亲不认,自动屏蔽亲情。我不接受他们的爱,我也不给他们爱。
大学打工的 300 块不能养活我,每年还要交学费,我一想到学费是父母出的,他们又会以此要挟,我辛辛苦苦赚钱供你上大学,结果你就这样?
所以只读了半年大学,我退学了,自己出去找工作,我必须在经济上独立,必须逃离这个家。
别人说家是港湾,外面受伤了家是永远的依靠,对我来说家就是伤害。
其实我这样还算好的,至少活下来了,还有更多孩子,承受不了这种愧疚,选择了自杀,他们要把愧疚,加倍偿还给父母。
我身边就有这样的案例,跳楼了,他父母不知道为什么说了两句,孩子就直接从阳台上跳下去了。
我可太懂了,我也想过自杀,一来是当时家里装了防盗窗,我有点胖钻不过去;然后换成了撞墙,头上撞了几个包有点疼,基因让我停下了;我还尝试过离家出走,也没走成。
但我也在脑海中无数次幻想,要是我死了,我爸妈有多愧疚,这就是我自杀的目的。
我写的和想的有点黑暗,有人说什么爸妈把你辛辛苦苦拉扯大,不容易什么的。
但是我不需要,我没求着来这个世上。
所以我对自己生娃,非常谨慎,我不希望他的童年会想自杀,我不希望他成年后和父母几乎断绝关系,我希望他要来就过的幸福点,这取决我能否会给他无条件的、没有期待的爱。
愿各位都是好父母,愿世上孩子都幸福,以上是我的思考,共勉。
来源:juejin.cn/post/7467353503088246784
在村里上班的程序员
今天是在山上办公的第二天,现在时间是晚上的10点36分,刚刚写完今日份工作日报又刷10分钟手机的我决定写上一篇日记简单记下最近两天我的日常。
我的上班,是跟着国家法定节假日安排走的,前天初八,是我25年年后上班的第一天。
阿妮的假期还未结束,她决定回一趟娘家,由此,我在初八一大早——7点半到8点50分——先送阿妮进城,送到她的外公外婆家。接着,我在外公外婆家办公一天。
初八那天的午饭
大嘎嘎(外公)小嘎嘎(外婆)总是很欢迎我和阿妮的到来,午饭晚饭,我连连摇头不停摆手依然吃得很撑。
我干活的节奏,和年前是一样的:上午9点到12点多些,下午2点到6点7点,晚上8点9点到10点更多些,都是我的干活——单纯指做工作上的事情——时间。
阿妮晚上约了她的初中同学一起聚餐,我带上电脑跟着大家一起。烧烤桌上,对着电脑试用VS Code新插件Cline的我,是没有感受到心理压力的;烧烤桌上的干活时间,我是专注的。
--
初九一大早,我从县城回家回到山上,带着两个帽子和几个包子。帽子是初八晚上一起逛楼下街道时阿妮买给我父亲母亲的,包子,是我自己想吃再给父亲母亲带着的。
初九是个很好日子,返程路上,我碰见的接亲队伍有4个。
初九的天气,很有些特色,上午飘雪,下午大太阳,晚上很有些冷。我在山上的上班,上午烤电火,下午太阳下干活,晚上的干活,有一部分是洗漱完毕躺床上完成的。
我的办公桌椅
昨天的在家办公体验不错,但我需要对自己诚实些,当时我的内心,有两个小小担忧存在。
第一个关于当前的环境,下午父母外出吃酒只留我一个人在家,我家近处只有邻居一户。到了夜晚,整个世界很安静,安静到我能听见自己的呼吸,我的一个小小动作都能发出很大声响,我承认自己理智相信科学,但同时我也看过许多志怪故事。对的,晚上一个人在家,我很有些害怕。
第二个是工作内容,我总觉得自己近来的效率并没有很高。其实不太对,其实效率应该是ok的,不ok的是我关于AI技术的知识储备太少,而我并没有给自己一个好的计划去每天进步一点点。emmm~其实还是有些不太对,这个概念有些大,更准确的是,我感觉自己在有些工作内容上,还可以做的好一些。
晚上11点又过10分钟,背完单词的我睡下,脑子中那轻微恐惧并不散去,直到深睡。
很神奇的是,今天早上6点多醒来,那对于安静的害怕,一点都不剩下。
--
整个过年前后,我都感觉自己很忙,忙到已经坚持周更四年多的公众号都不能在周日及时更新。今天即便晚睡也想要写上一篇日记的情绪,来源于下午6点发生的一件,一件让我感觉有些窘迫的事情。
伯娘进门问我:”你们作料放啊哪儿的呢?“
”你老汉喊我来给你煮一碗面条。我给他说,叫你到我们那里去吃,你老汉儿说你走不开哈,那我就来给你煮面条了啊。“
当时我真的很窘迫,感觉很有些尴尬,而同时内心,又会有些开心情绪蔓延。
我是很想给自己找一个借口的:我以为父母吃酒,会在下午三点左右回家。我的早餐,是昨天剩下的两个肉包;我的午餐,是一碗加了母亲自制麻糖的泡阴米子,再加一个橙子与一个苹果。我认为肉包、橙子与苹果,是可以撑到母亲回家的。
工作日,我真的不想做饭。
即便并不很饿,但我确实有让阿雪对母亲说:“你再不回家,你的大娃娃和你的喂的猪,都要饿趴了哦。”
很是粘人的狗子
对的,今天干活间隙,我有喂猪——猪食当然是母亲提前煮好的,遛狗——我只需要前面走着,狗自然在后面跟着。
伯娘烧火又煮面,花半小时。
我为面条,拍了一张好看照片。
好吃的清汤面与好看的照片
时间已经是晚上的11点20分,且快快睡觉。
今晚,我一点都不害怕。
来源:juejin.cn/post/7468970428918906906
10年开发后,我后悔坚持的8个技术信仰,不知你踩中几个
今天,我在生产环境排查一个莫名其妙的崩溃。日志里布满了层层抽象的调用栈,像一张无边的蜘蛛网。
代码里的每一行都符合“最佳实践”,架构精雕细琢,可Bug还是来了。那个瞬间,我突然想起四年前的自己——曾无比自豪地告诉新人:“优雅架构就是一切。”
可现在,我只想对那时候的自己说:“别装了,写能跑的代码吧。”
十年开发生涯让我推翻了许多曾深信不疑的技术理念。今天,我把这些踩坑经历整理出来,希望能帮你少走些弯路。
01 | 技术理念的崩塌
1. “简单”从来不是免费的,它是最昂贵的选择
四年前,我坚信“简单至上”。后来我才发现,让代码保持简单,需要持续的投入。业务需求膨胀时,每个“简单”的架构决策,都要付出昂贵的代价去维护。
真正的“简单”,不是一开始就写出完美代码,而是有能力在复杂性爆炸前,把代码逐步“修剪”回合理状态。
2. “优雅”是幻觉,能跑才是道理
曾经,我会在代码里反复推敲命名,调整缩进,优化模式,追求某种“美感”。但经历了几次生产事故后,我意识到:“优雅”从来不是一个真实的技术指标。
系统能否稳定运行、团队能否快速交接,远比代码的“形式美”重要。优雅的代码,不如无Bug的代码。
3. ORM是恶魔,SQL才是答案
我曾经推崇ORM,认为它能屏蔽数据库差异,提升开发效率。后来被它坑惨了:复杂查询写不出来,性能优化受限,Debug像拆炸弹。
最终,我回归了最原始的方式——直接写SQL。数据库优化的最佳方式,就是尊重SQL,而不是绕开它。
4. “类型安全”是团队的保护网
过去,我对强类型语言嗤之以鼻,觉得动态语言写起来灵活高效。直到一次团队交接,动态代码的“魔法”变成了无尽的痛苦。
Typed语言像护栏,帮团队里经验不同的人保持代码质量。个人写代码可以随性,团队协作必须稳健。
5. 前端开发已经卷成了噩梦
十年前,前端是HTML+CSS+JS,简单直白。现在,前端是一套复杂的工程体系,动不动就要学框架、学编译、学服务端渲染。
我越来越觉得,前端的“工程化”并没有带来应有的幸福感,而是让开发变得越来越焦虑。
6. Serverless 未来是好东西,但现在还是坑
Serverless的愿景很美好,可落地时,我无数次因为它的冷启动、调试难、监控难而崩溃。
如果你要做长期稳定的业务,老老实实选传统架构,Serverless 还没成熟到能承载大部分业务的程度。
7. “软件工程”大多时候只是沟通问题
这几年,我越来越发现,软件开发不是“写代码”这么简单,而是沟通、协作、妥协的过程。技术难点从来不是代码,而是“如何让所有人理解代码”。
会编码是一回事,能让别人看懂你的代码,才是真本事。
8. “管理”比技术重要,但真正好的管理极为稀缺
我花了很长时间才意识到,一个烂的管理,会让优秀的工程师一身狼狈;而一个好的管理,能让普通人也做出优秀的产品。
好管理者太少了,大多数的管理者,只是在消耗开发者的创造力。
02 |如何避免踩坑?
十年后的我,给刚入行的开发者3个建议:
① “代码洁癖”适可而止,写业务代码时别钻牛角尖
不要为了“优雅”而牺牲实用性,别陷入“最佳实践”的执念。实用 > 形式美。
② 直接写SQL,别太信任ORM
ORM适合简单查询,但复杂业务逻辑,SQL才是终极答案。与其踩坑,不如早点学会手写SQL。
③ 沟通能力比技术能力更值钱
代码能跑很重要,但能解释给别人听,能让团队顺畅协作,才是更核心的能力。
03 | 技术思维的升级
- “代码简单”不是靠写出来的,而是靠不断重构出来的
- “优雅”不是工程目标,稳定和可维护才是
- “工程师文化”最重要的是沟通,不是编码
04 | 你踩过这些坑吗?
如果你也在开发生涯中经历了类似的转变,欢迎留言分享你的故事。
你现在的信仰,四年后还会坚守吗?点击“在看”,收藏这篇文章,未来某一天再回来看,你的想法是否还一样。
来源:juejin.cn/post/7468100737994784787
最近看到太多 cursor 带来的焦虑,有些话想说
大家好,我卡颂,专注于AI助力程序员转型(阅读我的更多思考)
最近,有很多用cursor短时间开发应用的例子,其中不乏没有编程能力的非程序员。
这就给程序员群体带来一种焦虑 —— 我赖以谋生的技能会快速贬值么?
之所以会有这种焦虑,是因为看待AI与看待自身职业的角度不同:
- 从发展角度看待AI:默认AI能力会越来越强
- 从静态角度看待本职工作:默认程序员工作一成不变
如果我们能从发展角度看待本职工作,就能看到不一样的东西。
前端会经历的三个阶段
以我熟悉的前端行业举例(其实程序员工种也适用)。
从发展角度看待前端行业,当前行业正处在大规模的开发范式迁移中。
什么是开发范式迁移?举2个例子:
- 从原生JS过渡到
jQuery
的链式写法 - 从
jQuery
的命令式过渡到前端框架的声明式写法
当前,前端行业正处在由AI主导的新一轮开发范式迁移中,这是阶段一。
当开发范式迁移完成后,会形成事实上的新的前端技术栈,这是阶段二。
当新的前端技术栈形成后,会产生新的前端发展路径。
完整三个阶段演进过程如下:
接下来我详细解释下每个阶段。
阶段1:开发范式迁移
大规模开发范式迁移的显著特征,是不断出现新的开发工具,不断有开发工具被抛弃。
比如,在AI辅助编码领域,先行者是Github Copilot
,他开创了AI驱动的Tab补全代码这一AI辅助模式。
再往后,有了Continue
、Cursor
、Windsurf
,在Copilot
基础上创造了更多辅助模式,比如:
- Chat模式
- Normal/Agent Composer
其中,AI驱动的Tab补全代码已经逐渐成为程序员开发标配。
这就是开发范式迁移的一个例子。
接下来,我再举一个例子。
AI驱动的前端脚手架工具
当提到前端脚手架工具,大部分人第一反应是Vite
、CRA
这样的工具。
他们都属于上个前端开发范式时代的脚手架工具。
在当下,已经涌现很多AI驱动的前端脚手架工具,比如v0、bolt.new。
v0
是Vercel
开发的,可以理解为他是基于Vercel
旗下开发工具(Next.js
、shadcn
)的前端脚手架工具。
bolt.new
是Stackblitz
开发的,没有绑定具体前端技术,是一个比较通用的全栈项目(基于Node.js
)脚手架工具。
总结下,在范式迁移过程中,这些新技术不断涌现,又不断消失。
最终的胜者会成为未来前端技术栈中的固定嘉宾。
一件有趣的事:一般来说,技术、工具的普及是由于“程序员大规模认可”。但未来,他们的普及可能是因为“AI大规模认可”
阶段2:新的前端技术栈
为什么AI辅助编码已经是开发标配,但大部分公司的招聘要求中却没有提及?
因为AI辅助编码还在高速发展中,没有形成最佳实践。
只有到形成业界公认的最佳实践,成为新的前端技术栈,才会出现在主流的招聘要求中。
对Cursor
的焦虑本质来说,就是没意识到随着AI的发展,前端技术栈也会更新。
如果Cursor
(或者Cursor
同赛道的最终胜者)是程序员技术栈中要求需要熟练掌握的工具(就如同当前前端技术栈中的前端框架)。
那你还会因为“工具提高了开发效率”而焦虑么?
阶段3:新的前端发展路径
当前端(或其他任何程序员工种)完成开发范式迁移,形成事实上的新技术栈。
会造成两个结果:
- 职业门槛大幅度上升
- 开发效率大幅度提高
这势必会让行业洗牌,出清掉大量从业者。
同时也会形成新的前端发展路径。
当我们最终达到阶段3(产生新的前端发展路径),我认为他会是下面这样:
未来,基础的前端岗位是使用AI工具的前端专才,他包括两项能力:
- 熟练使用AI编码辅助工具
- 熟练的前端理论知识(类比当前的资深前端)
前端专才有两个进阶方向:
- 制作AI工具的前端
- 使用AI工具的前端多才
我解释下这两者。
其中,制作AI工具的前端类似当前的基建岗前端。
但不同的是,当下的基建岗前端很难回答一个问题:我花费大量时间做的工具相比同类开源产品有啥决定性优势?
与前者不同,制作AI工具的前端的产出是业务定制化的AI提效工具,这是与业务强相关的。
就像曾几何时,任何前端团队都需要一个webpack配置工程师
一样。
前端多才
则是指以前端技能为核心能力,同时掌握与前端相邻、平行工种的工作技能
- 相邻工种:UI、测试、后端、产品
- 平行工种:其他端的前端
这里举一个大前端开发工程师
的例子。
当前国内开发现状是 —— 端碎片化。
小程序、移动端、hybrid、web等,一个需求可能有多端开发需要。
对于多端开发需求,常见的解决方案有两种:
- 花钱方案:组建大前端团队
- 省钱方案:使用跨端方案,UniApp、Taro、React Native、Flutter...
由于各端逻辑类似,如果你同时掌握多端能力,只要实现一端后,就能借助AI将代码转为其他端。
只要“AI转代码的成本”比“调试跨端框架”低,这就是可行的。
随着AI的发展,当前者的收益显著高于后者后,就会出现大前端开发工程师
这一前端多才职业。
总结
事物是发展的,不仅AI如此,程序员行业亦是如此。
如果用静态的眼光看待程序员行业,满满都是被AI取代的焦虑。
但用发展的眼光看待时,这一行仍处于这波AI浪潮的早期 —— 大规模开发范式迁移阶段。
后面还有很长的路要走。
来源:juejin.cn/post/7452736507826683931
程序员工作七年后的觉醒:不甘平庸,向上成长,突破桎梏
前言
Hi 你好,我是东东拿铁,一个正在探索个人IP&副业的后端程序员。
昨天看到雪梅老师公众号的文章,《中国的中年男性,可能是世界上压力最大的一群人》。
看完文章,深有感触,因为自己有时候,觉着压力挺大的,因为从小到大,一直感觉世俗上的一些条条框框,在约束着你。
上学时,你要好好读书,争取考上985/211,最起码上个一本。
工作后,大家都羡慕考公上岸的,上不了岸的话,你需要找一个好公司,拿到一个高工资,最好还能当上管理人员。
后来有了家庭,你要承担起男人的责任,赚钱养家。
过去20多年的时间,我都觉着这样的条条框框没有问题,在年少轻狂的时光,这些条条框框决定了你的下限,大家不都是这么过来的吗?
可是我过去的努力,都是为了符合条条框框的各项要求。我越来越觉着疑惑,我的努力,到底是为了什么啊,是为了这些世俗上的要求吗,我到底为谁而活?
压力,是自己给的
说实话,自己也给自己不少压力。
刚毕业,没有房贷车贷的情况下,我便给了自己很大的压力。压力怎么来的呢?比如一个月五千块钱的工资,买不起一个最新款的iPhone,又比如北京的朋友们,工资相比我在二线城市,竟能高出我一倍。
后来工作半年决定去北京,也是工作7年来,唯一一次的裸辞。
初生牛犊不怕虎,裸辞给我带来的毒打,至今历历在目,比如银彳亍卡余额一天天减少的焦虑,比如连面试都没有的焦虑,还有时刻担心着要是留不在北京,被迫得回老家的焦虑。
记得青旅楼下,有一家串店叫“很久以前羊肉串”,不到五点的时候门口就会有人排队,晚上下楼时看着饭店里熙熙攘攘,吃着烤串喝着扎啤的人时,心里十分羡慕,但却又不会踏进饭店一步。
毕竟一个目前找不到工作的人,每天一睁眼就是吃饭和住青旅的成本,吃个20块钱一顿的快餐就好了,怎么可能花好几百下馆子呢?
那时候心里有个愿望,就是我也想每周都可以和朋友来这里吃顿烧烤、喝喝扎啤。
嗯,我也不知道为什么,那时候对自己就是这么严苛。家庭虽不算富裕,但也绝不可能差这几顿烧烤、住几晚好的宾馆的钱,但我就是这样像苦行僧一样要求着自己,仿佛在向爸妈多要一分钱,就代表着自己输了。
后来工作稳定了,工资也比毕业时翻了几倍,恰巧又在高位上车了房子,但似乎压力只增不减,同样是不敢花钱。
现在又有了娃,这次压力也不用自己给了,别管他需要什么,一个小眼神,你只想给他买最好的。因此不敢请假,更不敢裸辞GAP一段时间了,这种感觉就像是在逃避赚钱的责任,不误正业一般。
一味的向前冲
带着压力,只能一味的向前冲,为了更高的薪资不断学习,为了更高的职级不断拼搏。
在“赚钱”这件事上,男人的基因里就像被编写好了一段代码。
while (true){
makeMoreMoney();
}
过程中遇到困难,压力大,有难过的时候怎么办,身边有谁能去诉说呢?
中国的传统文化便是“男儿当自强”、“男儿有泪不轻弹”,怎么能去向别人诉说自己的痛苦呢?
那时候现在的老婆那时候还在上学,学生很难理解职场。结婚后,更没有人愿意在伴侣前展示自己的软弱。
和家人说?但是不开心的事,不要告诉妈妈,她帮不上忙,她只会睡不着觉。
和好朋友们一起坐下聚聚,喝几杯啤酒,少聊一些工作,压力埋在心里,让自己短暂的放松一下。
但现在的行业现状,不允许我们一味的在职场上冲了。
行业增速放缓,互联网渗透率达到瓶颈,随着而来的就是就业环境变差,裁员潮来袭。
你可以选择在职场中的高薪与光环,但也要付出相应的代价,比如变成“云老公/老婆”,“云爸爸/妈妈”。
或许我们都很想在职场中有一番作为,但是外部环境可能会让我们头破血流。
为了家庭,所以在职场中精进自己,升职加薪。我不禁在想,这看似符合逻辑的背后,我自己到底奋斗的是什么?
不甘平庸,不服输
从老家裸辞去北京,是不满足于二线城市的工作环境,想接触互联网,获得更快的进步。
在北京,从小公司跳槽到大厂,是为了获得更高的薪资与大厂的光环。
再次回到老家,是不满生活只有工作,回来可以更好的平衡工作和生活。
回想起来,很多时候,自己就像一个异类。
明明工作还不满一年,技术又差,身边的朋友敢于跳槽到其他公司,涨一两千块钱的工资已经算挺好了,我却非得裸辞去北京撞撞南墙。
明明可以在中小公司里按部就班,过着按点下班喝酒打游戏的生活,却非得在在悠闲地时候,去刷算法与面经,不去大厂不死心。
明明可以在大公司有着不错的发展,负责着团队与核心系统,却时刻在思考生活中不能只有工作,还要平衡工作和家庭,最终放弃大厂工作再次回到老家。
每一阶段,我都不甘心于在当下的环境平庸下去,见识到的优秀的人越多,我便越不服输。
至此,我上面问自己的两个问题,我到底为谁而活?我自己到底奋斗的是什么,似乎有了些答案。
我做的努力,短期看是为了能够给自己、给家人更好的物质生活,但长远来看,是为了能让自己有突破桎梏与困境,不断向上的精神。
仰望星空
古希腊哲学家苏格拉底有一句名言:“未经检视的人生不值得活。”那么我们为什么要检视自己的人生呢?正是因为我们有不断向上的愿望,那么我在想愿望的根源又到底是什么呢?
既然选择了不断向上,我决定思考,自己想成为什么样的人,或者说,一年后,希望自己变成什么样子,3年呢,5年呢?
当然,以后的样子,绝不是说,我要去一个什么外企稳定下来,或者说去一个大厂拿多少多少钱。
而是说,我希望的生活状态是什么,我想去做什么工作/副业,达成什么样的目标。
昨天刷到了一个抖音,这个朋友在新疆日喀则,拍下了一段延时摄影,我挺受震撼的。
生活在钢铁丛林太久了,我一直特别想去旅行,比如自驾新疆、西藏,反正越远越好。在北京租的房子,就在京藏高速入口旁,我每天上班都可以看到京藏高速的那块牌子,然后看着发会呆,畅想一下自己开着车在路上的感觉。
可好多年过去了,除了婚假的时候出去旅行,其余时间都因为工作不敢停歇,始终没有机会走出这一步,没有去看看祖国的大好河山。
我还发现自己挺喜欢琢磨,无论在做什么事情,我都会大量的学习,然后找到背后运行的规律。因为自己不断的思考,所以现实中,很少有机会和朋友交流,所以我会通过写作的方式,分享自己的思考、经历、感悟。
我写了不少文章,都是关于工作几年,我认为比较重要的经历的文章,也在持续分享我关于职业生涯的思考。
从毕业到职场,走过的弯路太多了,小到技术学习、架构方案设计,大到职业规划与公司选择,每当回忆起自己在职场这几年走过的弯路,就特别想把一些经验分享给更多的人,所以我持续的写,希望看到我文章的朋友,都能够对工作、生活有一点点帮助。
所以,我的短期目标,是希望能够帮助在职场初期、发展期,甚至一些稳定期的朋友们,在职场中少一点困惑,多一点力量。
方式可能有很多,比如大家看我的文章,看我推荐的书籍、课程,甚至约我电话进行1v1沟通,都可以,帮助到一个人,我真的就会感到很满足,假设因为个人能力不足暂时帮不到,我也能根据自己的不足持续学习成长。
那么一年后,我希望自己变成什么样?
我希望自己在写作功底上,能够持续进步,写出更具有逻辑性、说服力的内容,就像明白老师、雪梅老师那样。公众号希望写出一篇10w+,当然数量越多越好,当然最希望的是有读者能够告诉我,读完这篇文章很有收获,这样比数据更能让人开心,当然最好还能够有一小部分工作之外的收入。
那么三年呢?
3年后,快要32岁了。希望那时候我已经积累了除了写作外,比如管理、销售、沟通、经营能力,能够有自己赚到工资外收入的产品、项目,最好能够和职场收入打平,最差能够和房贷打平,有随时脱离职场的底气。
五年呢?十年呢?
太久远了,想起来都很吃力的感觉。我一定还在工作,但一定不是打工,希望自己有了一份自己喜欢的事业,能够买到自己的dream car,然后能够随时带着家人看一看中国的大好河山。
你是不是想问,为什么一定要想这些?
因为当我想清楚这个问题的时候,那当下该做什么事情,该做什么选择,就有了一个清晰的标准:这件事情、这个选择,能否帮我们朝「未来的自己」更进一步?
这时候当再遇到压力、困难,我们就会变的乐观,有毅力、有勇气、自信、耐心,积极主动。
因为你自己想干成一件事,你就会迸发出120%的能量。
当然,也希望自己试试放下盔甲,允许自己撤退,允许自己躺平,允许自己怂,允许自己跟别人倾诉痛苦。
说在最后
说了很多,感谢你能看到最后。
感觉整体有点混乱,但还是总结一下:
起因是感觉自己压力很大,因为持续的大量输入导致自己有点陷入信息爆炸的焦虑,有一天下班到家时感觉头痛无比,九点就和孩子一起睡觉了,因此本来想谈谈中国男性的压力。
但不由自主的去思考自己的压力是从哪里来的,去发现压力竟都来源于传统文化、社会要求,于是越想越不服气,我为什么非得活成别人认为应该活成的样子?
于是试着思考自己想成为什么样子,其实也是一直在琢磨的一件事情,因为当开始探索个人IP的时候,我就发现自己需要更高一层的、精神层面的指导,才能让自己坚持下去。
如果你和我一样,希望你给自己的压力更小一些,环境很差,但总还有事情可以去做,愿你可以想清楚,你想成为的样子。一时想不清楚也没关系,也愿你可以允许自己撤退,允许自己软弱。
不知道你有没有想过,自己想要成为的样子呢?欢迎你在评论区和我分享,也希望你点赞、评论、收藏,让我知道对你有所收获,这对我来说很重要。也欢迎你加我的wx:Ldhrlhy10,一起交流~
本篇文章是第37篇原创文章,2024目标进度37/100,欢迎有趣的你,关注我。
来源:juejin.cn/post/7374337202653265961
离职后的这半年,我前所未有的觉得这世界是值得的
大家好,我是一名前端开发工程师,属于是没有赶上互联网红利,但赶上了房价飞涨时代的 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 月份了,准备开始投简历找工作了,目前元气满满,不急不躁,对工作没有排斥感了,甚至想想工作还蛮好的,可能是闲久了吧,哈哈哈,人就是贱~
更新 11 月
我还是没有找工作,又去摩旅了一趟山西、山东,这次旅行感觉比去西藏还累、还危险。同样是做了视频放 b 站了,有兴趣的可以看看:
骑了4300km只为寻找那片海-威海的海|摩旅摩得命差点没了
真的要开始找工作了喂!
最后
其实大多数我们活得很累,都是背负的东西太多了,而这些大多数其实并不一定要接受的,发挥主观能动性,让自己活得开心些最重要,加油啊,各位,感谢你看到这里,祝你快乐!
这是我的 github profile,上面有我的各种联系方式,想交个朋友的可以加我~❤️
来源:juejin.cn/post/7424902549256224804
只写后台管理的前端要怎么提升自己
本人写了五年的后台管理。每次面试前就会头疼,因为写的页面除了表单就是表格。抱怨过苦恼过也后悔过,但是站在现在的时间点回想以前,发现有很多事情可以做的更好,于是有了这篇文章。
写优雅的代码
一道面试题
大概两年以前,面试美团的时候,面试官让我写一道代码题,时间单位转换。具体的题目我忘记了。
原题目我没做过,但是我写的业务代码代码里有类似的单位转换,后端返回一个数字,单位是kb
,而我要展示成 KB
,MB
等形式。大概写一个工具函数(具体怎么写的忘记了,不过功能比这个复杂点):
function formatSizeUnits(kb) {
let units = ['KB', 'MB', 'GB', 'TB', 'PB'];
let unitIndex = 0;
while (kb >= 1024 && unitIndex < units.length - 1) {
kb /= 1024;
unitIndex++;
}
return `${kb.toFixed(2)} ${units[unitIndex]}`;
}
而在此之前,是一个后端同学写的代码(说起来,后台管理系统前端人力不够后端帮忙写好像是常规操作,后端总觉得写前端简单,而我只能说你们那代码写的,一言难尽……),如下:
function formatSizeUnits(kb) {
var result = '';
if (kb < 1024) {
result = kb + ' KB';
} else if (kb < 1024 * 1024) {
result = (kb / 1024).toFixed(2) + ' MB';
} else if (kb < 1024 * 1024 * 1024) {
result = (kb / 1024 / 1024).toFixed(2) + ' GB';
} else {
result = (kb / 1024 / 1024 / 1024).toFixed(2) + ' TB';
}
return result;
}
虽然功能都一样,但是我写在面试的时候写了上面的代码得到了面试官的赞扬,也因此非常顺利的通过了面试。而如果我写成了下面的样子,估计不会有这种效果。
如何提升代码质量
想提升代码质量,最理想的是靠 code review ,但实际上这玩意在大多数公司根本就不存在。其次就只能多看看大佬们写的代码,但是一来后台管理本来就没太大难度很少有大佬,二来很多时候一个后台管理系统就一两个人负责。
还好现在有了各种 AI 工具,可以非常方便的优化自己的代码了。
还是上面的问题,看看 GPT 给的答案
// 提问:写一个工具函数,对文件大小的单位进行转换,加注释
// 回答:下面是一个JavaScript工具函数,它接受文件大小、初始单位、目标单位和小数位数,然后返回目标单位下的文件大小。
/**
* 将文件大小从一个单位转换为另一个单位。
*
* @param {number} size 文件大小。
* @param {string} fromUnit 初始单位('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB')。
* @param {string} toUnit 目标单位('B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB')。
* @param {number} [decimalPoint=2] 结果保留的小数位数,默认为2。
* @return {string} 转换后的文件大小,带单位。
*/
function convertFileSize(size, fromUnit, toUnit, decimalPoint = 2) {
// 定义单位与字节之间的转换关系
const units = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];
// 获取初始单位和目标单位的索引
const fromIndex = units.indexOf(fromUnit);
const toIndex = units.indexOf(toUnit);
// 如果单位不在列表中,抛出错误
if (fromIndex === -1 || toIndex === -1) {
throw new Error('Invalid units');
}
// 计算初始单位与目标单位之间的转换系数
const exponent = toIndex - fromIndex;
// 计算结果大小
const resultSize = size / Math.pow(1024, exponent);
// 返回格式化后的结果
return parseFloat(resultSize.toFixed(decimalPoint)) + ' ' + toUnit;
}
// 示例使用
console.log(convertFileSize(1, 'GB', 'MB')); // 输出: 1024.00 MB
console.log(convertFileSize(1, 'MB', 'KB')); // 输出: 1024.00 KB
console.log(convertFileSize(1, 'KB', 'B')); // 输出: 1024.00 B
console.log(convertFileSize(1, 'MB', 'GB', 5)); // 输出: 0.00098 GB
还能说什么,我只能说 NB!(经评论区提示,此段代码可能有问题,建议大家在使用AI工具时,重点是借鉴思路,直接使用代码需要谨慎~)
我现在每次写大段逻辑之后都习惯拿给 AI 看看,有什么更好的实现方式,或者用什么设计模式。AI 是非常低成本且高效提升代码质量的工具。
学会封装
一个功能用到了好多次,为什么不封装成组件?一个组件用到了好几个项目,为什么不单独写个npm包?差不多的项目创建了好几个,为什么不封装成脚手架?
你说,没时间,没必要,复制粘贴反而更快。
那你就完全没理解,这么做不一定是为了让工作更快完成,而是可以让你在年年终述职时更有话说(你就算写了一百个表单表格没有写一个脚手架更值得炫耀),如果不会写可以问问 AI。
而当你真正开始封装组件,开始写工具库了,你会发现你需要思考的确实比之前多了。
关注业务
对于前端业务重要吗?
相比于后端来说,前端一般不会太关注业务。就算出了问题大部分也是后端的问题。
但是就我找工作的经验,业务非常重要!
如果你做的工作很有技术含量,比如你在做低代码,你可以面试时讲一个小时的技术难点。但是你只是一个破写后台管理,你什么都没有的说。这个时候,了解业务就成为了你的亮点。
一场面试
还是拿真实的面试场景举例,当时前同事推我字节,也是我面试过N次的梦中情厂了,刚好那个组做的业务和我之前呆的组做的一模一样。
- 同事:“做的东西和咱们之前都是一样的,你随便走个过场就能过,我在前端组长面前都夸过你了!”
- 我:“好嘞!”
等到面试的时候:
- 前端ld:“你知道xxx吗?(业务名词)”
- 我:“我……”
- 前端ld:“那xxxx呢?(业务名词)”
- 我:“不……”
- 前端ld:“那xxxxx呢??(业务名词)”
- 我:“造……”
然后我就挂了………………
如何了解业务
- 每次接需求的时候,都要了解需求背景,并主动去理解
我们写一个表格简简单单,把数据展示出来就好,但是表格中的数据是什么意思呢?比如我之前写一个 kafka 管理平台,里面有表格表单,涉及什么
cluster
controller
topic
broker
partition
…… 我真的完全不了解,很后悔我几年时间也没有耐下心来去了解。 - 每次做完一个需求,都需要了解结果
有些时候,后台管理的团队可能根本没有PM,那你也要和业务方了解,这个功能做了之后,多少人使用,效率提高了吗?数据是怎样的?
- 理解需求,并主动去优化
产品要展示一千条数据,你要考虑要不要分页,不分页会不会卡,要不要上虚拟表格?
产品要做一个可拖拽表单,你要考虑是否需要拖动,是否需要配置。
其实很多时候,产品的思维可能会被局限在竞品的实现方式,而前端可以给TA更多选项。在和产品沟通的时候,你不仅是沟通页面的实现,也更能理解业务。
关注源码
说到源码, Vue,React 这些基本是每次必问,也有太多大佬们的总结我就不多说了。
除此之外,我想大家每次面试应该都会被问,你写了什么亮点的项目,困难的项目,你会说什么?哦,都是表单表格,都用 Element UI 实现的,没什么难度。那估计你面试也就到这里了。
那说什么,后台管理就这些啊?!
如果你用了 Element UI 你可以说写了什么自定义 Element UI 表单组件,Element UI 表单源码是什么原理,怎么通信的?用了 Axios 可以说 Axios 的原理,它的拦截器怎么实现的?用了编辑器 diff 那你知道 diff 算法是什么吗?用了 ECharts 那你知道他底层是用什么绘制的吗?用了 husky ?husky的原理是什么?用了Vite,它为什么快?是怎么打包的?写过插件吗?
可能有人觉得我离谱,事实上上面每一个问题都是我在面试中真实被问到的。当然,如果全部去了解,肯定不现实,每个人的精力有限,不可能每个用到的每个工具每个库都去了解原理,不过只要有一两个你去了解过,就可以在面试中引导面试官来问,要学会表现出你擅长的点。
至于怎么读源码?以前我不知道,现在嘛…… 为什么不问问神奇的 ChatGPT 呢?
讲一下 Axios 源码中,拦截器是怎么实现的?
Axios 的拦截器实现基于 Axios 的核心原理,即 Axios 实例是一个包含请求和响应拦截器堆栈的对象。当发出请求或接收响应时,Axios 会遍历这些拦截器,并按照添加的顺序执行请求拦截器,以及按照相反的顺序执行响应拦截器。
在 Axios 的源码中,拦截器是通过一个 AxiosInterceptorManager 实例来管理的,它维护了一个拦截器数组。每个拦截器都是一个包含
fulfilled
和rejected
函数的对象。这两个函数分别对应于拦截器成功处理和拦截器处理出错的情况。
以下是 Axios 拦截器管理器的一个简化版本,展示了其核心实现思路:
class InterceptorManager {
constructor() {
this.handlers = []; // 存储拦截器的数组
}
use(fulfilled, rejected) {
this.handlers.push({
fulfilled: fulfilled,
rejected: rejected
});
return this.handlers.length - 1; // 返回拦截器的ID
}
eject(id) {
if (this.handlers[id]) {
this.handlers[id] = null; // 移除拦截器
}
}
forEach(fn) {
this.handlers.forEach((h) => {
if (h !== null) {
fn(h);
}
});
}
}
在发送请求或接收响应时,Axios 会创建一个 promise 链,并通过
forEach
方法将拦截器中的fulfilled
和rejected
函数添加到这个链中。这样,每个拦截器都可以对请求或响应进行处理,然后将结果传递到链的下一个拦截器,或者在出错时结束链的执行。
axios.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {
chain.unshift(interceptor.fulfilled, interceptor.rejected);
});
axios.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {
chain.push(interceptor.fulfilled, interceptor.rejected);
});
在 Axios 的完整实现中,这个拦截器机制被集成到了 Axios 的请求发送和响应处理流程中。通过这种方式,Axios 可以在发送请求之前和接收响应之后,但在用户定义的
.then
或.catch
执行之前,插入自定义的逻辑。
请注意,这里提供的代码只是为了说明 Axios 拦截器的实现原理,并不是 Axios 源码的完整复制。如果你对 Axios 的拦截器实现细节感兴趣,建议查看 Axios 的官方 GitHub 仓库中的源码。
前端基建
当我们工作时间久了面试难免会遇到这些问题,前端工程化,前端监控,工作流,部署,性能等等。其实我们在工作中绝大部分时间都在写代码,对于这些不是所有人都有机会接触到,不过这些和所做的业务无关,是我们提升自己很好的一个思路。
技术选型
技术栈选 Vue 还是 React?Vue 选 Vue2 还是 Vue3?组件库选 ElementUI 还是 Ant Design?微前端有没有使用过?打包工具用 Vite 还是 Webpack?有那么多表单怎么实现的,有没有什么表单配置化方案,比如Formily?
对于我这种菜鸡,我这种只写简单的表单表格的人,这些都……无所谓……

不过为了应对面试我们还是需要了解下未选择技术栈的缺点,和已选择技术栈的优点(有点本末倒置…但是常规操作啦)
Vue 你可以说简单高效轻量级,面试必会问你为什么,你就开始说 Vue 的响应式系统,依赖收集等。
React 你可以说 JSX、Hooks 很灵活,那你必然要考虑 JSX 怎么编译, Hooks 实现方式等。
总体而言,对于技术选型,依赖于我们对所有可选项的理解,做选择可能很容易,给出合理的理由还是需要花费一些精力的。
开发规范
这个方面,在面试的时候我被问到的不多,我们可以在创建项目的时候,配置下 ESlint
,stylelint
, prettier
, commitlint
等。
前端监控
干了这么多年前端,前端监控我是……一点没做过。

前端监控,简单来说就是我们在前端程序中记录一些信息并上报,一般是错误信息,来方便我们及时发现问题并解决问题。除此之外也会有性能监控,用户行为的监控(埋点)等。之前也听过有些团队分享前端监控,为了出现问题明确责任(方便甩锅)。
对于实现方案,无论使用第三方库还是自己实现,重要的都是理解实现原理。
对于错误监控,可以了解一下 Sentry,原理简单来说就是通过 window.onerror
和 window.addEventListener('unhandledrejection', ...)
去分别捕获同步和异步错误,然后通过错误信息和 sourceMap
来定位到源码。
对于性能监控,我们可以通过 window.performance
、PerformanceObserver
等 API 收集页面性能相关的指标,除此之外,还需要关注接口的响应时间。
最后,收集到信息之后,还要考虑数据上报的方案,比如使用 navigator.sendBeacon
还是 Fetch、AJAX?是批量上报,实时上报,还是延迟上报?上报的数据格式等等。
CI/CD
持续集成(Continuous Integration, CI)和 持续部署(Continuous Deployment, CD),主要包括版本控制,代码合并,构建,单测,部署等一系列前端工作流。
场景的工作流有 Jenkins、 Gitlab CI 等。我们可以配置在合并代码时自动打包部署,在提交代码时自动构建并发布包等。
这块我了解不多,但感觉这些工具层面的东西,不太会涉及到原理,基本上就是使用的问题。还是需要自己亲自动手试一下,才能知道细节。比如在 Gitlab CI 中, Pipeline
、 Stage
和 Job
分别是什么,怎么配置,如何在不同环境配置不同工作流等。
了解技术动态
这个可能还是比较依赖信息收集能力,虽然我个人觉得很烦,但好像很多领导级别的面试很愿意问。
比如近几年很火的低代码,很多面试官都会问,你用过就问你细节,你没用过也会问你有什么设计思路。
还有最近的两年爆火的 AI,又或者 Vue React的最新功能,WebAssembly,还有一些新的打包工具 Vite Bun 什么的,还有鸿蒙开发……
虽然不可能学完每一项新技术,但是可以多去了解下。
总结
写了这么多,可能有人会问,如果能回到过去,你会怎么做。
啊,我只能说,说是一回事,做又是另一回事,事实上我并不希望回到过去去卷一遍,菜点没关系,快乐就好,一切都是最好的安排。

来源:juejin.cn/post/7360528073631318027
准备离开杭州
上个月的时候,我被公司裁掉了,陆陆续续找了 1 个月的工作,没有拿到 1 份 Offer,从网上看着各式各样的消息和自己的亲身体会,原来对于像我这样的普通打工族,找工作是如此的难。我相信,任何时候只要实力强,都能有满意的工作,但我不知道,能达到那样的水平还需要多久。
本人是前端,工作 6 年,期间经历过 4 家公司,前两份是外包,后面两份都是领大礼包走的,回想起来,职业生涯也是够惨的。虽然说惨,但是最近领的这一份大礼包个人认为还是值得,工作很难待下去,也没有任何成长,继续待着也是慢性死亡。
这几天我每天都会在 BOSS 上面投十几家公司,能回复非常少,邀请面试的就更少了。外包公司倒是挺多的,而我是从那个火坑里出来的,是不会选择再进去的。于是,我需要做好打持久战的准备,说不定不做程序员了。
我的房子 7 月底就要到期了,我必须要马上做决定,杭州的行情对我来说很不友好,短期内我大概率找不到工作。基于对未来的悲观考虑,我不想把过多的钱花费在房租上面,所以希望就近找一个三线城市,我搜了一下嘉兴,整租 95 平左右的房子只需要 1200 块钱,还是民用水电,思前想后,打算移居到那里嘉兴去。
一方面,我想尝试一下在三线城市生活是一种什么感觉。另一方面,这可以省钱,如果一个月的房租是 1000,民用水电,一个月的开销只要 2500 块。我搜索了一下货拉拉,从我的位置运到嘉兴,需要花费 600 块钱,这个价格也是可以接受的。思考了这些,我觉得是时候离开待了 5 年的杭州。
未来要到哪里去呢,目前可能的选择是上海。我还得想想未来能做什么,我想学一门手艺傍身,比如修理电器、炒菜。毕竟骑手行业太拥挤了,估计也不是长久之计。
房租降下来了,等我把行李都安置妥当,我打算回老家待一段时间。自从上大学以来,很少有长时间待在家里的时候,眼看父母年纪也越来越大了,很想多陪陪他们。如果进入正常的工作节奏,想做到这样还是会受到局限,这次也算是一个弥补的机会。
被裁也是一件好事,可以让我提前考虑一下未来的出路。
这段时间我想把时间用来专门学英语,再自己做几个项目,学英语的目的是为了 35 岁之后做打算,做项目是为了写到简历上面,并且个人觉得自己需要多做一个项目,这样自己才能成长到下一个级别。虽然不知道收益怎么样,但是我想尝试一下。人还活着,有精力,就还是瞎折腾一下。
离职没敢和家里说,说了估计要担心死了,反正是年轻人,有事就先自己扛一扛,我前几天把我的行李寄回去了一批,我妈问我,怎么,寄东西回来了?我回答说要搬家了。本来也想找机会开口说自己离职了,她说,这次搬家也别离公司远了,我也把话憋了进去,只好说“没事的,放心就行”。我自己没觉得离职有什么,正常的起起落落,只是觉得父母可能会过度的担心。
如果做最坏的打算,那就是回去种地,应该这几年还饿不死。有还没离职的同学,建议还是继续苟着。希望社会的低谷期早点过去,希望我们都能有美好的未来。
评论区很多朋友想要拉一个群相互交流,现在拉好了!一起来吐槽工作,交流找工作心得!
目前是 6 群,刚开始人会比较少,过一段时间就多了,稍安勿躁。群过期了可能更新不及时,在微信搜索 mysteryven,私聊问我想加 1-6 的哪一个,我会同步给你。
更新:发展到现在,几个群活跃度都变得不是很高了,目前只是一个聊天的群,不会有什么高质量的信息。如果不是想摸鱼或者什么的,不需要加入此群。有的时候我可能忘记更新二维码,可以留言提醒我~
下一篇文章:从大城市搬到小城市需要注意哪些点?
来源:juejin.cn/post/7395523104743178279
2年前的今天,我决定了躺平退休
两年前的这个时候,突然觉得说话特别费劲,舌头不太听使唤,左手突然不听话,就像李雪健老师表演那个帕金森老头喝酒一样。
我心里一慌,请假去了医院,验血,CT,超声。然后医生给我列了长长一篇诊断书:高血脂,高血压,糖尿病,冠心病,还有最可怕的脑出血,还好只是渗血,虽然并不是很严重,但是位置不太好,影响了身体感官和左手。
平时身体非常好,也经常运动,为什么会突然得这么多病呢。毫无征兆的左手就不听使唤了。而且听力在这一段时间也非常差。通过大夫诊断,一部分是遗传因素,另一个是和我常年酗酒,熬夜有关,每天几乎只睡3-4小时。
是的,,,,,,我喜欢在家喝着啤酒写代码,甚至有时候在单位加班的时候也是喝啤酒写代码。和别人不太一样,别人喝酒爱睡觉,我喝啤酒失眠。因为接了很多项目,上班之余都是晚上和周末熬夜写代码做自己的项目。
其实听到这个消息我很失望,失望的并不是因为身体垮了,钱还没赚够,而是我还没有完成我的目标就是打造一个自己主导的产品。
那天从医院回家,我并没有去坐地铁,而是从中日友好医院徒步走回天通苑的出租屋。在路上,我反复的想,今后的路该如何走。
继续在互联网行业工作肯定是不行的,病情会进一步加重,到时候就真的成一个废人了,反而会拖累整个家庭。如果不继续“卷”那我也就无法实现自己来北京的目标了。不过好在经过这么多年的积累,已经存够足够养老的资本,并不需要为妻儿老小的生存发愁,但是也没有到财富自由的程度。
躺平,躺到儿子回老家上学就回老家退休
。这是一个并不那么困难的决定。但是却是一个非常无奈的决定,躺平就意味着自己来北京定下的目标没有完成,意味着北漂失败。
做好这个决定以后,我就开始彻底躺平,把手里的几个项目草草收尾,赔了大几十万。等于这一年白忙活。好在还有一份工作收入。同时也拒掉了2个新的Offer。在疫情最困难的时候,还能拿到两个涨薪offer。我还是蛮佩服我自己的。但是为了不影响我的额外收入,加上现在工作不是很喜欢,也就一直犹豫不决。但是这次生病彻底让我下定了决定 ---- 算了。
其实,经历这么多年,什么都看的很清楚,但是我的性格并不适合这个行业,我这个人最大的特点就是腰杆子硬,不喜欢向上管理,经常有人说我那么圆滑,肯定是老油条,而实际上,我整整18年的工作经历,只对领导说过一次违心的话,变相的夸了老板定制的开发模式,老板看着我笑了笑,也不知道他是不是听出来我这话是讽刺还是撒谎。
而其余都是和老板对着干,只有2任老板是我比较钦佩的,也是配合最舒服的。而且共同特点都是百度出身,我特别喜欢百度系的老板。特别务实,认认真真做业务。不搞虚头巴脑的事情,更不在工作中弄虚作假。一个是滴滴的梁老板,另一个就是在途家时候的黄老板。
当然,在我整个职业生涯有很多厉害的老板,有的在人脉厉害,有的人个人管理能力,有的在技术。但是由于我性格原因,我就是跟他们合不来,所以要么你把我开了,要么等我找好下家主动离开。
所以我的职业生涯很不稳定,就比如我见过的一个我认为在技术能力上最厉害的老板,也是我唯一在技术上佩服的人,就是在36kr期间认识的海波老师,听他讲的系统架构分享和一些技术方案,真的是豁然开朗,在Saas和Paas的方方面面,架构演化,架构升级所可能遇到的各种问题及面对产品高速迭代所需要解决的问题及方案都门清,而且他本身也是自己带头写代码,实际编码能力也是非常的牛,并不是那种“口嗨”型领导。但就是我跟他的性格合不来,最后我把他那套架构方案摸透了以后就跑路了,而从他那里学的那套技术方案,在我日后在lowcode和Paas以及活动运营平台的技术方案设计上帮助颇多。而他不久之后也离开了。据说去了字节。
混迹于形形色色的老板手底下,遇到过的事情非常多,也让我认清了一点,那就是,牛人是需要平台去成就的,平台提供了锻炼你的机会和让你成长的机会。所以你学到了,你就成了牛人。而不是你自己手头那点沾沾自喜的觉得别人没你了解的深入的技术点。所以平台非常重要,绝大多数情况下都是如此。
所以我这种人就不适合,因为我不喜欢违心。我顶多就是不说出来,不参与,不直接反对就已经是对老板最大的尊重了
。所以我能看透很多事情,但是也知道我不讨老板喜欢,而我的性格也不可能为了让老板喜欢而卑躬屈膝,所以,我早早就提前做好准备,就是拉项目,注意这不是做私活
。拉项目就是承包项目,然后找几个做私活的人给他们开发。这项收入有时候甚至一年下来比我的工资还要高。风险也是有的,那就是可能赔钱,十几万十几万的赔。所以也是一个风险与收益共存的事情。做项目的好处是,你可以不断的接触新的甲方,扩张自己的人脉,也就不断的有项目。
但是由于这次生病,我手头的3个项目都没有做好,都被清场了。所以为了弥补朋友的损失,我一个人扛下了所有。也同时意味着后面也就没项目可接了。身体不允许了。
躺平以后,为了等孩子回老家上学,本职工作上,也开始混,我最后一年多的时间里,写代码,都不运行直接就提测。是的。没错。。。。。。就是这样。但是功能是都好用的,基本的职业操守是要有的。虽然也会有更多的bug。但是一周我只干半天就可以完成一周的工作。这可能就是经验和业务理解的重要性。所以,我一直不太理解很多互联网企业精简人员的时候为什么精简的是一线开发人员,而留下的是那些只会指挥的小组长。这也是为什么各大互联网企业都在去肥增瘦,结果肥的一点也没减下去。
不是有那么一句话,P8找P7分一个需求,然后P7找P6喊来P5开发。互联网就是这样子,一群不了解实际业务和实际代码的人,在那里高谈阔论,聊方案,聊架构,聊产品,聊业务,聊客户,聊趋势,然后让那些一脸“懵逼”的人去开发。最后的结果可想而知,最后很多需求都是一地鸡毛,但是责任却都要一线执行去承担,而为了证明需求的正向收益,那就在指标口径上“合理”的动动手脚,所以我在我整个职业生涯说出了那么一次,也是唯一一次违心的恭维话。
所以我特别佩服一个网红叫“大圣老师”,是一个卖课的,虽然我看不上他做的割韭菜的事情,但是我很佩服他这个人,他也是很刚的人,就是看不惯老板pua和无意义的加班,人家就是不干了。成功开辟了第二职业曲线,而且也很不错。
另一个网红就是“神光”,虽然我也看不上他,但是我很佩服他,佩服他追求自我的勇气。
而反观那些在职场唯唯诺诺卑躬屈膝的人,现在过的如何呢?人啊。还是要有点个性。没个性的人下场都挺惨的。
峰回路转,人那,这一辈子就是命,有时候把,真的是你也不知道结果会是什么样,23年在我百无聊赖,闲的五脊六兽的时候,一周的工作基本上半天就干完了,所以一个机缘巧合,遇见了一群有意思的人。当时大模型正在风口浪尖。好多人都在大模型里面摸金,而有这么一群人,一群大学生,在海外对我们进行大模型技术封锁的时候,为了自己的初衷,建立了在问这个网站。
而作为起步比别人要晚,产品做的还很粗糙如何跟市场上的竞品竞争呢?而且不收费,更不打广告,完全靠赞助存活。但是这一切都是为了在国外封锁我国大模型技术背景下的那句话“让知识无界,智能触手可及”。站长原文
所以在同类起步更早,产品做的更精细的很多产品逐渐倒下去以后,zaiwen还活着。所以我觉得特别有意思,这种产品活下来的概率是非常低的,除非整个团队都是为爱发电,于是我也加入到这个团队。
事实上也确实这样,整个团队是有极少部分社会工作者和大部分在校大学生组成,而大家聚一起做这件事的初衷就是为了让知识无国界,让国内用户可以更方便的体验最先进的海外大模型技术。而目标用户,也都是学生,老师和科研工作者。
就这样在这里,我重新找回了自己的目标,虽然,由于资金问题,资源问题,以及我个人身体限制能做的事情很少,但是却发现,大家都做的非常有动力,产品也在不断的迭代不断的发展,并且还活的很好。团队的人在这里也干的很开心。
今天,正是两年前我诊断出脑出血的那天,心里没有低落,也没有失望,更没有懊悔,有的只是新的体验。人生啊,来这一世,就是来体验的,别难为自己。顺势而为,就像张朝阳说的那句话“年轻人挺不容易的,建议年轻人不要过度努力,太过拼搏的话(对身体)是有伤害的,年轻人得面对现实,这个世界是不公平的”
来源:juejin.cn/post/7416168750364540940
自己没有价值之前,少去谈人情世故
昨天和几个网友在群里聊天,一个网友说最近公司辞退了一个人,原因就是太菜了,有一个功能是让从数据库随机查一条数据,他硬是把整个数据表的数据都查出来,然后从里面随机选一条数据。
另外的群友说,这人应该在公司的人情世故做得不咋滴,要是和自己组长,领导搞好关系,不至于被辞退。
发言人说:相反,这人的人情世故做得很到位,和别人相处得也挺好,说话又好听,大家都觉得他很不错!
但是这有用吗?
和自己的组长关系搞好了,难道他就能给你的愚蠢兜底?
这未免太天真,首先组长也是打工的,你以为和他关系好,他就能包庇你,容忍你不断犯错?
没有人会愿意冒着被举报的风险去帮助一个非亲非故的人,因为自己还要生活,老婆孩子还要等着用钱,包庇你,那么担风险的人就是他自己,他为何要这样做?
我们许多人总是觉得人情世故太重要了,甚至觉得比自己的能力重要,这其实是一个侮误区。
有这种想法的大多是刷垃圾短视频刷多了,没经历过社会的毒打,专门去学酒满敬人,茶满欺人。给领导敬酒杯子不能高过对方,最好直接跪下来……
那么人情世故重要吗?
重要,但是得分阶层,你一个打工的,领导连你名字都叫不出来,你见到他打声招呼,他都是用鼻子答应,你觉得你所谓的人情世故有意义吗?
你以为团建的时候跑上去敬酒,杯子直接低到他脚下,他就会看中你,为他挡酒他就觉得你这人可扶?未免电视看得太多。
人情世故有用的前提一定是建立在你有被利用的价值之上,你能漂漂亮亮做完一件事,问题又少,创造的价值又多,那么别人就会觉得你行,就会记住你,重视你,至于敬酒这些,不过是走个过场而已。
所以在自己没有价值之前,别去谈什么人情世故,安安心心提升自己。
前段时间一个大二的小妹妹叫我帮她运行一个项目,她也是为了课程蒙混过关,后面和她聊了几句,她叫我给她一点建议。
我直接给她说,你真正的去写了几行代码?看了几本书?做了多少笔记?你真正的写了代码,看了书,有啥疑问你再找我,而不是从我这里找简便方法,因为我也没有!
她说最烦学习了,完全不想学,自己还是去学人情世故了。
我瞬间破放了,对她说你才20岁不到,专业知识不好好学,就要去学人情世故了?你能用到人情世故吗?
你是怕以后去进厂自己人情世故不到位别人不要你?还是以后去ktv陪酒或者当营销学不会?这么早就做准备了?
她后面反驳我说:你看那些职场里面的女生不也是很懂人情世故吗,你为啥说没用,这些东西迟早都是要学的,我先做准备啊!
我当时就不想和她聊下去了,我知道又是垃圾短视频看多了,所以才会去想这些!以为自己不好好学习,毕业后只要人情世故做到位,就能像那些女职场秘书一样,陪着领导出去谈生意。
想啥呢!
当然,并不存在歧视别人的想法,因为我没有资格,只不过是觉得该学习的时间别去想一些没啥用的事情!
我们所能看到的那些把人情世故运用得炉火纯青,让人感觉很自然的人,别人肯定已经到了一定的段位,这是TA的职业需要。
而大多数人都是在底层干着街边老太太老大爷都能干的活,领导连你名字都叫不出来,可以用空气人来形容,你说人情世故有什么卵用吗?
这不就等于把自己弄得四不像吗?
当你真的有利用价值,能够给别人提供解决方案的时候,再来谈人情世故,那时候你不学,生活都会逼着你去学。
最后说一句,当你有价值的时候,人情世故是你别人学来用在你身上的,不信你回头去看一下自己的身边的人,哪怕是一个小学教师,都有人提着东西来找他办事,但是如果没有任何利用价值,哪怕TA把酒场上面的套路都运用得炉火纯青,也会成为别人的笑柄!
来源:juejin.cn/post/7352799449456738319
外行转码农,焦虑到躺平
下一篇《2024转行前端第6年》展示我躺平后捣鼓的东西
介绍自己
本人女,16年本科毕业,学的机械自动化专业,和大部分人一样,选专业的时候是拍大腿决定的。
恍恍惚惚度过大学四年,考研时心比天高选了本专业top5学校,考研失败,又不愿调剂,然后就参加校招大军。可能外貌+绩点优势,很顺利拿到了很多工厂offer,然后欢欢喜喜拖箱带桶进厂。
每天两点一线生活,住宿吃饭娱乐全在厂区,工资很低但是也没啥消费,住宿吃饭免费、四套厂服覆盖春夏秋冬。
我的岗位是 inplan软件维护 岗位,属于生产资料处理部门,在我来之前6年该岗位一直只有我师傅一个人,岗位主要是二次开发一款外购的软件,软件提供的api是基于perl语言,现在很少有人听过这个perl吧。该岗位可能是无数人眼里的神仙岗位吧,我在这呆了快两年,硬是没写过一段代码...
inplan软件维护 岗位的诞生就是我的师傅开创的,他原本只是负责生产资料处理,当大家只顾着用软件时,他翻到了说明书上的API一栏,然后写了一段代码,将大家每日手工一顿操作的事情用一个脚本解决了,此后更是停不下来,将部门各种excel数据处理也写成了脚本,引起了部门经理的注意,然后就设定了该岗位。
然而,将我一个对部门工作都不了解的新人丢在这个岗位,可想我的迷茫。开始半年师傅给我一本厚厚的《perl入门到精通》英文书籍,让我先学会 perl 语言。(ps:当时公司网络不连外网,而我也没有上网查资料的习惯,甚至那时候对电脑操作都不熟练...泪目)
师傅还是心地很善良很单纯的人,他隔一段时间会检查我的学习进度,然而当他激情澎拜给我讲着代码时,我竟控制不住打起了瞌睡,然后他就不管我了~~此后我便成了部门透明人物,要是一直透明下去就好了。我懒散的工作态度引起了部门主管的关注,于是我成了他重点关注的对象,我的工位更是移到了他身后~~这便是我的噩梦,一不小心神游时,主管的脸不知啥时凑到了我的电脑屏幕上~~~😱
偶然发现我的师傅在学习 php+html+css+js,他打算给部门构建一个网站,传统的脚本语言还是太简陋了。我在网上翻到了 w3scool离线文档 ,这一下子打开了我的 代码人生。后面我的师傅跳槽了,我在厂里呆了两年觉得什么都没学到,也考虑跳槽了。
后面的经历也很魔幻,误打误撞成为了一名前端开发工程师。此时是2018年,算是前端的鼎盛之年吧,各种新框架 vue/react/angular 都火起来了,各种网站/手机端应用如雨后春笋。我的前端之路还算顺利吧,下面讲讲我的经验吧
如何入门
对于外行转码农还是有一定成本的,省心的方式就是报班吧,但是个人觉得不省钱呀。培训班快则3个月,多的几年,不仅要交上万的培训费用,这段时间0收入,对于家境一般的同学,个人不建议报班。
但是现在市场环境不好,企业对你的容忍度不像之前那么高。之前几年行业缺人,身边很多只懂皮毛的人都可以进入,很多人在岗位半年也只能写出简单的页面,逻辑复杂一点就搞不定~~即使被裁了,也可以快速找到下家。这样的日子应该一去不复返了,所以我们还是要具备的实力,企业不是做慈善的,我们入职后还是要对的起自己的一份工资。
讲讲具体怎么入门吧
看视频:
b站上有很多很多免费的视频,空闲之余少刷点段子,去看看这些视频。不要问我看哪个,点击量大的就进去看看,看看过来人的经验,看看对这个行业的介绍。提高你的信息量,普通人的差距最大就在信息量的多少
还是看视频:
找一个系统的课程,系统的学习 html+css+js+vue/react,我们要动手写一些demo出来。可以找一些优秀的项目,自己先根据它的效果自己实现,但后对着源码看看自己的局限,去提升。
做笔记:
对于新人来说,就是看了视频感觉自己会了,但是写起来很是费力。为啥呢?因为你不知道也记不住有哪些api,所以我们在看视频学习中,有不知道的语法就记下来。
我之前的经验就是手动抄写,最初几年抄了8个笔记本,但是后面觉得不是很方便,因为笔记没有归纳,后续整理笔记困难,所以我们完全可以用电子档的形式,这方便后面的归纳修改。
嘿嘿,这里给大家推荐一下我的笔记 前端自检清单,这是我对我的笔记的总结,现在看来含金量不是很大,这些文章基本就copy总结别人的文章,很少有自己的思想,我更多是将它当成一个手册吧,我自己也经常遗忘一些API,所以时不时会去翻翻。
回顾:
我们的笔记做了就要经常的翻阅,温故而知新,经常翻阅我们的笔记,经常去总结,突然有一天你的思维就上升了一个高度。
- 慢慢你发现写代码就是不停调用api的过程
- 慢慢你会发现程序里的美感,一个设计模式、一种新思维。我身边很多人都曾经深深沉迷过写代码,那种成就感带来的心流,这是物质享受带来不了的
输出:
就是写文章啦,写文章让我们总结回顾知识点,发现知识的盲区,在这个过程中进行了深度思考。更重要的是,对于不严谨的同学来说,研究一个知识点很容易浅尝则止,写文章驱动自己去更深层系统挖掘。不管对于刚入行的还是资深人士,我觉得输出都是很重要的。
推荐大家去看神说要有光大神的文章 为什么我能坚持?因为写技术文章给我的太多了呀!,这时我最近很喜欢的一个大神,他的文章我觉得很有深度广度(ps:不是打广告呀,真心觉得受益了)。
持续提升
先谈谈学历歧视吧,现在很多大厂招聘基本条件就是211、985,对此很是无奈,但是我内心还是认可这种要求的,我对身边的本科985是由衷的佩服的。我觉得他们高考能考上985,身上都是有过人之处的,学习能力差不了。
见过很多工作多年的程序员,但是他们的编码能力无法描述,不管是逻辑能力、代码习惯、责任感都是很差的,写代码完全是应付式的,他们开发的代码如同屎山。额,但是我们也不要一味贬低他人,后面我也学会了尊重每一个人,每个人擅长的东西不一样,他可能不擅长写代码,但是可能他乐观的心态是很多人不及的、可能他十分擅长交际...
但是可能的话,我们还是要不断提高代码素养
- 广度:我们实践中,很多场景没遇到,但是我们要提前去了解,不要等需要用、出了问题才去研究。我们要具备一定的知识面覆盖,机会是给有准备的人的。
- 深度:对于现在面试动不动问源码的情况,很多人是深恶痛绝的,曾经我也是,但是当我沉下心去研究的时候,才发现这是有道理的。阅读源码不仅挺高知识的广度,更多让我们了解代码的美感
具体咋做呢,我觉得几下几点吧。(ps:我自己也做的不好,道理都懂,很难做到优秀呀~~~)
- 扩展广度:抽空多看看别人的文章,留意行业前沿技术。对于我们前端同学,我觉得对整个web开发的架构都要了解,后端同学的mvc/高并发/数据库调优啥的,运维同学的服务器/容器/流水线啥的都要有一定的了解,这样可以方便的与他们协作
- 提升深度:首先半路出家的同学,前几年不要松懈,计算机相关知识《操作系统》《计算机网络》《计算机组成原理》《数据结构》《编译原理》还是要恶补一下,这是最基础的。然后我们列出自己想要深入研究的知识点,比如vue/react源码、编译器、低代码、前端调试啥啥的,然后就沉下心去研究吧。
职业规划
现在整个大环境不好了,程序员行业亦是如此,身边很多人曾经的模式就是不停的卷,卷去大厂,跳一跳年薪涨50%不是梦,然而现在不同了。寒风凌凌,大家只想保住自己的饭碗(ps:不同层次情况不同呀,很多大厂的同学身边的同事还是整天打了鸡血一般)
曾经我满心只有工作,不停的卷,背面经刷算法。22年下半年市场明显冷下来,大厂面试机会都没有了,年过30,对大厂的执念慢慢放下。
我慢慢承认并接受了自己的平庸,然后慢慢意识到,工作只是生活的一部分。不一定要担任ceo,才算走上人生巅峰。最近几年,我爱上了读书,以前只觉得学理工科还是实用的,后面慢慢发现每个行业有它的美感~
最后引用最近的读书笔记结尾吧,大家好好体会一下论语的“知天命”一词,想通了就不容易焦虑了~~~
自由就是 坦然面对生活,看清了世界的真相依然热爱生活。宠辱不惊,闲看庭前花开花落。去留无意,漫随天外云卷云舒。
欢迎关注我的前端自检清单,我和你一起成长
来源:juejin.cn/post/7343138429860347945
马斯克贴脸开大星际之门项目:他们根本没钱,奥特曼是骗子
昨天,美国科技界发生了一件大事:美国新任总统特朗普联合 OpenAI CEO 奥特曼、软银 CEO 孙正义宣布了一个名为「星际之门」(Stargate Project)的人工智能项目。
该项目将成立一家公司,计划未来四年内投资 5000 亿美元,并立即开始部署 1000 亿美元,为 OpenAI 在美国建设新的人工智能基础设施。此举旨在确保美国在人工智能领域的领导地位,同时创造数十万个新就业岗位。
图源:the Verge
星际之门项目公布之后,围绕着它的讨论便开始了,有力挺者,也有泼冷水的。
近来风头正盛的马斯克来了波贴脸开大,「他们根本就没有这么多钱。并且根据可靠的消息来源,软银现在的资金远低于 100 亿美元。」
数小时之后,奥特曼进行了回击。他一方面肯定了马斯克是我们这个时代最鼓舞人心的企业家,并真诚地尊重他的成就。
另一方面反驳道,「马斯克你是错的,你肯定也知道。你要不要来参观一下已经在建设中的第一个站点呢?星际之门项目对国家来说是件好事。我觉得有利于国家的事情并不总是对你们公司最有利。在你的新角色中,我希望你能把国家放在第一位。」
在另一位推特博主、软件工程师 Jason DeBolt 的帖子(他表示奥特曼不值得信任,直觉告诉他奥特曼应该远离人工智能,星际之门项目不会有好结果)下面,马斯克又嘲讽「奥特曼是个骗子」。
而就在马斯克与奥特曼在推特对线的同时,人工智能独角兽 Anthropic 的 CEO Dario Amodei 也加入了战局。另外,据多方可靠消息,谷歌昨日向 Anthropic 追加了 10 亿美元投资。
在达沃斯世界经济论坛接受彭博社采访时,Dario Amodei 认为,星际之门看起来「有点混乱」,目前既不清楚该项目实际涉及多少资金以及其中多少资金能承诺到位,也不清楚政府将如何参与进来。
Dario Amodei。图源:bloomberg
此外,微软 CEO 纳德拉在接受 CNBC 采访时,也被问及对星际之门以及马斯克嘲讽 OpenAI 等没这么多钱的看法。
纳德拉没有选择正面回答,只是表示微软 2025 财年将投入的 800 亿美元会到位,这些钱将用于扩建 Azure 服务,世界各地的客户可以在其上使用 OpenAI 以及其他厂商的大模型。
你觉得星际之门项目会草草收场吗?
参考链接:
来源:juejin.cn/post/7462937570671984681
🤔认真投入两个月做的小程序,能做成什么样子?有人用吗?
前言
Hello 大家好我是 oil 欧呦,大概一个月前,我写了一篇文章 # 🤔认真投入一个月做的小程序,能做成什么样子?有人用吗? ,那是我开始做自己的第一个卡盒小程序的第一个月,那又过了一个月后,这个小程序做到什么程度了呢?今天就给大家汇报一下情况。

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

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

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

卡盒集市

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

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

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

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

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

可能有很多小伙伴觉得证书都是虚的,真正看实力还得Show Me The Code。对于后一句我是举双手赞成,不过证书的好处也是有的。比如有的城市可以帮助落户,对公司资质也有帮助,最少也能证明自己学习能力还在,不会被新技术淘汰掉。
总之今年超额完成了任务,目标已达到,以后应该不会再考了。
- 上线小程序⛔
还没有完成。
从有了想法开始, 断断续续搞了几个月,目前进展落后,完成了一半。一开始,我是想做一个微信小程序,使用微信小程序的原生语法开发,后来觉得效率太低,而且很多语法不通用,不如用一个跨平台的框架。
最后决定了用uniApp来开发,后端也由自己开发部署改为使用云函数,中间技术选型就耽误了不少功夫,开发的规划和管理还是有很大的提升空间的。而且现在就是感觉作为一个后端程序员,做页面还是有些勉强。页面的功能能用是一回事,还要做的好看,那可就难了。
虽然进度落后了,但这一次不会再半途而废了,不管最后做成什么样都要完成。争取2个月之内结束。
明年的目标
马上就要到新的一年,依然还有很多事情等着我去做。而且焦虑的感觉一点也没有减少,对自己的将来还是有些迷茫。不过机会都是留给有准备的人,为了在将来机会到来的时候能准备好,还是要学习和努力啊。就先给自己定两个目标吧。
- 学英语,目标是追剧可以不看字幕,也给孩子学习做个榜样
- 健身,八块腹肌等我
最后想在这里问一下,掘友们,你们今年的目标都完成了吗?
来源:juejin.cn/post/7454092357333925900
如果你想做副业,不妨看看我这3个月的奋斗史
看过我文章的小伙伴应该也都知道,去年我是坚持了每周更新一篇技术文章,去年文章总数算下来也有个50篇左右,然后今年立下的flag是:
- 再学一门语言,比如鸿蒙开发、游戏开发等等。这个flag是做到了,目前为止可以运用kotlin开发Android原生应用。
- 继续在掘金平台输出文章,至少做到每周一更。年初原本想着是每周2-3更,但是目前看来是完全没做到,因为这2个月的个人时间全都扑在了“副业”上。
所以接下来,我会将这3个月的心路历程讲给大家听,如果大家想做副业,可以参考一下我的经历。
过年这段时间的思考
时间回退到去年过年的时候,我没记错的话应该是今年2月份是去年过年的时间点。我司是放了2周的假,那个时候我的工作年限是2年半(可以出道了,哈哈哈)。从大学到目前为止,心里一直有个声音告诉我:
我不可能通过打工来实现理想中的生活状态。原因如下:
1、房贷、车贷、孩子教育、大病、未知的风险,这些因素会导致生活质量非常脆弱。当然这也要因人而异,毕竟过的是否开心只有自己知道。
2、疫情后时代,裁员潮一浪更比一浪强,毕业人数越来越多,岗位越来越少,谋得一份自己满意的工作也趋近于“99%的运气 + 1%的努力”。
3、原来我努力学习技术是为了更好的打工,有人的地方就有江湖,你不能独善其身,因为并不是所有的人都喜欢双赢。
所以,年后在回北京的路上,我决定今年要尝试一下,不要把所有的时间全扑在技术上,可以考虑做一下“副业”。
如何做副业?
我个人比较喜欢看电影、电视剧、动漫、NBA。影视解说这个赛道可能就比较适合我,定了赛道以后,视频发到哪个平台呢?今年短视频平台特别多,抖音、快手、视频号、B站、西瓜、甚至是支付宝里都可以刷视频等等。在综合考虑之后,我选择了微信视频号。原因如下:
- 微信不缺流量,也不缺广告商赞助。
- 视频号绝对是某讯今年发力的重点,因为官方不止一次在公共场合里说明了视频号的重要性,而且春节晚会上也出现了视频号的赞助。
- 视频号上目前竞争不激烈(这句话只在2024年6月前生效),因为用的人还不是很多,所以这个阶段对视频质量的管控还不是很严,毕竟它要吸引用户进来,前期肯定不会管控太严,而且流量也会给的很足。
于是2024年2月18日,我的第一条影视作品在视频号上发布了。
这是我第一次剪辑影视作品,花了3天时间。当时的播放量就是200多,你现在看到710播放量是2月18日 - 6月16日的播放量。那个时候粉丝数量是1,对,没错,就是你们想的那样,那个1就是我自己,哈哈哈。当时剪辑第一条视频的时候,说实话完全是一边学习一边剪辑,而且那个时候我进入了一个误区,就是必须要剪辑的完美,所以前2天一直没有产出,这个时候我慌了,2天一点产出都没有,所以第3天的时候我告诉我自己,先把视频发出去,你又不是只发一条视频,后面的视频慢慢优化,不要想着一口吃个胖子。
前2条视频都是有关三国的视频,那个时候播放量都是200多,但是从第3条视频开始,播放量直接破万,有的能达到10w。为啥会有大的播放差距?后来我复盘了一下,是因为我当时正好踩中热点了,并且竞争不激烈。第三条视频以后,我开始剪辑《南来北往》这部影视剧,当时这部电视剧可以说是非常火,没看过的小伙伴强烈建议你去爱奇艺上观看一遍,真的超级好看。
因为周一到周五上班嘛,所以周六周天我会把下周要发的视频全都剪出来,一天至少按时发一个作品,就这样,差不多2周左右的时间吧,我的有效粉丝突破了100个。
视频号是分等级的,等级跟粉丝有关系,等级越高,视频的基础播放量就越高,能解锁的权益也会越来越多。
有效粉丝数量突破100个,这个阶段是比较难的,原因如下:
- 你要审视自己的作品质量。自己剪出来的东西是否有待提高等等。
- 你要确定细分赛道,影视解说都算是一个大概念,它可以再细分为 “影视解说”、“影视混剪”、“影视情感”。
- 一天分很多个时间段,每个时间段流量不一样,所以你要测出自己的作品在哪个时间段里,播放量比较高。
我原以为影视解说这条道路会这么顺的走下去,结果因为没有版权+播放量太高,被投诉侵权了。不是我吹,如果那个时候你在视频号里搜索“南来北往”,你看到的视频大部分都是我剪出来的。
说实话,我也是第一次见到这种阵仗,吓的我把所有关于“南来北往”的20多部作品连夜下架删除了。
在对比了其他平台后,我得出了如下结论:
- 平台之间是有合作的,这部影视剧在这个平台算侵权,但是在其他平台里就不算侵权。
- 二次创作的质量要高,要不然很容易就会被判违规,所以我已经完全转为纯影视解说。
- 还是要看平台规则,要尊重平台的规则。
影视号在视频号里如何赚钱?
相信这个话题是你们比较喜欢看的,根据我的历程,影视号在视频号里的变现途径有以下几个方向:
- 当你的作品播放量能够稳定突破10w的时候,或者每周的播放总量能够稳定突破50w的时候,会有很多人主动找你合作。
- 视频号里有视频变现任务,你可以主动去接一些变现任务,然后等待任务结束后结算。当然,这个只有当你的有效粉丝数量突破100的时候,你才有资格去接任务。
- 如果你的有效粉丝数量突破1000的时候,你可以挂商品链接,用户从你的链接点进去后,如果发生了交易,你会在中间赚一些分成,这个跟抖音的规则差不多。
- 如果你的有效粉丝突破了5000的时候,你的账号就可以解锁商单功能。就是将自己的报价放出去,如果广告主找你合作,那么他就要遵循你的视频报价。一条1分钟以下的视频报价是多少,一分钟以上的视频报价是多少等等。
当然我说的这几个方向,都必须要遵循平台的规则。所以前2年,在抖音上,80%的探店账号都赚到了钱,就是因为前几年,探店视频在抖音上是趋势,如果前几年你在抖音上发探店视频,能够做到基础的每日一更,你的流量一定不会差,而且你也一定能够接到商单。
最后
又到了该和大家说再见的时候啦,这3个月确实是学到了很多东西,这3个月的奋斗史也绝对不仅仅是视频号,在其他方面上我也有很多很深入的尝试。
以上内容绝对没有任何的引导,只是自己上半年的一个分享,如果你还想看更多的,有关我在其他方面的尝试,欢迎评论区里发言,嘿嘿,我们下期再见,拜拜~~
来源:juejin.cn/post/7380510171640446988
谈谈在大环境低迷下,找工作和入职三个月后的感受
前言
今天是新公司入职后的三个多月了个人也是如愿的转正了,对于我个人而言此时的心情好像没有三个月前刚拿到offer那样的喜悦和兴奋了,更像一件很普通的事情在你身边发生了吧。从2023年底离职在到2024年初开始找工作中间休息了三个月,找工作到入职花了一个多月,在这个过程中也是第一次真真切切感受到了所谓大环境低迷下的“前端已死的言论”,也给大家分享一下自己入职三个月的个人感受吧。
从上一家公司离职时的个人感受
因为上一家公司的工作性质是人力外包驻场开发,年底客户公司(中国移动成都产业研究院)我所在的项目组不需要外包人员了,个人也是被迫拿了赔偿灰溜溜的走人了。
工作感受:对于这段工作经历我个人还是比较认可的,毕竟这里没有任何工作压力,也不加班,工作量少,有很多时间去学习新东西,做做自己的开源,认识了新的朋友等等。
学历的重要性:在这里面随便拎一个人出来可能就是研究生学历的国企单位,自己真实的意识到了学历的重要性(第一学历小专科的我瑟瑟发抖)。
和优秀的人共事:如果在一个长期压抑低沉消极的环境下工作无论你的性格在怎么积极乐观开朗,可能也很容易被影响到。相反如果是和在一群积极,乐观,开朗,充满自信的环境和人一起工作,相信你也会变得积极,乐观,自信这或许也是我这一段工作经历最大的收获吧。
2023年底找工作的市场就业环境
抱着试一试的心态在boss上更新了自己的简历状态,不出所料软件上面安静的奇怪ps:49入国军的感觉,已读未回可能是很失望的感觉吧,但年底找工作令人绝望的是大多数公司都是未读未回,这也就意味着年底基本上是没有正常公司招聘的了。
大概投了两周简历后终于在智联招聘上约到了一个短期三个月岗位的面试,现场两轮面试通过了,不过最终还是没有选择去。
原因有很多:
- 现场的工作环境个人感觉很压抑,从接待我前台和面试官都能感觉满脸写着疲惫
- 说公司最近在996,你也需要和我们一起
- 招聘岗位和工作内容是threejs开发,薪资却说只能给到普通前端开发的水平
- 人力外包公司hr的反复无常令我恶心,二面通过后hr给我打电话最主要就是聊薪资吧,电话内容也很简单hr:成都大部分前端的薪资是在XX-XX,可能给不到你想要的薪资,可能要往下压个1-2K。我:我提的薪资完全是在你们发布招聘岗位薪资的区间,既然你们给不到为什么要这样写了(有感到被侮辱了)。过了几天之后人力外包的hr又给我电话,说可以在原来提的薪资基础上加1.4K,希望能早点去客户公司入职。
总结:年底招聘的公司基本上没啥好鸟,如果你的经济能力还行的话让自己放松休息一段时间也是不错的选择
2024年初找工作:真实的感受到了大环境的低迷下的市场行情
印象最深刻的是在疫情时期的2021年,那会儿出来找工作boos上会有很多HR主动给你打招呼,一周大概能五六个面试,大专学历也有机会去自研公司
解封之后本以为市场行情会变得回缓,结果大概就是今年可是未来十年行情最好的一年
简单总结一下2024年的成都就业环境大概这样的:
- 只有外包公司会招专科学历
- boss上只给hr发一句打招呼的快捷语,99% 都是已读不回
- 大多数要完简历之后就没有后续了
- 待遇好的公司对于学历的要求更严格了(211,985)
- 给你主动打招呼的基本上都是人力外包公司
截至入职新公司前boss上面的投递状况:沟通了1384个岗位,投递了99份简历,一共约到了 8 家公司的面试
今年找工作的个人感受:不怕面试,就怕没有面试机会
首先说一下个人的一些情况吧,因为在创业小公司待过在技术栈方面个人认为算是比较全面的了
项目经验:做过管理系统(CRM,B2C,ERP,saas等管理系统)、商城和门户网站(响应式,自适应)、移动端(H5,小程序,app)、低代码和可视化(工作流,可视化大屏,3d编辑器)、第三方开发(腾讯IM,企业微信侧边栏)、微前端
项目经历:从0-1搭建过整个大项目的基建工作,封装过项目中很多功能性组件和UI组件二次封装(提高开发效率),接手过屎山代码并重构优化,约定项目的开发规范,处理很多比较棘手的疑难bug和提供相关的技术方案,没有需求概念下的敏捷开发,从0-1的技术调研等
代码方面:写过几个开源项目虽然star数量不多(目前最多一个项目是600+),但在代码规范和可读性方面个人认为还是比较OK的(至少不会写出屎山代码吧)
工作经验(4年):2020毕业至今一直从事前端开发工作
学历:自考本科学历(貌似没啥卵用)
学历确实是我很硬伤的一个点但是没办法,人嘛总归要为年轻时的无知买单吧
在这样的背景下开启了24年的找工作,从2月26号开始投递简历到4月1号拿到offer差不多一个多月左右时间,一共约到了8加公司的面试,平均一周两家公司
大概统计了一下这些公司的面试情况:
公司A:
- 数组哪些方法会触发Vue监听,哪些不会触发监听
- position 有哪些属性
- vue watch和computed的区别,computed和method的区别
- vue的watch是否可以取消? 怎么取消?
- position:absolute, position:fixed那些会脱离文档流
- 如何获取到 pomise 多个then 之后的值
- 常见的http状态码
- 谈谈你对display:flex 弹性盒子属性的了解
- 如何判断一个值是否是数组
- typeof 和instanceof的区别
- es6-es10新增了那些东西
- 离职原因,期望薪资,职业规划
公司B
到现场写了一套笔试题,内容记不清楚了
公司C
- vue router 和route 区别
- 说说重绘和重排
- css 权重
- 项目第一次加载太慢优化
- 谈谈你对vue这种框架理解
- sessionstorage cookie localstorage 区别
- 了解过.css 的优化吗?
- 闭包
- 内存泄漏的产生
- 做一个防重复点击你有哪些方案
- 解释一些防抖和节流以及如何实现
- 说一下你对 webScoket的了解,以及有哪些API
- 说一下你对pomise的理解
- vue2,vue3 中 v-for 和v-if的优先级
- 说说你对canvas的理解
公司D
笔试+面试
- vue 首屏加载过慢如何优化
- 说说你在项目中封装的组件,以及如何封装的
- 后台管理系统权限功能菜单和按钮权限如何实现的
- vue 中的一些项目优化
- 期望薪资,离职原因,
- 其他的记不清楚了
公司E
笔试+面试+和老板谈薪资
1.笔试:八股文
2.面试:主要聊的是项目内容比如项目的一些功能点的实现,和项目的技术点
3.老板谈薪资:首先就是非技术面的常规三件套(离职原因,期望薪资,职业规划),然后就是谈薪资(最终因为薪资给的太低了没有选择考虑这家)
公司F
也是最想去的一家公司,一个偏管理的前端岗位(和面试官聊的非常投缘,而且整个一面过程也非常愉快感受到了十分被尊重)
可惜的是复试的时候因为学历原因,以及一些职业规划和加班出差等方面上没有达到公司的预期也是很遗憾的错过了
一面:
- vue 响应式数据原理
- 说说es6 promise async await 以及 promise A+规范的了解
- 谈谈es6 Map 函数
- 如何实现 list 数据结构转 tree结构
- webScoke api 介绍
- webScoke 在vue项目中如何全局挂载
- vuex 和 pinia 区别
- 谈谈你对微任务和宏任务的了解
- call apply bind 区别
- 前端本地数据存储方式有哪些
- 数组方法 reduce 的使用场景
- 说说你对 css3 display:flex 弹性盒模型 的理解
- vue template 中 {{}} 为什么能够被执行
- threejs 加载大模型有没有什么优化方案
- 离职原因,住的地方离公司有多远,期望薪资
- 你有什么想需要了解的,这个岗位平时的工作内容
二面:
1.我看写过一个Express+Mongoose服务端接口的开源项目,说说你在写后端项目时遇到过的难点
2.介绍一下你写的threejs 3d模型可视化编辑器 这个项目
3.以你的观点说一下你对three.js的了解,以及three.js在前端开发中发挥的作用
4.现在的AI工具都很流行,你有没有使用过AI工具来提高你对开发效率
5.说说你认为AI工具对你工作最有帮助的地方是哪些
6.以你的观点谈谈你对AI的看法,以及AI未来发展的趋势
7.你能接受出差时间是多久
8.你是从去年离职的到今天这这几个月时间,你是去了其他公司只是没有写在简历上吗?
9.说说你的职业规划,离职原因,你的优点和缺点,平时的学习方式
公司G
一共两轮面试,也是最终拿到正式offer入职的公司
一面:
- 主要就是聊了一下简历上写的项目
- 项目的技术难点
- 项目从0-1搭建的过程
- 项目组件封装的过程
- vue2 和 vue3 区别
- vue响应式数据原理
- 对于typescript的熟练程度
- 会react吗? 有考虑学习react吗?
- 说一下你这个three.js3d模型可视化编辑器项目的一个实现思路,为什么会想写这样一个项目
二面:
- 说说了解的es6-es10的东西有哪些
- 说说你对微任务和宏任务的了解
- 什么是原型链
- 什么是闭包,闭包产生的方式有哪些
- vue3 生命周期变化
- vue3 响应式数据原理
- ref 和 reactive 你觉得在项目中使用那个更合适
- 前端跨越方式有哪些
- 经常用的搜索工具有哪些?
- 谷歌搜索在国内能使用吗?你一般用的翻墙工具是哪种?
- 用过ChatGPT工具吗? 有付费使用过吗?
- 你是如何看待面试造航母工作拧螺丝螺丝的?
- 谈谈你对加班的看法?
- 你不能接受的加班方式是什么?
- 为什么会选择自考本科?
- 你平时的学习方式是什么?
- 一般翻墙去外网都会干什么?,外网学习对你的帮助大吗?
- 上一家公司的离职原因是什么,期望薪资是多少, 说说你的职业规划
- 手里有几个offer?
hr电话:
- 大概说了一下面试结果通过了
- 然后就是介绍了一下公司的待遇和薪资情况?
- 问了一下上一家公司的离职原因以及上一家公司的规模情况?
- 手里有几个offer?
- 多久能入职?
因为后面没有别的面试了,再加上离职到在到找工作拿到offer已经有四个月时间没有上班了,最终选择了入职这家公司
入职第三天:我想跑路了!
入职后的第一天,先是装了一下本地电脑环境然后拉了一下项目代码熟悉一下,vue3,react,uniapp 项目都有
崩溃的开始:PC端是一个saas 系统由五个前端项目构成,用的是react umi 的微前端项目来搭建的,也是第一次去接触微前端这种技术栈,要命的是这些项目没有一个是写了readme文档的,项目如何启动以及node.js版本这些只能自己去package.json 文件去查看,在经过一番折腾后终于是把这几个项目给成功跑起来了,当天晚上回家也是专门了解了一下微前端
开始上强度: 入职的第二天被安排做了一个小需求,功能很简单就是改个小功能加一下字段,但是涉及的项目很多,pc端两个项目,小程序两个项目。在改完PC端之后,开始启动小程序项目不出所料又是一堆报错,最终在别的前端同事帮助下终于把小程序项目给启动成功了。
人和代码有一个能跑就行:入职的第三天也从别的同事那里了解到了,之前sass项目组被前端大规模裁员过,原因嘛懂得都懂? 能写出这样一堆屎山代码的人,能不被裁吗?
第一次知道 vue 还可以这样写
对于一个有代码强迫症的人来说,在以后的很长一段时间里要求优化和接触完全是一堆屎山一样代码,真的是很难接受的
入职一个月:赚钱嘛不寒掺
在有了想跑路的想法过后,也开始利用上班的空余时间又去投递简历了,不过现实就是在金三银四的招聘季,boss上面依旧是安静的可怕,在退一步想可能其他公司的情况也和这边差不多,于是最终还是选择接受了现实,毕竟赚钱嘛不寒掺
入职两个月:做完一个项目迭代过后,感觉好多了
在入职的前一个月里,基本上每天都要加班,原因也很简单:
1.全是屎山的项目想要做扩展新功能是非常困难的
2.整个项目的逻辑还是很多很复杂的只能边写项目边熟悉
3.因为裁了很多前端,新人还没招到,但是业务量没有减少只能加班消化
功能上线的晚上,加班到凌晨3点
在开发完一个项目迭代过后也对项目有了一些大概的了解,之后的一些开发工作也变得简单了许多
入职三个月:工作氛围还是很重要滴
在入职三个月后,前端组团队的成员也基本上是组建完成了,一共14人,saas项目组有四个前端,虽然业务量依然很多但是好在有更多的人一起分担了,每周的加班时间也渐渐变少了
在一次偶然间了解到我平时也喜欢打篮球后,我和公司后端组,产品组的同事之间也开始变得有话题了,因为大家也喜欢打球,后来还拉了一个篮球群周末有时间大家也会约出来一起打打球
当你有存在价值后一切的人情世故和人际关系都会变得简单起来
在这个世界上大多数时候除了你的父母等直系亲属和另一半,可能会对你无条件的付出
其余任何人对你尊重和示好,可能都会存在等价的利益交换吧
尤其是在技术研发的岗位,只有当你能够完全胜任这份工作时,并且能够体现出足够的价值时才能够有足够的话语权
入职三个月后的感受
- 公司待遇:虽然是一个集团下面的子公司 (200+人)但待遇只能说一般吧,除了工资是我期望的薪资范围,其他的福利待遇都只能是很一般(私企嘛,懂得都懂)
- 工作强度: 听到过很多从大厂来的新同事抱怨说这边的工作量会很大,对我来说其实都还ok,毕竟之前在极端的高压环境下工作过
- 工作氛围:从我的角度来讲的话,还是很不错的,相处起来也很轻松简单,大家也有很多共同话题,没有之前在小公司上班那么累
大环境低迷下,随时做好被裁掉的准备
从2020年毕业工作以来,最长的一段工作经历是1年4个月,有过三家公司的经历
裁员原因也很简单:创业小公司和人力外包,要么就是小公司经营问题公司直接垮掉,或者就是人力外包公司卸磨杀驴
除非你是在国企单位上班,否则需要随时做好被裁掉的准备
什么都不怕,就怕太安逸了
这句话出自《我的团长我的团》电视剧里面龙文章故意对几十个过江的日本人围而不歼时和虞啸卿的对话,龙文章想通过这几十个日本人将禅达搅得鸡犬不宁,来唤醒还在沉睡在自己温柔乡的我们,因为就在我们放松警惕时日本人就已经将枪口和大炮对准了我们。
或许大家会很不认同这句话吧,如果你的父母给你攒下了足够的资本完全可以把我刚才的话当做放屁,毕竟没有哪一个男生毕业之前的梦想是车子和房子,从事自己喜欢的工作不好吗? 但现实却是你喜欢工作的收入很难让你在这座城市里体面的生活
于我而言前端行业的热爱更多是因为能够给我带来不错的收入所以我选择了热爱它吧,所以保持终身学习的状态也是我需要去做的吧
前端已死?
前端彻底死掉肯定是不会的,在前后端分离模式下的软件开发前端肯定是必不可少的一个岗位,只不过就业环境恶劣下的情况里肯定会淘汰掉很多人,不过35岁之后我还是否能够从事前端行业真的是一个未知数
结语
选择卷或者躺平,只是两种不同的生活态度没有对与错,偶尔躺累了起来卷一下也是可以的,偶尔卷累了躺起了休息一下也是不错的。
在这个网络上到处是人均年收入百万以及各种高质量生活的时代,保持独立思考,如何让自己不被负面情绪所影响才是最重要的吧
来源:juejin.cn/post/7391065678546157577
老婆问我,看这么多书有什么用?我想用这四个字解释明白
前言
Hi 你好,我是东东拿铁,一个正在探索个人IP的后端程序员。
关于洞察事物的本质,之前用了两篇文章,分别从副业、程序员的天花板两个角度,解释了关于变量、因果链、增强回路、调节回路这几个概念。
最后的一个概念,是滞后效应,因为自己没有太好的案例来解释,所以一直没有完成这个概念的解释。
但今天,我想从读书的角度,来解释滞后效应,对你的影响。
看书有什么用呢
我最近开始疯狂看书,或者说,愿意去读书了,不需要人催。只要不陪孩子的时候,我便会放下手头上的事情去看书,有一种想把过去十几年欠缺的时间补回来的冲动。
前天和老婆聊天,我很骄傲的说:我说我最近一个月已经看完了三本书了,厉害吧。
我老婆天真的问了一句:读这么多书有什么用啊?
有什么用呢?我突然回忆起了上学时光,父母、老师不止一次的告诫我们,要多看书,而且也有很多名人名言告诉我们,要去多读书。
查理·芒格说:我这辈子遇到的来自各行各业的聪明人,没有一个不每天阅读的——没有,一个都没有。
钱锺书先生说过:“如果不读书,行万里路,也只是个邮差。”
过去十几年,我也经常在内心里发出这个疑问,有什么用呢?即使在这这样的耳濡目染下,从上学到工作,我也几乎很少去看书,打游戏、看电影是我的休闲方式,看书也只会选择像《白夜行》这种小说。
当自己被问到这个问题的时候,我试图找到看书的收益,嗯,上周写的文章,发布那天,给我带来了1毛钱的收益,似乎好久没入池了。
入池就是微信官方给推荐流量,能够让更多没关注我的朋友,也能看到我的文章。(虽然入推荐池也没多少钱)
肚子里有不少话想说,但有感觉几句闲聊又说不明白,于是我笑了笑,结束了这个话题。
虽然如此,但心里只有两个字:有用。
是什么转变了我的看法,从抖音、英雄联盟中抽离出来,愿意花时间去看书呢?就是文章开头所讲的,滞后效应。
滞后效应
什么是滞后效应
系统最后一个连接关系,是滞后效应。
先从大家最感同身受的一个例子开始,新冠疫情为什么影响这么大?因为新冠病毒有潜伏期,这个潜伏期,可能长达14天。
因为这14天,导致病毒的溯源变得极为困难,我们也被迫在特殊情况下,居家隔离14天。
你给自己定下了接下来一个月的业绩目标,目标设高了,没完成心情低落。目标设低了,太简单了,自己容易放松懈怠。
于是你只能高点、低点来回调整,尝试好几个月。
比如你在洗澡,打开开关的时候,水一会凉,一会烫,你需要左右调整一会才能调整到舒适的温度。
为什么会这样?因为定完目标到出结果可能要几周,打开开关到出热水,需要几秒钟,因和果之间,有一个时间差,这个时间差,就是“滞后效应”。
看书也是一样,从看书,到你真正的能够运用书中的知识,或者说因为书的内容,而做出了什么正确的决策,最后又拿到了什么结果。中间可能会有漫长的时间。
让我们一度会自我怀疑,读书到底有什么用?
所以我们去看很多成功的公众人物,虽然他们在成长过程中阅读过很多书,你很难解释,今天的他,是因为读过哪些书、经历过哪些事,才造就的他今天的成功。
甚至可能他自己,也不知道具体哪本书,是他成功路上最重要的那一本。
我们了解了“滞后效应”,如何让他更好的应用于读书这件事呢?有三点和大家分享。
原因不一定在结果附近
在字节的时候,我挺佩服我的导师和leader,在很多时候,都能带领大家拿到不错的业绩,也给予了我很多的帮助。
他技术能力强,你不会的问题,找到他都能够解决。
管理能力也不错,团队有着很强的战斗力,关键还特别勤奋,有一次我写完技术规划已经半夜2点了,我的leader在凌晨2点和我视频整体过了一遍,并给了改进意见。
我恍然大悟,领导能够如此优秀,是因为够拼。于是我也开始加班,别的学不会,先从勤奋开始学起。
因为存在滞后效应,原因不一定是在结果附近,领导加班只是因为他承担了更大的责任。
想学习他们,学习拼、加班是不够的,应该看看五年前,他们做对了什么,又或者看了什么书,才让他们的技术、管理看起来这么的游刃有余。
减少滞后,增加确定性
刚毕业开始工作时,我买了一本书,叫做《机器学习》,这本书很有名,因为封面的西瓜,很多人称它为“西瓜书”。
但是我做的是后端岗位,即使我把这本书通读了一遍,我也不会有任何的应用,直到现在,我也没实际应用过书里的内容。
这就是读书的滞后性,从我学习到真正的应用与收益,我不知道有多长的时间,或许十年后,不得不学习AI的知识时,我才能想起这本书的内容。
怎么办?学以致用,读那些你能用到的书。
你是一个初、中级后端程序员,就去阅读像《Spring Boot实战》这样的书,去一行行敲下代码,快速的应用到工作当中。
你是一个高级程序员,就去阅读像《深入理解Java虚拟机》,结合生产环境暴露出来的问题,具体分析背后的原因。
你已经变成一个团队管理者,就去阅读管理、沟通类的书籍,解决面临的团队问题。
立刻学习,立刻应用,循环往复。
缩短中间环节
在职场初期,我的技术学习渠道,都是靠百度。百度可以搜出大量的技术文章,来源于掘金、csdn、简书等。
但是,文章的内容参差不齐,你能够学到的只是博主能够掌握的,而内容本身,也可能有遗漏、甚至有错误。
所以我常常因为一篇文章,觉着学会了这个知识点,但后面再看到同一个知识点的其他文章,又会发现这里是不是不对,那里的概念我怎么从来没有听说过?
那怎么办?缩短学习的环节。
从碎片化的网络上学习,改为系统的学习,买业内最权威的专家写的书籍去看,去看官网给出的入门手册,甚至去看源代码。
最早学习JVM虚拟机,我阅读了大量的网上的文章,有讲垃圾回收算法的,讲CMS的,讲G1的,我想到什么就去看什么,面试问到了什么,就去看什么。
后来知道了一本书,就是《深入理解Java虚拟机》,我发现无论是网上的免费文章,还是极客时间的付费课程,这本书几乎涵盖了大部分的内容,而且内容丰富,逻辑性强,更适合新人的学习。
从学习别人理解的知识,到学习最权威的知识,减少中间发生的信息损耗,极大的提升自己的学习效率。
说在最后
好了,文章到这里就要结束了,感谢你能看到最后。
希望这篇文章,可以在读书这件事上,给你一点点帮助。
关于洞察力几个概念的历史文章在这里,欢迎查看。
不知道你最近有没有读到什么让你爱不释手的书呢?欢迎你在评论区和我分享,也希望你点赞、评论、收藏,这对我来说真的很重要。也欢迎你加我的wx:Ldhrlhy10,一起交流~
本篇文章是第47篇原创文章,2024目标进度47/100,欢迎围观。
来源:juejin.cn/post/7399606877543415847
俊劫的2024年终总结:当爹、卖主机、差点失业
笔者
- 96生农村,河南信阳
- 被裁2次,工作5年多,目前在杭州一家车企
- 摸鱼群 / 找工作群,加我wx:V798595965
一、布丁的出生
2024-9-19,我儿子布丁顺顺利利来到这个世界。
1.1 出生那一刻
一开始觉得没什么,但是当微信收到老婆发的信息,那一瞬间感动的热泪盈眶😭。生完还需要在产房观察2小时,我在外面等的这段时间,描述不清楚是什么感受。当时找了个角落,给自己录了几段视频,想说的话,巴巴拉拉啥都说说,不过现在也没看过😂
1.2 费用
全部费用没算过,就生娃住院那4天,自费部分差不多6500左右,包含1350的护工费(450*3),包含48天后产妇体检的费用。
因为是一胎,咱也没啥经验,害怕很多意外的出现,所以就选了杭州产科最强的医院:市一。 因为医院比较老,附近停车贼困难,而且还很贵,10块一小时。SUV停了几次机械车位,差点把后视镜干掉了。
实际生产还是挺顺利的,宝宝在妈妈肚子里多待了5天,出生之后做的各项目检查都正常。现在看,选着最近的医院才是比较好的选择。
1.3 为什么要生
和一部分人一样,家长催生占一部分,但不是决定性的。去年结婚,对我们而言就是生娃的信号。35岁以上会被定义为大龄产妇,大龄产妇又会面临着各种危险。同条件下,越年轻,生完恢复的也越好。
再加上我姐姐也还没生,我这个家庭相对来说缺一个娃来让整个大家庭更有目标感。所以现在布丁出生后,会有超级多的人来爱他,特别是妈妈和姑姑
偶然在xhs看到一句话:养娃能看到过去自己长大的过程,会把自己认为父母亏欠的部分加倍补偿给自己的孩子,或许是在治愈自己,也或许是在满足自己
1.4 养娃
太多攻略要做了,这里要非常感谢一位朋友的帮助,比我先生宝宝,然后经验都分享给我了,经常问他各种问题😭帮了巨多忙。
养娃不仅仅要研究育儿知识,每个月伺候宝宝的方法还是不同的,宝宝的变化非常非常快。针对宝宝的不同反应,要做出不同的应对。因为媳妇快要上班了,这些东西不能仅仅是我们自己会,还得教他奶奶。但是他奶奶也五十几了,很多东西学不会,记不住,就很困难,也没啥办法。
然后中间还要调解婆媳关系,我日常还要上班,中间有段时间,中午不吃饭,时间全部用来睡觉。。。
现在处于教学痛苦期,观察好宝宝的反应,其实很好哄。但是他奶奶学不会,导致现在给奶奶带,就往死里哭😭。但是我们又不得不依赖他奶奶,不然上班就没人管了。
但是,有时候他奶奶不觉得是自己的问题,就觉得是宝宝的问题,就是要闹人,也不知道找原因,所以我现在是非常痛苦的。有时候只能安慰媳妇,没办法,让宝宝自己适应。。。
1.5 拍拍拍
3个多月了,回头看过去的样子,感觉自己还拍少了😂
1.6 男宝女宝
就身边的现象来说
- 高中同学
- 目前已知3个女宝
- 微信网友
- 同一天出生的,1个女宝
- 去年兔年生的,1个女宝
- 村里
- 目前已知3个女宝
- 公司同事
- 1男宝1女宝
- 媳妇同事生1女宝
- 同产房
- 1男宝3女宝
15个宝宝,只有2个男宝,13个女宝。 生男生女,概率不是差不多吗?
我倒是无所谓,生男生女,各有各的好处。你们身边男宝多还是女宝多?
二、工作
去年武汉被裁后,就来杭州这家了,当时还有点小插曲。因为武汉一家公司在我入职这家后又给了offer,我很纠结要不要去,当时处于这也想要,那也想要的状态,精神差点崩溃。
2.1 极越(集度)
关注新能源的应该都知道这个事吧,12月直接宣布原地解散了。去年在武汉可是大规模招聘,开的也算武汉Top几了。当时面了4轮,战线拉一个月,后面HC收紧被待定,然后一个月以后又联系给offer,蜜汁操作。要是早给,我肯定就去了。。。
去了的话,现在又是找工作的时间。我媳妇就认为是她的功劳,不是她在杭州,不是她对房子没有那么大执念了,我肯定又回武汉了。当初想去集度,就想赌一把百度智驾。我想着百度都干那么久了,对其他车企不得是降维打击,结果啊,百度还是那个百度。
间接躲过一劫,差点失业
2.2 晋升
虽然结果没出,但是我觉得是个伤心事
2.3 面试
帮忙面试
最近帮着公司招外包,收到一些十年以上经验的简历,很尴尬。简历潦草的,让人感觉他们自己也没抱什么希望,上次招聘给了几个大龄的面试机会,结果一个不如一个。第一次9月份,第二次就是最近。9月份也面了挺多的,过了几个,但是当时卡的严,最后一面基本都被毙了,卡着卡着,HC就变成了0
还有个现象就是异地简历贼多,很多都不是在本地工作的,可见大家都在海投,市场情况就是这样
今年又出1个外包HC,我有时候面1面,有时候面2面,给过了几个,不知道能不能来入职。
前端分类
简单分为,1-3年,3-8年,8年+,外包,自研
3年内的多是自研,简历写的都挺不错,但是一问就不会,一问就是别人做的
5年左右,最近一份干外包的居多,技术也还不错
8年+的,很大一部分就简历拉跨,技术也拉跨,各方面都不太行,当然厉害的也不会来投递外包了哈
今年面试感觉到的情况,并不具有代表性,各位简单看看
简单分析
结合我自己现在的状况,我也明白为什么,就是技术停滞,就是学习能力在逐步下降,不得不服。或许因为懒惰,或许因为家庭事情越来越多。。今年我没怎么学习过,就写了1篇掘金文章,很是惭愧。有更多的时间,不是在打游戏,就是在刷视频,看直播。我尝试着在改变,但是有点难。。。
自己也越来越老,通过面试官的身份反省自己,得好好学习,不仅仅是技术方面。
2025年,我还是需要在这块寻找突破口,不能再停滞不前了,不然迟早要被淘汰。
三、旅游
因为有了车,计划了挺多地方的自驾游,但是因为媳妇怀孕,所以就只能轻度转转,尽量避开人多的地方
3.1 南京
视频带奶奶看了下玄武湖,还不如杭州湘湖,哈哈哈
3.2 千篇一律
之前想着把国内这些一二线城市都逛逛,感受感受。但是吧,现在感觉都是千篇一律的商业街,风景区,真没啥意思。每次做攻略都做的好好的,去了以后就感觉和理想的落差太大,然后从这次南京后,就不太想玩这种很常规的旅游了。
看xhs说,这是要加入下一个level的迹象了,明年等小布丁1岁后,他奶奶能带的时候。计划计划去港澳台逛逛,然后日本韩国这些,怎么都得去看看吧。。。
四、主机
4.1 入手
6月初,终于入手了人生第一台主机,是的,没错。毕业5年了,第一次拥有自己的主机,之前都用MacBook 虚拟机打游戏,LOL fps,30~60😂
4.2 配置
2024-5-29价格:
- 板U: 微星B760 爆破弹 Wifi D5 + 12600kf 1694
- 显卡:微星RTX4060 VENTUS2 X WHITE8GOC白色 2180
- 电源:微星MAG A600DN额定600W 234
- 机箱:微星PAG PANO M100L 白色 188
- 散热:微星MAG 寒冰E240白色水冷 369
- 内存:威刚D300 16G 6400MHZ 387
- 硬盘:威刚S50 PRO NVME 1TB 465
合计:5517
pdd微星官方旗舰店整机4999,用卷到手4863
4.3 为什么卖
主要3个原因
- window和mac两种系统切换着用,还是不太舒服,更喜欢mac
- 空闲时间就爱玩LOL,玩几把就要红温
- 有两次下班没带娃玩LOL,媳妇生气了
想了想以后,主机对我也没太大吸引力了,就挂xhs了,就挂了一天,第二天晚上卖了。4863买的,用了半年,卖了4050。
黑神话开挂通关的、使命召唤系列玩了3部,总体也算是过瘾了。
卖完只有一个感慨:老了,花有重开日,人无再少年
4.4 JJ卖主机的奇幻经历
AB两个买家,A爽快最终成交,B一直砍价最后破防
A需送上门 B上门自提,时间线如下:
- B凌晨3点就给我发了个消息,要购买记录,我早上回复了下,人家看我买半年了,砍价说3800,我说不出
- A看到后直接问3900送上门行不行,我犹豫了,来回70km+可能现场验收有问题,就拒绝了。拿着3900,我问早上的B要不要,要的话就给B了。结果B还在还价,问3850行不行,我拒绝了。
- A看我犹豫,直接说不还价了3999送上门,他急着用。我就准备和他交易了,这个时候B又来了,问我怎么样,我说A直接3999了,B这个时候急了,说他也可以3999,现在就可以上门
- 同价格我肯定选择B上门自提的,但是这个时候A已经拍下了咸鱼链接,我和A说了这个事,他又给我加了50,意思给路费。 我和B说,他那边已经拍了,B就生气了,长篇大论说我人不行。。。
所以最后的结果:我怕B是个事逼,而且A已经拍了,所以还是选择送货上门和A交易,A比较痛快,貌似是个主播,上门简单验机后直接打钱,省了咸鱼0.6%的手续费
这俩人都是玩无畏契约的,玩过几把,这游戏现在这么火?🔥
4.5 老了
回来路上,一个人在高架上飙了一把,只能感慨:花有重开日,人无再少年
五、11月软考
5.1 系统规划与管理师
过去没有了解过杭州政策,最近朋友说了考这个东西的好处,可以认证E类人才。买房只需要30%,不买房每个月也有2500补贴,政策很香。所以准备来试试,但是因为很久没看过书了,+懒+生娃各方面的因素,几乎没看,考试前还一直在想要不要去考。后面一想,钱都交了,不得去试试,看看裸考能考多少。
结果就是:
还有俩朋友一起考的也没过,很多认真学的,一部分卡在了论文上。毕竟这个东西和利益相关,所以会卡通过率。
5.2 信息系统项目管理师
2025-5月来战斗,有一起考的没!!!
六、其他
零零碎碎的其他事,不想花费太多精力去写这个,年级大了,很多东西都要和利益挂钩。没得利益,就不太愿意付出了。
6.1 兼职
- 赚了几个w,非理财
- 辛苦钱且不稳定
- 得寻找比较稳定的睡后收入
今年国庆节那波股市,太猛了。本来准备拿10个入场的,媳妇都同意了,还是胆小没敢上。。。差点套进去
6.2 领证
感觉要给孩子出生做准备了,之前了解的准生证、建档什么的都得结婚证,反正去年也结婚了,赶紧找时间领了,方便后面办户口。
实际上现在很多都放开了,并不需要结婚证,领了证反而变成已婚了,租房个税都只能填一个人的了。领了证,现在这行情,浙江刚落地的13天婚假也不敢休,有些地方领结婚证还给钱。
所以,领证没得啥好处,建议大家能不领还是不要领
6.3 减肥
- 减了30斤,不过现在还是很胖
- 目前体重稳定了一个月,继续开始减
6.4 房子
- 和媳妇两个人都不再有买房的执念
- 租了个两室一厅,4200,住的挺舒服的
- 没有房贷、没有车贷、没有任何贷款
- 养着小布丁,满足了
6.5 计划
2025年,全面拥抱AI,用一句话说:所有行业都值得被AI重构
想要更多技术分享和摸鱼乐趣?
- 加入微信摸鱼群:一起交流学习,共享资源,偶尔摸鱼,趣味多多!
- 关注公众号 [前端技术圈儿] :获取最新的前端技术干货、学习笔记和实用工具推荐!
- 加我wx:V798595965
快来和我一起探索前端世界吧! 🚀
最后再放一波儿子
来源:juejin.cn/post/7456898384331522099
进电子厂了,感触颇多...
作者:三哥
个人网站:j3code.cn
本文已收录到语雀:http://www.yuque.com/j3code/me-p…
是的,真进电子厂了,但主人公不是我。
虽然我不是主人公,但是我经历的过程是和主人公一样的,真实而又无奈。真实是真真切切的经历了这一段过程,而无奈则是我进厂这段旅程所体会出来的。
如果你对我的这段经历感兴趣,可以耐心的往下看。
故事
这里我先定义一个主人公 A,然后他来我这边找工作,那么我作为在广州待了有些年头的靓仔(一坤年多点),肯定要出时间给他张罗张罗,所以就有了这一段难忘的经历(现在回想起来,我是不想再经历第二次了)。
在广州没有学历,能选择的工作其实并不多,无非就是进厂或者打零工当学徒。但奈何我也没有什么找工作的门道,所以只能帮着从某直聘软件上刷工作岗位了。只要是不要求经验,学历的统统都是我备选岗位中的一个。在这里就不得不说在某直聘软件上,刷这种普工、配/拣/打包等岗位一刷一大堆,而且还自动找上门来,不像我现在干的程序员行业,要么进人才库要么人才库都不配进,只能石沉大海。
在结合 A 自身的情况和交通出行方便的情况下,我们决定接受进厂工作。因为他们发的待遇信息确实很吸引人,如:小时工 30/小时,多劳多的;正式工底薪加提成综合薪资7-8k;还包吃包住。你看,这怎么能不吸引人,怎么能不吸引一个以前只能拿 2-3k 工资不包吃不包住的主人公 A 呢!当然,我当时也觉得非常可以,以至于不假思索的和主人公 A 达成了统一战线。
那么,这次的难忘之旅就由此展开了。
先是早上按照他们微信上聊的,带好行李,身-份-证去一个交通非常方便的地铁口面试。那么我在想去面个试带行李干啥,我放在住的地方也挺好的,等面试通过了,安排住宿的地方了,我在将行李搬过去,这不简单轻松嘛。所以我和主人公 A ,就一致决定没有带行李过去,直接人 + 身-份-证过去面试,然而奇怪的点就来了。当我们到达面试的地方时,见到好多外来务工的人,这一幕让我有点触动。都是大包小包,蛇皮袋+黑行李箱,然而我两却空空如也。这时候我还没意识到问题的严重性,就直接过去问怎么面试,而那个穿蓝色工作服的人只是抬头撇了我一眼,看我们没有行李,直接抬手挥了挥,说没行李的不收。我说,为什么,他也不搭理我,直接说别妨碍后面的人面试(其实后面也没人),不收就是不收。
在这里我已经忍不了了,先说一下此刻我的内心:diss 他上下 18 代无数遍了,后面细讲,咱们先看故事。
其实我当时是想直接怼他,但为了照顾主人公 A 的情况,我忍了,重新回家去拿了一次行李,然后再次去面试的地方找工作了,但这次不是上一个地点,而是我另一个备选面试(也是需要行李,还是行李)。
两个人拖着个行李,酿酿跄跄的来到了下一个面试点,还是和上一个面试点一样的流程,但这次不同的是我带了行李,ok,他接收了,说等会安排面试。其实我以为这就完了,但是并没有,这才是开始的第一步。
等了一会之后,这个面试点就陆陆续续的来了二三十个人,也还是和我上次看到的人群一样,大包小包,蛇皮袋+黑色行李箱。此时我内心就不仅感慨,为了个工作也是不容易。等了差不多十几分钟就有个嗓门大的人喊,要面试的人跟我来,带上行李,没行李的不要来。就这样,我和主人公 A 被带到了一个不是很大的大厅,里面差不多容纳了几百人,此时我又被触动了(是的,以我目前的认知,我这段经历会被触动很多次),感觉进了传销一样。
从进入那个大厅以后,我就觉得非常无力,这种无力感你只有亲自体会了才知道。全是人,但就是没有工作人员,只知道等着叫号,其余时间找个地方坐着。当时就想,走也不是来都来了,留也不是和印象中的面试太不一样了。所以就在这种内心纠结中,徘徊了几个小时,是的你没看错,就是几个小时(起码两小时)。
这期间其实还有套路,我怕文章会写的很长,就忽略了,如果你们想听,以后多关注我 B 站直播,我会时不时的讲出来。
中午的时候,终于有个人扯着嗓门喊话,让我们安静下来,听他介绍后续的招聘流程。他的话不是很精炼,但是足够洗脑,因为他会在合适的时机给这些找工作的人透露,在该公司上班工资比的过广州大多数CBD上班的白领。只要这话时不时的出现,人群就会时不时的骚动几下,其实我能明白这些务工人拼搏一年不就是为了多赚点吗?听到高薪,眼睛发光是在正常不过了。但是,我就是看不惯这些中介公司层层剥利,压榨忽悠这些信息闭塞的外来务工人员(我这是事后才知道,不是工厂直招,而是中介)。
反正一番讲话之后,我们被分成了两批人,一批工资高点,但是上班地点异常的偏僻,另一批就是工资地点,但好在是市里,交通方便。
但我个人觉得,工作高低也是骗人的,说的高工资,去的人就多,他们抽的利也就多。
而我选择工资低的这类工作也就是看中他交通方便,能时常照顾一下,帮点忙啥的。
但,你以为这就完了嘛,并没有。之后的这些时间,我被他们用大巴车从集合点、拉到电子厂、再由电子厂拉到体检中心、最后拉到安排宿舍大楼。每一个地点的具体事宜如下:
- 集合点:忽悠办电话卡,打印身-份-证,蓝底照片制作,几百号人分成高薪资与低薪资两批人(但都声称比 CBD 白领薪资高)。
- 电子厂:面试,很奇葩的面试,就是看你的面相 + 基本信息,全称一句话都不用说。
- 体检中心:这个就是单纯体检,不过体检地点非常远,非常远,一看就是和这种中介公司有绑定关系,还是抽利。
- 宿舍大楼:安排宿舍,如蜂窝煤一样的格子间,超密集。
这期间,我们还没工作,杂七杂八的费用就被他们收去了 200 块(我们没有办卡,如果办卡了估计更多)。而且以上的时间线,每一个点都是非常熬人的,我一个正常男子都觉得非常累非常累,真不知道那些年纪小的、年纪大的、女生是如何坚持下来的。
熬人是因为,我们是一批人一批人的过,要等到这一批人的流程走完了才能走下一个流程,而且有些流程只有特定的时间点才开始,来早了,你就给我等着,到点才开始。
最后,当你分配到一张上下铺的床位后,你的这一趟流程就算是彻底走完了,时间也应该是来到了晚上六七点,所以就为了一个进厂工作的机会,从早上九点折腾到晚上六七点,真 TM 累。
以上就是我今天一天所经历的事情,现在想想,如果是你,你会为了进厂而这样折腾吗?
有感
不经历一遍,永远是不能感同身受。
上面的故事你们看了,也就是看了,可能内心都不会有一点波澜,但这个没关系,如果条件允许我希望看到这篇文章的人,永远都不要有这种经历。
首先,我来对这种中介第三方公司招人的方面,来说说我的看法:
你们要先分别什么是工厂直招还是第三方中介招聘,如果是从某直聘上看到的岗位应该是会写“派遣”或者“代招”。当然,也有不写的,那么这就需要后续的判断了“没有行李不接待”。是的,就是这个,我现在才反应过来,如果你去面试,不带行李,他们接待你,然后给你安排这一系列的流程,你中途觉得不靠谱,你是可以随时走人的,一点都不麻烦。但是如果你是大包小包 + 黑色行李箱的话,那么你就不可能那么方便的随时想走就走了,这个行李就是第三方中介拷住你的加锁。
你们也不要相信从某直聘上加的所谓人事的话,他们只有一句话是真的,那就是引你到面试的地点是真的,其余的都是假话,其余的都是假话。如果你们以后不幸碰到我上面的故事情节,千万不要对这种人抱有任何的感激,觉得他们真好,为了给我一个工作机会,解答我的各种问题。醒醒吧!你的真诚/感激之情真有可能是喂了狗(狗子对不起,不应该拿你做对比),你带着真诚的心态去问你所不了解的各种问题,他们只会用高薪,轻松等话术迷惑你。因为他们招到一个人,拿一个人的提成,你们只是他们的赚钱工具,才不会管你这个工作是否真高薪,真轻松,如果是为啥他们自己不上。
这种第三方公司做事效率是非常快,一天办理几百人的入职流程,为了就是让你们入职,他们有提成。如果等到第二天你们反应过来,后悔了,那么他们就没钱可赚了。效率快是好,但是整套流程下来,你们有没有发现,连午饭时间都不给人了(就怕你们溜走)。是的,我当时就是没吃午饭,硬撑着走完了一天。而且在后续我与同行的打工人交谈过程中了解到,有些人早饭都没吃,也就是一点都行没吃,来来回回折腾一整天,直到晚上才有时间去吃饭,而这个时候就不怕你走了,因为你的入职流程已经办完了,该交的钱也交了。
以上套路只是我经历过得一种,但肯定不止这一种,希望大家能提前辨别!
接着,我来说说这一天,我与同行人交谈过程中了解到的各种人生经历:
虽然我是程序员,但绝不是那种沉闷不爱社交的性格,相反我还是挺爱和人交谈的,爱听别人的故事也爱和别人分享我的故事。
我碰到的第一种人就是未满 18 岁的小孩,故事开始的时候我提过,前期我是被人带到一个大厅集合的,之后,未满 18 岁的小孩就被所谓的工作人员给筛选出来了。其实说是筛选出来,肯定也不是让他们走,只是安排他们去那种更偏僻、工资更低一点的、对年龄要求不严格的小厂工作。反正,只要有人头进入工厂,他们这种中介就有钱赚,只是从你身上赚多赚少而已。
看着这几个未满 18 岁就出来打工的小孩,内心多少都是有点不是滋味。毕竟这个时候他们应该是呆在校园,且正处于高中,正是读书改变命运的关键时刻。但,我想这种再次读书的机会,应该是不会在这几个小孩身上出现了。因为我没有机会和这几个小孩说话,所以不知道他们是什么原因走出校园,走出家庭,而选择步入社会。但是,希望他们几个往后能一帆风顺,改天换命。
第二种人,我也没有机会和他说话,我关注到他是因为一段对话:
招人的负责人说:看你年龄比较偏大,都 45 了?
务工大哥:是,确实大了点。
招人的负责人说:像你这种情况,年龄比较大,我可以招你进去,但是工厂要不要,就不能保证了,这个你要明白。
务工大哥:行,就过去试试吧!
招人的负责人说:好,等会跟着一起过去。
其实从这段对话中我们也能很快想到,工厂肯定是不想要那种年龄偏大的员工了,毕竟工作强度还是有的,万一出现什么身体情况,咋搞。而务工大哥,肯定也是不想失去这种工作机会嘛,毕竟对于他而言,能有高工资就行,其他的应该都是次要的。
看着这务工大哥珍惜工作机会的态度,我瞬间就醍醐灌顶。内心不禁在想,是什么样的生活压力或者其他原因,才能让这务工大哥情愿跟着一群小年轻这样奔波找工作。
因为没有机会和这位务工大哥搭上话,所以我也就内心想想罢了。
第三种人,我终于是和他们搭上话了,他们都很年轻。在和他们简单的交流过后,我了解到的情况大致如下:
年龄基本都是18、19岁左右,并且学历都不高,有初中、高中、中专等学历的。还有些是中途辍学,并没有完整的读完学历就出来工作的,而且我问他们不读书的原因,他们的回答基本都是自己不想读了,想出来找工作,有钱花。所以现在读书,倒不是家里穷读不起,而是很大一部分人,受不了社会上的一下诱惑,想要快点赚钱,好有能力买各种喜欢的东西,包括打游戏买装备(因为和他们聊天中,都是游戏不离手的状态)。
像他们这种,吃不了学习上的苦,就只能吃生活上的苦。以后或许他们还有选择的机会,毕竟还年轻,但是,我想他们应该在未来很长一段时间,都是游离在各种电子厂。因为感觉他们还是玩心重,而电子厂这种工作,多白了就是工作轻松,多劳多得,还包吃包住。等到某一时刻他们过腻了这种日子,应该能重新审视一下自己,未来的路,希望他们能早点醒悟。
第四种人,你可以理解他们是第三种人的升级版,就是他们一直没有醒悟,一直都是从事着电子厂这种工作。只是从厂 A,来到了他们认为工资,工作各方面还不错的厂 B 而已。你可以在他们身上看到全国各地奔波的痕迹:蛇皮袋、黑行李箱、竹席被褥、胡子拉碴、头发凌乱、烟味很重。我提到的这些,只是单纯的用文字写出来,而没有任何的其他意思。在和他们交谈的过程中,能很明显的看出一种无奈的心情出来,他们无非就是想要一个稳定,有点收入的工作。但是工厂就是这样,忙的时候招人,不忙的时候拼命的赶人。他们也不想走的,但工厂不忙,肯定是不发工资的,你这样呆在工厂没有任何的意义,所以只能又拿起行囊四处奔波。
所以,生活就是充满着未知的变化,我们能做的就是不断的提升自己,来面对这种变化。希望能看到这里的人,都不被生活所压迫,加油吧!
还有最后一种人,也是我最想不到的一种人。他们在没有进厂之前,手底下有十多号人,一个月光租金就可以花出去五六万。是的,我们暂且可以把他们定为老板被迫进厂的一类人。
说他们是老板,一点都没错。因为他们在没有进厂之前,确实是自己开店做老板的,只是因为 21 年疫情的时候,大家都闭门不出,实体经济很难再维持这种高房租的压力,所以才被迫关店,倒闭。我那时问他们,为什么不多坚持坚持,你看现在不就春暖花开了吗?他们只是面带苦涩的说,多坚持一个月,就是五六万的流水出去,而且那会不知道什么时候是个头。并且他们不是没坚持,而是已经没有钱再可以坚持下去了,所以只能现倒闭,让自己缓一缓,释放一下压力。
我也确实从他们身上感受到了他们所说的压力,只出不进,五六万的流水,这谁能受得了。并且疫情过去的时候,也想过重新再来,但是已经没有钱可以再来了,那会欠的钱还没还清,已经没有资金重头再来了。
这一天的交谈中,我见过两个这种人,以前都是老板,也都是因为疫情原因,赔钱了,只能进厂缓一缓,让自己好受一点。但是他们毕竟是见过一些世面的人,你可以很明显的感受到他们和前面这几种人不一样,如装扮、说话和回答问题方式,并且他们也都很乐观,还说,等我在工厂缓过来之后,还是会继续再拼搏一番。你看看,这不就非常好嘛!在人生的这条道路上,如果你跌倒,说明你选择的是一条坎坷的路,只要你能站起来,继续走下去,我相信你的收获绝对能对得起你这一路的坎坷。
好了,洋洋洒洒五千多字,算是我对那天经历的一个交代。如果你看到这里,内心也有一些感触,说明你是一个感性的人,欢迎你在评论区留下你的足迹。
题外话:主人公 A 最后还是没去成!🤣🤣🤣
来源:juejin.cn/post/7343132138655858724
如果我贷款买一套 400W 的房子,我要给银行多送几辆迈巴赫?
买房攻略
2023 年至今,上海房价一跌再跌。俺已经蠢蠢欲动了,磨刀霍霍向"买房"。但是奈何手里钞票不够,只能向天再借 500 年打工赚钱。但是作为倔强的互联网打工人,想知道自己会被银行割多少韭菜。于是就写了个程序,用于计算我贷款买房需要多给银行还多少钱。这样我就能知道银行割我的韭菜,能省下几辆迈巴赫的钱了。
贷款利率
- 公积金的贷款利率。
- 首房:贷款时间 <=5 年,利率为 2.6% ;贷款时间 >= 5 年,利率为 3.1% 。
- 非首房:贷款时间 <=5 年,利率为 3.025% ;贷款时间 >= 5 年,利率为 3.575% 。
- 商业险贷款利率
- 贷款时间 <=5 年,利率为 3.45% ;贷款时间 >= 5 年,利率为 3.95% 。
代码实现
- 以下代码,实现了:我贷款买房需要多给银行还多少钱。
public class LoanAmountCalculation {
//首套住房5年以内公积金贷款利率
private static final double FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS = 2.6;
//首套住房5年以上公积金款利率
private static final double FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS = 3.1;
//二房5年以内公积金贷款利率
private static final double NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS = 3.025;
//二房5年以上公积金款利率
private static final double NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS = 3.575;
//5年以内商业贷款利率
private static final double COMMERCIAL_LOAN_RATE_WITHIN_FIVE_YEARS = 3.45;
//5年以上商业贷款利率
private static final double COMMERCIAL_LOAN_RATE_MORE_FIVE_YEARS = 3.95;
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
double houseAmount = getInputValue(scanner, "请输入预计买房金额(单位:W):", "请输出正确的买房金额(>0)!");
double principal = getInputValue(scanner, "请输入您的本金(单位:W):", "请输出正确的买房金额(>0)!");
if (principal >= houseAmount) {
System.out.println("全款买房,崇拜大佬!");
return;
}
double accumulationFundLoanAmount = getInputValue(scanner, "请输入公积金贷款金额(单位:W):", "请输出正确的公积金贷款金额(>0)!");
double commercialLoanAmount = houseAmount - principal - accumulationFundLoanAmount;
if(commercialLoanAmount <= 0){
System.out.println("您的本金+公积金贷款已经够买房啦,恭喜大佬!");
return;
}else{
System.out.println("您的本金+公积金贷款还不够买房哦,需要商业贷款金额为(单位:W):" + commercialLoanAmount + "\n");
}
int accumulationFundLoanYears = getInputIntValue(scanner, "请输入公积金贷款年份(单位:年):");
int commercialLoanAmountYears = getInputIntValue(scanner, "请输入商业贷款年份(单位:年):");
int isFirstHouse = getInputIntValue(scanner, "请输入是否首房(0:否,1:是):");
LoanAmount loanAmount = calculateLoanAmount(
accumulationFundLoanAmount, accumulationFundLoanYears,
commercialLoanAmount, commercialLoanAmountYears, isFirstHouse);
System.out.println("详细贷款信息如下:" + "\n" + loanAmount);
}
/**
* 获取double类型的输入
* @param scanner:Java输入类
* @param prompt:提示信息
* @param errorMessage:输入错误的提示信息
* @return 一个double类型的输入
*/
private static double getInputValue(Scanner scanner, String prompt, String errorMessage) {
double value;
while (true) {
System.out.println(prompt);
if (scanner.hasNextDouble()) {
value = scanner.nextDouble();
if (value > 0) {
break;
} else {
System.out.println(errorMessage);
}
} else {
scanner.next();
System.out.println(errorMessage);
}
}
return value;
}
/**
* 获取int类型的输入
* @param scanner:Java输入类
* @param prompt:提示信息
* @return 一个int类型的输入
*/
private static int getInputIntValue(Scanner scanner, String prompt) {
int value;
while (true) {
System.out.println(prompt);
if (scanner.hasNextInt()) {
value = scanner.nextInt();
if (value > 0) {
break;
} else {
System.out.println("请输入正确的年份(>0)!");
}
} else {
scanner.next();
System.out.println("请输入正确的年份(>0)!");
}
}
return value;
}
/**
* 功能:贷款金额计算
* 入参:
* 1.accumulationFundLoanAmount:公积金贷款金额 2.accumulationFundLoanYears:公积金贷款年份;
* 3.commercialLoanAmount:商业贷款金额; 4.commercialLoanAmountYears:商业贷款年份
* 5.isFirstHouse:是否首房
*/
private static LoanAmount calculateLoanAmount(double accumulationFundLoanAmount, int accumulationFundLoanYears,
double commercialLoanAmount, int commercialLoanAmountYears, int isFirstHouse){
LoanAmount loanAmount = new LoanAmount();
//公积金贷款还款金额
double accumulationFundRepaymentAmount;
if(isFirstHouse == 1){
accumulationFundRepaymentAmount = accumulationFundLoanYears <= 5 ?
accumulationFundLoanAmount * Math.pow((100 + FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, accumulationFundLoanYears)
: accumulationFundLoanAmount * Math.pow((100 + FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS) / 100, accumulationFundLoanYears);
}else{
accumulationFundRepaymentAmount = accumulationFundLoanYears <= 5 ?
accumulationFundLoanAmount * Math.pow((100 + NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, accumulationFundLoanYears)
: accumulationFundLoanAmount * Math.pow((100 + NOT_FIRST_HOUSE_ACCUMULATION_FUND_LOAN_RATE_MORE_FIVE_YEARS) / 100, accumulationFundLoanYears);
}
loanAmount.setAccumulationFundRepaymentAmount(String.format("%.2f", accumulationFundRepaymentAmount));
//公积金贷款每年还款金额
loanAmount.setAccumulationFundAnnualRepaymentAmount(String.format("%.2f", accumulationFundRepaymentAmount / accumulationFundLoanYears));
//商业贷款还款金额
double commercialRepaymentAmount = commercialLoanAmountYears <= 5 ?
commercialLoanAmount * Math.pow((100 + COMMERCIAL_LOAN_RATE_WITHIN_FIVE_YEARS) / 100, commercialLoanAmountYears)
: commercialLoanAmount * Math.pow((100 + COMMERCIAL_LOAN_RATE_MORE_FIVE_YEARS) / 100, commercialLoanAmountYears);
loanAmount.setCommercialRepaymentAmount(String.format("%.2f", commercialRepaymentAmount));
//商业贷款每年还款金额
loanAmount.setCommercialAnnualRepaymentAmount(String.format("%.2f", commercialRepaymentAmount / commercialLoanAmountYears));
//公积金贷款超出金额
loanAmount.setAccumulationFundLoanExceedAmount(String.format("%.2f", accumulationFundRepaymentAmount - accumulationFundLoanAmount));
//商业贷款超出金额
loanAmount.setCommercialLoanExceedAmount(String.format("%.2f", commercialRepaymentAmount - commercialLoanAmount));
loanAmount.setTotalExceedLoanAmount(String.format("%.2f", accumulationFundRepaymentAmount - accumulationFundLoanAmount + commercialRepaymentAmount - commercialLoanAmount));
return loanAmount;
}
@Data
static class LoanAmount{
/**
* 公积金贷款还款金额
*/
private String accumulationFundRepaymentAmount;
/**
* 公积金贷款每年还款金额
*/
private String accumulationFundAnnualRepaymentAmount;
/**
* 商业贷款还款金额
*/
private String commercialRepaymentAmount;
/**
* 商业贷款每年还款金额
*/
private String commercialAnnualRepaymentAmount;
/**
* 公积金贷款超出金额 = 公积金贷款还款金额 - 公积金贷款金额
*/
private String accumulationFundLoanExceedAmount;
/**
* 商业贷款超出金额 = 商业贷款还款金额 - 商业贷款金额
*/
private String commercialLoanExceedAmount;
/**
* 总共贷款超出金额
*/
private String totalExceedLoanAmount;
@Override
public String toString() {
return "1.公积金贷款还款金额=" + accumulationFundRepaymentAmount + "万元\n" +
"2.商业贷款还款金额=" + commercialRepaymentAmount + "万元\n" +
"3.公积金贷款每年还款金额=" + accumulationFundAnnualRepaymentAmount + "万元\n" +
"4.商业贷款每年还款金额=" + commercialAnnualRepaymentAmount + "万元\n" +
"5.公积金贷款超出金额=" + accumulationFundLoanExceedAmount + "万元\n" +
"6.商业贷款超出金额=" + commercialLoanExceedAmount + "万元\n" +
"7.总共贷款超出金额=" + totalExceedLoanAmount + "万元\n";
}
}
}
代码输入,输出示例
由上图可知,我要贷款买一套 400w 的房子,本金只有 120w,使用组合贷:公积金贷款 120w(10年),商业贷款 160w(20年)。最终我需要多还银行 230.07w,相当于买两辆迈巴赫的钱了,巨亏!
以上就是全部内容了,如果涉及到真实场景,还是需要根据具体的情况计算的!
来源:juejin.cn/post/7346385551366684722
从支付宝P0事故处理方案,合理推测损失金额
支付宝
支付宝昨天(2024-01-16)的无差别"送钱"的事儿,大家都知道了吧。
具体的,就是在昨天 14:40~14:45 期间,所有支付宝的支付订单都被减免了 20%,减免原因在界面上显示为"政府补贴"。
这里指的订单,是指所有通过支付宝产生的交易,包括「购物、信用卡、生活缴费、个人转账」等等,而且和此前(消费类的)有减免上限的政府补贴不同,本次减免无上限,统统 20%。
好家伙,个人转账 5W 减免 1W,那些刚好在那段时间有大额支付的幸运儿,你能想象他们多开心吗 🤣🤣🤣🤣
如此重大的 P0 事故(互联网公司对线上事故的评级,代表事故最高等级),虽然只有短短的 5 分钟,但如果被反应快又别有用心的不法分子利用上(同一笔钱,两个账号来回转),那就可不是一点羊毛的事儿,可能几十上万上百万,整条羊村都被薅走了。
正当所有人都觉得支付宝一定会或多或少有"追回"行动时,凌晨一则来自「支付宝官方微博」的公告说明来了:
简单总结的话:错误在支付宝一方,给出的优惠不会再追回。
好家伙,这属于是给这小部分的幸运儿发"过年费"了 🍋🍋🍋
虽然犯的是如此低级的错误,不像大公司所为,但处理方案又是实打实的"有格局"。搞得我都不好意思笑支付宝"草台班子、降本增笑"了 🤣🤣🤣
从本次的处理方案来看,我们可以做一些合理的猜测:
从这个发布声明的时间点来看,不难猜测,对于这次事故,支付宝经过了「修正模板 -> 统计事故损失金额 -> 事件逐级上报到高层 -> 高层决议最后处理方案 -> 将处理方案下发对应部门 -> 公关拟对外声明 -> 走声明审批流程 -> 正式发出」等多步环节,导致了声明发出的时间已经接近凌晨一点。
由于声明中涉及「提醒大家不要点击诈骗短信/链接」,因此必然不存在支付宝故意推迟声明时间的可能性,他们从事故到发声明,确实就是花了 10+ 小时。
另外,关于支付宝损失金额的猜测。
如果简单结合数据来看,这个数字会很大。
根据易观分析报告的公开数据,支付宝 2024 年第一季度的交易量为 118.19 万亿元,即每个月 39.4 万亿,折合每天约 1.31 万亿,每小时约 0.0546 万亿,每分钟约 9.1 亿。
事故维持 5 分钟,减免力度为 20%,就当全部订单都是不符合"政府补贴"要求的支付订单,那么损失金额约 亿。
但实际情况并不会如此直接了当,支付订单的流量也不可能是均摊每天,甚至是每分钟。
从日期来说,1-16 是一个没有节日加成的普通周四;从时间点来说,14:40~14:45 虽然属于"白天"范畴,但也不是什么支付高峰期。
我问了在支付宝工作的朋友,他跟我分享道:一整周里的交易,会有接近一半的交易流水,会在周末假期产生;而如果是周内的工作日的话,会有 8 成的流水会在上班时间(09:00~18:00)以外的时间段产生。
基于此,虽然没有具体数字,同时事故维持时间段(5 分钟),不考虑传播效应导致的交易激增。可以合理推算 2025-01-16 14:40~14:45 产生的交易最多不会超过 20 亿,即亏损最多不会超过 4 亿。相比于简单线性均摊的 9.1 亿,还是要小不少的。
支付宝(蚂蚁金服)是一家全年净利润 238.2 亿的公司,4 个亿的事故,还是支付得起的,只不过导致事故发生的员工和部门,估计要面临大处罚了。
对此,你怎么看?昨天有薅到支付宝的羊毛吗?欢迎评论区交流。
...
回归主题。
来一道和「阿里(校招)」相关的算法题。
题目描述
平台:LeetCode
题号:406
假设有打乱顺序的一群人站成一个队列,数组 people
表示队列中一些人的属性(不一定按顺序)。每个 表示第 个人的身高为 ,前面 正好 有 个身高大于或等于 的人。
请你重新构造并返回输入数组 people
所表示的队列。返回的队列应该格式化为数组 queue
,其中 是队列中第 个人的属性( 是排在队列前面的人)。
示例 1:
输入:people = [[7,0],[4,4],[7,1],[5,0],[6,1],[5,2]]
输出:[[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]]
解释:
编号为 0 的人身高为 5 ,没有身高更高或者相同的人排在他前面。
编号为 1 的人身高为 7 ,没有身高更高或者相同的人排在他前面。
编号为 2 的人身高为 5 ,有 2 个身高更高或者相同的人排在他前面,即编号为 0 和 1 的人。
编号为 3 的人身高为 6 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。
编号为 4 的人身高为 4 ,有 4 个身高更高或者相同的人排在他前面,即编号为 0、1、2、3 的人。
编号为 5 的人身高为 7 ,有 1 个身高更高或者相同的人排在他前面,即编号为 1 的人。
因此 [[5,0],[7,0],[5,2],[6,1],[4,4],[7,1]] 是重新构造后的队列。
示例 2:
输入:people = [[6,0],[5,0],[4,0],[3,2],[2,2],[1,4]]
输出:[[4,0],[5,0],[2,2],[3,2],[1,4],[6,0]]
提示:
- 题目数据确保队列可以被重建
构造 + 二分 + 树状数组
这是一道非常综合的题目。
首先根据双关键字排序:当「高度(第一维)」不同,根据高度排升序,对于高度相同的情况,则根据「编号(第二维)」排降序。
采取这样的排序规则的好处在于:在从前往后处理某个 时,我们可以直接将其放置在「当前空位序列(从左往后统计的,不算已被放置的位置)」中的 位(预留了前面的 个位置给后面的数)。
关于「空位序列」如图所示(黄色代表已被占用,白色代表尚未占用):
具体的,我们按照构造的合理性来解释双关键字排序的合理性,假设当前处理的是 :
根据「高度」排升序,根据「编号」排降序:由于首先是根据「高度」排升序,因此当 被放置在「当前空位序列」的第 之后,无论后面的 如何放置,都不会影响 的合法性:后面的数的高度都不低于 ,无论放在 前面还是后面都不会影响 的合法性。
同时对于高度(第一维)相同,编号(第二维)不同的情况,我们进行了「降序」处理,因此「每次将 放置在空白序列的 位置的」的逻辑能够沿用:
对于「高度」相同「编号」不同的情况,会被按照「从右到左」依次放置,导致了每个 被放置时,都不会受到「高度」相同的其他 所影响。换句话说,当 放置时,其左边必然不存在其他高度为 的成员。
剩下的在于,如何快速找到「空白序列中的第 个位置」,这可以通过「二分 + 树状数组」来做:
对于已被使用的位置标记为 ,未使用的位置为 ,那么第一个满足「 的个数大于等于 」的位置即是目标位置,在长度明确的情况下,求 的个数和求 的个数等同,对于位置 而言(下标从 开始,总个数为 ),如果在 范围内有 个 ,等价于有 个 。
求解 范围内 的个数等价于求前缀和,即「区间查询」,同时我们每次使用一个新的位置后 ,需要对其进行标记,涉及「单点修改」,因此使用「树状数组」进行求解。
Java 代码:
class Solution {
int n;
int[] tr;
int lowbit(int x) {
return x & -x;
}
void add(int x, int v) {
for (int i = x; i <= n; i += lowbit(i)) tr[i] += v;
}
int query(int x) {
int ans = 0;
for (int i = x; i > 0; i -= lowbit(i)) ans += tr[i];
return ans;
}
public int[][] reconstructQueue(int[][] ps) {
Arrays.sort(ps, (a, b)->{
return a[0] != b[0] ? a[0] - b[0] : b[1] - a[1];
});
n = ps.length;
tr = new int[n + 1];
int[][] ans = new int[n][2];
for (int[] p : ps) {
int h = p[0], k = p[1];
int l = 1, r = n;
while (l < r) {
int mid = l + r >> 1;
if (mid - query(mid) >= k + 1) r = mid;
else l = mid + 1;
}
ans[r - 1] = p;
add(r, 1);
}
return ans;
}
}
C++ 代码:
class Solution {
public:
int n;
vector<int> tr;
int lowbit(int x) {
return x & -x;
}
void add(int x, int v) {
for (int i = x; i <= n; i += lowbit(i)) tr[i] += v;
}
int query(int x) {
int ans = 0;
for (int i = x; i > 0; i -= lowbit(i)) ans += tr[i];
return ans;
}
vector<vector<int>> reconstructQueue(vector<vector<int>>& ps) {
sort(ps.begin(), ps.end(), [](const vector<int>& a, const vector<int>& b) {
return a[0] != b[0] ? a[0] < b[0] : b[1] < a[1];
});
n = ps.size();
tr.resize(n + 1, 0);
vector<vector<int>> ans(n, vector<int>(2));
for (auto& p : ps) {
int h = p[0], k = p[1];
int l = 1, r = n;
while (l < r) {
int mid = l + r >> 1;
if (mid - query(mid) >= k + 1) r = mid;
else l = mid + 1;
}
ans[r - 1] = p;
add(r, 1);
}
return ans;
}
};
Python 代码:
class Solution:
def __init__(self):
self.n = 0
self.tr = []
def lowbit(self, x):
return x & -x
def add(self, x, v):
while x <= self.n:
self.tr[x] += v
x += self.lowbit(x)
def query(self, x):
ans = 0
while x > 0:
ans += self.tr[x]
x -= self.lowbit(x)
return ans
def reconstructQueue(self, ps: List[List[int]]) -> List[List[int]]:
ps.sort(key=lambda x: (x[0], -x[1]))
self.n = len(ps)
self.tr = [0] * (self.n + 1)
ans = [[0, 0] for _ in range(self.n)]
for p in ps:
h, k = p
l, r = 1, self.n
while l < r:
mid = l + r >> 1
if mid - self.query(mid) >= k + 1:
r = mid
else:
l = mid + 1
ans[r - 1] = p
self.add(r, 1)
return ans
TypeScript 代码:
let n: number;
let tr: number[];
function lowbit(x: number): number {
return x & -x;
}
function add(x: number, v: number): void {
for (let i = x; i <= n; i += lowbit(i)) tr[i] += v;
}
function query(x: number): number {
let ans = 0;
for (let i = x; i > 0; i -= lowbit(i)) ans += tr[i];
return ans;
}
function reconstructQueue(ps: number[][]): number[][] {
ps.sort(((a, b) => {
return a[0] != b[0] ? a[0] - b[0] : b[1] - a[1];
}));
n = ps.length;
tr = new Array(n + 1).fill(0);
const ans = new Array(n).fill([0, 0]);
for (const p of ps) {
const [h, k] = p;
let l = 1, r = n;
while (l < r) {
const mid = l + r >> 1;
if (mid - query(mid) >= k + 1) r = mid;
else l = mid + 1;
}
ans[r - 1] = p;
add(r, 1);
}
return ans;
};
- 时间复杂度:排序的复杂度为 ;共要处理 个 ,每次处理需要二分,复杂度为 ;每次二分和找到答案后需要操作树状数组,复杂度为 。整体复杂度为
- 空间复杂度:
来源:juejin.cn/post/7460696845434961920
程序员加班很晚应该怎么锻炼身体?
文章首发到公众号:月伴飞鱼,每天分享程序员职场经验!
大家好呀,我是飞鱼。
作为程序员,肯定都深受加班的痛苦。
❝
那每天加班很晚的情况下,该通过怎样的锻炼来保持身体健康呢?
我觉得还是得先把觉睡够,然后才是锻炼。
❝
睡眠不足情况下高强度锻炼,容易猝死。
如果睡觉的时间都不够,建议辞,换个不太卷的地方。
把特别卷的岗位,留给那些更年轻的,特别需要钱买房结婚的,拼几年,把生存问题解决掉之后,就不要再用命赚钱了。
人生几十年,钱是赚不完的,基本生活需求之外,多赚到的钱,对生活质量提升作用有限。
睡眠的优先级,不但高于锻炼,甚至高于洗脸洗澡。
❝
而且睡前三小时不要吃太多东西。
对于经常晚上加班很晚的人来说,戒掉睡觉前玩手机的不良习惯,尽量减少晚上的一切活动,争分夺秒地保证睡眠。
健身,足够的营养和休息,都比身体锻炼本身更重要。
❝
所以如果长期生活不规律,饮食习惯不好,休息睡眠不能保证。
如果已经很累了,就不要考虑上高强度的训练了,夸张一点有可能做个俯卧撑都有可能把人送进医院。
有位网友总结得好:
❝
去健身,你会得到强壮的身体,过度劳累,你会得到猝死的尸体,过度劳累还去健身,你会得到强壮的尸体。
所以:下班晚,好好休息就是你最好的健身!
程序员在工作空闲之余也可以通过以下方式来锻炼身体:
❝
通过走路或骑自行车的方式出门活动,可以锻炼身体的同时享受户外的新鲜空气。
在家里可以做一些简单的,如俯卧撑、仰卧起坐等,这些操作都可以锻炼身体的同时不需要太多的器材。
有啥其他看法,欢迎在评论区留言讨论。
❝
想看技术文章的,可以去我的个人网站:hardyfish.top/。
- 目前网站的内容足够应付基础面试(
P6
)了!
每日一题
题目描述
❝
给你一个二叉树的根节点
root
, 检查它是否轴对称。
解题思路
❝
递归实现
递归结束条件:
- 都为空指针则返回
true
- 只有一个为空则返回
false
递归过程:
- 判断两个指针当前节点值是否相等
- 判断 A 的右子树与 B 的左子树是否对称
- 判断 A 的左子树与 B 的右子树是否对称
代码实现
Java
代码:
class Solution {
public boolean isSymmetric(TreeNode root) {
if(root == null) {
return true;
}
return dfs(root.left,root.right);
}
public boolean dfs(TreeNode p,TreeNode q){
if (p == null && q == null) {
return true;
} else if (p == null||q == null) {
return false; //只有一个为空
}
if(p.val != q.val) {
return false;
}
//第一棵子树的左子树和第二棵子树的右子树对称,且第一棵子树的右子树和第二棵子树的左子树对称
return dfs(p.left,q.right) && dfs(p.right,q.left);
}
}
Python
代码:
class Solution(object):
def isSymmetric(self, root):
"""
:type root: TreeNode
:rtype: bool
"""
if not root:
return True
def dfs(left,right):
# 递归的终止条件是两个节点都为空
# 或者两个节点中有一个为空
# 或者两个节点的值不相等
if not (left or right):
return True
if not (left and right):
return False
if left.val!=right.val:
return False
return dfs(left.left,right.right) and dfs(left.right,right.left)
# 用递归函数,比较左节点,右节点
return dfs(root.left,root.right)
Go
代码:
func isSymmetric(root *TreeNode) bool {
// 递归-对称二叉树
var dfs func(left, right *TreeNode) bool
dfs = func(left, right *TreeNode) bool {
if left == nil && right == nil {
return true
}
if left ==nil || right == nil || left.Val != right.Val {
return false
}
// 左右子节点都存在且val等,递归其子树
return dfs(left.Left, right.Right) && dfs(left.Right, right.Left)
}
return dfs(root.Left, root.Right)
}
复杂度分析
❝
假设树上一共
n
个节点。
时间复杂度:
- 这里遍历了这棵树,时间复杂度为
O(n)
。
空间复杂度:
- 这里的空间复杂度和递归使用的栈空间有关,这里递归层数不超过
n
,故空间复杂度为O(n)
。
来源:juejin.cn/post/7453489707109531702
30岁普通程序员的薪资应该是多少?
文章首发到公众号:月伴飞鱼,每天分享程序员职场经验+科普AI知识!
大家好呀,我是飞鱼。
古书有云:三十而立,30岁的话,到底达到年薪多少才算人均水平?
经常在脉脉上看到程序员动不动就是月入3万,年入百万,给人以为大多数程序员就是这么高的薪资水平。
❝
其实这些看看就好了,千万不要焦虑,不要觉得怎么别人都这么高工资而我这么低。
虽然网上的信息五花八门,但具体到个人情况还得结合实际情况来看。
- 不同公司的薪酬体系、个人表现以及谈判能力都会影响最终的薪资水平。
程序员的薪资差距巨大,低的几千块也有,高的四五万甚至更高的也有。
学历并非衡量薪资的标准,但高学历的薪资普遍会比低学历要高很多。
不同方向的薪资均有高有低,但普遍会比其他行业要高一些。
大厂员工薪资是真的高没错,周围还有很多其他大厂同事,肯定都不低于 30K 的,更不要说是年龄已经 30+,工作经验 10 年左右了。
❝
但是,大厂员工是少数,大部分人其实就是在小公司摸爬滚打。
他们的薪资基本在 25K 左右,我想这才是大多数普通程序员的薪资。
不过我觉得目前的大环境,失业总是来的猝不及防,还能有班上就已经很不错了,工资高低看运气了。
❝
而且国内99%以上的公司做的都是应用层的开发,根本不涉及底层框架。
- 而应用层的东西本身就不复杂工作3年足以胜任。
换句话说就是工作3年,技术就已经到了天花板。
这也是为什么近年来,很多软件公司裁员先会瞄准大龄程序员的原因。
- 因为他们的工资成本和技术能力完全不成比例,性价比太低。
既然技术天花板不高,工作3年就可以轻易达到。
都说大城市机会多,薪资高, 但互联网行业也很卷啊。
❝
大公司要求高,小公司薪资又不给力。
加班成常态,身体和精神都在极限拉扯。
而且,学历、项目经验、人脉资源,哪个都不能少。
但也有人一路披荆斩棘,成功拿到高薪。
有啥其他看法,欢迎在评论区留言讨论。
❝
想看技术文章的,可以去我的个人网站:hardyfish.top/
- 目前网站的内容足够应付基础面试(
P7
)了!
每日一题
题目描述
❝
给定两个数组
nums1
和nums2
,返回它们的交集。
输出结果中的每个元素一定是 唯一 的。
示例 1:
输入:nums1 = [1,2,2,1], nums2 = [2,2]
输出:[2]
示例 2:
输入:nums1 = [4,9,5], nums2 = [9,4,9,8,4]
输出:[9,4]
解释:[4,9] 也是可通过的
解题思路
❝
定义一个集合,将
nums1
中的元素依次添加入集合当中。
定义
result
数组,大小为两数组中长度的最小值。
定义
index
,遍历nums2
,如果set
中存在nums2
中的元素,将该元素添加到result
数组中。
代码实现
Java
代码:
class Solution {
public int[] intersection(int[] nums1, int[] nums2) {
Set<Integer> set = new HashSet<>();
for (int e : nums1) {
set.add(e);
}
int[] result = new int[Math.min(nums1.length, nums2.length)];
int index = 0;
for (int e : nums2) {
if (set.contains(e)) {
result[index++] = e;
set.remove(e);
}
}
return Arrays.copyOfRange(result, 0, index);
}}
资料分享
HBase不睡觉书 带目录(高清)
- 资料链接:url81.ctfile.com/f/57345181-…
- 访问密码:3899
HBase企业应用开发实战:
- 资料链接:url81.ctfile.com/f/57345181-…
- 访问密码:3899
HBase权威指南:
- 资料链接:url81.ctfile.com/f/57345181-…
- 访问密码:3899
来源:juejin.cn/post/7463016078375010323