Hi, I’m a first year CS student and this 3 month period of vacations I want to follow a good free course on programming. If it’s possible, I also want to learn how is the process in which a code written in a text editor can become an executable with it’s GUI in the operating system (currently using Linux), because I really have no idea how that works.
Browsing the web for it have become overwhelming and I’m finding trouble in deciding what to follow, and I also need some order in order to learn things.
I would really appreciate if you can tell me if you know any course that meets this requirements.
or, you know, touch some grass and don’t burn out while waiting for the courses to start
Students don’t need to touch grass. They are still eager and motivated and should take advantage of that mindset while it lasts.
Haha second time I’ve been called a boomer this week XD I just wanted to point out that as a new student, you have a sense of wonder and excitement for your new specialty that you loose over the years. It’s a powerful motivator. But yes, a change of scenery sometimes is good for everyone.
I can heartedly recommend this one NandToTetris.
In this course gives you a complete understanding of how computers and programming qorks from first principle.
You’ll start by (virtually) making chips with just a nand chip, than you’ll make a cpu, ram and rom, evetually on to a full fletched computer. Than you’ll write your own assembly language, parser and compiler for that computer. You’ll write your own OS and your own higher level language (OOP) and eventually you’ll write a geme (tetris) in that language.
This is of course all very simplified, but very educational.
If you want to learn how programming languages can go from text in a file to something a computer can process, I recommend either:
Programming Languages: Application and Interpretation
or
If you want to know how a computer processes the information, I recommend:
If those are too much for your level of programming knowledge, I suggest one of the following to get up to speed:
A Data-Centric Introduction to Computing
or
I recommend taking a look at https://roadmap.sh/. It’s not a course, it’s a website with several “roadmaps” for learning languages or specific fields. There’s plenty of docs and it’s easy to follow!
I don’t quite trust the reasoning and assumptions behind the suggestions at roadmap.sh.
I think there are good free online courses, like Harvard’s CS 50 course. I’ve also heard of OpenCourseWare. I haven’t used either of them personally, though.