My Developer Journey So Far: Wrong Turns, Real Lessons — Elias Song’s Story

My Developer Journey So Far: Wrong Turns, Real Lessons — Elias Song’s Story

37 110 170
calendar_today agoschedule9 min read

My Developer Journey So Far: Wrong Turns, Real Lessons — Elias Song’s Story

A CoderLegion Developer Story featuring Elias Song

Written by Elias Song

Edited by Mehadi Hasan, Community & Editorial Team at CoderLegion

If you ask me what has stayed with me most since I started programming, I can give you one answer:

The first time I saw "Hello World" appear in the terminal.

It wasn't an impressive program.

It wasn't a groundbreaking project.

But there was something about seeing those words appear on the screen that made programming feel real.

Since then, my journey has included ambitious ideas, wrong turns, an embarrassing competition experience, learning with AI, moments of self-doubt, and eventually a much simpler realization:

I don't want to learn technology just to impress people. I want to understand it because I genuinely love it.

This is my developer journey so far.


My First Step Into Programming

When I entered university, I chose Computer Science.

That was my first real introduction to programming.

During my freshman year, I had an idea for a product that I couldn't stop thinking about.

I spent a lot of time searching for useful school resources and trying to figure out whether different materials were actually what I needed.

Eventually, I thought:

Why not build a website that brings all these resources together?

The idea was to create a platform where students could find school resources and classwork in one place.

Students could share useful materials.

They could record information in built-in notes.

Those notes could be printed locally.

And I even imagined an AI feature that could summarize the information.

Most importantly, I wanted the website to be free and simple.

No email.

No phone number.

Just search for what you need, save it, and print it locally.

The idea kept coming back to me.

So eventually I thought:

"Just give it a try."

There was only one problem.

I was a beginner.

And I had no idea what technology stack I should choose.


Choosing My First Stack

After considering my options, I chose Python and Flask.

They seemed approachable, and I thought they would allow me to get a website running quickly.

Then reality arrived.

There were errors.

There were bugs.

There were things I didn't understand.

I spent a lot of time debugging.

But there was another important detail about this project.

Around 90% of it was done with the help of AI.

At the time, I had a very strong desire to finish the project quickly.

I thought I needed to get it working, put it online, and show it to people.

I imagined my friends seeing the website and being impressed.

Eventually, the website went live on the public internet.

I was incredibly excited.

I told my friends.

I told my parents.

It was online.

I had built something.

Or at least, that's what I thought.


Then Nobody Came

The website was live.

The visitor counter was ready.

And then...

Nothing happened.

The counter didn't move.

Day after day, there were almost no visitors.

I started looking for ways to get people to notice it.

I entered competitions.

My friends helped me promote the website.

We worked on polishing the project.

One friend helped with promotion through social media.

Another helped create a feedback form.

I still remember how much effort they put into helping me.

I imagined standing in front of the judges and confidently explaining the technology behind my project.

Then the competition day arrived.

And everything changed.


"Do You Have a Database?"

I stood in front of the judges with a friend and started introducing our website.

Then one judge interrupted us.

"Stop! I have a question!"

They asked:

"Do you have a database?"

Then:

"How did you upload all these resources and assignments to the website?"

I froze.

Database?

Of course we had one.

There was a SQLite database sitting on the server.

But I couldn't explain it properly.

The judge kept asking how we had uploaded the resources.

I said we used a script.

Then they asked how the script worked.

And eventually I admitted:

"We used AI to help write the scripts."

That was one of the most embarrassing moments of my programming journey.

The worst part wasn't that the project had problems.

The worst part was that I couldn't explain what I had built.


The Project Looked Better Than I Understood It

Looking back, the problem was obvious.

I had been focused on finishing.

I wanted features.

I wanted the project to look impressive.

I wanted people to see what I had built.

But I hadn't spent enough time understanding the foundation underneath it.

There was no proper concurrency handling.

There was no defensive programming.

There was no meaningful logging.

It was essentially basic CRUD.

And although I had a database, I didn't even know how to confidently explain it when someone asked me about it.

I had focused on building something that looked like a product.

I hadn't focused enough on becoming the person who understood the product.

That competition taught me a lesson that no tutorial could have taught me.

If you can't explain what you built, you don't really own it yet.


When Failure Started Feeling Personal

After the competition, I felt terrible.

It wasn't just disappointment in the project.

I started comparing myself with everyone around me.

Other students had good grades.

Some had club memberships.

Some had laboratory positions.

Others had competition medals.

I didn't have those things.

At home, the people who cared about me tried to guide me toward what they believed was the safer path.

Study hard.

Get a stable job.

Build a standard life.

Follow the path everyone understands.

And for a while, I questioned myself.

Maybe they were right.

Maybe I was wasting my time.

Maybe I should stop.

But eventually I came to a different conclusion.

I'd rather fail on my own path than succeed on someone else's.

That became an important turning point for me.


Stopping the Chase for Applause

Slowly, I stopped trying to prove myself.

Instead, I started documenting what I was learning.

I wrote about what I was studying.

I wrote about things I got wrong.

I wrote about things that confused me.

I wrote essays for people I had never met.

Before publishing something, I was always afraid that nobody would read it.

But people did.

Not necessarily thousands of people.

Sometimes just a few.

But they were real people.

And that mattered more than I expected.

I started realizing that learning didn't have to be a performance.

I could simply learn something because I wanted to understand it.


Rediscovering Why I Love Programming

One afternoon, I was sitting quietly in a library.

I opened my laptop and started writing some code.

There was no deadline.

No competition.

No audience.

No requirement to build a product.

No one was going to judge me.

I was just writing code.

I still don't completely know why I started writing that code that day.

But I know why I write now.

It reminded me of the first time I saw "Hello World" in the terminal.

Nothing impressive.

Nothing complicated.

And yet somehow meaningful.

That was when I started to understand that I genuinely enjoy technology.

Not just the recognition that can come from building something.

Not just the feeling of having a finished product.

The technology itself.


Finding a Community

Eventually, I started sharing my essays on a developer community called CoderLegion.

That gave me an opportunity to learn in public and interact with other developers.

Not everyone agreed with me.

And surprisingly, I started enjoying that.

I remember having a discussion with someone about raw pointers versus smart pointers.

We had different opinions.

But it didn't feel like an attack.

It felt like two people who genuinely loved technology looking at the same problem from different directions.

That experience changed the way I thought about developer communities.

A disagreement doesn't necessarily mean someone is against you.

Sometimes it simply means they have a different perspective.

And that can be valuable.

For me, that was one of the purest experiences I've had with technology.

It wasn't about winning.

It was about thinking.


What I Learned From Getting It Wrong

My first major project taught me something that I probably wouldn't have learned if everything had gone perfectly.

Building quickly isn't the same as understanding.

Using AI isn't the same as knowing how something works.

Getting something online isn't the same as building something well.

And receiving applause isn't the same as making progress.

AI was incredibly useful in helping me build that first project.

But I learned that the more important skill is being able to understand, question, debug, and explain what AI helps you create.

That lesson continues to influence how I learn today.


Learning in Public

Writing has become part of my learning process.

When I write about something, I have to organize my thoughts.

When someone disagrees with me, I have to reconsider my assumptions.

When someone asks a question I can't answer, I have something new to learn.

That's why I don't see writing as separate from programming.

For me, documenting my learning is part of learning itself.

My CoderLegion profile reflects much of what I'm currently interested in: Python, C++, backend development, AI, and learning.

I've also been writing about C++ topics such as smart pointers, STL, raw pointers, and the mistakes I've encountered while learning.

I'm still learning.

And I think that's an important part of my story.


I'm Still a Beginner in Many Ways

I haven't seen much of the world yet.

There are still many technologies I don't understand.

There are still problems I don't know how to solve.

I'm currently exploring areas such as machine learning and deep learning, while continuing to build my foundations in programming and backend development.

My journey is nowhere near finished.

Maybe that's the point.

I don't need to pretend that I've already figured everything out.

I just need to keep moving.


The Meaning Behind an Old Saying

There is an old saying from my country:

花有重开日,人无再少年

It can be roughly understood as:

Flowers may bloom again, but youth never returns.

I don't take that as a warning to hurry.

I take it as a reminder.

These years come only once.

So direction matters more than speed.

I don't need to rush toward someone else's definition of success.

I need to make sure I'm spending these years moving toward something I genuinely care about.


If You're a University Student Too

If you're also a university student, especially someone who feels behind other people, I hope you don't give up on your own path simply because someone else's path looks better.

You might not have the best grades.

You might not have the most impressive portfolio.

You might not win every competition.

You might build something with AI and later realize you don't understand it as well as you should.

You might fail.

I certainly have.

But failure doesn't have to be the end of the journey.

Sometimes it's the moment that forces you to ask what you actually want.

And sometimes that's more valuable than winning.


I'm Choosing My Own Path

When I look back at my first project, I don't feel proud of everything I did.

I made mistakes.

I relied too heavily on AI.

I cared too much about finishing quickly.

I built features without understanding the fundamentals deeply enough.

And I couldn't explain my own project when someone challenged me.

But I'm also glad it happened.

Because that failure forced me to slow down.

It pushed me toward learning instead of applause.

It encouraged me to document my journey.

It introduced me to people who see technology differently.

And it helped me understand why I actually enjoy programming.

I'm still learning.

I'm still making mistakes.

I'm still figuring things out.

But now, I'm spending my time on the path I chose.

I'd rather fail on my own path than succeed on someone else's.

And for now, that's enough.


About Elias Song

Elias Song, known as @elysianx on CoderLegion, is a tech explorer documenting their programming journey.

Based in Hong Kong, Elias is exploring Python, C++, backend development, and AI.

Their technical interests include:

  • Python
  • C++
  • FastAPI
  • Flask
  • Redis
  • Docker
  • Linux
  • LangChain
  • Git

They are currently exploring machine learning and deep learning.

Elias also writes about their experiences learning C++, including smart pointers, STL, raw pointers, and the mistakes and lessons they encounter along the way.

View Elias Song's full CoderLegion profile:
https://coderlegion.com/user/elysianx


About This Developer Story

Developer: Elias Song (@elysianx)

Series: CoderLegion Developer Stories

Written by: Elias Song

Edited by: Mehadi Hasan, Community & Editorial Team, CoderLegion

This Developer Story is based on Elias Song's personal experience learning programming, building their first project, facing failure, discovering the value of learning for themselves, and finding a stronger connection with technology through writing and community.

🔥 Join developers growing publicly
Share your knowledge, build in public, and grow your developer presence with a global community.

More Posts

Your Tech Stack Isn’t Your Ceiling. Your Story Is

Karol Modelski - Apr 9

Learning Cloud My Own Way

Ijay - Jul 8

MCP Is the USB-C of AI. So Why Are You Plugging Everything In?

Ken W. Algerverified - Jun 10

My Journey to Becoming a MERN Stack Developer (What I Learned So Far)

Mohammad Yasir - Jun 25, 2025

I Thought My Contact Form Was Working — It Wasn’t

JayCode - Apr 1
chevron_left
12.4k Points317 Badges
Australiacoderlegion.com
76Posts
564Comments
299Connections
I’m a versatile software developer and tech generalist with a strong focus on building, analyzing, a... Show more

Related Jobs

View all jobs →

Commenters (This Week)

2 comments
1 comment
1 comment

Contribute meaningful comments to climb the leaderboard and earn badges!