
Learn the universal programming fundamentals that underlie all languages, and how mastering these basics enables rapid transitions between languages and continues to adapt as languages evolve.
Meet your instructor, Steven Ross Brooker, who blends mechanical engineering, robotics, and software design to teach general programming fundamentals transferable across languages, independent of syntax.
Explore the fundamentals of programming, including methods, calls, errors, arithmetic, comparisons, primitive data types, objects, and parameters. Check the course outline for the exact learning goals as content evolves.
Understand who this course is for and build a solid foundation with fundamentals that power different programming language skins such as Java, C, C++, C sharp, and JavaScript.
Programming is writing instructions that perform specific tasks, created by programmers across web, mobile, and embedded platforms, with a shift from executable programs to task oriented design.
Explore how integrated development environments combine code editors, debuggers, compilers, and simulators to test programs. Compare standalone tools and language-specific IDEs, plus GitHub repositories, to tailor a flexible workflow.
Introduce the essential parts of a program, including class name, file name, constructor, global and local variables, methods, main loop, getters and setters, and comments, with language-agnostic explanations.
Explore the main loop that runs continuously and the setup phase that runs once, plus the typical flow from class file name to getters and setters.
Learn how calls are the basic instructions a program executes to perform tasks, with examples like turning 15 degrees, spawning projectiles, and printing output.
Learn dot notation, the go-to operator that accesses object members, chains methods like jump, gets components in unity, and cascades through variables and transforms to extract data.
Explore primitive data types, including integers, floats, doubles, booleans, characters, and strings, and how they classify numbers, truth values, and text for variables.
Store primitive data types in variables that hold a data type, a unique identifier (name), and a value, with optional values and scope considerations.
Master global variables and scope by recognizing that a top-level variable is accessible throughout the program. Understand that the nearest brackets define a variable's visibility, with conditionals sometimes narrowing scope.
Explore local variables and their small scope within a program, showing that a variable defined inside a method can be used only there and not outside.
Explore arithmetic in programming; addition, subtraction, multiplication with star, division with slash, and remainder with the percent symbol; learn to assign results and use math library with pi and trig.
Explore methods and functions as grouped calls that perform tasks, reducing repetition and boosting readability and efficiency, illustrated by spawning enemies across levels.
Explore comparisons and conditionals by using greater than, less than, equal, not equal, negation with the bang operator, and operators like and or to build booleans and loops.
Explore how loops use comparisons to control program flow, featuring if, else, else if, while, and for structures that execute commands based on true or false conditions.
Use a for loop to run a block a set number of times by defining a counter, a comparison, and an end statement; initialize i at zero and increment it.
The while loop runs while its condition is true, repeating until it becomes false. It may have unknown iterations, be more complex than a for loop, and risk infinite loops.
Discover how arrays are typed containers with a fixed size and 0-based indices to store and access values, and when to prefer finite versus dynamic arrays using loops.
Learn how objects combine primitive data types to model real-world entities, like students or cars, with attributes such as name and age, using constructors to build complex data structures.
Explore how parameters manipulate methods, functions, and constructors to produce different outcomes, with examples on array indexing, input validation, and getters and setters.
Explore how constructors create objects by initializing with parameters, enabling overloading to handle different data sets, and storing validated values after data conditioning for later use.
Create independent instances from a master copy of a class, each with its own data like height or health, using constructors and dot notation to initialize and manipulate them.
Explore classes and objects as interchangeable concepts across languages, with examples from Java where a class corresponds to a file name, and include constructors, getters and setters, and overloaded constructors.
Libraries are external ready-made code you import and refer to by name to access prebuilt methods, speeding development.
Explore inputs and outputs as any computer-connected entity, from keyboard and monitor to files and the internet. Learn to prompt user input and display results across devices and interfaces.
Master getters and setters to validate and encapsulate data, using setters to enforce valid input such as nonnegative car counts and getters to safely return variable values for use elsewhere.
Analyze three types of programming errors: syntax, semantic, and logical, and learn how compiler and runtime errors reveal misspellings, invalid conversions, and faulty logic.
Learn why formatting code matters for readability and reducing errors. Use consistent line-by-line braces, in-line opening and closing, proper indentation, and comments to clarify logic.
Highlight the role of comments in programming across contexts; explore inline and block styles; use line-by-line and top-of-file metadata to aid readability for teams and newcomers.
Discover how static variables provide a single shared value across all objects, like a universal pi or a car’s four wheels, accessible from any class or instance.
Move forward after mastering the beginning core fundamentals, applying data conditioning and file output across languages like Java, C#, C++, and JavaScript for hobbyist or professional use.
Learn how type casting converts a value from one type to another, such as double to int or string to int, using explicit casts or conversion methods.
Explore how public, private, protected, and package private modifiers control access and scope across classes, and learn to protect data with private fields accessed via getters and setters.
Learn how the switch construct offers a cleaner, conditional alternative to multiple ifs, using cases, breaks, and a default for error handling.
Explore pointers and memory addressing, learn how a pointer references a memory location to share or modify data without copies, and apply to dynamic and multi-dimensional arrays.
Explore multi-dimensional arrays, where arrays nest within arrays to form two- and three-dimensional structures. Compare dynamic and fixed size variants and see how inventories like car lots illustrate nested data.
Discover how a state machine models cyclic transitions between states like locked, unlocked, game running, and game paused to structure robust programming for robotics, arcade machines, and video games.
Explore inheritance and extending in object oriented programming languages, showing how parent and child objects share features, how the keyword extends works, and how overriding methods yields different actions.
Define interfaces as standard contracts that classes implement, contrasting implements with extends, and show how interface methods enforce consistency across diverse robots or devices.
Explore algorithms through sorting, focusing on bubble sort as an example. Learn how swapping and multiple passes organize numbers into ascending order and why bubble sort is inefficient for data.
Learn how to use try-catch blocks for exception catching to handle runtime errors when a user enters non-integer input, preventing crashes and allowing retries.
Explore how threads enable concurrent execution with separate stacks, boosting responsiveness when waiting for data or updating the user interface across browsers and tabs.
Explore stacks and their push and pop operations, prioritizing the most recent data, and see how towers of Hanoi illustrates stack discipline and uses in operating systems.
Explore queues as first-in, first-out data structures that add at the rear and remove from the front, with operations like enqueue, dequeue, peek, and size.
Explore binary trees as a hierarchical data structure with left and right nodes, pointers, and traversal strategies, and see how they enable efficient searches and clear flowchart-like logic.
Master implementing a matrix as a 2D array by organizing rows and columns, initializing size, and filling values with nested loops for input data and basic operations.
Welcome to General Programming Fundamentals
In this course you will learn the fundamentals concepts of programming
This course will focus on teaching the fundamentals of all programming language instead of 1 specific programming language
Let me explain
Basically how can you think of programming in the form of spoken languages
Adjectives, Noun, Subjects, Verbs, Sentences, Sentence Order/Flow ETC.
This dictates the structure of programming as well as spoken languages
As programming is based on spoken languages
These base concepts that you will learn in this course are universally shared between all programming languages
Thus if you know these fundamentals you will be able to learn any language quickly and easily
So after this course i believe that you can go and take whatever programming language course you desire and pick up the programming language very quickly
Every subsequent programming language after this course's fundamentals and your first programming language will seem easy and fast to learn after that.
If you have any questions don't hesitate to ask. I will answer them as quickly and to the best of my ability
Check out some of the other courses i teach
Disclaimer: this course does not contain any specific programming language syntax more of fundamentals about how programming is structured. Thus the course is taught in a classroom like white board setting relating spoken language and programming to each other to understand the concepts.
Enjoy The Course