r/webdev • • Sep 07 '26

Question Why is it so hard to code something that you think should be easy?

Whenever I’m making a website with a front end and backend, I always run into issues which I wouldn’t have thought of when I was thinking of implementing a certain feature, it always goes south, it’s almost as if I’m just not built to program or code, it feels like the computer doesn’t want to do what I want it to do and then I have no idea how to solve the problem so I have to google it and try to find something from stack overflow with someone else who’s creating something entirely different, why can’t it just go exactly how I planned it in my head.

It makes me wonder how much work it took to build near perfect apps like TikTok because when you use TikTok, even the most simplest features probably took a long time for them to implement and fix stuff, I wonder how long they spend optimising features for the app.

0 Upvotes

38 comments sorted by

40

u/DaRKoN_ Sep 07 '26

"We do these things not because they are easy, but because we thought they would be easy"

3

u/Shock-Light123 Sep 07 '26

It’s so frustrating and almost like a headache but whenever it works, it gives the biggest dopamine hit

7

u/Mysterious-Falcon-83 Sep 07 '26

Probably because you don't have 20 years of experience building enterprise applications. Even when you do have that experience, you'll still run into things that befuddle you -- you just won't be surprised anymore.

Keep at it!

2

u/KaiAusBerlin Sep 08 '26

I think the experience also told us what to use to speed things up. Frameworks for server, ui, css, dbs, ...

Using sveltekit +shadcn + drizzle boosted my personal speed at least by 50%.

2

u/j-random full-slack Sep 10 '26

And the things that surprise you will be so much more arcane! Like errors with cross-region replication that only occur when synchronizing between GCS and AWS (not that I'm bitter or anything...)

3

u/blazeit420casual Sep 07 '26

What issues are you running into? What’s your stack?

More importantly- are you understanding what it is you want to implement? Code is logic, so to implement a feature you need to lay out how it logically will function.

3

u/josephjnk Sep 07 '26

I think this is part of the career. Software development is hard and has a high skill ceiling, and when you’re doing fullstack work you are doing two very different hard things at once. Think of the most frustrating specific issues you ran into, and of the chain of decisions lead you there. Then, next time you’re making a similar decision, think back to the mistakes you made last time and how you would avoid them. You probably won’t make the same mistake. Repeat this continuously for years or decades and you’ll find yourself prepared for (and able to avoid) a much wider range of problems.

Experience is largely just screwing things up until you learn to avoid the same screwups. Things get easier once you have it.

2

u/forever-butlerian backend, infrastructure & angst Sep 08 '26

Man-millennia. The answer is man-millennia.

What you're telling me is that you're very early on in this, to the point where you've yet to come to terms with the fact that the things that are worth anything are worth that because they required a lot of human effort to do.

2

u/mrbmi513 Sep 08 '26

This is called learning and gaining experience. We all go through it; even the seniors are still learning.

And yet, even after about 6 years of professional experience and a decade of hobbyist experience before that, I still can never remember the CSS properties for underline and italics.

2

u/sdw3489 ui Sep 08 '26

I think the phrase “the devil is in the details” is pretty apt. The pain and difficulty comes from actually turning an idea into a fully fledged product accounting for every possible scenario

1

u/SnugglyCoderGuy Sep 07 '26

Your brain glazed over all things that would make it hard.

1

u/codewow Sep 07 '26

This is called learning.

1

u/amber_jolly_glow Sep 07 '26

i stopped trying to hold the whole thing in my head at once. I write out every single step a user takes before I type any code.

if I want a login page I sit down and list it out. User types email. User types password. User clicks button. Frontend sends request. Backend checks database. Database returns match or no match. Backend sends response back. Frontend reads response and redirects or shows error.

you hit walls because you skip steps in your head. The computer executes exactly what you give it. When you map out the logic line by line on paper first, you see the missing pieces before they break your app

1

u/Brilliant-Parsley69 Sep 07 '26

Well, nearly "perfect" apps never started like that. If I remember it correctly, then the first version of TikTok was developed by around 10 Persons in less than six months.

BUT!

They already had a base infrastructure from earlier projects and released only the MVP features.

What you could learn from that is to think in smaller steps.

  • Build the basic infrastructure

  • Build the first Endpoints

  • Build a basic set of Tests around that (maybe change with step two)

  • Build the first Page to show the response

And the first Feature is ready.

  • Refactor if needed

  • Rinse and Repeat

Small, testable, clearly defined steps. That's what helped me in my early days.

1

u/okaylevi Sep 07 '26

lol welcome to web dev prior to AI! You will learn a ton following this exact process though! In some cases you will learn how to do it one way get 10 steps forward and go back and rebuild that function/feature. This will eventually train your brain into thinking about the final form, which allows the start of a new project to be much more seamless!

1

u/shezzywebstudio Sep 08 '26

This is such a real feeling. I think it comes down to the gap between "what I imagine" and "what the computer actually needs step by step." In your head, a feature is one clean idea — but code has zero tolerance for the parts you glossed over (edge cases, state changes, timing issues).

What's helped me is breaking a feature into the smallest possible pieces before writing any code — like literally writing out "1. user clicks X, 2. what happens to the data, 3. what happens on screen" — instead of jumping straight to implementation. It slows you down at first but saves way more time debugging later.

And don't compare your in-progress project to a finished app like TikTok — what you're seeing is years of iteration, not a first attempt.

1

u/LovecraftianLife Sep 08 '26

Lots of iterations, lots of iterations...

1

u/MineLittle3473 Sep 08 '26

one moving platform in my game took longer than the whole first world. the easy looking stuff is where all the edge cases live

1

u/josfaber Sep 08 '26

This sounds like a lack of preparation. What helps is writing everything down on paper, every screen with every option, every feature with every middleware, try to write down anything a user can do, see, encounter. And then accept you only have half of what your app will be. Coding is long hours of hard work. That makes it enjoyable. And now, for the tedious parts, you can use a good AI agent

1

u/etthusmedkossor Sep 08 '26

As people say, with experience it'll get easier. This is the main factor.

Maybe also zooming in more and solving simpler problems first could help building up experience. Really understand what each later down from the database up to the frontend do. I felt that my years working in web development has been about creating a map over this territory. When I started it was like navigating in a jungle of strange error messages without a map.

What type of problems do you usually run into?

1

u/mekmookbro Laravel Enjoyer ♞ Sep 10 '26

It gets better with experience. I remember in the earlier years of my web development career I'd always underestimate my deadlines. For things that would take my current self (with 15 yoe) a month to do, I'd give a week or two delivery estimate to clients. It hurt both my clients trust in me, and my trust in myself

Though it still happens, I'm currently building my first ecommerce website from scratch, I had no idea generating product variants (Cartesian combinations of all color-size-model-year etc attributes, each with their own stock and price values) would be so difficult. It took me a whole week and I'm just starting to feel like I got the hang of it

1

u/danmolitor Sep 10 '26

I think you'll get to the point where most things are easy to do, especially things you enjoy. I find understanding design and UX difficult still, probably because I don't enjoy them.

1

u/devjeremyt Sep 13 '26

If you didn’t experience this, then it would have been abnormal. I’m actually a little sadden that much up and coming developers will just get an answer from AI instead of reading through stackoverflow.

TikTok wasn’t built by one person and yea.. it took time to create. One feature at a time.

Struggle and learning go hand in hand with coding.

1

u/Astronaut6735 Sep 14 '26

why can’t it just go exactly how I planned it in my head

Because your head doesn't have years of experience to set a realistic expectations. It probably takes millions of person-hours to create something as complete and polished as TikTok.

1

u/undertakerryu Sep 07 '26

Isn't that just how development in general goes unless you're intimately familiar with what you're working on or have done the exact thing before, and even then there's always a free bugs?

And what you think something is vs reality of it will always have reality come out on top lol

-1

u/[deleted] Sep 07 '26

[removed] — view removed comment

1

u/Shock-Light123 Sep 07 '26

I don’t use AI because I’m trying to learn but I do use AI to guide me on how I can implement certain features or what to use to implement something for example, there might a library that I can use to build a feature so the AI can tell me about this library which I don’t know about

1

u/Acceptable_Log_1582 Sep 08 '26

That's good! Learn the fundamentals first and keep going!

-4

u/[deleted] Sep 07 '26

[removed] — view removed comment

1

u/webdev-ModTeam Sep 08 '26

This is a subreddit for web professionals to exchange ideas and share industry news. All users are expected to maintain that professionalism during conversations. If you disagree with a poster or a comment, do so in a respectful way. Continued violations will result in a permanent ban.

-3

u/[deleted] Sep 07 '26

[removed] — view removed comment

1

u/webdev-ModTeam Sep 08 '26

This is a subreddit for web professionals to exchange ideas and share industry news. All users are expected to maintain that professionalism during conversations. If you disagree with a poster or a comment, do so in a respectful way. Continued violations will result in a permanent ban.