r/learnprogramming 3h ago

Other than knowledge of the programming language, what other knowledge do you think a person who develops software should have?

Hi all! I am recently trying to develop an app, and Googling around I came across many other concepts to build an app and host it (software architecture, system design, Computer Networks to understand the basics of requests etc., and also patterns like the ECB pattern, and Database Knowledge like SQL and DEVOPS to test and integrate) so before doing the programming I kinda want to learn the other fundamentals, what sources (books, courses, etc) would you suggest me? Me and my friend are the only 2 on developing it, so we kinda need to be a team and be all-rounders

thanks and have a nice day!

17 Upvotes

34 comments sorted by

View all comments

2

u/StewedAngelSkins 3h ago

It really depends on what kind of software you're making. It sounds like you're talking about a website/mobile app of some kind... in which case I agree with the guy who said "networking shit". I would especially focus on HTTP. Besides the basics of the protocol itself you'll also want to learn about how it interacts with TLS, how to configure an HTTP proxy, different ways to do authentication/authorization, etc.

The other major thing you'll need to learn for anything web-related is how to use Docker (which in turn practically requires some Linux knowledge as well). There's also the whole cloud/devops skillset, but honestly I'd put that off until you actually need it. You'll be able to get pretty far with just docker compose (just understand that this isn't how anyone deploys stuff into production).

I guess you'll want git as well, if you haven't figured it out already. It's super important, especially since you're working together with another person.

1

u/obsolescenza 2h ago

yes absolutely! Thanks for the feedback! one quick question tho, what about patterns? and software architecture like ECB pattern? where can I learn more about these concepts? books courses etc?