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.
- Using programming creatively in conjunction with user experience design and web design – basics of how to create a simple website (HTML, CSS and JavaScript).
- Fundamentals of C#, C++, JavaScript and Assembly programming languages (and programming languages in general) and how they work.
- 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.
Requirements
- No programming or tech knowledge is required.
- A computer with a Windows 10 operating system is preferred.
Description
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.
Instead of heavily focusing on specific technologies, Absolute beginner's guide provides the student with the core principles and, through examples and analogies, demonstrates a programmer's way of thinking. The course goes through several programming languages and so-called programming paradigms and elucidates the fundamental concepts of each one, including some of the most important ideas of procedural programming, assembly, object-oriented programming, web development (HTML and CSS), multi-threading, mobile development and even game development. You'll learn the basics of C#, C++ and JavaScript in a way that will let you transfer these skills to other programming languages.
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
Instructor
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.
Alongside classical arts (music composition, painting, writing), I'm a huge video game enthusiast. Professionally, I've worked with both the Unity and Unreal Engine game engines. I'm fluent in both C# and C++, given that there are two of my favorite programming languages (though, I've worked with many others, including Java, Python, JavaScript, and even Delphi, when it was popular).
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.