Welcome to My Blog

Notes on technology, projects, and ideas.

  • Markdown authoring
  • Categories & Tags
  • Dark mode & Search

十二月近况

生活近况 不知不觉已经 2025 年最后一个月了,感叹时间过得很快啊。还记得去年这个时间还在忙着为 BCPNP 末班车准备材料,担心会赶不上,结果就在两周之前,我们的省提名也下来了,接下来就是联邦阶段了,事实证明很多担心都是自己吓自己。上周刚搞定国内的无犯罪和出生证明等公证,还有一大堆表格需要去填,反正就争取早点提交联邦吧,真正拿卡还不知要等多久呢。 回顾这一年,真的是没咋闲着:1 月份入职脑瘫公司,5 月份正式被 layoff,找工作找到 9 月底,10 月入职现在这家公司。中间那间隔的 5 个月真的是人生至暗时刻,好在也是挺过来了,人生本来没有什么过不去的坎。期间经历了投简历、面试、跑外卖、做装修、三文鱼季,现在想想蛮有意思的。 工作近况 上周我们有个 App 要发布,iOS 很快就发上去了,结果 Google Play 商店死活发不上去,又是 upload key 重置,又是 16KB Page size 要求,真是烦得一塌糊涂。下周去讨论下要不要先延期,之后再升级。月底了,老板也开始上强度了,开始要求我们有点产出了,Manager 也宣布之后每周两次会,之前基本都不开会。 感悟与计划 最近感觉上班之后,能学习的时间好少好少,每天下班后回家就是躺着刷手机,完全没精力去干别的。手上还有各种材料要准备,一直拖。LeetCode 也不刷了,本来也没刷多少,现在全忘光了。真佩服那些每天上班后还保持学习,或者还能 coding 一会的人,精力无限的吗? 虽然知道这样肯定不行,我们这行哪有不学的?不学那就只能淘汰了。想学 AI 开发、Node.js,想转 Full-Stack,想跳大厂,不学那就只能想了。下周看能不能每天学一点。

December 7, 2025 · 1 min · Jacky

新工作一个月体验

How I got here 正式入职新公司已经一个多月了。关于我是如何进这家公司的,大致就是上家公司的一位同事内推了我,然后就顺利地收到了 Offer,一轮面试,我很喜欢!薪资待遇什么的虽然不是很高,但是对于找不到工作已经饥不择食的我来说,仍然是一份雪中送炭的救赎。 What I experienced 关于这一个月的工作体验,整体来说还不错,是个极其迷你的小团队,虽然不能具备完整的职能团队,但都能井然有序地在推进项目和日常业务。我的职位依旧是前端开发,主要负责公司的一款 APP 的开发和维护,这款 APP 的开发战线拉得很长,我能看到整整一年前的 Git log,但直至今日都还没发布,中间换了好几个开发者,到我这应该算是第四位,看着前几任开发的 commit 记录,有种在完成一项大工程的错觉。 工作一个月,我的感觉就是还算轻松,没有上家公司每天紧张和人心惶惶的氛围,虽然还是要上班打卡,但都很弹性。公司有免费的咖啡和饮料,停车场也很大,我们那一层有家类似共享办公室,平日里会举办很多活动,蛮热闹的。我们开发每周三下班会去打羽毛球,也算是一种团建了,每人 16 加币的门票,可以打到晚上 8 点回家。有一点我需要特别提一下,这家公司居然不需要加班,每天 5:30 到点,然后装模作样等到 5:35 左右就可以溜了,这点真的很重要,众所周知,开发人员是不可能准点下班的。 另外由于我之前听说它们家开发人员流动性很大,我时常会担心是否老板要求过高、太苛刻,会一言不合就开人,或是工作压力很大、开发人员受不了都跑路了。但是真正体验下来,我觉得还好,并没有想象中那么严重。虽然说这份工作不能算是我心中的 Dream Job(起码年包 100k 以上),但是你懂的,一个人从一个长期找不到工作的处境中突然得到一份工作,那种患得患失的心情,我是真担心哪天什么没搞好,老板直接开了我,起码让我先缓一段时间,让我过几天安稳日子吧。过去失业阶段,真可谓是我人生至暗时刻,经济和心理双重打击,生活就是这样,当你觉得自己快不行了的时候,就会有那么一撮小曙光洒向你,但请多洒一会儿,阿里嘎到。 What I learned 技术上确实有提升了,比起在上家,我懂了好多东西,好学心更重了 我不想让我的能力只应付工作就足够了,而是让工作帮我提升,我要达到下一个 level 我要学习更多的开发知识,有部分原因是我想在未来的面试中能突出,让别人一听我说的话就是有点东西的

November 9, 2025 · 1 min · Jacky
Sea

What is RESTful APIs ?

结构: - 引言:什么是RESTful API - REST架构风格的核心原则 - RESTful API的资源设计 - 状态码 - 请求和响应格式 - 实战案例 引言:什么是RESTful API? 在现代 Web 和移动应用的开发中,前后端分离已成为主流开发模式。在这种架构中,前端负责 UI 展示,后端则通过 API 向前端提供数据接口。而提到 API,RESTful API 几乎是最常被提及的关键词之一。 REST,全称 Representational State Transfer,是一种架构风格,而不是具体的协议和技术。它由计算机科学家 Roy Fielding 在他的博士论文中提出,旨在设计更清晰、可扩展、结构化的 Web 服务。一个遵循 REST 原则的 API,通常被称为 “RESTful API”。 那么问题来了: RESTful API到底"长什么样"? 它为什么会成为主流? 在日常开发中,我们该如何设计一个既优雅又实用的RESTful API? 这篇文章将带你从基础概念出发,一步步了解REST的设计理念、资源路由规范、HTTP方法的语义、状态码的使用方式,以及常见的设计技巧和最佳实践。 REST架构风格的核心原则 我们知道REST并不是一种具体的技术和协议,而是一种"架构风格",它使得API更加规范、易用、可维护。下面是 REST 的六大核心原则。 无状态(Stateless) REST 要求每一个请求都必须是自包含的:服务器不会在不同请求之间存储任何客户端的状态信息。换句话说,客户端的每个请求都必须包含完成该请求所需的全部信息(显示传入)。 举例说明:登录后Client发送请求应在Header中附带token,而不是依赖服务器的Session。 那么为什么要这样做呢? Scalability:无状态设计让任何一个服务器节点都可以处理任何一个请求,因为请求中自带了所有信息。这为负载均衡和自动扩容提供了天然支持。 举例:如果一个系统部署了三个后端服务节点(A/B/C),在无状态的设计下,负载均衡器可以将任意请求分发到任一节点,完全不需要考虑"这个用户上次是在哪台服务器登录的" Easy Deployment:由于请求之间没有状态依赖,服务节点可以随时上下线,不会影响用户体验,适合微服务架构或容器化部署(如 Docker/Kubernetes)。 故障恢复更简单:当服务器崩溃时,不需要恢复任何"用户会话"或"中间状态",只需要重新启动实例即可继续处理请求。客户端只需要重新发起请求,不必担心状态丢失。 更高的可测试性和可维护性:测试 RESTful 接口时,每个请求都是独立的,可以单独构造和验证,不需要手动维护前置状态,降低了集成测试和自动化测试的复杂度。 统一接口(Uniform Interface) 统一接口是REST最核心的思想之一,它确保了客户端和服务器之间的通信的一致性和可预期性,从而降低系统复杂度。换句话说,不管你访问的是"用户信息"、“文章评论"还是"订单数据”,它们的请求风格应该看起来是类似的。 其中包括: ...

June 20, 2025 · 4 min · Jacky
Sea

大海浪淘沙,我们终归是大海中一颗细小沙粒

找工近一月,收获有哪些? 距离4/15号被layoff已经过去一个多月了,这段时间投简历战况如何呢? 累计到今日投递量:63 面试邀请(一轮,OA):6 ( 3个phone screen,其中一个进二轮OA,3 OA) 目前被拒:18(收到拒信的,包含一轮和OA后被拒的) 这一个月为什么只投了63份简历?按照很多人海投的水平来说,一天40-50份,一个月起码也要1000多份。原因是这样的,首先我是非海投,我基本只投2岗位(frontend+full stack),因此每天post出来的岗位很有限,我能投的符合我条件的更有限。。。其次我会根据JD来修改我的简历,试过的都知道,这得多费时间和精力。 再聊聊我收到的面试情况,因为上段工作在华人公司,被迫害的有点心理阴影了,我这一个月来投的都是西人公司,放弃了Vanpeople这种华人找工作的平台,主要focus在Linkedin和Indeed。 另外在三个phone screen之后我有哪些收获呢? Phone screen会问到的题目都很有限,基本就那几类,availability,自我介绍,为什么投我们公司,初步BQ问题; 这类面试准备时不能完全背,背会让你的回答很机械,有经验的HR或Recruiter一眼就可以看出来; 需要把简历中的project内容很好的复述出来,讲清楚你在这段工作经验中具体做了什么,因为我在修改简历时,偶尔会往项目经历中加一些从未用过的tech stacks,虽然可以增加机筛的成功率,但是如果只是随手一写,从来没用过,面试中准露馅。(其中一个面试就是败在这) 关于OA,我个人感觉就是很难,巨TMD的难,而是还限时,选择题考察一些很细节的内容,例如React中useEffect的渲染时机,然后coding题大多都不是leetcode,都是场景编程题,可能和我投的是前端岗位有关系。关于Networking,其实最近也没怎么尝试了,只是加加Linkedin联系人,看看别人在什么公司工作这样子,反而会带来部分焦虑😐。 这一个月除了投简历之外,我也一直都在刷leetcode,题量在慢慢增长,马上突破100了,刷了dfs,bfs之后,收获还蛮大的,看题慢慢有感觉了。个人项目那块,真的是进度提不起来啊,搞了快3-4个月了,是该收尾了,每次弄完一个feature然后隔很久再开始搞,又要熟悉一遍之前的代码,有时还会发现其实项目某些功能毫无意义,下个项目一定要好好写项目文档和需求分析。 和大厂程序员聊后的一些感悟 我在X上偶尔刷到一位也在Van的推主(很早就关注了),在Downtown的某家大厂做AI方向,还有自己的开源项目,看到他有咨询业务,抱着聊聊天的心态找他连麦,互相聊了聊,我也说明了我的情况,也问了很多问题,聊天内容如下: 没必要太专注于某一项技术,不要总是想把某个技术学彻底,即使是很多大佬也做不到 给自己定个期限(能够接受的全职找工作),然后专注地去做就可以了 专注于面试相关的内容(简历优化,面试口语,描述自己做过的项目) 每次面试要录音,然后复盘!!!! 面试中的问题不要机械地去背,读的熟练些会更好 技术栈可以往AI领域靠,langChain,RAG,agent,mcp leetcode刷题建议,跟着代码随想录 + github hot100, 保持刷题手热,熟练 我现在的一切问题,等找到一份工作之后都会解决 不要太专注于技术,不要想怎么从junior转变为senior,尽量不要跳槽 让自己专注于某几项内容,不要考虑太长远的内容 可以往全栈上靠(node.js),但是不建议转后端 下一个月的计划 关于六月的计划,简单罗列一下吧; 简历投递:100份(平均一天4份) Leetcode题量:突破100 BQ:坚持每周准备三个,不多!就三个!一个月就是12个 研读React文档,如果有时间再读读Next文档 个人项目:招聘管理系统保证基本功能,然后部署上线就完事了

May 23, 2025 · 1 min · Jacky

失业前夕| 重新开始找工作| 未来何去何从

公司黄了,我却很开心 从今年1月16日入职到今天,三个多月的时间,我见证这家公司走下坡路直至濒临关门的全过程,从一开始的延迟发工资,搞绩效考核调整薪资结构,不断有人上门讨债,严抓考勤,到最后的老板坦白公司说公司快黄了,一切都发生的特别快,大概也就一个半月时间。当我听到这个消息,其实我内心并不惊讶,因为我们平时其实都能感觉得到,我并没有为公司感到丝毫的惋惜,相反,我感到真TMD爽,终于是不用再受这家华人公司的折磨了。话虽然这么说,这也意味着我又要开始找工作了,又要开始天天失眠了。。。 找工继续 经过在上一家华人公司内体验过了之后,我现在对小规模的华人公司产生了心理阴影,我告诉自己:能去西人公司,绝不去吃屎。但上段工作经验也算是第一份本地工作经验,对接下来的找工还是有些许的帮助的;除此之外,经过了实际的工作的磨练之后,我发现自己改简历的能力也越发炉火纯青,现在的简历比今年年初刚开始找工时写的那份像样了不少 !找工作也有了一些自己的心得。例如:根据Job description 定制化修改 Resume,这条换做以前,我真是不太敢这么做。在北美的开发相关面试中有两个东西必须要准备:1. Leetcode 2. Behavior Questions Leetcode 不多说了把,想进中大厂,逃不了刷题,关于刷题,其实我从去年年初就开始接触刷题了,虽然有些晚。。但是一直都没有坚持,最近才开始捡起来,打算持续刷下去,积累一定的刷题量,目前只在刷一些难度偏低的题,DP, 二叉树这些都还没开始看。 Behavior Questions 是这里的面试的一个特色(Culture Fit),就是面试官用来考察你的行为作风是否与团队的culture匹配,大部分内容需要提前准备,答题方式就是用STAR法,上周我面了一个phone screen,问的东西就是BQ,还好准备了相关问题的回复,还算比较轻松的应对了。 未来的何去何从? 其实我是一个极其缺乏安全感的人,当一件事不受我控制的时候,我就会焦虑,所以当每天为找工作发愁的时候,我的生活会比较煎熬,相反,在上家公司工作的那几个月里,我的睡眠质量特别高。我会担心找不到理想的工作只能去餐馆端盘子,超市整理货架,担心这样下去就永远找不到IT相关的工作了。在这里高额的生活成本迫使我不可能脱产几个月在家找工,毕竟每个月还要交房租。这个问题对于现阶段的我来说真的是无解,我唯一能做的就是不断地尝试,看看是否能在钱包和精神坚持不住之前生活有所转机。。 Remote Jobs尝试 这两年就业环境的恶劣让很多人开始尝试一些work from home的工作,例如Web 3领域会有很多开发岗,我看过一些开发岗,大多都是nodeJS全栈,需要学习一些web3的库,例如:web3.js,需要学习如何连接钱包等技术,会有一定的门槛,英语水平,技术栈等等。对我个人而言应该不是那么困难,我的技术栈本来就是JS based,Frontend:React,Vue,Next;Backend:Nest,Express。因此我在今年会学习如何找到这类remote jobs,后续也会在这里记录下来。 这周复活节小长假,两周前刚过了26岁生日,希望之后一切都顺利!

April 20, 2025 · 1 min · Jacky
Mountain

试用期已到,但有些东西却一直没到。。

两个月这就过去了? 从今年1月16日入职,到今天正好两月整,之前入职时候合同上约定的,转正后可以享受医疗保险,工资也会相应调整(但愿如此),调整金额不保证,说是每个人都是不一样的,真是interesting…. 这两月说长不长,说短也不短,可谓是和我入职时相比发生了比较大的变化,这个月开始要搞绩效(技术部门搞KPI,只能说是太6了) 月初团队来了个全栈老哥,他貌似来这边之后还干了一段时间的厨子,应该是语言不好,不太好找西人公司,听他的谈吐可以感觉出来还是蛮有经验的,熟悉了一周项目,第二周我就和他搭档了。 还有一件事就是团队中一位后端老哥走了,原因大致是周末上线他负责的一个部分出了问题,导致公司可能损失了,然后就被AB方案了,他毅然决然地走了,还请了我们所有人一杯coffee,其实我甚至有些为他感到高兴,终于摆脱这个地方了,哪怕当前找工作很困难…… 谈谈我自己,渐渐我发现我开始无法从工作内容中学习到新的东西了,我发现我开始重复地做某些事情了,对我来说,工作中最大的挑战可能就是准确地估算出tickets完成的deadline,每周的工作内容又比较相似,大致为:改功能、修Bug、删内容、加内容。在墨鱼的时候我会去让自己学习一些项目之外的知识,虽然大多都很碎片化,我只是简单记录在笔记软件上,这也是我一直想的问题,这些学习后的笔记,需要如何回顾? 下班后的学习和休息平衡 之前没工作的时候,我就在想如果我能找到工作,哪怕只是很🗑️的工作,我一定会每天下班后拼命地学习,刷题,然后再跳槽去更好的地方,这两月的工作真是给了当头一棒,下班后吃完饭,一股贯彻全身的疲劳感让我只想躺在床上刷手机,周末往往也会因为要出去采购和种种原因,最终导致留给自己学习的时间少之又少。 接下来我准备给自己定个计划,每天下班后抽出点时间刷2道leetcode和搞个人项目,每天尝试投简历,先坚持一个月看看。这周就先这样了,等会要休息了,明天又要去打工了。

March 16, 2025 · 1 min · Jacky

Draft Example - Visible in dev only

This is a draft post. With draft: true: hugo server -D → visible hugo server → hidden hugo production build → excluded Set draft to false to publish.

March 1, 2025 · 1 min · Jacky

Hello World - First Post

Welcome to my personal blog! Built with Hugo and the PaperMod theme. Features Markdown authoring Front Matter for title, date, tags, categories, description, cover image Draft/publish status control Giscus comments (GitHub Discussions) Categories & tags archiving Dark mode & Search (built into PaperMod) RSS Feed auto-generated Next steps Configure params.giscus in config.yaml (repo, repoId, categoryId) Get config from giscus.app Install Hugo: brew install hugo Local preview: hugo server -D ...

March 1, 2025 · 1 min · Jacky
Code

Sample Post - With Cover and Tags

A sample post demonstrating complete Front Matter configuration. Front Matter Fields Field Description title Post title date Publish date draft true=draft, false=published description Summary (shown on list page) tags Array of tags categories Array of categories cover Cover image config Draft vs Published draft: true: Only visible with hugo server -D, excluded from production build draft: false: Published normally Multiple Authors (Optional) Add author in Front Matter for multi-author blogs. ...

March 1, 2025 · 1 min · Jacky
Tokyo

深拷贝 VS 浅拷贝

浅拷贝(Shallow Copy)| 深拷贝(Deep Copy) 想要理解深浅拷贝之间的区别,需要了解一下几个概念:第一层属性;嵌套对象;引用类型; 第一层属性(Top-Level properties): 对象直接包含的属性,不包括嵌套在里面的object或者array; c } o ; n s t n a a } a g d o m e d b e : r j : e c 2 s i = " 5 s t A , : y { l : i { c " e N " e , w Y r k " 第 第 第 一 一 一 层 层 层 属 属 属 性 性 性 ( ( , 基 基 但 本 本 它 类 类 的 型 型 值 ) ) 是 一 个 嵌 套 对 象 嵌套对象(Nested Object): 是指作为另一个对象的属性值的对象,简单来说就是,被套在另一个object中的object; ...

March 1, 2025 · 2 min · Jacky