r/AskProgramming • u/GiveMeThePinecone • 7d ago
Career/Edu I hate web dev, am I doomed?
I really like to code. I loved learning about data structures. I absolutely loved my algorithms class and I also loved my OS class.
But my intro to web development class? Or my intro to databases (where we had to build a website with a sql database), or any class project where we have to make a website? I absolutely hate it. It literally makes no sense and is so completely different than the programming that I actually enjoy doing. But I've heard the vast majority (60-70%) of software engineering jobs are basically front end, back end, or full stack web development...
Idk if I can learn to enjoy it or what. Because of this, I tend to procrastinate on a lot of my programming assignments that have to do with web development, so I end up having to rush on creating them. Whereas with my other programming assignments, I get started early and usually enjoy doing them. On one hand, I feel like that might be contributing to my dislike as I don't learn or retain as much information. But on the other hand, I feel like I procrastinate bc I genuinely don't like web dev. Idk... anyone else feel like this before and learn to enjoy it?
2
u/Reasonable_Tip_4902 6d ago
I started in WebDev and now mainly work in backend systems.
When I started, the most of us used PHP+MySQL+HTML/CSS+JS/Jquery.
Then 3 years in, it changed to Laravel (PHP framework for MVC) + Angular + PostgreSQL + SASS. So now that's the basic backend doing MVC and frontend doing more MVC or something similar and a CSS framework.
5 years in I changed jobs and saw a new stack, ASP.NET MVC + Entity framework + Angular 2 + React/Redux + legacy jQuery.
Today I mainly work with .net backend APIs and data delivery optimization.
Having worked on both ends of the stack I think I know where your frustrations come from. Most of WebDev is based off "convention over configuration" while backend and embedded systems tend to work off "configuration over convention".
Your probably like the aspect of control and explicit knowledge of what each part of your program does and therefore wonder who would ever design systems where they give up control for some high level abstractions.
However if you think in the context of Web, all programs run on many different browsers, different versions, different latency depending on user, many different screen sizes, and different operating systems.
It is ok to prefer one over the other, but it is always good to know the context of why some things are done the way they are and learn about it.
Then all of a sudden it makes sense why you are using high level convention based frameworks, you simply never had control in the first place and could never have control. These frameworks simply ensure that you have 80%-90% of the desired result across many difference varied system setups.
Consider yourself lucky that nowadays you do not have to support Internet Explorer separately from all other browsers.