离开舒适区之后:从三年前端到 CS 硕士——我在韩国亚大读研的得失

离开舒适区之后:从三年前端到 CS 硕士——我在韩国亚大读研的得失

过去一年多,我做了一个挺重要的决定:辞职,去韩国留学读研。

这段时间我几乎没怎么学习新的前端内容,但也没有停下来。我在韩国亚洲大学完成了计算机科学与技术(大数据)硕士的学习,在高强度的节奏里重新建立了自己的方法,也因为持续写博客获得了一些机会,担任本科 Web 实训课讲师。现在这段留学告一段落,我也准备重新回到前端领域,把这段经历当作一份额外的积累带回去。这篇复盘主要是想把这一路的收获、疲惫和一些值得记住的瞬间记录下来,留给未来的自己,也分享给路过的你。

文章目录

1、写在前面:我为什么会从前端转去读研

如果只用一句话概括我过去几年的路径,大概是:做了三年前端 → 去韩国读研 → 现在硕士毕业准备回前端

很多人会问我:既然你喜欢前端,为什么还要去读研?我自己的感受是:它并不是“逃离前端”,更像是一次“把视野往外推”的升级。

做前端的时候,我很享受那种确定性:一个页面从无到有,一个交互从想法到落地,一个性能点优化后立刻看到数据变化——前端是一个“努力能快速兑换结果”的工种,而我很吃这种反馈。

但与此同时,我也开始有一种越来越明显的焦虑与好奇:AI 发展得太快了,它“看起来很聪明”的背后到底是什么?数据怎么流动、系统怎么支撑、模型怎么学习、效果又是怎么被评估出来的?更现实的问题是:如果我只是紧紧捂住前端那套开发技能不放,真的还能一直走下去吗?带着这些问题,我选择了留学,去读了亚大的 计科(大数据)硕士——想把视野从“把页面功能做出来”,往更系统、更前沿、更“高级”的方向推一推。

在这里插入图片描述

真正到了韩国之后我才发现:所谓“离开舒适区”,不仅是地理位置变了,而是你熟悉的那套成长方式会失效。以前你靠经验就能判断“这个需求要怎么做”;现在你要面对的是陌生课程、陌生评价体系、陌生的高强度节奏,以及一种很真实的“我得从头把自己训练一遍”的感觉。

2、留学生活的关键词:卷、AI、被看见以及校庆的“放开玩”

这一段留学经历,我最想用三个词来形容:卷、AI、被看见。这三个词不是抽象概念,而是你每天都能碰到的“现实”。

卷:卷到什么程度?

韩国同学是真的卷,而且是那种很具体、很“日常化”的卷。你会遇到这种场景:想去图书馆学习,发现根本约不上;于是转去周边咖啡厅,结果咖啡厅也坐满了学习的学生。你走进去看到的不是闲聊,不是放空,而是一桌桌电脑屏幕、论文打印件、笔记本,甚至有人把书堆得像小墙一样。

在这里插入图片描述

最开始我其实会有点恍惚:怎么连咖啡厅都像自习室?怎么每个人都在学?后来慢慢理解了:这种氛围会把你推着走。你不是被谁逼着学,而是环境会让你产生一种“我也得坐下来做点什么”的惯性。我也经历过适应期,以前做前端时节奏很明确——排期、开发、上线、复盘;读研的节奏更像一片海:课、作业、项目、报告、考试……你要自己给自己找“锚”,否则会被浪推着漂。

AI:GPT 在韩国不是“偶尔用一下”,而是默认学习方式

在韩国,GPT 不受限,大家用起来也很自然。自习室里你会看到很有画面感的一幕:很多人屏幕上都开着 GPT 页面,像开着一个随时对话的学习搭子。这种“普及”带来的感觉很直接:你会意识到——学习方式已经变了。不是“我先憋一晚上再去查资料”,而是“我随时把问题拆开、验证、再推进”。AI 在他们手里像一种学习节奏控制器:卡住了就问、理解不顺就对比、写代码报错就一起定位,整个学习过程更像“快速迭代”。

当然,这也会倒逼你思考:当每个人都能用同样的工具时,真正拉开差距的到底是什么?我后来发现,差距不在“用不用”,而在“你有没有把 AI 的输出变成自己的理解”。

被看见:写博客这件事,真的会变成机会

第三个关键词是“被看见”。过去我一直写博客,本来只是习惯:记录、复盘、沉淀。结果这件事在读研期间发生了一个很意外的转折——我因为写博客而被邀请担任本科 Web 系统实训课讲师。

在这里插入图片描述

那一刻我很感慨:你以为只是自我记录的东西,在某个时刻会变成别人认识你的入口。作品本身是一种“无需解释”的简历,而且它会在你不经意的时候,把你推向一个新的机会。

卷,但不压抑:校庆让我看见“认真”和“尽兴”可以同时成立

学校每年都有校庆,氛围特别好。平时你看到的是:图书馆约不上、咖啡厅坐满学习的人,自习室里一排排打开 GPT 的屏幕——大家学起来非常认真。

但到了校庆,你又会发现另一面:观众氛围非常热烈,大家玩得很放开,那种快乐不是“假装松弛”,是彻底的投入和享受。秋季校庆刚好赶上邀请了 (G)I-DLE 的宋雨琦朴宰范(Jay Park)。很直观地感受到:同一群人,白天可以在自习室里认真到极致,晚上也能在舞台下把情绪完全释放出来。

在这里插入图片描述

该学的时候全力以赴,该玩的时候彻底放松。 它让我对“平衡”有了新的理解:不是每天都平均用力,而是在对的时刻做对的事。认真不是苦行,尽兴也不是放纵——它们可以同时存在。

3、我的“结果卡片”

成绩:GPA 4.5/4.5(专业前 1%)主修:机器学习 / 人工智能 / 大数据系统 / 数据挖掘 / 数据分析 / 数据结构 / OOP …经历:本科 Web 实训课讲师(前端基础 + 项目实战)荣誉:校级优秀毕业生高光:优秀毕业生代表发言

我一直觉得,“结果卡片”不是为了证明什么,就是给自己留个档。叙事能让人共鸣,把事实写下来,是为了让这一段更清楚、更可回看。

4、得:这一年半我真正收获的东西

如果只写“我学了什么”,其实很难概括。因为这一年最核心的收获,不是某个知识点,而是能力结构和心态结构的变化。

在“卷到极致”的环境里,我学会了真正的自驱

以前我以为自律来自意志力。现在我更相信:自律来自系统。当你身处一个“大家都很认真”的环境,你并不缺动力,你缺的是“可持续的节奏”。我后来不再纠结“今天一定要约到图书馆”,而是接受现实:约不到就去咖啡厅、去自习室、去任何能坐下来的地方。重要的不是地点,是“坐下来的那两个小时能不能形成闭环”。这种变化很微妙:你会从“追求完美状态”变成“追求稳定推进”。而稳定推进,本身就是一种高级能力。

在这里插入图片描述

见识到 AI 普及后,我学会了用更快的方式理解世界

GPT 在韩国的普及让我意识到:很多时候学习的瓶颈不是你不努力,而是你在低效率地努力。当你把 AI 用对,它能帮你缩短“从看不懂到看懂”的距离,让你把精力花在更值钱的部分:验证、实践、复盘。我后来很喜欢用一句话总结这种变化:以前学习像“独自爬山”,现在更像“有人帮你实时看地图”。你仍然要自己走路,但你不会在岔路口迷路太久。

写博客把我“推到台前”,也让我更相信长期主义

成为讲师这件事,像一次现实提醒:**输出不是副业,它是长期积累的复利。**你写的每一篇文章、做过的每一次复盘,当下可能只是“我记录一下”,但它可能就会在未来某个节点变成“别人认识你”的方式。尤其在异国环境里,作品的力量更明显——它可以跨语言、跨社交圈,直接证明你是谁?你做了什么?你能做什么?

面对不确定性的底气

课程里的大数据/AI/大语言模型等相关内容,很多时候不像前端那样“做完就看到结果”。前端的反馈很直接:页面出来了、交互顺了、bug 修了,立刻就能验证。但在这些课里,反馈往往更慢、更长:你可能要先把环境跑通、把数据处理链路搭起来,再做一轮分析或实验;中间任何一步出问题,最后结果就会偏。更现实的是,有时候你按步骤做了,也不一定马上得到一个“很漂亮”的结论——需要反复检查假设、调整方案、重新验证。

这一段经历让我学到的,反而是怎么面对这种不确定:把大问题拆成小步骤,先保证每一步可复现,再一点点往前推。走到后面我更确定的是——面对陌生领域时,我也能慢慢找到自己的推进方法。

5、失:我付出的代价

得与失从来都是一体两面。如果只写“收获”,文章会像鸡汤;把代价写出来,它才像完整真实的生活。

我失去了一部分松弛感

在高度学习氛围里,休息会带来负罪感。尤其当你看到身边的人都在学,你会下意识怀疑:“我是不是不够努力?”后来我才慢慢学会一件事:松弛不是懒,松弛是为了让你有能力持续投入。这句话说起来很简单,但做到其实挺难。尤其在韩国卷到骨子里的环境;

我失去了一部分社交与生活连续性

留学天然会牺牲很多稳定关系:距离、节奏都不同。再叠加课程压力,你会更孤独,也会更独立。孤独不一定是坏事,但它确实是一种代价。

我失去了“熟悉领域的掌控感”

做前端时你知道怎么查、怎么改、怎么上线;读研时很多东西陌生——概念、方法、评估方式。这种“我不再是熟练工”的感觉,会让人焦虑。但它也逼着你成长:你不能靠经验混过去,只能靠学习能力重新站稳。

我失去了一部分创作节奏,但换来了更真实的素材

在这里插入图片描述

高强度学习会挤压写作精力。你会有那种感觉:不是不想写,是写不动。但反过来,这段经历也给了我更扎实的素材:跨界、AI 学习方式、讲师经历、期末交付…它们比“为了更新而更新”更有价值。

6、期末周:我经历过的“高强度交付周”

如果说留学期间有什么时刻让我真正体会到“累”,那一定是期末周

期末周的累不是“学不会”的那种累,而是很典型的交付型疲惫:一边要准备考试,一边要在很短时间内完成期末作业和报告。最折磨人的点在于——报告不是写个总结就结束,而是各种要求一条条压过来:环境要跑通、数据要处理、过程要可追溯、结果要能解释、格式还得规范……每一项看起来都合理,但叠在一起就会把人压得喘不过气。我记得当时打开要求文档的第一反应不是“难”,而是“多”。以大数据系统这门课为例,任务被拆得非常细,像一个完整项目的流水线一样,从准备到落地再到总结,层层推进,大致分成 Part0–Part4 这样的结构:

  • Part 0:环境验证与准备工作
  • Part 1:数据加载与表结构设计
  • Part 2:基础指标与总体分析
  • Part 3:更深入的专题分析(也是最耗时间、权重最高的部分)
  • Part 4:报告质量与呈现规范

最现实的一点是:最花时间的部分往往也是占比最高的部分。它不是“写写想法”就行,而是要把过程、对比、结果、解释、结论都交代清楚。你会很明显地感觉到:这不是传统意义上的“作业”,更像一次强约束的短周期交付。下面是作业要求的部分截图;

在这里插入图片描述

那段时间我的生活基本只剩下两个状态:
白天复习考试,晚上写报告、补实验、整理内容。有时候你坐在电脑前会产生一种很真实的错觉:你不是在学习,你是在做一场被 deadline 推着跑的项目交付。那种节奏甚至让我想起以前做前端赶版本:需求不断、边写边改、时间卡死。只不过这次不是上线功能,而是把几十页的内容整理到“能交付、能自证”的程度。为了按时交付,熬夜几乎成了常态。连续三天都写到凌晨 3 点:文档页数在涨、目录在涨,要求清单也在一点点被划掉,但时间同样在被消耗。你一边告诉自己“明天还要考试”,一边又不得不继续推进“还差几章”。那种疲惫不是身体上的,更像是脑子里一直有根弦紧绷着。你会很清楚地知道:再聪明的工具也替代不了真正的投入,你能依靠的只有节奏、拆解和执行。

在这里插入图片描述

经过几个晚上的奋斗,近百页的报告做完的那一刻反而很安静。真正点下提交按钮时,并没有想象中那种“狂喜”,更多是一种突然卸力后的空白:脑子停了,身体也停了,甚至一时不知道接下来该干什么。走出自习室看到外面天快亮了,邮件的反馈确定自己提交成功后,只想回去睡个好觉!

7、前端三年经验,如何在读研里“迁移复用”

虽然这一年我没怎么学新前端,但我能确定:前端三年给我最宝贵的不是框架,而是工程师基本功。

拆解能力:从“做页面”到“做实验/做项目”

前端习惯把需求拆成模块、交互、边界;读研后这变成了:

  • 把课程任务拆成:概念 → 要求 → 评分点 → 最小可行方案
  • 把项目拆成:输入输出 → 指标 → 基线 → 对照实验

尤其在大语言模型语境里,把目标与指标拆清楚,很多看起来很虚的东西就会落地:你知道自己到底要证明什么、怎么证明、用什么对比才算公平。

调试能力:bug 永远不会变,只是换了个语境

前端常见 bug:依赖冲突、异步时序、边界值;读研常见 bug:环境版本、数据处理链路、训练不稳定。但本质一样:定位 → 最小复现 → 控制变量 → 验证结论。

工程化意识:把作业当成“可维护的小项目”

目录结构、记录参数、写清运行步骤、固定随机种子、实验可复现……这些工程习惯在数据/实验中非常重要:不可复现就等于没有积累。你做过一次就要能复用,否则每次都从零开始会被期末周吞掉。

表达与文档:写博客与当讲师,让“懂”变成“说得清”

读研和教学都在逼你结构化表达:先讲目标,再讲路径,再讲坑点。我也更相信:把东西讲清楚,往往比做出来更难,但也更能拉开差距。

8、我在韩国的学习系统:GPT 怎么用才真的“长在自己身上”

GPT几乎是默认学习工具。但我越来越觉得,真正拉开差距的不是“用不用”,而是能不能把它用成自己的能力

我最常用 GPT 的三个场景其实很简单:解释概念 / 改代码 / 对比算法。解释概念时,我会让它用不同层级讲同一个问题(从很浅到很深),再补上对比、反例和常见误区。我还会加一句:“用前端工程师能理解的方式讲。” 这句话特别有用,它能把抽象的内容拉回到我熟悉的工程思维里。改代码时,我更把它当作结对程序员:给最小报错片段、关键日志和输入输出,让它先给“定位路径”和可能原因的优先级,然后我用控制变量的方式逐个验证。这样能真正理解问题,而不是把一段“能跑的代码”复制过去。对比算法时,我会让它先输出三张表:机制对比、适用场景对比、实验设计对比,再让它给一个很短的“结论模板”。这样写报告/做总结会快很多,也更不容易跑偏。

在这里插入图片描述

同时我也给自己设了边界:不直接提交 AI 成品(尤其是结论)、关键内容必须能口述解释、用完要写十行左右“我的总结”。我希望 GPT 帮我缩短从“看不懂”到“能理解”的距离,但最后能留下来的,必须是我自己的东西。

9、作为优秀毕业生代表发言——紧张,但一切都值得

读研这段时间,有很多“硬扛”的瞬间,也有一些突然被点亮的时刻。其中最让我记住的一个,是我作为校级优秀毕业生代表站上台发言的那一刻。说不紧张是假的。站在台上往下看,台下那么多人,你会下意识担心:我会不会卡壳?会不会语速太快?会不会漏掉重点?但当我真的说出第一句话之后,那种紧张反而慢慢变成了一种踏实的感觉——像是你在把这段旅程做一次“正式的收束”。

在这里插入图片描述

发言结束走下台的时候,我反而很平静。那一刻我最清楚的感受只有一句话:**一切都值得。**不是因为站上台有多风光,而是你终于知道:那些看起来普通、甚至有点狼狈的坚持,真的把你送到了一个更好的位置上。

在这里插入图片描述

10、留学收官:我为什么决定回到前端

读了计算机科学与技术(大数据)硕士,也接触了大语言模型后,我反而更坚定:毕业后回前端。原因很简单:我真的喜欢前端那种“立刻拿到结果”的确定性。你写完一个页面、完成一次交互、优化一个性能点,反馈是立刻可见的——这种即时反馈会让我更愿意投入和打磨。

但回前端不是回到原点。这段留学会成为我作为前端工程师的附加技能:更强的学习能力、更成熟的 AI 使用习惯、更重视数据与指标的工程思维、更宽的知识面。我想做的前端,会更靠近“工程”和“AI”的那一侧:性能、效率、以及 AI 的真实落地。

11、写在最后:回到前端,我想做的事

读研这一段让我拓宽了视野,也更清楚自己接下来要走的路。回到前端后,我想做三件事:把过去两年间空缺的前端知识系统补齐(从框架、工程化到性能,按路线图逐块回炉,并通过小项目/模板沉淀下来);尽快找到一份前端工作,回到“做了就能看到结果”的节奏里,把学习和产出重新拉回到可持续的闭环;同时也会持续输出前端内容,把博客当作长期复利,继续写一些能复用、能落地的工程化和项目实战经验。

真诚感谢路过的朋友读到这里。最后送给大家一句话:离开舒适区的意义,不是永远漂泊;而是让你带着更大的视野,更坚定地回到你真正喜欢的方向。 祝你新的一年也能走在自己想走的路上。

Read more

飞算 JavaAI 进阶实战:从代码生成到系统架构优化的全流程指南

飞算 JavaAI 进阶实战:从代码生成到系统架构优化的全流程指南

飞算 JavaAI 进阶实战:从代码生成到系统架构优化的全流程指南 在 Java 开发领域,开发者常常面临三重困境:重复性劳动消耗大量时间(如 CRUD 代码编写)、 legacy 代码维护成本高昂(“祖传代码” 难以理解)、新技术探索门槛高(框架迭代快,学习成本大)。飞算 JavaAI 作为专注于 Java 领域的智能开发助手,通过深度理解业务需求与技术栈特性,将这些痛点转化为开发效率的增长点。 前言 文章前两篇,从第一篇《飞算JavaAI:精准切中开发者痛点,专治“AI生成代码不可用、逻辑混乱”的顽疾》 到 第二篇《飞算 JavaAI:让 Java 开发效率飙升的智能助手,日常开发全场景应用指南》,带大家了解了飞算JavaAI插件的实际应用,这篇文章将在第一篇的基础上,更加详细的聊聊它! 在 Java 开发领域,开发者常常面临三重困境:

By Ne0inhk
Java SpringBoot+Vue3+MyBatis 宠物领养系统系统源码|前后端分离+MySQL数据库

Java SpringBoot+Vue3+MyBatis 宠物领养系统系统源码|前后端分离+MySQL数据库

摘要 随着社会经济的快速发展和人们生活水平的提高,宠物已成为许多家庭的重要成员。然而,流浪动物问题日益严重,传统的线下领养模式存在信息不对称、流程繁琐等问题。为解决这一问题,开发一套高效、便捷的宠物领养系统具有重要意义。该系统通过互联网技术整合宠物信息、领养申请和用户管理功能,为领养者和救助机构搭建沟通桥梁,提升领养效率。关键词:宠物领养、流浪动物、互联网技术、信息整合、领养效率。 本系统基于Java SpringBoot框架搭建后端服务,采用Vue3实现前端交互,结合MyBatis完成数据持久化操作,MySQL数据库存储系统数据。系统功能涵盖用户注册登录、宠物信息管理、领养申请处理、数据统计分析等模块。前后端分离的设计模式提升了系统的可维护性和扩展性,RESTful API接口规范确保数据传输的高效性。系统通过权限控制和数据加密保障用户信息安全,同时支持多条件查询和分页展示优化用户体验。关键词:SpringBoot、Vue3、MyBatis、MySQL、前后端分离、权限控制。 数据表设计 用户信息数据表 用户信息数据表存储系统注册用户的个人资料,注册时间通过函数自动生成,用

By Ne0inhk
JUC 核心前置:Java 内存模型与多线程核心八股

JUC 核心前置:Java 内存模型与多线程核心八股

1. 介绍Java的内存模型(JMM) JMM是多线程并发问题的一套规则,也就是在规定是多线程的环境下,线程怎们访问变量才会步出错这里要处理可见性、原子性、有序性 可见性:若线程A从CPU共享变量里拿到变量到自己的工作内存里修改变量后还没来得及把变量放回共享变量里,那么线程B在此时就看不到变量的更新,此时就要用volatitle关键字来约束、让整个流程结束后才能让其他线程访问这个变量 原子性:若线程AB同时执行i++这个操作,首先i++是先读i再加1再放回原本变量,当线程A已经把i=10更新为i =11了,可能线程B才把i更新为11这样结果就会出错,所以就需要synchronized 或lock锁来让只有一个线程结束后另一个线程才能操作,且中间不会被打断,提供了互斥访问 有序性:就是可能代码执行顺序有问题,在单线程时,我们常常初始化一个对象A,再把这个对象的引用给变量a。可在多线程时,为了编译速度,编译器或者cpu可能会改变你的代码执行顺序,可能会优先给变量a赋值A的引用,但A还没初始化好时,线程B就访问a,由于A还没有初始化完全就会报错,synchronized或者lock锁

By Ne0inhk
【Java ArrayList】从入门到精通:从概念,使用到扩容机制,一篇带你掌握Java动态数组核心

【Java ArrayList】从入门到精通:从概念,使用到扩容机制,一篇带你掌握Java动态数组核心

🎁个人主页:User_芊芊君子 🎉欢迎大家点赞👍评论📝收藏⭐文章 🔍系列专栏:Java.数据结构 【前言】 ArrayList 是 Java 集合框架(Java Collections Framework)中最常用的动态数组实现,它提供了灵活的容量管理、便捷的增删改查操作,广泛应用于日常开发中。本文将深入剖析 ArrayList 的底层结构、核心方法源码、性能特点及最佳实践,帮助读者彻底掌握这一基础数据结构。 文章目录: * 一、ArrayList的概念 * 二、ArrayList的使用 * 1.构造ArrayList * 1.1 无参构造方法 * 1. 2 带有初始容量的构造方法 * 1.3 用其他集合类构造ArrayList * 2.操作方法 * 2.1 boolean add(

By Ne0inhk