Absolute beginner's guide to programming and computers
What you'll learn
- Programming basics – what's a program and how to write one. We'll cover basics of software development and most important programming topics.
- Using documentation and developer resources to develop programming skills on your own – you'll know where to look for solutions and how to learn any technology.
- Computer architecture basics – what makes a desktop computer and how its physical components allow the apps to run.
- Navigating your way through the OS – what are files, programs, processes, the console. You'll understand how a computer works and how apps are built.
- No programming or tech knowledge is required.
- A computer with a Windows 10 operating system is preferred.
What is programming and how to write a computer program? It's often the case that beginners who'd like to learn programming don't know where to start or even what it is they are looking for. This course was designed for any novice looking to learn about programming and computers in general. Here, you'll learn everything you need to get started with programming the basics you need to know to start learning on your own. You don't need to know anything about computers to get started – this guide will cover all important topics and give you an introduction to the most important programming topics.
Each lecture is conceived in such a way to provide a new and interesting insight into how programming could be used not as a replacement career, but as a supplement to another. Besides being a useful tool in the modern technologically dominated society, programming can be an interesting and fun way to expand your creative endeavors.
Absolute beginner's guide to programming and computers is a course designed for the complete beginner. Unlike most standard programming courses, it minimizes the use of math and tech-heavy vocabulary and provides simple and relatable examples of programming, building real understanding of how to write a computer program and providing the student with actual usable skills within a minimal timeframe.
The course is presented in such a way to allow you to build your skills independently. In this guide, you will learn how to read documentation and where to find answers if you ever get stuck with a programming problem. This way, the student who finishes the course understands the basics of the key branches of software development and has the skill to further advance and research on their own.
Although focusing on specific technologies can create experts in a specialized field, most professionals switch between many different technologies during their careers, but despite this constant switching, core ideas always remain, even when the details of a specific technology or platform have been forgotten. Instead of teaching details that could be forgotten when a new technology emerges, this absolute beginner's guide focuses on exactly those principles that are used across different technologies.
The course touches upon many topics while presenting only the most important material. It starts out lightly and gradually introduces more advanced concepts, all the while using little to no tech-focused vocabulary and nothing but elementary school math.
Who this course is for:
- Creative individuals looking to learn the basics of programming and app development
- People with no prior experience with either programming or computers who want to broaden their knowledge
- Individuals from other disciplines who want to know what software development is about and whether they could be good at it
- Anyone looking to "get into" programming
I'm a software engineer and a scientist, with a Ph.D. in computer science and machine learning. Though that's my profession and scientific reasoning is my predominant way of thinking, I prefer to delve into and study many other disciplines, so that I can broaden and evolve my own philosophy and understanding of the world.
I have accumulated years (decades) of experience in various subfields of software development, from app development, over OS development to cloud and distributed systems. I've worked with embedded systems, data analysis, IoT and some very specialized technologies. Being a computer scientist with a Ph.D. in machine learning, I've dealt with many kinds of AI systems, most notably deep neural networks, which I've used for classification, segmentation, as well as content generation.
However, given my many hobbies, I prefer combining multiple different fields, especially in those circumstances where engineering intersects arts. I've built many systems which rely on procedural generation, including automatic music generation, procedural map and content generation (for example, for Dungeons and Dragons games), pattern generation and many others.
I've worked as a university teacher for many years and have worked with high school students (preparing them for programming competitions, including the International Olympiad in Informatics), so I'm quite acquainted with teaching methodology.