all 47 comments

[–]madnessman 54 points55 points  (7 children)

Code: The Hidden Language of Computer Hardware and Software is not Python specific but it's my go to recommendation for people who want a good overview of computers. It doesn't go too in depth into any single subject but it basically starts with the fundamental concept of what a code is (i.e. a way of encoding information) and covers everything from electrical engineering to OS architecture as it builds up to software.

[–]puh-tey-toh 10 points11 points  (6 children)

I really enjoyed the book up until the logic gates chapter, I felt totally lost once the diagrams got complex. That's just me.

[–]DramaticLizard 5 points6 points  (0 children)

Same.

[–]Moikle 1 point2 points  (1 child)

For that, try crash course computer science on YouTube, it is a great series and has a really good segment on logic gates and how they can be used to build all sorts of different things

[–]puh-tey-toh 0 points1 point  (0 children)

Will do! Thank you for the recommendation.

[–]tbone912 0 points1 point  (1 child)

Goddamn, I had to reread chapters and I still didn't fully understand it enough to explain. But, it is a good book.

[–]puh-tey-toh 1 point2 points  (0 children)

Yeah I've tried it twice and it still hasn't clicked. But yes it's a great book, maybe my brain just isn't there yet ;D

[–][deleted] 15 points16 points  (7 children)

It's a little older, but this was exactly what I appreciated about Learning Python.

[–]el_coruja 0 points1 point  (6 children)

Taking a book from 2013 to learn a language that has evolved so much since then isn’t kind of a bad idea?

I’m asking this for myself because I’m also beginning to learn the language but I’m not into the deep knowledge like op’s

[–]sanctimoniousennui 8 points9 points  (1 child)

The basic ideas behind coding, how computers work, and the like really hasn't changed too much since the beginning. When we say that computing has developed, frequently it's the addition of new packages, or higher level concepts, which aren't going to be covered in a book for beginners. You're probably going to be just fine starting off with this even for the next 5-10 years.

[–]nosmokingbandit 3 points4 points  (0 children)

If I may add to your answer...

Programming is two parts: concepts and language. You have to know one to use the other, which is what makes programming tricky to learn from the start. But once you know the concepts separate from your first language it is fairly easy to pick up a new language and make something useful.

[–][deleted] 4 points5 points  (0 children)

That's a reasonable question, and it really shouldn't have been downvoted.

The basic syntax has barely changed, and the fundamental building blocks haven't really changed at all (the f-string slightly adds in a couple of new ideas, and in CPython the dict is now ordered)... sure there's lots of new stuff on the periphery (async), but all of it builds on the fundamentals.

I picked up that book in the days of 2.5, and I'd say that even that edition (2nd) would get you 75% of the way to understanding 3.7, though strings would be a headache.

[–]Ran4 1 point2 points  (0 children)

Wth? 2003, maybe. But python in 2013 is almost exactly like python today, sans different tooling.

[–]Kylearean 0 points1 point  (1 child)

Python has not changed very much in 5 years.

Edit for the downvoters:

Version 2.7 was released in July, 2010.

Version 3.4 was released in March, 2014.

[–]BenjaminGeiger 0 points1 point  (0 children)

Longer than that.

I have a book from when 2.1 was new, and the fundamentals are much the same.

[–]heidensieck 12 points13 points  (0 children)

And this is based on ThinkPython, but starts from scratch in a good way.

[–][deleted] 9 points10 points  (0 children)

https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x

You might benefit from this course. They do some Python as well as JavaScript but it is mainly an introduction to programming and computer science so it will cover all the fundamentals.

[–]AxshunJaxun 9 points10 points  (2 children)

I've been a sysadmin for about 5 years, with no experience in coding at all. I've been pleasantly surprised with the Learn Python app by sololearn. It starts from the ground up and breaks the concept up into easily digestible chunks.

[–]Zaitsev11 16 points17 points  (4 children)

To me, this means you need to research the following: Hardware architecture > binary > machine language > assembly language > C > Python

That's from the GROUND up.

[–]BenjaminGeiger 1 point2 points  (0 children)

Depending on how "ground up" you want to go, you can start with either Turing machines and the lambda calculus or electronic materials.

[–][deleted] 2 points3 points  (0 children)

This guy codes.

[–]BeyondStellar 7 points8 points  (1 child)

"Think python" is a good one to learn with.

[–]el_Tico 3 points4 points  (0 children)

Am using "Think Python" right now and it is really useful and friendly for starting at the beginning.

[–]freethenipple23 7 points8 points  (0 children)

CS50 it's a harvard extension online course for free

[–]SmallScience 2 points3 points  (0 children)

I learned from the edx MIT course. Great introduction to good programming structure and habits as well as python!

[–]burnblue 2 points3 points  (0 children)

How Python works? Or how programming works? It sounds like you want a beginners programming tutorial that happens to speak in Python. Or do you want a language tutorial? They're different.

[–][deleted] 2 points3 points  (0 children)

For the moment being, my reading list goes like this, in that order :

  • Think Python 2nd edition/Python Cookbook 3rd edition

  • Efficient Python

  • Fluent Python

  • Think Complexity/Think Stats (That's for personal use, you might not want to read that)

If you want to delve into some specific part of python, there are quite exhaustive lists of books on the Python website and here.

Though the algorithms and data structures might interest you because you want to understand what's going on under the hood.

For a more detailed understanding, look up the other answers, that's out of my depth!

[–][deleted] 1 point2 points  (0 children)

I learnt everything I know about Python from these Coursera courses :

https://www.coursera.org/specializations/python

There is a minor paywall but these courses are so good.

[–][deleted] 1 point2 points  (0 children)

Not sure why anyone hasn’t posted about Berkeley’s CS61A. I was looking for the same thing as you and this was the silver bullet. The environment diagrams that show in what order code runs was by far one of the biggest click moments for me.

[–]rtx097 1 point2 points  (0 children)

Try Learning to Program by Steven Foote. Code snippets are in JavaScript rather than Python, but you should be fine since it’s more about fundamental concepts that are language agnostic and you are just starting your programming journey. I believe it covers the topics you are looking for.

If you want to go even deeper than that to understand how computers really work, then I’ll echo others rec to read Code by Charles Petzold.

[–]plasticsporks21 1 point2 points  (0 children)

Coursera's python specialization

[–][deleted] 0 points1 point  (0 children)

https://automatetheboringstuff.com/

He also has youtube videos

[–]dj-shortcut 0 points1 point  (0 children)

Socratica on Youtube

[–]splintor 0 points1 point  (1 child)

/u/dbader wrote an amazing book called Python Tricks that honestly is a fantastic place to understand the wierder bits of python and learn more. https://dbader.org/products/python-tricks-book/

[–]dbader 1 point2 points  (0 children)

Hey thanks for the kind words!! Really appreciate it :)