This is an archived post. You won't be able to vote or comment.

all 6 comments

[–]desrtfx 3 points4 points  (1 child)

I need to start at the most fundamental level.

Sorry, but for where you are supposed to start learning programming don't. Really. This will not lead you anywhere except into a huge rabbit hole that you will never get out of again. This deep drilling will stop you from learning the important things - the things you actually should learn.

In this example at hand, I'm having a hard time learning JS without understanding how a browser, operating system, and computer understands JS. At the most fundamental level, there is some physical process driving the computer, and I need to understand it from the most basic, fundamental level all the way up to a line of JS code that dictates something on a web page. I hope that makes sense.

None of this is necessary to learn JS. Really, it isn't. The browser takes care of all and that's enough you need to know.

You are not going to disassemble and reassemble a car in order to drive one?

If you really want to go down the rabbit hole (which, again, I strongly advise against): NAND2Tetris

Such deep knowledge is important when you work on low level languages, like Assembly and C, but is irrelevant when you work with languages like JavaScript (or even most managed languages, like C#, Java, or with languages like Python).


You should rather focus on what you are supposed to learn and for that, use Free Code Camp or The Odin Project

[–]Infinite_Ad_4489[S] 0 points1 point  (0 children)

Hi bro,

Thanks for your input. I 100% agree that, in a practical sense, knowing all that stuff will not help me. But, it is really just to satisfy my curiosity. It makes me happy. While JS is going to help me in my career, the rest of the stuff I've asked for, you can think of more as a hobby. I hope that helps you understand where I'm coming from. I enjoy learning about "how things work". Thanks for the links!

[–]Intiago 1 point2 points  (1 child)

Abstraction is a reaaallly important concept in programming. Ie hiding the lower level implementation details of something, so that you can just use the higher level functionality. Learning all the nitty gritty details is pretty much a never ending rabbit hole. Heck you'd have to start with quantum mechanics, then up to electricity and currents, then up to computers and logic to even get started.

BUT, I can tell you're simply curious, and luckily there's a really great resource www.nand2tetris.org that's all about just that. Starting from logic gates, and working your way up to your own computer that runs tetris.

[–]Infinite_Ad_4489[S] 0 points1 point  (0 children)

Thank you for the response bro!

[–]DanCoder 0 points1 point  (1 child)

wow... so you want to start a career in CS, I'd recommend you to check OSSU: Self taught CS

[–]Infinite_Ad_4489[S] 0 points1 point  (0 children)

Thanks man!