Skip to content

Commit

Permalink
docs: add 《记 · 在 AI 公司入职一个月的体验与感悟》
Browse files Browse the repository at this point in the history
  • Loading branch information
kuizuo committed Jun 10, 2024
1 parent 8cd93f2 commit d920d07
Show file tree
Hide file tree
Showing 4 changed files with 224 additions and 5 deletions.
2 changes: 1 addition & 1 deletion blog/develop/React Native 开发心得分享.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ keywords: [react native, 原生, 心得分享]
image: https://img.kuizuo.cn/2024/0514121158-react-native.png
---

有一段时间没更新了,花了点时间研究了下 React Native(后续用 RN 简称),同时也用该技术作为我的毕设项目(一个校园社交应用,仿小红书),经过了这段时间的疯狂折腾,对 RN 生态有了一定的了解,我想是时候可以分享点一些东西了
最近研究了一下 React Native(简称RN),并用它作为毕设项目(一个仿小红书的校园社交应用)。经过一段时间的折腾,对 RN 生态有了一些了解,是时候可以分享一些心得了

<!-- truncate -->

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
---
slug: experience-of-an-ai-company
title: 记 · 在 AI 公司入职一个月的体验与感悟
date: 2024-06-10
authors: kuizuo
tags: [AI, 工作, 记录]
keywords: [AI, 工作, 记录]
description: 这篇文章分享了作者在一家 AI 公司入职一个月的心得和体会,包括工作中的挑战与成长。
image: /img/blog/ai-people.png
sticky: 1
---

已经在一家 AI 公司入职了一个月,记得半年前探讨着[职业规划](/blog/2023-year-end-summary),对坐班有些厌恶的我,没想到有一天也会开始通勤打卡。而经历了这一个月的工作,我对坐班的态度有所转变,开始理解这种工作方式对我的意义。是时候分享入职这期间的工作内容与感受。

<!-- truncate -->

## 背景

直入正题,先说背景。

就职于福建福州某家 AI 公司,该职位的技术要求大致如下

```
## 任职要求
1. 本科及以上学历,计算机科学、软件工程等相关专业, 硕士优先;
2. 扎实的 HTML、CSS、JavaScript 基础(vanilla) 功底 ;
3. 熟练使用 React、React Native 和 Next.js 进行前端开发
4. 了解前端性能优化技术,如代码压缩、懒加载等
5. 熟悉前端工程化工具
6. 具备良好的问题解决能力和团队协作精神
7. 熟练阅读英文技术文档
8. 有优异前端项目开发经验者优先
## 加分项:
- 贡献开源社区
- 有 AI 相关项目经验。
- 有前端性能优化和 SEO 优化经验。
- 有良好的产品思维和设计(UI/UX)意识。
- 有同理心思维。
- 具有一定的审美感。
```

很贴合国外主流的技术栈,比较巧的是,我的 Web 全栈学习路线就是偏国外的技术栈。因此在技术栈上,我很喜欢这个家公司,恰巧又是 AI 开发,能让我尝试到一些前沿技术。

## 求职经历

我是 Boss 直聘上找的(这里没给 boss 直聘打广告,我甚至还是第一次使用 boss 直聘),我有想过找人内推,但由于家庭因素被限定在福州这座城市,而内推的所在的城市往往都是那些一线城市,加上我的八股文和算法很不过关(我也很不情愿刷),到时候面试那关估计也不乐观。

因此就在 Boss 上碰碰运气,也顺带体验一下一般普通人都是怎么找工作的。

从五一的时候开始准备简历和项目,在5号开始投简历,投递简历一关我是直接怼着工作经验1-3年的来投,而不是投应届或实习岗。因为我确实有一些工作经验,只不过不是正常的坐班打卡的形式,这在之前的博客中有说到。

在这期间共投了20多家,基本都是已读不回,就更别说投递简历了。后来我才了解到,原来 HR 回复消息是要花钱的,发布一个岗位也是。

唯一回复的还是我现在入职的这家,而且我还投了两份过去,一份是给 HR 的(没回),一份是给技术 leader 的(leader 回了)。

![Untitled](https://img.kuizuo.cn/2024/0611021351-Untitled.png)

### 面试被鸽

可能是由于当时这个岗位急招的原因,在 boss 直聘上也没多说什么,leader 就约明早 11 点来公司现场初步面试聊天一下。这期间还发生了一个小变故,我到公司了,可联系不上面试官,打了微信电话也无果。待了10来分钟后我就走了,等了约一个小时都没信息,那我大概率是被鸽了,还不提前和我通知一声,然后在boss上留下了这句评价🥲。

![Untitled](https://img.kuizuo.cn/2024/0611021351-1a520a5a-c3b9-4049-bfcf-825113aa7b2c.png)

初入职场,初次面试就这种情况,说真的我当时都有点心灰意冷了,我猜想是不是因为有其他合适的人选,于是就不招我了,就连信息也不给我打一个招呼,相当于把我拉黑似得。随后我就到附近的麦当劳花了 10 元的套餐安慰了一下自己。

### 开始面试

直到到下午一点多的时候,面试官回复我说当时他们在开会,期间不让携带电子设备。早上就当一面过了,问我下午有没有时间,直接二面技术面(code test)过了就直接拿offer。

我当时其实都有点不想去了,心情很不愉悦,但想了想也不计较被鸽,过去就当聊天了。到了下午面试问的就偏前端基础、八股文那些问题,我回答的巨烂,确实也没好好刷题,也不喜欢刷题,就面试了。自己写代码是由业务环境下驱动的,并从中寻求最佳实践。但好在我的技术面是比较广的,很多前沿的前端相关的工具库或多或少都使用过,也能侃侃而谈,加上个人 blog 和 github 这两个大加分项。就进入到了一个代码考核测试,不限框架,不限规则,使用公司的电脑打开 codesandbox 写一个todo list,前提是不使用任何 AI 工具。

这不正好到了我的强项,之前学某个框架的时候,不知道写什么demo,就写 todo list 来练手😂。恰好这次我就使用 next.js app router + Tailwindcss 的模版并且使用 form 标签的 action 和 use server 来实现新增功能。 能体现出我有在使用 next.js,而且用上了一些新特性,就拿到 offer 了。

![1000047893.jpg](https://img.kuizuo.cn/2024/0611021351-03100cc0-2b0a-4049-82ed-58cc46ac1717.png)

不过拿到 offer 后,我并没有选择马上入职,经历了一次被鸽的经历,对该公司的印象带有一些怀疑。其次就是这是一家初创 AI 公司,规模不大,从应届生找工作的角度,第一份正式的工作的起点很关键,如果能直接进大厂,后续跳槽到其他公司大概率也不成问题。

但在当地我投递了 20 多家已读不回的情况下,加上这份已有的 offer 不等人(急招),于是思考了两天,还是选择入职了这家公司。

### 薪资

这不是实习岗,我与企业签订的直接劳动合同(这下和学校的三方协议都可以不用签了),说实话我是挺诧异的,毕竟此时我的身份还是应届生,按理来说我应该是签订实习合同后,转正再签劳动合同,这里只是蛮提一下。试用期 3 个月,薪资打 8 折。薪资在我当地还算 ok,但对于我而言并不理想。可能是曾经赚过比这还高上许多的薪资,从内心的角度多少是有一些不平衡。毕竟目前还是试用期,薪资这方面后续也能再谈。

### 小结

能拿到这个offer和运气有很大关系,首先岗位急招,我入职时该部门成立不到两周。其次技术栈无比贴合,我最终能选择这家公司有很大程度就是技术的自主性。

我当时没想过花了不到一周的时间就确定了一份在当地还算不错的工作,又正好是自己喜欢的技术栈,研发的产品又是与当下最火的 AI 有关。

接下来尤为重要的上班体验才是让我觉得没后悔入职这家公司。

## 上班体验

介绍一下公司部门的办公工具

办公管理:企业微信

团队协作:Slack

任务看板:Trello

代码仓库:Github

代码托管:Vercel

视频会议:Zoom

你会发现除了企业微信,其他的应用都是国外的。怎么看都不是一家国内的企业吧,这是因为我部门的 Leader 是海外留学的,这也就不难理解工具是国外应用,技术栈选型是 React 生态了。

入职的第一周部门开了个小会,就是简单介绍了一下部门的任务职责,每个成员自我介绍。重点是提供一个优质的学习环境,像是技术书籍,电子设备,UI 模版或是技术会议的门票等费用,只要对部门有利,能提升自己,都可以找他报销。

我已经找 Leader 报销了个 magic ui pro,大约 420 块,直接找财务刷卡,付款的感觉是真爽,我是真爱了🥰。

![Untitled](https://img.kuizuo.cn/2024/0611021351-Untitled%201.png)

几天后,公司来了一个原阿里的同事,也是负责前端开发,这不,我可以间接和这个老哥那学习大厂相关经验,我还正愁着没大厂相关的经验😄。

### 团建

在我入职的第一周周末 Leader 为整个部门安排团建,由于这个部门成立不到 2 周,来的都是新成员,让我们自己组个局,去外面吃个饭。

也是在团建的时候了解到同事的履历一个个都不简单,有 985 的,有海外留学的,有在阿里、网易待过的,还有我这不堪回首的经历 🤡。

后面原定在 61 安排整个公司的团建,但由于天气和周末时间去的人少的因素而取消了,这我就不多说了。

### 福利

部门每个月都会定一个最佳员工奖,我很荣幸获得部门本月的最佳员工,也感谢部门成员的认可,奖励是 300 元奖金或一日自由假。

![Untitled](https://img.kuizuo.cn/2024/0611021351-Untitled%202.png)

甚至还有一张奖状,就是这奖状怎么有点像给小学生似的。(事后我才了解到这奖状还是用打印机打印的😂)

![Untitled](https://img.kuizuo.cn/2024/0611021351-0da32f2a-c077-42c9-8a57-fff9f259187e.png)

目前我已经能感受到最大的福利就是那个 magicui 动效库的模版,当然了,这个是要给公司的官网用上的,我也是蹭公司的福,给自己的站点用上了这个动效库。

此外像节日福利,如这次端午节,就是聚餐和发粽子,这也就没什么好说的。

### 通勤

公司距离我租房的地方只有 2 公里,每日的通勤总时间大约 40 分钟,早上大约 8 点起床,我通常坐公交车到公司附近的早餐店吃个早饭,吃完差不多 8 点 40分~50 分。中午外卖就不说了。下午下班从公交车和走路做个选择,吃完饭回到家。

## 工作内容

我想肯定有很多人对 AI 开发的刻板印象是要会大模型开发,会懂得微调,会懂得人工智能算法。这个想法也没错,但从开发 AI 应用的角度,其实蛮需要前端的,尤其是会全栈框架的前端。

这里我不得不惊叹 next.js 的生态,很多 AI 相关的例子可以直接从 Vercel 的 [AI Template](https://vercel.com/templates?utm_source=next-site&utm_medium=navbar&utm_campaign=next_site_nav_templates&framework=next.js&type=ai) 下学习,预览是否有你需要的功能,Clone 到本地,然后运行项目,对某些部分进行更改。搭建 AI 应用也是异常的快。

### 仿 [AI SDK](https://sdk.vercel.ai/prompt) 网站效果

Leader 下发的一个任务,入职的前两周主要让我熟悉一些怎么使用 next.js 配合 vercel 的 ai sdk 来开发 AI 应用,如怎么调用 openai 的模型,实现一个 ai chatbot。给定了一个任务就是仿造 [AI SDK](https://sdk.vercel.ai/prompt),由于该项目没有开源,自然就只能另辟蹊径。

首先就是仿造页面了,这个作为前端开发,实现起来也算容易,更何况这个这个页面的样式使用 Tailwindcss 编写,直接通过审查元素仿造就行了。

其次在功能实现上,ai sdk 文档都提供了非常完善的解决方案,照着文档将代码稍微改写一下便可,具体的细节就不演示了。

### 官网首页

两周后开始正式项目开发了,首当其冲的就是官网页。

这里当时 Leader 问我有没有用过 Gatsbyjs,要用这个框架搭建一个官网。我表明我没用过,但我提了一嘴如果要搭建偏内容向的网站,可以考虑 Astro,我愿意折腾一番(我也一直想学 Astro 的)。不过最终在开发时间和成本的商讨下还是选择使用 next.js 来搭建,leader 还顺带给我推荐了一个动效库 magicui,叫我看看里面的案例,看看能不能给官网加点动效。 之后就有了上文提到报销 magicui 的事。

### Rag bot

篇幅实在有限,有关 [RAG](https://aws.amazon.com/cn/what-is/retrieval-augmented-generation/) 的不做过多解释,它可以让你的 AI 应用更具有权威性,让数据的来源可靠,而非胡乱生成数据。

RAG 的基本流程就是:

1. 用户输入提问
2. 检索:根据用户提问对 向量数据库 进行相似性检测,查找与回答用户问题最相关的内容
3. 增强:根据检索的结果,生成 prompt。 一般都会涉及 “仅依赖下述信息源来回答问题” 这种限制 llm 参考信息源的语句,来减少幻想,让回答更加聚焦
4. 生成:将增强后的 prompt 传递给 llm,返回数据给用户

在这个应用开发中,借鉴了 [ragbot-starter](https://github.com/datastax/ragbot-starter) 这个开源项目,同时向量数据库选用 datastax 公司的Astra DB。

恰好在开发这个应用的期间,我也正好在学习 Langchain.js,所以在数据处理这部分有点得心应手,目前应用还只停留在处理本地文件或用户上传的文件,只需要配置各种 [File Loader](https://js.langchain.com/v0.2/docs/integrations/document_loaders/file_loaders/) 便可。

### 使用 React Native 实现 chatbot

待编写。。。

## 这一个月学到/完成了什么

对我而言

- 看完了 vercel ai sdk 文档
- 看完了掘金小册 **从前端到 AI:LangChain.js 入门和实战**
- 对 AI 应用开发有了初步的了解

对公司而言

- 编写官网的 landing page
- 仿 vercel ai sdk
- 搭建 rag chatbot
- react native 的 chatbot

## 收获

要我说最大的收获不是遇到一个氛围不错的公司,遇到一个好 leader,也不是接触 AI 开发从中学到了什么,更不是增进了我的技术栈。而是让我养成良好的习惯,开始正常一日三餐,开始作息规律,开始将工作与生活分离,身体状态也渐渐好了起来。

下图为 5 月的生物作息,基本都保持 0 点前入睡。(不过在我写这篇文章的时候已经两点了🥱)

![Untitled](https://img.kuizuo.cn/2024/0611021351-Untitled%203.png)

过去几年内我的作息与饮食都非常糟糕,能明显的感觉到状态有所下滑,编写代码的效率和能力也明显不如以前,有些力不从心。今年都快过去一半了,而我仅仅完成了2篇博文的写作,文章的输出效率明显不行😮‍💨。

在半年前我对自己当时的[现状](https://www.notion.so/Blog-e5d534cafee44400a07f20cba67bfb0a?pvs=21)做了个分析,幻想着坐班或许能改变我当下的现状。如今经历了这一个月的坐班生活,可能是因为坐班而改变,也可能是公司的氛围,不管是那种,让我跳出我原有舒适区,重新拾起对新颖事物的兴趣,重新点燃学习某个技术的热情,重新找回了自我。

## 结尾

待编写。。。

13 changes: 9 additions & 4 deletions blog/reference/2023 · 谈谈职业规划.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,13 @@
---
slug: 2023-year-end-summary
title: 2023 · 谈谈职业规划
date: 2023-12-25
date: 2024-06-09
authors: kuizuo
tags: [年终总结]
keywords: [年终总结]
draft: true
---

又到了年底写年终总结的时候了,说实话今年感觉没什么内容可写。上半年发生了比较多的事不方便叙述,而下半年我忙于学校课程 + 课程重修,加上处于“监视”下,过得其实还有点浑浑噩噩。
又到了年底写年终总结的时候了,说实话今年感觉没什么内容可写。上半年发生了比较多的事不方便叙述,而下半年我忙于学校课程 + 课程重修,过得其实还有点浑浑噩噩。

不过如今都大四了,也确实是要考虑实习的事了。我想结合我自身情况,谈谈我是怎么看待工作或者往远点说职业规划方面的想法。

Expand Down Expand Up @@ -82,7 +81,7 @@ draft: true

最主要的一点就是以我目前学生(应届生)的身份,是可以有机会争取到一份好的实习的,乃至是大厂的实习。

其次是我并没有一个很好的项目演进经历,看完我的一些工作经历不难发现我所待的公司/工作室的体量都不大,甚至我到现在都没真正体验过打卡上班(当然我也希望不要有)。而这就是小厂或者初创公司的同病,各个流程所要负责的任务很模糊。我当时休学和他人创业工作,基本上都是我一人负责项目开发(当时说我是技术 Leader 都不为过);第二个远程实习也是我当时主动退出的,因为工作形式与接单无疑;第三个就不用多说了。
其次是我并没有一个很好的项目演进经历,看完我的一些工作经历不难发现我所待的公司/工作室的体量都不大,甚至我到现在都没真正体验过打卡上班(当然我也希望不要有)。而这就是小厂或者初创公司的同病,各个流程所要负责的任务很模糊。我当时休学和他人创业工作,基本上都是我一人负责项目开发;第二个远程实习也是我当时主动退出的,因为工作形式与接单无疑;第三个就不用多说了。

尤其是在技术层面的团队协作之中,还缺乏相当多的实践经验。所以在自我分析下,为了学习某些只在公司才能学到的东西,就非常有必要到大公司去一趟。

Expand All @@ -98,6 +97,12 @@ draft: true

这一部分我想待我后续找到工作后,再来做个心得分享也不为迟。(不说了,我去准备项目与简历去了)

:::success 补

[记 · 在 AI 公司入职一个月的体验与感悟](/blog/experience-of-an-ai-company)

:::

## 远程工作

[电鸭](https://eleduck.com/)的sologen:**只工作,不上班**。很好表明远程工作的意图。
Expand Down
Binary file added static/img/blog/ai-people.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit d920d07

Please sign in to comment.