Python Forum
Curiosity about lower levels in programming
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Curiosity about lower levels in programming
#1
Hi everyone

Ever since I started learning and doing some programming I have had an extreme curiosity about the lower levels of programming. While programming or reading about programming in python (or C) I can get lost in thinking about how specific things work on a deeper level. Like how will the compiler know in what order to handle x, y and z and how does this work in memory - all the way down to how the electricity runs etc.

Now this can be a good thing at times but also a very frustrating thing at other times, because it works a bit like perfectionism thus making in uncomfortable when these things are unknown to me. It can feel strongly unsatisfactory to me to work in a programming language and just have to accept that that's the way things work. Much of this can probably be solved by looking into how assembly, memory, NAND gates etc work. The topic is interesting to me though and and I have found people talking about this online.

Do some of you have this same curiosity bordering on perfectionism leading you to want to understand everything?
Reply
#2
Personally, yes, I seek to understand why everything works the way it does. However, if that is what you're interested in, this isn't the place to discuss it. This is for help with the Python language.
Reply
#3
Could we move the thread to another location on the forum?
Reply
#4
(Sep-05-2018, 10:36 PM)glidecode Wrote: Do some of you have this same curiosity bordering on perfectionism leading you to want to understand everything?
I also have the curiosity to understand how the lower levels work, however, having read a certain amount of material about this, such as the history of the C language and the way assembler works, the way cpu works etc, I have reached the conclusion that the lower levels are nothing but a huge collection of technical obstacles that have been defeated.

If you really want to understand everything in the lower levels, you will be in the position of a spectator watching a mountaineer who has reached the summit of the Everest, and you are going to analyse in detail each and every one of his steps to understand how he climbed. I don't think it is the funniest thing to do nor the most useful. So I think it is a good idea to get a global picture of how things work, but for your own mental safety you should not dive too deep.
Reply
#5
Interesting answer Griboullis. I have watched a few good videos explaining some of the very basics and while interesting it can be tedious. Maybe the boredom of some of the small details will cancel out the curiosity and perfectionism and lead me to sort of not go much deeper than the C language, except for getting the global picture at first as you mention. I'll take care of my mental safety thank you!
Reply
#6
Nice perspective Gribouillis, especially to hear it from someone who did deep diving into computing.
I am curious, could you name a couple of examples of the technical obstacles you mentioned, that have been defeated, and wouldn't serve too much a purpose to study for a high level programmer? It will be interesting for me to see if these things are at least remotely familiar to me, or totally out of my league.
Reply
#7
One of the best ways to discover this kind of information is to go examine the available literature on some of the early Microcoomputers.
I did a lot of early work using Intel 8080 chips. These were 8 bit processors, and were 'pure' in that they were computers, and didn't contain a lot if any peripheral's in the package, and thus simple to understand.
I want to share a couple of documents that were my guide through many years of development work, and excellent documents from which you will learn the very basics of how a computer works and how to program it using a low level language:

First the Orsborne 8080A, 8085 Assembly Language Programming Guide - This was better than the Intel Guide (below)
Download here:

PDF: https://archive.org/download/8080a8085As...amming.pdf
EPUB: https://archive.org/download/8080a8085As...mming.epub
KINDLE: https://archive.org/download/8080a8085As...mming.mobi

Intel MCS80/85 Familu Users Manual:

PDF: https://archive.org/download/Mcs80_85Fam...manual.pdf
EPUB: https://archive.org/download/Mcs80_85Fam...anual.epub
KINDLE: https://archive.org/download/Mcs80_85Fam...anual.mobi

And I have to mention again, probably the best available (and free) course on building your own computer, language, assembler, compiler and operating system ever (in my book) Nand to Tetris: https://www.nand2tetris.org/
Reply
#8
Thanks for your input Larz, very interesting. I will look into some of that.

I have heard good things about Nand2Tetris before and looked at their site. Definitely something to consider looking into.
Reply
#9
I am joining recommendations on Nand2Tetris course. I think I took it on EdX or Coursera quite some years ago.
Though I finished only first part of two, and don't remember too much anymore, following the course material and doing homeworks felt very rewarding.
Reply
#10
I have started reading in this book written by the guys behind Nand2Tetris (It has very solid reviews!):

https://www.amazon.com/Elements-Computin...ef=ed_oe_p
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  [split] Out of curiosity. Why is it bad to * import hshivaraj 2 2,267 Mar-13-2019, 12:04 AM
Last Post: snippsat

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020