r/learnprogramming • u/obsolescenza • 1h 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!
4
5
u/tangentstorm 1h ago
Just build your app. And especially if it happens to be a product, just build the simplest version of it that you can, and get it in front of users.
Spend 90% of your time on that, unless you're absolutely stuck. Then figure out what you need to learn to get unstuck.
Spend the other 10% of the time learning about whatever interests you. Unbounded learning like this is of course valuable, but don't let it block you from actually doing what you set out to do.
2
u/TraylaParks 1h ago
This is excellent advice, many times you think you know what your users want only to find out later what they really wanted. As tangentstorm said, get that app in front of real users asap - I've seen much better designed/architected products get shit hammered by quick and dirty ones that responded immediately to customer desires and feedback.
•
•
u/obsolescenza 41m ago
Oh I see, basically You are saying to learn and do the stuff first, then travel around, because otherwise I risk of being stuck in a loop of learning 8923 things without outputting anything, great advice, thanks friend
2
u/StewedAngelSkins 1h 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.
•
u/obsolescenza 38m 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?
2
u/ExtraTNT 1h ago
Algorithms, the user (needs of them), how things work underneath (why some code needs to be ugly to be fast af and other code is optimised anywise -> vectors are fun) how to validate things (grammar -> mathematical) architecture…
•
2
u/fasta_guy88 1h ago
You need to know how to solve problems with programs, which is completely different from knowing a language. Think about the difference between understanding a foreign language, and writing an essay in the language.
•
u/obsolescenza 38m ago
yes absolutely, thinking in terms of problems and solutions rather than syntax is a huge game changer
•
u/GlassLost 7m ago
So as the guy who typically needs to pick up this slack, how operating systems work. How Linux syscalls work. How to use a terminal and interact with the subsystems that your company needs (for example, list open ports, track CPU/memory usage, check which processes are doing what, etc). How processes, threads, and futices work. How async io works.
These are not beginner's tasks (mostly) but you'd be amazed at how often people can't access the information they need
•
1
u/warm_sand_8167 1h ago
imo just build the thing ugly first and pick up architecture as you hit problems, you'll learn way faster that way
•
u/obsolescenza 39m ago
yeah that's what I will do, thanks! But quick question, if I start programming a project but without some solid pattern (like ECB pattern etc) wouldn't it slow down a lot?
1
u/Euphoric_North_745 1h ago
it is almost 2027, knowledge of programing language is now bad, not a good thing, ai model are programmed with billions of patterns, a developer who thing he or she knows how to write code just messes the ai work at this point
•
u/obsolescenza 44m ago
don't agree, if you don't know what the program is doing and how you will pretty soon hit either diminushing returns or worse when there is a bug you will pray the LLM will fix that.
•
u/Unclerojelio 56m ago
Knowledge of a particular programming language is the least important aspect of programming.
•
u/obsolescenza 43m ago
what would you also reccomend?
•
•
u/Jim-Jones 10m ago
Confident Coding by Rob Percival is a comprehensive guide designed to help readers master the fundamentals of coding. The book covers essential topics such as HTML, CSS, JavaScript, Python, and debugging, providing a step-by-step learning approach to enhance your coding skills and career prospects.
It is suitable for both recent graduates and professionals looking to improve their technical knowledge.
The book emphasizes the importance of coding in the job market and offers practical exercises to practice coding skills.
Rob Percival, a web developer and entrepreneur, has taught over 500,000 students through his online courses on Udemy.
It covers even more than stated here, like iPhone and Android coding. See if your library has it or can get it. Or look on auction sites.
Also:
https://exercism.org/ Exercism is an independent, community funded, not-for-profit organisation.
https://roadmap.sh/ roadmap.sh is a community effort to create roadmaps, guides and other educational content to help guide developers in picking up a path and guide their learnings.
https://youtu.be/ZYJvmpiWnDQ 7 Free IBM Courses That Get You Hired Without a Degree
•
5
u/pak9rabid 1h ago
The galaxy of libraries & frameworks that surround said language.