
Trace the evolution of computers from the Analytical Engine to ENIAC and the internet boom, highlighting Ada Lovelace, Alan Turing, Space Wars, ARPANET, and the rise of programming.
Explore how programming gives computers a set of instructions, from high level languages to machine code, and how compiling with a compiler and running Java code reveals the output.
Explore how code readability relies on comments, the most frequently used line comments with // and multi-line comments with /* ... */, which the compiler ignores and editors highlight.
Explore arithmetic operators in code, performing addition, subtraction, multiplication, division, and modulus to calculate values like a rectangle’s area, using precedence, parentheses, and increment or decrement.
Practice scenario shows how to calculate concrete volume by multiplying width, length, and height in meters, then increase by 10% and optionally round to two decimals using float or double.
Learn debugging to locate and fix errors in code using breakpoints, stepping through lines, evaluating expressions, and validating variable values to ensure correct output.
Learn how strings are objects with methods like length, to lowercase, and concat. See how the plus sign handles string concatenation versus numeric addition.
Learn how to include double quotes in strings using escape characters, print sentences, and use backslash escape sequences for quotes, new lines with \\n, and tabs with \\t.
Learn how to read user input from the console using the read line method, store it in a string variable, and print a personalized welcome message with string concatenation.
Explore conditional statements and branching using if, else, and else if to control flow with boolean conditions, featuring door code checks and odd/even using modulo.
Build a bmi calculator that reads weight and height, converts to metric, computes bmi with parentheses, and classifies as underweight, normal weight, overweight, or obesity.
Learn how programs use command-line arguments via the main method's args array, print each argument with a loop, and handle missing arguments to prevent errors, avoiding hard-coded paths across systems.
Examine blocks and scopes in code, showing how curly braces define blocks and control variable access across loops, conditionals, and methods, with outer variables persisting and inner declarations disappearing.
Create objects with the new keyword by using constructors to initialize attributes, possibly with parameters. Overload constructors to support defaults and different parameter lists, and use this to chain constructors.
Discover primitives versus references in Java, their default values, and how null and null pointer exceptions arise. Learn about wrapper classes and autoboxing as a bridge from primitives to objects.
Master encapsulation in object oriented programming by hiding fields and exposing only controlled access through getters and setters. Use public, protected, and private modifiers to keep code maintainable.
Learn how static methods belong to a class, not objects, enabling utility functions like temperature conversions. Use TemperatureConverter to convert Celsius to Fahrenheit and vice versa.
Build tools automate compiling, packaging, testing, and deployment, turning source code into executables and managing dependencies. Explore language-specific tools, general-purpose options like Bazel, and IDE build systems.
Demonstrates using Maven to manage dependencies, configure pom.xml, and build a Java project in IntelliJ, including Apache POI code to create an Excel file.
Read and understand the task, then develop with test driven development, pair programming, and code reviews, following coding standards and language style guides to deliver high quality code.
Explore how waterfall and agile shape the software development life cycle, detailing sequential design, testing, deployment, MVP milestones, and adaptive iterations.
Explore how Java, a statically typed, high-level language, achieves platform independence through bytecode and the JVM, enabling write once, run anywhere across web backends, Android, big data, and enterprise systems.
Discover Python, designed by Guido van Rossum in the Netherlands, first released in the early 90s, Tiobe index top language with versatile libraries for web, data science, and artificial intelligence.
Survey major programming languages and their characteristics, including compiled vs interpreted and statically vs dynamically typed, with examples such as C, C++, Java, JavaScript, TypeScript, Python, C#, and shell scripts.
Explore how web developers create internet apps using HTML, CSS, and JavaScript, interact with APIs and JSON, and distinguish front-end and back-end roles from DNS to browsers.
Explore the mobile developer role across native and cross-platform paths, covering Android and iOS stacks, languages (Java, Kotlin, Swift, Objective-C), UI tools, API integration, data management, testing, and workflows.
Explore the thriving world of game development, from choosing Unity, Unreal, or Godot to building 2D/3D worlds with visuals, physics, animations, audio, and AI.
Understand the roles of data scientists and machine learning engineers, from collecting and cleaning data to deploying AI models. Master Python, SQL, and tools like Pandas, NumPy, and scikit-learn.
You're curious about programming but have no idea where to start — and you don't want to waste months learning the wrong thing. This course gives you the full map.
Why should you bother learning programming?
Our world is connected by the Internet which creates the global market, the biggest one in the world. The Internet is made of billions of computers and every one of them needs software to work. Software is made by programmers so investing in learning programming seems a pretty solid decision.
Who is this course for?
Thinking about a career change but don't know where to start.
Tentative about your career decision.
Any kind of stakeholder in a software development project who wants to understand programmers better.
Curious about modern technology and want to know exactly what programming is.
If you are interested only in learning a specific programming language like Python, then this course may not be your best choice.
What is included?
In this course you will write and run your first Java programs from scratch, even with zero experience. Learn about the workings of computers and the fundamentals of programming which is shared amongst many modern programming languages like variables, conditional statements, loops, error handling, etc. You will solve many programming exercises because learning programming requires practice. I use Java for teaching but the topics covered work very similarly for other languages like Python or JavaScript.
You will learn the basics of object oriented programming which is a code structuring technique that helps to produce more maintainable and understandable code.
You will be aware of the tools that programmers use day by day like libraries, frameworks, package managers, build tools, unit tests, version control systems, pipelines and AI based tools.
You will learn the process of making applications and the software development lifecycle including different methodologies like waterfall or agile development.
You will learn the characteristics of different programming languages and will be familiar with the top six.
You will learn about the different developer roles like backend, frontend, mobile, game developers or automated testers and data scientists and machine learning engineers. You will learn what kind of tasks they work on and what skills they require in order to solve them.
What will you gain?
By the end of the course you will be confident in the basics of programming and will have a broad understanding of the whole software development industry so you will be able to make an informative decision about your career path and plan your learning in order to become a software developer and understand programmers and their work better.