r/learnprogramming 1d 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!

52 Upvotes

67 comments sorted by

View all comments

1

u/David_D_Jack_Builds 1d ago

The skills you listed (architecture, system design, networking, patterns) are all real — but trying to learn them all in parallel is a trap. Most junior devs burn 6-12 months on "fundamentals" before building anything.

Here's the order I'd actually learn them in, based on what gets you hired vs. what makes you look smart on Twitter:

Tier 1 — Learn first (blocks you from getting hired)

  • Git (branching, PRs, merge conflicts) — non-negotiable, takes 1 weekend
  • Reading other people's code without panic — pick 3 open-source projects, read their READMEs, read 1 file per day
  • One debugging technique (print debugging, then Chrome DevTools, then a real debugger)
  • Basic SQL (you'll use it every day)

Tier 2 — Learn when you have a real project

  • System design basics (caching, load balancing, CDNs) — learn when you deploy your first app
  • Networking (HTTP, DNS, what a request actually does) — learn when your first API call breaks
  • Architecture patterns (MVC, REST) — learn when your first codebase gets messy

Tier 3 — Learn when you're applying to mid-level roles

  • Design patterns (most are overkill for junior work)
  • Distributed systems (you'll learn on the job)
  • Advanced networking (you'll learn on the job)

The mistake I see: people spend 6 months reading "Clean Code" before shipping anything. Ship a small project first, then read about the patterns you actually needed.

What kind of app are you building? The "extra knowledge" you need depends entirely on that.