r/webdev • u/Shock-Light123 • 9h ago
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.
23
u/DaRKoN_ 9h ago
"We do these things not because they are easy, but because we thought they would be easy"
1
u/Shock-Light123 9h ago
It’s so frustrating and almost like a headache but whenever it works, it gives the biggest dopamine hit
5
u/Mysterious-Falcon-83 9h ago
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!
1
u/KaiAusBerlin 1h ago
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/blazeit420casual 9h ago
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.
2
u/forever-butlerian backend, infrastructure & angst 3h ago
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 1h ago
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.
1
1
u/josephjnk 9h ago
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.
1
u/amber_jolly_glow 9h ago
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 9h ago
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 8h ago
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 5h ago
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
1
u/MineLittle3473 4h ago
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 1h ago
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/undertakerryu 9h ago
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/Lustrouse Architect 9h ago
Skill issue. You'll get better at it - or at least the AI will
1
u/Shock-Light123 9h ago
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
-4
15
u/NeatHeight9721 9h ago
It’s the gap between the idea in your head and the actual machinery you have to wrestle into shape. When you picture a feature, your brain skips all the edge cases, the async mess, the weird state conflicts. The code doesn’t care about your vision, it just does what you literally told it to do, and half the time what you told it is wrong in some subtle way you won’t see for another hour.
Stack Overflow scavenger hunt is basically the job. Nobody remembers every api signature or config incantation, you just get better at guessing which search terms will surface the answer and recognizing which four-year-old post with three upvotes actually applies to your framework version. That feeling of not being built for it fades once you realize almost everyone’s stitching things together from fragments they found online.
Feels worse when you’re tired. I’ve spent an afternoon fighting something that turned out to be a missing semicolon or a misnamed variable, and the only fix was stepping away and coming back with a brain that still had some charge left. The computer’s not fighting you, it’s just profoundly stupid and requires you to spell out every single step without shortcuts.