Hello! I’m looking for book recommendations for learning programming fundamentals.

To be clear, I’m not necessarily looking for a book on learning language(s), but rather, programming, theory I guess you might call it?

For example, I’ve been playing around a lot in my terminal writing bash scripts, and I just implemented my first function. Another example, I know the phrase “Object Oriented programming”, but have no idea what it means.

I learn well by doing, and I’ve learned a lot just writing scripts and reading about bash scripting, but I also realize there’s a lot about programming at a higher level that I know nothing about.

20 points

OOP was a 1990s thing that is still around but don’t worry about it too much at first.

The classic intro book is Structure and Interpretation of Computer Programs aka SICP. You can find it online with a web search. It will give you a good grounding in fundamentals. Then you can figure out what to pursue next.

permalink
report
reply
3 points

Found it. Thank you!

permalink
report
parent
reply
4 points

Some people who are self studying Structure and Interpretation of Computer Programs have been using a discord server to assist each other as needed. I realize that there are a number of people using Lemmy whi are very opposed to using discord over other options, but I don’t know of any other sustained forums focused on this book.

https://discord.gg/j2tCPpMq

permalink
report
parent
reply
16 points

https://teachyourselfcs.com/

Its a long path but one you can take at your own pace. Good luck

permalink
report
reply
11 points

If you are looking at learning CS in a more holistic manner, there’s Path to a free self-taught education in Computer Science!. It’s a list of courses, categorized by topics, which are exactly what a CS undergraduate would learn. It might feel daunting at first, but you can pick any interesting topic and dive in.

I especially recommend CS50P for beginners.

permalink
report
reply
7 points

Automate the Boring Stuff with Python is a good way to get many of the general foundations through a series of projects.

permalink
report
reply
6 points
*

‘Programming from the ground up’ the main idea of this one is to teach programming in a bottom up way, so very low level.

it’s mostly about teaching (linux) assembly to beginners, so in a way it is just learning a new language. But it’s mainly about understanding low level how a computer works, like registers, kernel calls, how function calls are handled, all for beginners. It’s really easy to pick up.

Knowing those fundamentals can go a long way in understanding other computing concepts.

Others that come to mind are :

  • Designing Data-Intensive Applications: The Big Ideas Behind Reliable, Scalable, and Maintainable Systems
  • A Philosophy of Software Design
  • Software Architecture: The Hard Parts"
permalink
report
reply

Programming

!programming@programming.dev

Create post

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person’s post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you’re posting long videos try to add in some form of tldr for those who don’t want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



Community stats

  • 3.1K

    Monthly active users

  • 893

    Posts

  • 7.7K

    Comments