Written during my senior year, while considering my career path after graduation.
I often find myself applying what I’ve learned in CS courses to my life. We all move toward certain goals or values we wish to reach in life. My ultimate goal — my objective function — has not yet been clearly defined, and it will probably continue to change. So how can I best structure my career to reach that ultimate goal from where I currently stand?
Depending on what I value most, I can define the objective function I want to optimize in life and the loss function I want to minimize. From there, I can determine what my next step should be. For example, if I set money as my ultimate goal, then I would explore a career path that maximizes financial gain. I would analyze the prerequisites for success in that career and compare them with my current situation, measuring the “error” between my goals and reality, and taking steps to reduce that gap. If stability is what I value most, then I would look for ways to sustain a stable career over the long term. But even “stability” can mean many different things, so it’s important to define it sharply and concretely. This involves determining which parameters best describe my current situation and understanding how they interact with one another. In the end, the key to building a meaningful career is deciding which values I choose to weight more heavily. That’s why I believe the first step is to understand who I am and what I truly care about.
Finding the optimal path toward a goal can be seen as a graph search problem. In such a graph, we can define a search problem that finds a path from one node to another, like BFS or DFS. Similarly, a career path can also be viewed as a search problem. One can become a specialist, delving deeply into a single direction, or a generalist, exploring a broader range of experiences. Should I focus first on depth or breadth? At this stage of my life, is it better to go deep or to go wide?
This dilemma can also be interpreted through the lens of reinforcement learning — specifically, the balance between exploration and exploitation. Choosing the next action based on what I already know is exploitation, while seeking new information is exploration. In everyday terms, choosing a favorite restaurant I already know is good would be exploitation, while trying an unknown one to discover something new would be exploration. There’s always a trade-off between the two, and it’s important to make that choice wisely depending on the situation.
Now, as I approach graduation, the weight of these choices feels heavier than ever. I constantly ask myself what the best decision might be right now. Should I dig deeper into my current area of interest, or explore a few different paths? Should my decisions be shaped by my past experiences, my surroundings, and the culture I belong to — or should I break away from that inertia and venture into an unfamiliar world? Every choice involves trade-offs. There are countless examples of people who’ve gone before me, but their circumstances differ from mine, and in the end, it all depends on me.
When it comes to choices, I don’t believe it’s possible to know in the moment whether a decision is “right.” There are no absolute answers in life. It’s up to me to make each decision the right one in hindsight. If I can narrow down my options and choose among the top candidates, I’d say that’s already a pretty good decision. I often compare this process to Beam Search or Top-K Sampling in AI. So it’s wise to gather information in advance and prune the branches early — to prepare, rather than panic, when a decision point arrives. Of course, unexpected paths can also lead me to new experiences and values I couldn’t have imagined. This way of thinking feels similar to approximating an intractable problem — life itself being a problem too complex to solve exactly.
Even with all this reflection, life often flows in ways I don’t expect. Computer Science offers clarity and proof — but life does not, and that’s what makes it difficult.
나는 CS 과목에서 배운 내용들을 내 인생에 적용해보곤 한다. 우리는 자신의 인생에서 도달하고자 하는 목표 또는 가치를 향해 나아간다. 내 인생의 최종 goal, objective function은 아직 명료하게 설정되지 않았다. 아마 계속해서 바뀔 것이다. 현재의 상태에서 내 최종 goal에 도달하기 위한 커리어를 어떻게 잘 설정할 수 있을까?
나라는 사람이 어떠한 가치를 중요하게 여기는가에 따라서 내 인생에서 최적화하고자 하는 objective function을 정의할 수 있다. 그리고 최소화하고자 하는 loss function을 정의할 수 있다. 그러면 내가 다음 스텝으로 해야 할 일을 결정할 수 있다.
예를 들어 내가 돈이라는 물질적인 가치를 인생의 최종 목표로 삼는다면, 돈을 최대로 벌 수 있는 커리어 패스를 탐색한다. 그리고 그 커리어를 성공적으로 밟아 나가기 위한 필요 조건과 현재 내 상황을 비교 분석한다. 내 목표와 현 상황의 오차를 분석하여 이를 줄이기 위한 방법을 실행한다. 안정성이라는 가치를 우선으로 한다면, 안정적인 커리어를 오랫동안 유지하는 방법을 알아본다. 또 ‘안정성’이라는 것은 다양한 의미로 사용될 수 있으므로 명확하게 구체화하는 것이 필요하다. 이는 현재 나의 상황을 어떠한 파라미터들로 수치화할 것인가와도 관련되어 있으며, 복합적으로 작용할 것이다.
즉, 자신의 커리어를 쌓아 나감에 있어서 가장 중요한 것은 내가 어떠한 가치에 가중치를 부여할 것인지이다. 따라서 내가 어떠한 사람인지, 나의 취향을 파악하는 것이 우선이라 생각한다.
목표에 도달하기 위한 최적의 경로를 찾는 것은 graph의 search problem으로 바라볼 수 있다. 커리어 패스 또한 search problem으로 바라볼 수 있다. 한 방향으로 전문성을 쌓아 나가는 Specialist가 될 수도, 넓고 얕게 커리어를 쌓아 Generalist가 될 수도 있다. 우선 한 방향을 정해서 깊이를 우선으로 행동할 것인가, 아직 시간이 많으니 넓게 경험하고 탐색해볼 것인가? 현 시점의 나는 깊이가 먼저인가, 넓이가 먼저인가?
이 고민은 Reinforcement Learning에서의 exploration과 exploitation의 딜레마로도 해석할 수 있다. 알고 있는 정보를 이용하여 다음 action을 선택하는 것이 exploitation, 더 많은 정보를 수집하는 것이 exploration이다. 비유하자면 이미 잘 아는 맛있는 음식점 중에서 골라 가는 것이 exploitation, 새로운 미지의 음식점에 방문하여 정보를 얻는 것이 exploration인 셈이다. 이 둘 사이에는 trade-off가 존재하고, 상황에 따라 적절히 선택해야 할 것이다.
졸업을 앞둔 지금은 선택의 무게감이 있기에, 현 상황에서 어떠한 선택이 최선인지에 대해 끊임없이 고민하게 된다. 관심 분야를 확고히 정해 더 파고 들어볼까, 혹은 조금 더 다른 길들을 접해볼까. 내가 지금까지 살아온 인생과, 내가 속한 집단과 환경, 문화에 따라서 선택할 것인가 또는 지금까지의 관성을 벗어나 새로운 미지의 세계를 경험해볼 것인가?
무엇이든 trade-off가 있을 것이고 먼저 앞서나간 수많은 사람들의 사례들이 있지만, 나와 상황이 다르고 나 하기 나름이기 때문에 결국은 내 선택이다.
선택에 대해서 나는 해당 선택이 정답이었는지 현 시점에서는 판단할 수 없다고 여긴다. 인생에는 정답이 없다. 그리고 선택한 후에 이를 최고의 선택으로 만드는 것은 내 몫이다. 따라서 소거법으로 가지치기를 한 후에 상위 후보 중에서 선택을 내린다면 꽤나 잘 선택한 것이다. 나는 이것을 Beam search 또는 Top-K sampling으로 비유해 생각하곤 한다.
그러므로 현재 상태에서 주변의 정보를 수집하여 가지치기를 미리 잘 하는 것은 현명하다. 선택의 순간이 왔을 때 당황하고 무작위로 선택하는 것이 아니라, 한 발 더 앞에서 고민하고 준비할 수 있다. 물론 생각하지 못했던 예상 밖의 길이 나를 새로운 경험과 가치로 인도할 수도 있다. 이러한 사고는 마치 정확한 값을 계산하기 어려운 “인생”이라는 문제를 approximation 하는 것과 비슷하다고 생각한다.
이렇게 끊임없이 고민해도, 뜻하지 않은 대로 흘러갈 수 있는 게 인생이다. CS는 명료하게 증명 가능하지만, 인생은 그렇지가 않아서 어렵다.