From 0 to 1: Learn Java Programming -Live Free,Learn To Code

An accessible yet serious guide to Java programming for everyone

Ratings: 4.27 / 5.00




Description

  • Taught by a Stanford-educated, ex-Googler, husband-wife team
  • This course will use Java and an Integrated Development Environment (IDE). Never fear, we have a detailed video on how to get this downloaded and set up.
  • Hundreds of lines of source code, and hundreds of lines of comments - just download and open in your IDE!

A Java course for everyone - accessible yet serious, to take you from absolute beginner to an early intermediate level

Let’s parse that.

  • This is a Java course for everyone. Whether you are a complete beginner (a liberal arts major, an accountant, doctor, lawyer) or an engineer with some programming experience but looking to learn Java - this course is right for you.
  • The course is accessible because it assumes absolutely no programming knowledge, and quickly builds up using first principles alone
  • Even so, this is a serious Java programming class - the gradient is quite steep, and you will go from absolute beginner to an early intermediate level
  • The course is also quirky. The examples are irreverent. Lots of little touches: repetition, zooming out so we remember the big picture, active learning with plenty of quizzes. There’s also a peppy soundtrack, and art - all shown by studies to improve cognition and recall.

What's Covered:

  • Programming Basics: What programming is, and a carefully thought-through tour of the basics of any programming. Installing and setting up an IDE and writing your first program
  • The Object-Oriented Paradigm: Classes, Objects, Interfaces, Inheritance; how an OO mindset differs from a functional or imperative programming mindset; the mechanics of OO - access modifiers, dynamic dispatch, abstract base classes v interfaces. The underlying principles of OO: encapsulation, abstraction, polymorphism
  • Threading and Concurrency: A deep and thorough study of both old and new ways of doing threading in Java: Runnables, Callables, Threads, processes, Futures, Executors.
  • Reflection, Annotations: The how, what and why - also the good and bad
  • Lambda Functions: Functional constructs that have made the crossover into the mainstream of Java - lambda functions, aggregate operators.
  • Modern Java constructs: Interface default methods; properties and bindings too. Also detailed coverage of Futures and Callables, as well as of Lambda functions, aggregation operators. JavaFX as contrasted with Swing.
  • Packages and Jars: The plumbing is important to understand too.
  • Language Features: Serialisation; why the Cloneable interface sucks; exception handling; the immutability of Strings; the Object base class; primitive and object reference types; pass-by-value and pass-by-object-reference.
  • Design: The MVC Paradigm, Observer and Command Design Patterns.
  • Swing: Framework basics; JFrames, JPanels and JComponents; Menus and menu handling; Trees and their nuances; File choosers, buttons, browser controls. A very brief introduction to JavaFX.

Programming Drills (code-alongs, with source code included)

  • Serious stuff:
    • A daily stock quote summariser: scrapes the internet, does some calculations, and outputs a nice, formatted Excel spreadsheet.
    • A News Curation app to summarise newspaper articles into a concise email snippet using serious Swing programming
  • Simple stuff:
    • Support with choosing a programming environment; downloading and setting up IntelliJ.
    • Simple hello-world style programs in functional, imperative and object-oriented paradigms.
    • Maps, lists, arrays. Creating, instantiating and using objects, interfaces

What You Will Learn!

  • Write Java programs of moderate complexity and sophistication (at an early to middling intermediate level)
  • Understand Object-Oriented programming concepts at the level where you can have intelligent design conversations with an experienced software engineer
  • Manage concurrency and threading issues in a multi-threaded environment
  • Create and modify files (including Excel spreadsheets) and download content from the internet using Java
  • Use Reflection, Annotations, Lambda functions and other modern Java language features
  • Build serious UI applications in Swing
  • Understand the Model-View-Controller paradigm, the Observer and Command Design patterns that are at the heart of modern UI programming
  • Gain a superficial understanding of JavaFX and Properties and Bindings
  • Understand the nuances of Java specific constructs in serialisation, exception-handling, cloning, the immutability of strings, primitive and object reference types

Who Should Attend!

  • Yep! Folks with zero programming experience - liberal arts majors, doctors, accountants, lawyers
  • Yep! Engineering students from non-CS majors looking to learn fairly serious programming
  • Nope! Experienced Java programmers - this class will be boring for you:)
  • Yep! Computer Science students or software engineers with no experience in Java, but experience in Python, C++ or even C#. You might need to skip over some bits, but in general the class will still have new learning to offer you :-)