I need to know more about computers

Programming, for all ages and all languages.
User avatar
Arto
Member
Member
Posts: 44
Joined: Wed May 15, 2013 5:49 pm
Location: Berlin
Contact:

Re: I need to know more about computers

Post by Arto »

I'm surprised nobody has yet mentioned the plethora of free university courses available online these days. This is a huge leg up over us old-timers who had to learn this stuff by ourselves, mostly offline and from scant information sources, back in the day.
SeanMc wrote:So I understand: The CPU retrieves data from memory (RAM) in a specific address or location with a sequence of numbers, breaks it down into instructions and performs the execution of the instructions. Operations performed are arithmetical and control operations. Is this right? Feel free to correct me or add.
Consider enrolling in Stanford's free, self-paced, online Computer Science 101 (CS101) class:

http://online.stanford.edu/course/compu ... self-paced

The course teaches computing from the ground up, with zero experience assumed. Several friends of mine have found it helpful.

In case you should find the course too basic, though, there is no shortage of more advanced courses. Look over on Coursera and edX in particular, or an aggregator such as Class Central. (Warning: in my experience, edX courses tend to be rather more demanding than Coursera, so don't enroll just on a whim.)
Developer of libc11
User avatar
Schol-R-LEA
Member
Member
Posts: 1925
Joined: Fri Oct 27, 2006 9:42 am
Location: Athens, GA, USA

Re: I need to know more about computers

Post by Schol-R-LEA »

I second what Arto says, though my usual go-to site for such things is MIT OpenCourseware. The material is tough, but still accessible and very well presented on the whole. The introductory EECS material can be found here.

(Of course, I am biased, as I personally like the older Abelson-Sussman Lectures, which teach a full course in programming in about 20 hours, using Scheme as the development language. Most people aren't as enthralled by this as I am, however.)

A few books you might want to look into include Think Python for basic programming, Assembly Language Step-by-Step for an introduction to low-level programming, C Primer Plus for the requisite C knowledge, Linkers and Loaders for the executable file format details, and Computer Organization and Design (which I would accompany with MIPS Assembly Language Programming as a reference) for the hardware concepts. That should keep you busy for a couple of years, and be enough to keep your interest going as well. Along the way, you should also learn about source control systems such as Git and how to use them, how to use a virtualizer such a VirtualBox, and how to use a basic debugger, among other things.
Rev. First Speaker Schol-R-LEA;2 LCF ELF JAM POEE KoR KCO PPWMTF
Ordo OS Project
Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.
User avatar
Arto
Member
Member
Posts: 44
Joined: Wed May 15, 2013 5:49 pm
Location: Berlin
Contact:

Re: I need to know more about computers

Post by Arto »

Schol-R-LEA wrote:I second what Arto says, though my usual go-to site for such things is MIT OpenCourseware. The material is tough, but still accessible and very well presented on the whole. The introductory EECS material can be found here.

(Of course, I am biased, as I personally like the older Abelson-Sussman Lectures, which teach a full course in programming in about 20 hours, using Scheme as the development language. Most people aren't as enthralled by this as I am, however.)
I, too, taught myself computer science from the Wizard Book and the OpenCourseWare materials, so I would second this notion.

That said, that's rather more advanced than the introductory Stanford course that I mentioned, and also (last I checked) doesn't have a MOOC-style classroom format (that would be edX, instead of OCW), just a lot of independent files to download and try and organize one's personal curriculum around. However, MIT's CS curriculum could be considered the gold standard, so can't go wrong there in case you're able to follow the materials.
Developer of libc11
embryo

Re: I need to know more about computers

Post by embryo »

SeanMc wrote:I want to be able to learn how to write an OS
You can pick an OS project and join it. There are plenty of OSes, so you have a choice. There are even some OSes in different than C or asm languages.

After joining you can make little steps of enhancing existing code, making it better (and you can define what the "better" is). One advantage of such approach is almost instant result you can play with. After you have your "better" piece of OS you can run it and see what to do with it to make it even better. Next you can try to convince other developers to include your code in the OS sources, but do not expect a quick success here. Instead - you can expect some comments about your code and what the guys think the "better" is. If such comments will not kill you then you are on the way of making a really great OS :)
User avatar
mathematician
Member
Member
Posts: 437
Joined: Fri Dec 15, 2006 5:26 pm
Location: Church Stretton Uk

Re: I need to know more about computers

Post by mathematician »

SeanMc wrote:C? Are you sure I should go straight to C?
There have been a lot of badly written C programming books in the past. But they don't have to be badly written. Kernighan & Ritchie's famous book got me started with C.

http://www.amazon.co.uk/The-Programming ... 0131103628
The continuous image of a connected set is connected.
User avatar
Arto
Member
Member
Posts: 44
Joined: Wed May 15, 2013 5:49 pm
Location: Berlin
Contact:

Re: I need to know more about computers

Post by Arto »

mathematician wrote:
SeanMc wrote:C? Are you sure I should go straight to C?
There have been a lot of badly written C programming books in the past. But they don't have to be badly written. Kernighan & Ritchie's famous book got me started with C.

http://www.amazon.co.uk/The-Programming ... 0131103628
While a fine book, K&R does teach an outdated version of the language; so, anyone looking to pick up C from K&R would do well to follow that up with something like O'Reilly's 21st Century C that teaches modern practice.
Developer of libc11
alexfru
Member
Member
Posts: 1111
Joined: Tue Mar 04, 2014 5:27 am

Re: I need to know more about computers

Post by alexfru »

Arto wrote:
mathematician wrote:
SeanMc wrote:C? Are you sure I should go straight to C?
There have been a lot of badly written C programming books in the past. But they don't have to be badly written. Kernighan & Ritchie's famous book got me started with C.

http://www.amazon.co.uk/The-Programming ... 0131103628
While a fine book, K&R does teach an outdated version of the language; so, anyone looking to pick up C from K&R would do well to follow that up with something like O'Reilly's 21st Century C that teaches modern practice.
It's funny you have to say that about ANSI C when gcc is still compiling by default with implied -std=gnu89 and magically turns what is long long in C99 into unsigned long per the rules of ANSI C. :)
User avatar
Arto
Member
Member
Posts: 44
Joined: Wed May 15, 2013 5:49 pm
Location: Berlin
Contact:

Re: I need to know more about computers

Post by Arto »

alexfru wrote:
Arto wrote:While a fine book, K&R does teach an outdated version of the language; so, anyone looking to pick up C from K&R would do well to follow that up with something like O'Reilly's 21st Century C that teaches modern practice.
It's funny you have to say that about ANSI C when gcc is still compiling by default with implied -std=gnu89 and magically turns what is long long in C99 into unsigned long per the rules of ANSI C. :)
One of the first modern practices a newbie ought to learn is specifying "-std=c99" or the like :wink:

Clang is rather more useful than GCC in this regard, defaulting to "-std=gnu11".
Developer of libc11
alexfru
Member
Member
Posts: 1111
Joined: Tue Mar 04, 2014 5:27 am

Re: I need to know more about computers

Post by alexfru »

Arto wrote:One of the first modern practices a newbie ought to learn is specifying "-std=c99" or the like :wink:
They have to learn -Wall -Wextra -Werr -O2 first. :)
User avatar
Arto
Member
Member
Posts: 44
Joined: Wed May 15, 2013 5:49 pm
Location: Berlin
Contact:

Re: I need to know more about computers

Post by Arto »

Arto wrote:
alexfru wrote:It's funny you have to say that about ANSI C when gcc is still compiling by default with implied -std=gnu89 and magically turns what is long long in C99 into unsigned long per the rules of ANSI C. :)
One of the first modern practices a newbie ought to learn is specifying "-std=c99" or the like :wink:

Clang is rather more useful than GCC in this regard, defaulting to "-std=gnu11".
Incidentally, I was glancing through the GCC 5.0 release notes today, and the very first listed item (under "Caveats") is:
https://gcc.gnu.org/gcc-5/changes.html wrote:The default mode for C is now -std=gnu11 instead of -std=gnu89.
So, as of next year, Clang and GCC both will default to C11 with added GNU extensions. About time, I say. Certainly it will (and perhaps very subtly) break some builds of old crufty code bases, but really, it's overdue.
Developer of libc11
mac
Member
Member
Posts: 144
Joined: Tue Sep 23, 2014 6:12 pm

Re: I need to know more about computers

Post by mac »

Thank you for all this advice. I will admit that I'm not as technical-minded as one may think, but one thing experimenting with Linux did teach me a lot about reading manuals and documentation, something Windows made me take for granted.

I want to understand it more, because I really crave having the ability to control my computer with code.
User avatar
Catacombs
Posts: 3
Joined: Fri Jul 19, 2019 1:24 pm
Location: /home/

Re: I need to know more about computers

Post by Catacombs »

It's been nearly five years since OP started the thread. I'm curious to know if he or she made any progress.
User avatar
iansjack
Member
Member
Posts: 4685
Joined: Sat Mar 31, 2012 3:07 am
Location: Chichester, UK

Re: I need to know more about computers

Post by iansjack »

Have you checked that person's other posts (after that thread)?
User avatar
Catacombs
Posts: 3
Joined: Fri Jul 19, 2019 1:24 pm
Location: /home/

Re: I need to know more about computers

Post by Catacombs »

I didn't think to! I'll do that.

I was hoping for a quick summary :lol:
Post Reply