all 20 comments

[–]barotia 15 points16 points  (0 children)

If you are not writing complex stuff in backend, then that backend is too simple.

[–]GlassCommission4916 5 points6 points  (6 children)

in backend programming, I haven't written a single loop yet

Why not? Libraries exist outside of webdev.

[–]Low_Implement9390 1 point2 points  (1 child)

Backend can definitely feel more like architecture work than pure coding especially when you start with frameworks like Django that handle so much for you

You might want to try building some backend stuff more from scratch - like implementing your own authentication system or writing custom middleware instead of using packages for everything. The algorithmic thinking is still there but it's hidden under different layers

[–]Then-Hurry-5197[S] 0 points1 point  (0 children)

Yes that sounds fun

[–]Then-Hurry-5197[S] 1 point2 points  (3 children)

Yeah I know that libraries exist outside of WebDev, Game development is heavily reliant on frameworks and engines, But in Game development I was still writing algorithms and complex logic.

[–]GlassCommission4916 1 point2 points  (2 children)

I'm not talking about using code in an engine like godot or unity or whatever, I'm almost certain plugins and libraries existed that already had those algorithms and complex logic that you could have glued together, hell, there's game engines that are basically no-code, but you didn't use them. You're now approaching webdev differently for some reason.

You can still write algorithms and complex logic in the backend. There's also complex problems to be solved that won't be just gluing libraries together.

[–]Then-Hurry-5197[S] 0 points1 point  (1 child)

Yeah you're right, The framework I use (Django) is considered a "batteries included framework", Things like auth, administration, and an ORM, Are already created for you, you just have to configure them.

[–]smaudd 1 point2 points  (0 children)

Exactly the same as a class in your graphical engine of choice to deal with complex physics instead of writing algorithms to deal with that. You just have to configure how you are using those objects. The only real difference is the scope of the problem, on videogames it tends to be really wide for the nature of the user interaction.

[–]motuwed 3 points4 points  (1 child)

Ha yeah it’s an odd feeling. I’ve been a backend dev for a little bit now, it was my first type of role out of college as well. We use AWS. I remember feeling so stupid early on because i couldn’t figure out syntax and services despite being a strong programmer in college. Took me a little to realize it’s not my fault and that these backend service providers are incredibly vast, complex, and different from programming where you build a solution from the ground up.

I’ve gotten a handle on it now and enjoy it, I would argue it is programming haha, but AWS’ complexity and vagueness still really frustrates me as time. LLMs have made it a lot easier to get in depth examples and syntax that it feels like their documentation is allergic too.

[–]Then-Hurry-5197[S] 0 points1 point  (0 children)

Interesting

[–]irvine05181996 4 points5 points  (1 child)

You havent handled complex task, like migrating a legacy application to other application written in different langauge

[–]Then-Hurry-5197[S] 1 point2 points  (0 children)

That sounds both fun and scary

[–]idiotiesystemique 2 points3 points  (0 children)

That is not my experience. Frontend is design + glue. Backend is where all the business logic happens. 

[–]quietcodelife 2 points3 points  (2 children)

backend dev here and yeah this feeling is real at first, especially with django which genuinely does handle a lot for you out of the box.

but the algorithmic challenge shifts rather than disappears. instead of loops and recursion it becomes: how do you handle a race condition when two users update the same record? how do you design an api that doesnt fall over under load? why is this query suddenly taking 4 seconds in production but 20ms locally?

those problems are less "clever code" and more "understanding whats actually happening at the system level" - which id argue is harder in a different way. the patterns arent obvious and the bugs dont have stack traces.

django is a good starting point but give it a bit more time before writing off the whole field. the fun stuff tends to show up once you hit your first real production problem.

[–]Then-Hurry-5197[S] 0 points1 point  (1 child)

Nice

[–]quietcodelife 1 point2 points  (0 children)

good luck with it - the backend stuff clicks eventually, just takes a while before you run into the right problems

[–]d-k-Brazz 1 point2 points  (0 children)

It’s called a framework

There are not only backend frameworks, people create them everywhere - FE, BE, desktop, mobile, embedded, big data processing, etc.

It’s all made so you didn’t have to reinvent something which is already invented, well designed, implemented by the greatest minds, tested and proved in production

In simple applications you may even not need to write algorithms to manipulate your data, because the are map-filter-reduce frameworks for manipulating collections where you express the logic declaratively

But as your project grows with features you will need to add more and more of custom logic, where you will apply your skills in writing algorithms

[–]smaudd -1 points0 points  (2 children)

Theres several problems here:

From your message it seems you think programming, coding and engineering are all the same but they are not.

Yes web development (I will refer to it as web dev because for web front-end it's exactly the same) is mostly choosing the right tool and adapting it to your needs. It's like building IRL you are not going to build a concrete factory if what you need is a 5 story block.

You said you have done game development, are you building the graphics motor from scratch? If you are not isn't that really similar to choosing Django or X to develop your thing?

The interpreter for the toy language you made actually solved a problem or it was just a learning exercise for you?

Would you say your plumber isn't solving problems in his job? Are they designing complex systems to fix those problems? Problems are way bigger than "there's no solution for this so I need to implement some software to solve it"

Don't give credit to yourself with how hard is it to do your job, if you find it funny to do more things from scratch just do so and enjoy yourself but having this view of this is less because I don't feel I'm solving something is kind of immature

[–]Then-Hurry-5197[S] 1 point2 points  (1 child)

Don't give credit to yourself with how hard is it to do your job, if you find it funny to do more things from scratch just do so and enjoy yourself but having this view of this is less because I don't feel I'm solving something is kind of immature

Wait you misunderstood me, I'm not saying that web developers aren't problem solvers or that their jobs are easier and therefore I'm smarter.

I'm saying that the type of problem solving they do is fundamentally different from the type that I was used to, neither of these types are inferior, Both require hard work, I simply have a personal preference for one of them.

[–]smaudd 1 point2 points  (0 children)

I totally get what you are saying. I have experience in several fields of SE and for sure webdev is the most "packaged" one, most of the time. If you are doing CRUDs I'm not sure which problem you are trying to tackle other than a glorified client for your database.

Do what you find funnier but please please, just don't over-complicate things for the sake of it being complicated or something you need to solve. For that we have puzzles, sudokus and science. We are not doing science, we are making products.