First and foremost I recommend start learning Java programming language with
- I-III chapters from "Head First Java" book
- Java "Getting Started" tutorial from ORACLE
- II-III chapters from "Thinking in Java" book
- Main concepts
- What is JVM and what`s the purpose
- Compiled vs Interpreted languages
- Tasks:
- illustrate example of running java code in JVM and explain
- Tasks:
- JDK vs JRE
- Tasks:
- Whats the purpose of each of them?
- Tasks:
- Installation
- Hello World example
- Tasks:
- Writing and Running Hello World from command line
- Writing and Running Hello World from IDE
- Tasks:
- Java Source File Structure
- Tasks:
- List components of Java Source File
- Tasks:
- Declaration and Initialization (Variable Assignment);
- The data type of the value being assigned must be compatible with the data type of the variable receiving the value
- Variable Scoping
- Refers to portions or sections of a program where the variable has value and is said to be ‘visible’
- Types of variables by scope:
- Class Variables
- Instance Variables
- Local Variables
- Data Types - Primitive Data Types - Reference Data Types
- Type Conversion - Implicit casting - Explicit Casting
- Questions - What does "Strongly (static) Typed language" and "Loosely Typed Language" means?
- The if-then and if-then-else Statements
- The switch Statement
- The while and do-while Statements
- The for Statement
- break
- continue
- return
- What Is an Object?
- What Is a Class?
- What Is Inheritance?
- What Is an Interface?
- What Is a Package?
- Classes
- Declaring Classes
- Declaring Member Variables
- Defining Methods
- Providing Constructors for Your Classes
- Passing Information to a Method or a Constructor
- Objects
- Creating Objects
- Using Objects
- Using the this Keyword
- Controlling Access to Members of a Class
- Understanding Instance and Class Members
- Initializing Fields
- Nested Classes (Optional)
- Inner Class Example (Optional)
- Enum Types
- Annotations
- Overriding and Hiding Methods and Fields
- Using the Keyword
super
- Object as a Superclass (Dynamic binding, Polymorphism)
- Writing Final Classes and Methods
- Abstract Classes
- Reference Casting
- “Object” class
- Composition (vs Inheritance)
- Defining an Interface
- Implementing an Interface
- Using an Interface as a Type
- What Is an Exception?
- Catching and Handling Exceptions
- The try...catch...finally Blocks
- Specifying the Exceptions Thrown by a Method
- How to Throw Exceptions
- Chained Exceptions
- Creating Exception Classes
- Checked/Unchecked Exceptions
- Interfaces and Implementations
- Collection and Map Interface
- Set Interface and implementation
- List Interface and implementation
- Queue Intreface and implementation
- Ordering a collection
- Collections.sort()
- implement Comparable interface
- implement Comparator interface
- Examples:
- Why use Generics?
- Examples: - link
- I/O Streams
- Byte Streams
- Character Streams
- Buffered Streams
- Scanning
- Formatting
- Data Streams
- Object Streams
- File I/O
- File Objects
- Creational Patterns
- Structural Patterns
- Behavioral Patterns
- Command line arguments
- Properties
- Environment
- System properties
- JDBC basics
- Executing SQL
- Basics
- JUnit
- TestNg
- Git
- link
- link
- interactive
- difference with SVN and other centralized CVS systems
- actions:
- initalizing a git repo
- adding to tracking
- cloning
- commiting
- pushing
- pulling
- merging
- Branching Strategies
- Handling conflicts
- Pull Requests
- FE vs BE
- Web Server
- Static vs Dynamic sites
- Networking
- UML
- Coding Standards
- Clarity and Maintainability
- Official site
- SauceLabs "Getting Started with Selenium for Automated Website Testing"
- Page Object Pattern