diff --git a/blog/authors.yml b/blog/authors.yml index 2164a5c32..8027bfa4d 100644 --- a/blog/authors.yml +++ b/blog/authors.yml @@ -1,5 +1,5 @@ kuizuo: name: 愧怍 - title: 全栈 typescripter / 学生 + title: 全栈 typescripter / 即将毕业的学生 url: https://github.com/kuizuo image_url: /img/logo.webp diff --git "a/blog/develop/node\344\270\216\346\265\217\350\247\210\345\231\250\344\270\255\347\232\204cookie.md" "b/blog/develop/node\344\270\216\346\265\217\350\247\210\345\231\250\344\270\255\347\232\204cookie.md" index f668bc4f4..af6a7f86e 100644 --- "a/blog/develop/node\344\270\216\346\265\217\350\247\210\345\231\250\344\270\255\347\232\204cookie.md" +++ "b/blog/develop/node\344\270\216\346\265\217\350\247\210\345\231\250\344\270\255\347\232\204cookie.md" @@ -40,25 +40,25 @@ var instance = axios.create({ }) // 设置请求拦截器 instance.interceptors.request.use( - (config) => { + config => { // 在config可以添加自定义协议头 例如token config.headers['x-token'] = 'xxxxxxxx' return config }, - (error) => { + error => { Promise.error(error) }, ) instance.interceptors.response.use( - (response) => { + response => { const res = response.data // 根据对应的业务代码 对返回数据进行处理 return res }, - (error) => { + error => { const { response } = error // 状态码为4或5开头则会报错 // 根据根据对应的错误,反馈给前端显示 @@ -119,13 +119,13 @@ export function logout() { 运行环境在浏览器中,axios 是无法设置与获取 cookie,获取不到 set-cookies 这个协议头的(即使服务器设置了也没用),先看代码与输出 ```js -instance.interceptors.request.use((config) => { +instance.interceptors.request.use(config => { config.headers['cookie'] = 'cookie=this_is_cookies;username=kuizuo;' console.log('config.headers', config.headers) return config }) -instance.interceptors.response.use((response) => { +instance.interceptors.response.use(response => { console.log('response.headers', response.headers) return res }) @@ -145,9 +145,8 @@ instance.interceptors.response.use((response) => { 那我就是想要设置 Cookies,来跳过登录等等咋办,我的建议是别用浏览器来伪装 http 请求。跨域是浏览器内不可少的一部分,并且要允许跨域过于麻烦。有关跨域,我推一篇文章[10 种跨域解决方案(附终极大招)](https://juejin.cn/post/6844904126246027278) -#### 完整封装代码 - -::: details 查看代码 +
+ 完整封装代码 ```js import axios from 'axios' @@ -162,21 +161,21 @@ const service = axios.create({ }) service.interceptors.request.use( - (config) => { + config => { if (store.getters.token) { config.headers['x-token'] = getToken() } return config }, - (error) => { + error => { Message.error(error) return Promise.reject(error) }, ) service.interceptors.response.use( - (response) => { + response => { const res = response.data if (res.code !== 200) { Message.error(res.msg || 'Error') @@ -186,7 +185,7 @@ service.interceptors.response.use( return res } }, - (error) => { + error => { if (error.response) { let res = error.response switch (res.status) { @@ -225,11 +224,11 @@ service.interceptors.response.use( export default service ``` -::: +
### Nodejs -作为 nodejs 的主流 http 框架怎么能只用在浏览器上,nodejs 自然而然可以,不过 nodejs 需要配置的可就多了,在 nodejs 环境中,自然没有浏览器的同源策略,像上面设置不了的 Cookie,现在随便设置,先看看我是怎么封装的: +作为 nodejs 的主流 http 框架怎么能只用在浏览器上,nodejs 自然可以,不过 nodejs 需要配置的可就多了,在 nodejs 环境中,自然没有浏览器的同源策略,像上面设置不了的 Cookie,现在随便设置,先看看我是怎么封装的: ```js import axios from 'axios' @@ -239,12 +238,13 @@ import * as https from 'https' export async function request(opt) { let { url, method = 'get', headers = {}, cookies, data = null } = opt - headers['User-Agent'] = 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' + headers['User-Agent'] = + 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36' headers['Referer'] = url if (typeof cookies === 'object') { headers['Cookie'] = Object.keys(cookies) - .map((k) => encodeURIComponent(k) + '=' + encodeURIComponent(cookies[k])) + .map(k => encodeURIComponent(k) + '=' + encodeURIComponent(cookies[k])) .join('; ') } else if (typeof cookies === 'string') { headers['Cookie'] = cookies @@ -353,7 +353,7 @@ Error: unable to verify the first certificate ```js let newCookie = res.header['set-cookie'] ? res.header['set-cookie'] - .map((a) => { + .map(a => { return a.split(';')[0] }) .join('; ') diff --git "a/blog/lifestyle/\345\205\263\344\272\216 restful api \350\267\257\345\276\204\345\256\232\344\271\211\347\232\204\346\200\235\350\200\203.md" "b/blog/lifestyle/\345\205\263\344\272\216 restful api \350\267\257\345\276\204\345\256\232\344\271\211\347\232\204\346\200\235\350\200\203.md" index 140a04e27..5022281b0 100644 --- "a/blog/lifestyle/\345\205\263\344\272\216 restful api \350\267\257\345\276\204\345\256\232\344\271\211\347\232\204\346\200\235\350\200\203.md" +++ "b/blog/lifestyle/\345\205\263\344\272\216 restful api \350\267\257\345\276\204\345\256\232\344\271\211\347\232\204\346\200\235\350\200\203.md" @@ -31,14 +31,14 @@ keywords: [杂谈, restful] - 更新文章 `PUT /articles/:id` - 删除文章 `DELETE /articles/:id` -当然,我相信肯定也有`GET /article—list` `POST /add-article` 这样的答案,不过这些不在 restful api 风格的范畴,就不考虑了。 +当然,我相信肯定也有`GET /article—list` `POST /add-article` 这样的答案,不过这些不在 restful api 风格的范畴,就不考虑了。 而这时 查看我的文章 或许就需要稍加思考,或许你会有以下几种方式 - `GET /my-articles` 从资源角度来看肯定不好,因为此时在 url 不能很直观地体现请求资源,同时在控制器文件(controller) 就与 article 分离了,并且还占用了 / 下路径。 - `GET /articles/mine` 则又不那么遵循 restful api 风格,挺违和的。 -那么这时不妨遵循 **资源从属关系**,在这里 文章所属的对象就用户,因此查看他人的文章可以这么设计`GET /users/:userId/articles` 获取特定用户(userId)的文章列表。 +那么这时不妨遵循 **资源从属关系**,在这里 文章所属的对象就用户,因此查看他人的文章可以这么设计`GET /users/:userId/articles` 获取特定用户(userId)的文章列表。 而 查看我的文章 同样也可用此 URL,只需将 userId 更改为自己的便可。从 api 的 URL 来看是很舒服了,但是从代码开发的角度上问题又有了问题了。。。 @@ -109,13 +109,13 @@ restful 更多是针对实际存储的资源,核心是名词,对于增删改 对于一些非增删改查的操作,还是使用 RPC 式的 API 更为实在,即 **`POST /命名空间/资源类型/动作`**,至少不用再为某个操作决定 PATCH/PUT 还是 POST/DELETE。 -## 针对同一实体,区分不用用户 +## 针对同一实体,区分不同用户 问题还没结束,不妨碍继续使用上述文章的例子,针对 文章 这一实体,又要怎么定义(区分)用户与作者或管理员路径呢? 管理员所看到的数据肯定远比用户来的多,如果使用同一个接口(如 `/articles`),那么业务代码必然会十分复杂。 -使用不同的端点(end point) 是个解决方法,例如管理员在请求前添加 manage 或 admin,如 `/manage/articles` 或 `/articles/manage` 这样只需要多一步判断请求用户是否拥有管理的权限。 +使用不同的端点(end point) 是个解决方法,例如管理员在请求前添加 manage 或 admin,如 `/manage/articles` 或 `/articles/manage` 这样只需要多一步判断请求用户是否拥有管理的权限。 但对我个人而言,我一般都会以在一个命名空间下(这里指 `/articles`)编写,像前面的 `/manage/articles` 我是直接 pass 的。 @@ -140,7 +140,6 @@ GET /articles/1/author 要么两条请求获取相应数据,要么为调用方“定制”一个接口,如`GET /getArticleInfo`,这样只需一条请求便可得到想要的数据。但这个就破坏了 restful API 接口风格,并且在复杂的业务中,比如说还要获取博文的评论等等,后端就要额外提供一个接口,可以说是非常繁琐了。相比之下 [GraphQL](https://graphql.org/) 就更为灵活了。 - ## 最佳实践 就在我写完这篇文章的几周后,无意间刷到了这篇文章[examples-of-great-urls/](https://blog.jim-nielsen.com/2023/examples-of-great-urls/) @@ -159,4 +158,4 @@ GET /articles/1/author [RESTful API设计经验总结](https://blog.51cto.com/LiatscBookshelf/5427906) -[为什么很多后端写接口都不按照 restful 规范?](https://www.zhihu.com/question/438825740) \ No newline at end of file +[为什么很多后端写接口都不按照 restful 规范?](https://www.zhihu.com/question/438825740) diff --git "a/blog/reference/2019.7-2020.7\347\274\226\347\250\213\345\271\264\350\256\260.md" "b/blog/reference/2020 \302\267 \347\274\226\347\250\213\344\271\213\346\227\205-\350\265\267\347\202\271.md" similarity index 99% rename from "blog/reference/2019.7-2020.7\347\274\226\347\250\213\345\271\264\350\256\260.md" rename to "blog/reference/2020 \302\267 \347\274\226\347\250\213\344\271\213\346\227\205-\350\265\267\347\202\271.md" index a0ce4b3df..bc96ad331 100644 --- "a/blog/reference/2019.7-2020.7\347\274\226\347\250\213\345\271\264\350\256\260.md" +++ "b/blog/reference/2020 \302\267 \347\274\226\347\250\213\344\271\213\346\227\205-\350\265\267\347\202\271.md" @@ -1,25 +1,22 @@ --- -slug: 2019.7-2020.7-log -title: 2019.7-2020.7编程年记 -date: 2020-10-08 +slug: 2020-year-end-summary +title: 2020 · 编程之旅-起点 +date: 2020-12-30 authors: kuizuo -tags: [年终总结, 人生感悟] -keywords: [年终总结, 人生感悟] -description: 2019.7-2020.7编程年记 +tags: [年终总结] +keywords: [年终总结] --- - - -## 前言 - 写篇年记,记录一下自己这一年的所学。 -能有幸在这个行业有两点关键因素 +能有幸在这个行业有两个关键因素 1. QQ 永久冻结 2. 易语言 + + ### QQ 永久冻结 有些认识我的人可能会知道我的 QQ804493238 给永久冻结了,可以说这个号码是不可能再搞回来的。一个幸幸苦苦养了十年的 QQ ,说没就没的那种,与之相对应的就是游戏账号没了,没了游戏能干嘛,当然不能干嘛,生活还是得过的,但又要有个东西来打发时间,没错就是编程。于是高中毕业后的暑假,就开始了学习编程。不过这里要先介绍一下易语言,作为我的第一门编程语言。 @@ -218,10 +215,7 @@ Web 学习确实比逆向轻松,并且学完 Web 能写的东西也算比较 ```html - + ``` diff --git "a/blog/reference/2021\345\271\264\347\273\210\346\200\273\347\273\223\357\274\210\344\274\221\345\255\246\344\270\200\345\271\264\357\274\211.md" "b/blog/reference/2021 \302\267 \344\274\221\345\255\246\344\270\200\345\271\264.md" similarity index 92% rename from "blog/reference/2021\345\271\264\347\273\210\346\200\273\347\273\223\357\274\210\344\274\221\345\255\246\344\270\200\345\271\264\357\274\211.md" rename to "blog/reference/2021 \302\267 \344\274\221\345\255\246\344\270\200\345\271\264.md" index 458724d98..c3ed014fa 100644 --- "a/blog/reference/2021\345\271\264\347\273\210\346\200\273\347\273\223\357\274\210\344\274\221\345\255\246\344\270\200\345\271\264\357\274\211.md" +++ "b/blog/reference/2021 \302\267 \344\274\221\345\255\246\344\270\200\345\271\264.md" @@ -1,31 +1,20 @@ --- slug: 2021-year-end-summary -title: 2021年终总结(休学一年) +title: 2021 · 休学一年 date: 2021-12-31 authors: kuizuo -tags: [年终总结, 人生感悟] -keywords: [年终总结, 人生感悟] +tags: [年终总结] +keywords: [年终总结] toc_max_heading_level: 3 -description: 2021年终总结(休学一年) --- - - -:::info - -这篇文章发布时间与实际编写时间有所不同,所以内容上有可能会包含未来相关的信息,主要是想对过去的经历做个记录总结,算是一个弥补吧。 - -::: +当写这篇年终时,都已过于数月了。今年 (2021 年)休学出去工作(创业);加上 2022 年 1 月闭关安卓逆向学习,所以便没有抽出时间来完善年终总结。 -距离上篇记录过去了 1 年半时间,以后应该也会在每年的 12 月 31 号发布年终总结。 - -不过在总结的时候还是要唠嗑唠嗑,其实说实话,今年没去年那么想写年终总结,一是感觉去年过得没有前年那么充实,尤其是在学习方面;二是因为 21 年这年休学出去工作(创业);三是感觉很多时候过于迷茫,尤其是 2021 年后半年,浪费了太多本该提升自我的时间;最后加上 2022 年 1 月闭关安卓逆向学习,所以便没有抽出时间来完善年终总结。 - -所以说要写年终前一定要趁早,否则将会越来越拖,这次就整整拖了半年才最终完善。平常也要时刻保持记录的习惯,这样年终总结的时候思路才清醒,看到平时记录的点滴就能一时刻地回忆起所有细节。 +所以说要写年终前一定要趁早,平常也要时刻保持记录的习惯,这样年终总结的时候思路才清醒,看到平时记录的点滴就能一时刻地回忆起所有细节。 每次写年终总结时不时也会潸然泪下,写的时候就需要不断的回忆过去,而往往过去的某些时刻的做法会让自己觉得是不是有个更优解?常常会回忆起过去这一年所经历的往往,难以忘怀,不知从何写起。 -话虽说,但总归还是学到了点东西,所以还是得总结一下,不记录可能这段经历就消逝在时间的烟海之中。 + ## Web 开发 @@ -158,7 +147,7 @@ description: 2021年终总结(休学一年) 就如这次休学,我就巴不得早点工作,早点实现财富自由。但**过早的发育,往往会迷失方向**。 -其实我日常编写代码的时候也是如此,有时候就是为了快点实现功能需求,就会去寻找相关功能库,就容易忽视底层实现逻辑。久而久之就成为了 CV(复制粘贴)工程师,导致一些学习本该了解的知识点,就因此忽视,直到别人的库无法实现自己的功能的,到自己实现起来可谓是愁眉苦脸的。 +我日常编写代码的时候也是如此,有时候就是为了快点实现功能需求,就会去寻找相关功能库,就容易忽视底层实现逻辑。久而久之就成为了 CV(复制粘贴)工程师,导致一些学习本该了解的知识点,就因此忽视,直到别人的库无法实现自己的功能的,到自己实现起来可谓是愁眉苦脸的。 所以我现在心态也相对以前平坦了许多,没有之前的那种激情劲,或者说更加稳重,走一步都要稳一步。 @@ -174,7 +163,7 @@ description: 2021年终总结(休学一年) 外面的世界即现实,亦或者是社会。确实,这里存在太多虚伪的内容,多数人对他人的表现与自身内心存在极大差异。举个例子,一个非常普通的人,面对领导时展现积极主动,面对朋友时展现情同手足,面对亲人时展现情同骨肉,对不同的人,都有不同的表现形式,而真实的他却只有自己最清楚。可以说人本就是很虚伪的,只是这种形式在交际中被放大。 -除了虚伪外,很多的还是谎言。这里举一个不那么黑暗的谎言,多数人都喜欢装逼,吹嘘自己如何如何的。将自己包装得有多么厉害,地位多么显赫。其目的也只有自己最清楚,在被这种表面所影响下,就认为他事情都相对可靠,其实不然的。 +除了虚伪外,很多的还是谎言。这里举一个不那么黑暗的谎言,多数人都喜欢装逼,吹嘘自己如何如何的。将自己包装得有多么厉害,地位多么显赫。其目的也只有自己最清楚,在被这种表面所影响下,就认为他事情都相对可靠,不然的。 所以言语上,并不能以百分之百的确信。再好比目前互联网的新闻内容或者是短视频,我都不会去对其真实性保持绝对,至少肯定不会是完整的。因为太清楚这些内容多数是以博人眼球为目的,也许会歪曲一定的事实,营造一个绝对火爆的效果。没置身于此地,又怎敢下一断言呢。 @@ -198,7 +187,7 @@ description: 2021年终总结(休学一年) 每日起床,打开屏幕,查看邮件信息,吃饭,能旷的课就旷,不能旷的课就尽量去,坐下敲代码,一天的日子就这样过去了。这半年里至少有百分之 80 的日子是处于这种状态。 -要说枯燥,其实也有一些乐趣,要说充实,其实也会摸点鱼。不过,这不就是大部分人的生活方式吗?以混日子的方式做着重复的事,在重复中寻求一丝不同。 +要说枯燥,也有一些乐趣,要说充实,也会摸点鱼。不过,这不就是大部分人的生活方式吗?以混日子的方式做着重复的事,在重复中寻求一丝不同。 在学校也没啥特殊的要求,别挂科,在读两年拿到毕业证与学位证即可。还有两年的时间发展,也许这两年是程序生涯中仅存可自由分配的时间。 diff --git "a/blog/reference/2022\345\271\264\347\273\210\346\200\273\347\273\223\342\200\224\342\200\224\344\273\216\351\200\206\345\220\221\350\275\254Web\345\274\200\345\217\221.md" "b/blog/reference/2022 \302\267 \351\200\206\345\220\221\345\210\260Web\345\274\200\345\217\221.md" similarity index 91% rename from "blog/reference/2022\345\271\264\347\273\210\346\200\273\347\273\223\342\200\224\342\200\224\344\273\216\351\200\206\345\220\221\350\275\254Web\345\274\200\345\217\221.md" rename to "blog/reference/2022 \302\267 \351\200\206\345\220\221\345\210\260Web\345\274\200\345\217\221.md" index 83ebd3108..1545b8aef 100644 --- "a/blog/reference/2022\345\271\264\347\273\210\346\200\273\347\273\223\342\200\224\342\200\224\344\273\216\351\200\206\345\220\221\350\275\254Web\345\274\200\345\217\221.md" +++ "b/blog/reference/2022 \302\267 \351\200\206\345\220\221\345\210\260Web\345\274\200\345\217\221.md" @@ -1,31 +1,22 @@ --- slug: 2022-year-end-summary -title: 2022年终总结——从逆向转Web开发 +title: 2022 · 逆向到Web开发 date: 2022-12-22 authors: kuizuo -tags: [年终总结, 人生感悟] -keywords: [年终总结, 人生感悟] +tags: [年终总结] +keywords: [年终总结] toc_max_heading_level: 3 -description: 2022年终总结——从逆向转Web开发 --- -距离上一篇博文有一个月之久了,距离上次编写代码也有一周之久了,由于疫情的全面放开,加上福建省教育厅通知的提前返乡,反而让我感到有些不适。往常这个时间点我忙于期末考试,会把代码的事情放一边,等到彻底放假后,开始闭关潜心学习。然而剩余的半个月变成了线上形式,课还是要上,考试还是要考,虽说身在家乡,但心不在焉的 😂。 +距离上一篇博文有一个月之久,距离上次编写代码也有一周之久,由于疫情封控全面放开,加上福建省教育厅通知的提前返乡,反而让我感到有些不适。往常这个时间点我忙于期末考试,会把代码的事情放一边,等到彻底放假后,开始闭关潜心学习。然而剩余的半个月变成了线上形式,课还是要上,考试还是要考,虽说身在家乡,但心不在焉的。 -12 月已过半,也是时候该写年终总结了。迄今为止,我已学习了 3 年半的编程。(还好不是两年半),当下的技术不再是当初只会易语言的小伙了。只是当下已没有当初如此强烈的热情与精力了,我称之为老了。 +12 月已过半,也是时候该写年终总结了。迄今为止,我已学习了 3 年半的编程(还好不是两年半)。当下的技术不再是当初只会易语言的小伙了。只是当下已没有当初如此强烈的热情与精力了,我称之为老了。 -现在回头回顾学习编程时间,用一个成语对自己做个评价——**差强人意**。在这些时间段,我其实荒废过一段时间,厌倦过,贪玩过,荒废过,从我的 [Github 热力图](https://github.com/kuizuo'Github热力图') 中其实就能看得出来。就导致欠下技术的,都需要后续花时间去弥补。 - -要让自己保持每天都处于学习状态真的太难了 😩,生活总有源源不断的琐事打扰着你。在忙碌的时候总是感觉时间不够用,哪怕有时一天花费了数十个小时,也总感觉做的事情太少了;哪怕每天计划都规划得好好的,但总是有一半还未完成。生活中大量的碎片化时间,而编程学习最不需要的就是这些碎片化时间。 - -回顾整个编程生涯有太多可感慨的,整个旅途几乎是一个人走完的,期间遇到的坎坷就只得依靠搜索引擎来解决,搜索引擎是我再生父母都不为过。没有人给我指引明确的道路,只依靠心中对技术的憧憬不断前行。走过低谷,登过山峰,而如今站稳身子就足矣。 - -感叹的话语也就是说到这。今年主要总结我为何从逆向转 Web 开发,并明确我未来所要走的方向,也是本文的主题。**仅作为个人感悟,不作为建议参考。** +今年主要总结我为何从逆向转 Web 开发,并明确我未来所要走的方向,也是本文的主题。**仅作为个人感悟,不作为建议参考。** -## 为什么要写年终总结 - -先回答一个问题,为什么要写年终总结? +## 为什么要写年终总结? 我从高中开始,每年都会记录这一年所发生的比较有印象的事情并写下自己的感悟。所以写年终算是个人习惯,并且我希望能够一直坚持下去,写到不能写为止。 @@ -45,7 +36,7 @@ description: 2022年终总结——从逆向转Web开发 我很庆幸我的 Web 开发从一个 Beginner 到 Intermediate,现在回忆整个学习路程,一路学得都很野很随意,从未系统学习过,总是学到一半,就自认为已经掌握了,便开始进行实战项目,可以说很多知识都是在实战探索中了解的。 -虽然很多人都直称我为大佬,但我离 Advanced 还有一大段的路途要走,而这段路途是无比的艰难与漫长。不过好在路不歪,只要肯走终会到达终点 👨‍🦲。 +虽然很多人都直称我为大佬,但我离 Advanced 还有一大段的路途要走,而这段路途是无比的艰难与漫长。不过好在路不歪,只要肯走终会到达终点。 而带我入门的逆向技术,在今年没有丝毫的长进,说得过分点,就是弃坑了。也正如标题所说,至于缘由,细看下文。 @@ -219,6 +210,10 @@ Web 前端开发不用多说,目前还得用 JavaScript 来编写。而后端 我有很多社会技能是欠缺的,比如人际交往,谈话技巧,合作行为等等,并且我本身也不愿去学习这些技能。正因如此,只有不断发挥自身长处,用自己所擅长的领域弥补自己的短板,以提升自我在社会的竞争力,以至于不那么容易被淘汰。 +要让自己保持每天都处于学习状态真的太难了 😩,生活总有源源不断的琐事打扰着你。在忙碌的时候总是感觉时间不够用,哪怕有时一天花费了数十个小时,也总感觉做的事情太少了;哪怕每天计划都规划得好好的,但总是有一半还未完成。生活中大量的碎片化时间,而编程学习最不需要的就是这些碎片化时间。 + +回顾整个编程生涯有太多可感慨的,整个旅途几乎是一个人走完的,期间遇到的坎坷就只得依靠搜索引擎来解决,搜索引擎是我再生父母都不为过。没有人给我指引明确的道路,只依靠心中对技术的憧憬不断前行。走过低谷,登过山峰,而如今站稳身子就足矣。 + ## 返校的一年 今年也是我重归学校的一年,倘若,去年没有休学一年的话,如今我可能已经在外实习了,转瞬一年就过去了,如今的我还沉浸在当初休学和别人创业工作的日子。 @@ -237,15 +232,9 @@ Web 前端开发不用多说,目前还得用 JavaScript 来编写。而后端 倘若读研的话,必然将会有数个月的时间重心不在代码上,到时候回来编写代码时,又发现自己好像又重新学了一遍似的。加之万一上岸失败的心理落差,会让自我觉得这几个月的努力都白费。而我又恰好是一位结果论者,即只在意结果,不在意过程如何。在别人的眼中,是难以看到你考研备战努力的过程,只会在意你上没上岸。这便是我不想考研因素之一。 -但今年在互联网上所认识伙伴中挺多给我过于高的评价,都认为我作为一个学生,能有这水平是不是在某某牛逼的高校读书。然而并不是,我甚至都不好意思述说自己的高校,感觉是当下的污点。也正因如此反而让我有点过于焦虑,就从身份上,这不得让我萌生读研的一丝丝想法,也不至于死绝考研。 - -自我认为离真正的大佬还差很长的一段距离,我只是靠着三分钟热度,加上爱折腾,才维系下去,而那些真正的大佬是肯花费大量时间去编写他们所认为有意义的代码。 - -:::info - -如果可以的话,在下方的留下你对我的评价与建议。我尽可能的争取在明年这时候完成你心目中我的样子。 +但今年在互联网上所认识伙伴中挺多给我过于高的评价,都认为我作为一个学生,能有这水平是不是在某某牛逼的高校读书。然而并不是,我甚至都不好意思述说自己的高校,说是我的污点也不为过。也正因此身份上,这不得让我萌生读研或是留学的一丝丝想法,也不至于死绝。 -::: +自我认为离真正的大佬还差很长的一段距离,我只是靠着三分钟热度才维系下去,而那些真正的大佬是肯花费大量时间去编写他们所认为有意义的代码。 ## 结语 diff --git "a/blog/reference/2023 \302\267 \350\260\210\350\260\210\350\201\214\344\270\232\350\247\204\345\210\222.md" "b/blog/reference/2023 \302\267 \350\260\210\350\260\210\350\201\214\344\270\232\350\247\204\345\210\222.md" new file mode 100644 index 000000000..cf81b1963 --- /dev/null +++ "b/blog/reference/2023 \302\267 \350\260\210\350\260\210\350\201\214\344\270\232\350\247\204\345\210\222.md" @@ -0,0 +1,174 @@ +--- +slug: 2023-year-end-summary +title: 2023 · 谈谈职业规划 +date: 2023-12-25 +authors: kuizuo +tags: [年终总结] +keywords: [年终总结] +--- + +又到了年底写年终总结的时候了,说实话今年感觉没什么内容可写。上半年我已经写了 [叙一名转专业+休学的大学生经历](/blog/narrate-a-college-student),而下半年我忙于学校课程 + 课程重修,要说编程上真没什么好总结的。 + +不过如今都大四了,也确实是要考虑实习的事了。我想结合我自身情况,谈谈我是怎么看待工作或者往远点说职业规划。 + + + +## 一些经历 + +### 工作经历 + +我目前一共有 3 份工作经历 + +1. 休学一年在厦门本地某工作室(共4人)与他人创业。 2021.1 ~ 2022.1 +2. 在北京的一家公司(规模不大)远程实习。 2022.8 ~ 2022.10 +3. 在 [3R 教室](https://3rcd.com) 兼任助教与开发组成员。 2023.1 ~ 至今 + +事实上,对我而言也仅有休学的那一年才能算是工作,而其他两者从年限与工作性质来看不能算是一份真正的工作。但也不能说不是,至少也替别人做过事、签过合同、领过工资的。 + +不过我想稍微提提我是怎么找到这三个工作的,或者说这三份工作是怎么找到我的 -> **全靠分享** + +我不止说过一次分享的重要性,我的第一份工作就是在网络分享了[一个大学生自动完成视频、作业的程序](/blog/chaoxing-helper),恰好被我当地一个工作室的同事看到,寻求我能否改进功能一同合作,于是一拍即可,便开始[休学](https://www.notion.so/cbb5ea09bd114a6fa1e163882f16d1b6?pvs=21)。 + +剩余的两个工作同样也是,一个契机是我当时正好在研究 [Strapi](https://strapi.io) 编写了一篇文章,这家公司恰好用到这门技术;而 3R教室则是因为创始人所用的与我博客相同的网站生成器 [Docusaurus](https://docusaurus.io/zh-CN) 在这个机缘下认识的,后来创始人创业开了3R教室,我也就利用业余时间在其中扮演助教身份,赚个零花钱。(其实我很热心肠的,哪怕我不当助教,只要时间允许的情况下,你有问题问我也会尽数回答) + +### 接单经历 + +同样的,分享也能很大程度上提升你接单的资本。 + +我并非想要炫耀什么,而是分享实实在在给我带来了很多好处,我希望你能够分享一些内容,一些见解心得,哪怕是一些笔记、对他人问题的回复,都可能给你带来一些意想不到的好处。 + +我就有一个同学将自己的笔记、课设以及每次专业课期末考试的文档放到 CSDN 上(没错就是那个 IT 界的毒瘤),现在这不到期末了嘛,他的私信就有一堆人找他写课设啥的。 + +回归到正题,我接过单不多也不少吧,绝大多数是那种对我而言挺简单的问题,但对于一些人而言就比较困难。例如前几天一个例子,我编写过 [js-deobfuscator](https://github.com/kuizuo/js-deobfuscator) 一个 js 混淆还原的工具,正好有人需要将一份混淆代码还原出来,于是寻求我的帮助,发了个红包给我。有时哪怕只是回答别人一个问题,甚至都可能会收到来自他人的红包。想想看,你在技术群里是不是有这个现象。 + +还有一个网站的单子我印象很深,是一个用于销售流量、虚拟会员等商品的网站,不同与普通的商城系统,充值是通过卡密,使用卡密到特定的网站上使用。当时一个网站全套 5000,客户也算熟人了,还帮我推荐几个人购买,相当于这一套网站(模版),帮我赚了几 w,还省去我很多开发成本,后续我都无偿给他提供技术服务。 + +事实上至少现在为止我并不是很喜欢接单,也很少主动接单。小的单(也可叫零活)通常以一顿夜宵作为回报,或是看在人情的份上;而大的单(通常为外包单),通常要求交付时间快,很多时候只为了更快的完成功能,而不考虑代码质量。并且通常没有维护性可言,就更别说写测试和重构了。写久了,代码虽然写的是快了,但堆屎山的速度都堪比屎壳郎了。代码能力的提升反而不是很大。 + +在我看来当因某种目的收了他的钱财时,往往就要花费时间精力去完成这个目的,而从我内心上很难平衡这点。所以只要我不收钱,我就可以不做事了(bushi + +### 赚钱经历 + +我赚的第一桶金其实还不是我工作,这创业工作前,事实上我已经赚过两次钱了,还全都是依靠网络上的资源,而非现实打工。不过都是在我初高中学生时期的事情了,一次是初三当时和别人学习如何刷钻以及购买钻卡来接单帮别人刷钻,另一个是作为线报群群主(不过如今更多的称之为羊毛群),发布一些活动和教程通过拉人头引流赚钱。 + +这并非本文重点,因此我并不想过多介绍,我想会作为后面的铺垫。 + +不过我还是想说:**赚钱不易**。我现在回看我过去的一些经历,只能说运气成分很大,而又恰好在风口之中。 + +## 为何不实习? + +背景介绍完了,那就来说说实习的事情,为何我都大四了,还不找实习? + +不是不找,而是很难找到满意的。我在今年暑期的时候有尝试找过,投过几家大厂,无一例外,了无音讯。这对我当时而言,打击还蛮大的。因为三流学校出身,确实很难过(双关),加之没人内推,海投基本上是没希望的。 + +而如今前端的职位卷之又卷,俗话说僧多粥少,在厦门一些中小公司所提供的前端实习待遇(薪资大约在 3k~4k),况且对自身的提升并不是特别大,不是一笔性价比划得来的买卖。与其如此,我还不如主动接单。 + +反观学校的情况那可就更头疼了,你敢相信在大四上最该实习的时候,极为不合理的教案却还要给学生安排课程,还是专业课的那种,以下我的课表。 + +![IMG_20230916_003523.jpg](https://img.kuizuo.cn/202312250547468.jpg) + +此外,我还需要重修当初因为休学而没去考试的几门课程(还挺多的,重修费还交了我不少😢),导致我最后一场考试时间是在 12月中旬。还是强调那一点,我不希望工作与学业这两者同时进行。关于这学校的诸多不满,待我毕业后我一定要说说,感受什么叫中国的私立大学。 + +于是在上述的因素下,今年下半年我就不想找实习了。 + +## 为何又想实习了? + +最主要的一点就是以我目前学生(应届生)的身份,是可以有机会争取到一份好的实习的,乃至是大厂的实习。 + +其次是我并没有一个很好的项目演进经历,看完我的一些工作经历不难发现我所待的公司/工作室的体量都不大,甚至我到现在都没真正体验过打卡上班(当然我也希望不要有)。而这就是小厂或者初创公司的同病,各个流程所要负责的任务很模糊。我当时休学和他人创业工作,基本上都是我一人负责项目开发(当时说我是技术 Leader 都不为过);第二个远程实习也是我当时主动退出的,因为工作形式与接单无疑;第三个就不用多说了。 + +尤其是在技术层面的团队协作之中,还缺乏相当多的实践经验。所以在自我分析下,为了学习某些只在公司才能学到的东西,就非常有必要到大公司去一趟。 + +我大概率以后是不太可能再考虑坐班,所以这或许是我仅有为数不多的上班经历了。不过我想既便真正要开始打卡上班,要开始适应国内 996,未来我铁定会后悔有过这段历程。 + +![1703021156782.png](https://img.kuizuo.cn/202312250547469.png) + +### 那么该怎么找呢? + +那么在如今就业形势如此严峻的时代,我又该如何找工作? + +关于这点我其实并没有什么很好的经验分享,这也算是我首次主动找工作。不过我可以肯定的一点是,只单靠海投与某些招聘软件,想要拿到一份心意的 offer 很难。若是能通过一些关系,牵一条线(走内推),才是最佳选择,所以多积攒人脉交际圈是很有必要的。 + +这一部分我想待我后续找到工作后,再来做个心得分享也不为迟。(不说了,我去准备项目与简历去了) + +## 远程工作 + +[电鸭](https://eleduck.com/)的sologen:**只工作,不上班**。很好表明远程工作的意图。 + +远程工作(remote work)是我当下认为最具性价比的工作形式,你可以过着四五线城市的生活水平而不用考虑一线城市的房租与消费,却赚取一线城市的薪资。往大点说就是挣美元花人民币。 + +但是远程工作并非多数人想的那么轻松的,很多人对远程工作有个误区,就是可以自由决定上班时间,很自由。其实不是的,不用上下班通勤,那就把通勤的时间拿来工作。没有额外房补开销,那就拿来压低工资。而该开的会还是得开,说白了就是换个地方上班,懒床是睡不了一点的,好一点的是冬天起来不用遭受寒风的洗礼罢了。 + +有的远程工作还会要求你记录每个时间段(细到每小时)你都做了哪些工作,我暑期的就有一份我老师推荐的远程工作(实习)就是这样,我就没干了。要论自由,接单/自由职业是最自由的,项目进度、时间都由你自己把握。 + +此外还有一点就是技术栈的因素。我并没有跟随国内的主流的 Web 开发技术栈去学习什么 Java,也庆幸还好当初认为 Java 这门语言繁琐的要死,让我转变使用 JS/TS 来进行 Web 全栈的开发,而如今的重心也是在 JS/TS。 + +而这套技术栈在国外的远程工作的岗位占比很大,一些初创公司也会采用这套技术栈。而我本身学的就是 JS/TS,自身优势反而更能体现出来。但反观在国内绝大多数公司我也就是老老实实做前端的那种。况且如果只想靠国内的主流传统的技术栈而去争取一个远程岗位,我认为当下还是很难实现的。就国内的职场环境下,如今工作都难找了,就别说本身岗位就少的远程工作了。 + +## 正常坐班 + +退而其次,那就正常上下班通勤,而这又有的抉择了。就以我自身举例把,我老家福建宁德且我在厦门某三流大学读书,意味着我只要在福建本地找工作,就可以过的相对来说舒服,人脉资源、衣食住行都不用过多考虑。但倘若选择在外打拼,意味着可能要适应陌生的城市生活,建立起新的人际网络,面对未知的困难和挑战。而这其中所能利用的、所要遭受的,都得由自个儿来承担。 + +今年冬至的时候我与家里人商讨过这个问题,家里人的意见更多偏向于留在本省,只求我稳稳当当,脚踏实地。因为我从小到大独立性很差,加上我确实有那么亿点宅,到外面恐怕是吃不消。所以在他们眼里哪怕在本省薪资不是令我那么满意,但至少可以过一种相对舒适的生活。而我自己则认为有必要去外面见见世面,有时候很多苦只有自己吃过才知道有苦。 + +不过最终如何选择,还得取决于我自己。这对于多数人也是值得花时间思考的。 + +最终如果选择重归故里,那么一开始就身在其中是否会更好?又何必在外漂泊,独自承受着一切。 + +### 我对打工/上班的看法 + +我经常拿我高考结束的那个暑假来做例子,我的一些高中同学去当外卖骑手、餐厅服务员,将他们的假期时间拿来打工赚钱,而我却埋头苦干的[学习编程(易语言)](/2020-year-end-summary),以兴趣驱使我学习一门技术。 + +或许是因为有过几段[赚钱经历](#赚钱经历),加上家境和个人意愿,所以至今为止我都不可能会去从事这种回报率不高,或者说没有“未来”的工作。与其打工/上班,尤其是耗费大量时间与体力劳动的,不如将时间拿来提升自己综合能力。(个人观点,或许有些极端) + +可能是由于受自由的影响加上年轻有精力折腾,同时自己又是那么不走”寻常路“、不遵循“规则”的人。所以像那种安稳平淡,重复劳动的工作,如体制/编制内的职业就不太那么感冒。 + +但从现实是没人想打工/上班,却依旧有人从事这些工作。绝大多数打工人别无选择,因生活所迫,只得忍受和抱怨打工/上班的痛苦,却又寄人篱下。 + +## 期望的工作 + +要说不工作是不可能的(但打工是不可能的),或许是因为这几年的一些工作经历有关,导致我有点习惯了远程,加上网间传闻 996 的压力下,我现在对坐班甚至还有些厌恶。对我最理想的工作环境就是能够自我在决定在某个时间点是否工作,例如在工作日放假,在节假日上班。 + +接单虽说也是,那这毕竟不是一份正经的工作,更多意义上来说是份兼职。更多是作为一时之需,接单又不可能接一辈子(搞得工作能工作一辈子似得)。 + +而我想说的是做个自由职业者,在细一点也就是独立开发者。但是现在来看这并非易事,不仅需要一定的技术能力和营销水平,最关键的想法就已经让绝大多数人对这份职业扼杀在摇篮中。 + +## 现状 + +首先我对自己的生活方式定义是:**偏向于自发的能量爆发,而不是有条理的持续努力。** + +今年我的 github contributions 出现过了几次长时间的空缺,那段期间我基本上没有在写代码,而是将心思用在其他事情上。例如只打游戏(好在游戏如今也是戒了)、只想摆烂(好在是摆的有点多了)、只想复习(好在该考的试都已经考了)。**这就导致很多时候我会将全部精力专注在某件事情上,而抛弃其他与之无关的事情**。 + +这也就导致了我很难养成一个良好的习惯,我的生物钟也因此而发生巨变。贴一张极为离谱的作息 + +![Untitled](https://img.kuizuo.cn/202312250547470.png) + +总之持之以恒在我这还不存在过,**多数的开始是因一腔热血,而最后结束时却草草了事**。 + +我想是是过度的自由造就了这般现状,想要解决这个问题,坐班可能还真可以。 + +--- + +或许是因为比同龄人提前踏入过社会,有过几段工作经验,所以在就业形势严峻的时代,其实我反倒不是那么慌张。 + +何况目前经济状态也还算正常,哪怕不找工作也足够养活我自己好一整子。至少相比同龄人下,我已经挺富裕了。也没必要搞个打赏在自己的网站或项目上放置收款二维码等无关项目信息。对我而言,编写这些的目的不是为了接某个单,赚个打赏费,更多是一时兴起,分享给有需要的人,希望让其更为纯粹一些,仅此而已。 + +我对赚钱的态度也很简单,悦己便可(做点让自己愉悦的事情),数额能够维持自身生存便足够了。不过现在我还没开始到还贷的境地,或许只有压迫感来临时,才会让我激起对金钱的渴望,改变对金钱的态度。 + +**取悦自己,生活最好的心态。** + +## 感慨 + +接触 web 开发算下整整两年半的时间,在这期间我并没有很好地扩张自己的技术面。在折腾方面确实不如以往,学习主动性也欠缺许多。不同于一开始所学习那样,喜欢瞎捣鼓,看到某个东西就会想尝试安装。 + +明年也就 24 岁了,面对即将到来的本命年,下一个阶段的走向其实很迷茫,面对我的是留学还是工作,我到现在都没有定数… + +虽说我现在大四还在读,但其实我已经比同龄人晚毕业 1-2 年了(此时怀着感慨的泪水不禁流下)。心智上还保留着校园少年的青雉 ,同时也多了份成熟的稳重。 + +有过这些经历让我收获了更为珍贵的经验和独特的成长路径,我想未来的日子必定是丰富多彩的。 + +## 往年回顾 + +- [2022 · 逆向到Web开发](/blog/2022-year-end-summary) +- [2021 · 休学一年](/blog/2021-year-end-summary) +- [2020 · 编程之旅-起点](/blog/2020-year-end-summary) diff --git "a/blog/reference/\345\217\231\344\270\200\345\220\215\350\275\254\344\270\223\344\270\232+\344\274\221\345\255\246\347\232\204\345\244\247\345\255\246\347\224\237\347\273\217\345\216\206.md" "b/blog/reference/\345\217\231\344\270\200\345\220\215\350\275\254\344\270\223\344\270\232+\344\274\221\345\255\246\347\232\204\345\244\247\345\255\246\347\224\237\347\273\217\345\216\206.md" index 5b592466a..654868540 100644 --- "a/blog/reference/\345\217\231\344\270\200\345\220\215\350\275\254\344\270\223\344\270\232+\344\274\221\345\255\246\347\232\204\345\244\247\345\255\246\347\224\237\347\273\217\345\216\206.md" +++ "b/blog/reference/\345\217\231\344\270\200\345\220\215\350\275\254\344\270\223\344\270\232+\344\274\221\345\255\246\347\232\204\345\244\247\345\255\246\347\224\237\347\273\217\345\216\206.md" @@ -63,11 +63,11 @@ image: https://img.kuizuo.cn/202307110122170.jpeg ### 休学 -然后在我大二上的时候发生了一个契机,我当时编写过一个易语言软件(对大学生友好的那种软件,我想熟悉我的同学应该知道是什么),并将其发布在网络上免费使用。 +然后在我大二上的时候发生了一个契机,我当时编写过一个易语言软件能够自动完成大学生网课视频、作业的[程序](/blog/chaoxing-helper),并将其发布在网络上免费使用。 挺巧的是不久后,厦门当地(距离我学校也就 5 公里)的一个工作室(算我有 4 个人)恰好看到了这个软件,问我能否在此基础上实现的一些功能,也说明了他们的目的,想要一同合作,我主要负责技术,他们负责销售推广。我思考了下可行性,于是结合转专业的懊悔之下,我义无反顾地办理休学手续,开始了我的休学之旅,准备大干一场! ---- +[](https://img.kuizuo.cn/202312250425022.jpeg) 现在回想当时我的做法太过于任性,当时是 12 月份的时候,也就是临近考试周时,我便不在宿舍复习,甚至考试我都是直接没去的,而是直接到工作室里开始改写我的程序。以下是我当时学期的成绩单(有点惨不忍睹) @@ -113,7 +113,7 @@ image: https://img.kuizuo.cn/202307110122170.jpeg ::: -**如果仅仅是转专业+休学的话,其实就没什么好看的了,不过需要这些的铺垫才有后面一言难尽的故事。** +**如果仅仅是转专业+休学的话,`其实`就没什么好看的了,不过需要这些的铺垫才有后面一言难尽的故事。** ## 事件之 👮🔍💧 @@ -239,7 +239,7 @@ image: https://img.kuizuo.cn/202307110122170.jpeg 我觉得没有什么能比收益更具有说服力,因此也确确实实改变了我的看法,至少在中国是这样的。 -其实就单从社会展示的数据上也可以知道,自考成人本科的人是越来越多,很多公司招聘都是本科起步。没经历只看数据对我而言是意识不到其重要性的。 +就单从社会展示的数据上也可以知道,自考成人本科的人是越来越多,很多公司招聘都是本科起步。没经历只看数据对我而言是意识不到其重要性的。 本科固然重要,可反观现在中国的大学还是用来学知识培养人才的吗?我更倾向于说是用金钱消耗时光最终换来一本证书,至于这笔交易值不值这个价,我想多数大学生的内心已经有了答案。 @@ -285,6 +285,6 @@ timeline.forEach(time => console.log(time)) 回到技术角度,随着我的 4 年编程经历就这么过去了,和曾所预期的技术要求还差之甚远,没能给自己一个很好的技术交代,没能在这四年结束之际进行编码,没能给这段经历一个完美的句号。 -倘若没有编程,我甚至都不知道自己应当从事何种职业,可以说编程是我的再生父母,没有 4 年那场偶遇,便没有如今的我。 +倘若没有编程,我甚至都不知道自己应当从事何种职业,可以说编程是我的再生父母,没有 4 年前那场偶遇,便没有如今的我。 **道阻且长,行则将至;行而不辍,未来可期。**