{"id":15925906,"url":"https://github.com/iljapavlovs/java-training","last_synced_at":"2025-04-03T13:24:35.269Z","repository":{"id":186401411,"uuid":"76962620","full_name":"iljapavlovs/java-training","owner":"iljapavlovs","description":"Java Training ","archived":false,"fork":false,"pushed_at":"2017-06-22T08:23:21.000Z","size":28,"stargazers_count":0,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-09T02:26:05.718Z","etag":null,"topics":["java","tasks","tutorial"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/iljapavlovs.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2016-12-20T14:20:01.000Z","updated_at":"2017-06-21T21:16:58.000Z","dependencies_parsed_at":null,"dependency_job_id":"6c7e04f4-0f97-4cd1-87bd-3f054b62b3f5","html_url":"https://github.com/iljapavlovs/java-training","commit_stats":null,"previous_names":["iljapavlovs/java-training"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljapavlovs%2Fjava-training","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljapavlovs%2Fjava-training/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljapavlovs%2Fjava-training/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/iljapavlovs%2Fjava-training/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/iljapavlovs","download_url":"https://codeload.github.com/iljapavlovs/java-training/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247007725,"owners_count":20868264,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","tasks","tutorial"],"created_at":"2024-10-06T22:20:36.122Z","updated_at":"2025-04-03T13:24:35.249Z","avatar_url":"https://github.com/iljapavlovs.png","language":"Java","readme":"Java Training Plan\n============================================\n\nModule 1\n--------------------------------------------\n## 1. What is Java?\nFirst and foremost I recommend start learning Java programming language with\n\n1. I-III chapters from \"Head First Java\" book\n2. Java [\"Getting Started\"](https://docs.oracle.com/javase/tutorial/getStarted/index.html) tutorial from ORACLE\n3. II-III chapters from [\"Thinking in Java\"](https://iamgodsom.files.wordpress.com/2014/08/java-the-complete-reference-7th-edition.pdf) book \n\n---\n\n1. Main concepts\n2. What is JVM and what`s the purpose\n3. Compiled vs Interpreted languages\n    * **Tasks**: \n        * illustrate example of running java code in JVM and explain\n4. JDK vs JRE\n    * **Tasks**: \n        * Whats the purpose of each of them?\n5. Installation\n6. Hello World example\n    * **Tasks**: \n        * Writing and Running Hello World from command line\n        * Writing and Running Hello World from IDE\n7. Java Source File Structure\n    * **Tasks**: \n        * List components of Java Source File\n\n## 2. Language Basics\n### 1. Variables\n  1. Declaration and Initialization (Variable Assignment);\n      * The data type of the value being assigned must be compatible with the data type of the variable receiving the value\n  2. Variable Scoping\n   * Refers to portions or sections of a program where the variable has value and is said to be ‘visible’\n   * Types of variables by scope:\n        - Class Variables\n        - Instance Variables\n        - Local Variables     \n  3. Data Types\n    - Primitive Data Types\n    - Reference Data Types\n  4. Type Conversion\n    - Implicit casting\n    - Explicit Casting\n\n* Questions - What does \"Strongly (static) Typed language\" and \"Loosely Typed Language\" means?\n    * [link](https://ru.hexlet.io/courses/introduction_to_programming/lessons/types/theory_unit?utm_content=buffer98f60\u0026utm_medium=social\u0026utm_source=facebook.com\u0026utm_campaign=buffer)\n\n### 2. Arrays\n\n### 3. Operators\n\n### 4. Expressions, Statements, and Blocks\n\n### 5. Control Flow Statements\n- The if-then and if-then-else Statements\n- The switch Statement\n- The while and do-while Statements\n- The for Statement\n\n### 6. Branching Statements\n- break\n- continue\n- return\n\nModule 2\n--------------------------------------------\n## 3. Object-Oriented Programming Concepts\n- What Is an Object?\n- What Is a Class?\n- What Is Inheritance?\n- What Is an Interface?\n- What Is a Package?\n\n## 4. Classes and Objects\n1. Classes\n    1. Declaring Classes\n    2. Declaring Member Variables\n    3. Defining Methods\n    4. Providing Constructors for Your Classes\n    5. Passing Information to a Method or a Constructor\n2. Objects\n    1. Creating Objects\n    2. Using Objects\n    3. Using the this Keyword\n    4. Controlling Access to Members of a Class\n    5. Understanding Instance and Class Members\n    6. Initializing Fields\n    7. Nested Classes (Optional)\n    8. Inner Class Example (Optional)\n    9. Enum Types\n    10. Annotations\n\nModule 3/4\n--------------------------------------------\n## 5. Inheritance\n1. Overriding and Hiding Methods and Fields\n2. Using the Keyword `super`\n3. Object as a Superclass (Dynamic binding, Polymorphism)\n4. Writing Final Classes and Methods\n5. Abstract Classes\n6. Reference Casting\n7. “Object” class\n8. Composition (vs Inheritance)\n    * http://www.javaworld.com/article/2076814/core-java/inheritance-versus-composition--which-one-should-you-choose-.html\n\nModule 3/4\n--------------------------------------------\n## 6. Interfaces\n1. Defining an Interface\n2. Implementing an Interface\n3. Using an Interface as a Type\n\n---\n\n## 7. Strings\n\n## 8. Exceptions\n1. What Is an Exception?\n2. Catching and Handling Exceptions\n3. The try...catch...finally Blocks\n4. Specifying the Exceptions Thrown by a Method\n5. How to Throw Exceptions\n6. Chained Exceptions\n7. Creating Exception Classes\n8. Checked/Unchecked Exceptions\n\n## 9. Collections\n1. Interfaces and Implementations\n2. Collection and Map Interface\n3. Set Interface and implementation\n4. List Interface and implementation\n5. Queue Intreface and implementation\n6. Ordering a collection\n    - Collections.sort() \n    - implement Comparable interface\n    - implement Comparator interface\n7. Examples:\n    - [link](https://github.com/nicholasren/java-training/tree/master/java-basic/src/main/java/com/thoughtworks/collections)\n\n## 10. Generics\n1. Why use Generics?\n    - https://www.youtube.com/watch?v=4Rpr7aeSzxA\n    - https://www.youtube.com/watch?v=WPxcQtVWVKY\n    - https://www.youtube.com/watch?v=rOBtgaXaba0\n2. Examples:\n       - [link](https://github.com/nicholasren/java-training/tree/master/java-basic/src/main/java/com/thoughtworks/generic)\n\n## 11. Basic I/O\n1. I/O Streams\n2. Byte Streams\n3. Character Streams\n4. Buffered Streams\n5. Scanning\n6. Formatting\n7. Data Streams\n8. Object Streams\n9. File I/O\n10. File Objects\n\n### Design Patterns\n* Creational Patterns\n* Structural Patterns\n* Behavioral Patterns\n\n### Platform\n1. Command line arguments\n2. Properties\n3. Environment\n4. System properties\n\n### Database access\n1. JDBC basics\n2. Executing SQL\n\n### Unit testing\n1. Basics\n2. JUnit\n3. TestNg\n\n### Build tools\n1. Maven\n    - http://stackoverflow.com/questions/16205778/what-are-maven-goals-and-phases-and-what-is-their-difference \n\n### Version Control Systems\n1. Git\n    - [link](https://www.atlassian.com/git/tutorials/what-is-version-control)\n    - [link](http://www.vogella.com/tutorials/Git/article.html)\n    - [interactive](https://try.github.io/levels/1/challenges/1)\n    - difference with SVN and other centralized CVS systems\n    - actions:\n        * initalizing a git repo\n        * adding to tracking\n        * cloning\n        * commiting\n        * pushing\n        * pulling\n        * merging\n    - Branching Strategies\n    - Handling conflicts \n    - Pull Requests\n\n### Continuos Integration Process\n - http://slides.com/iljapavlovs/deck-4/fullscreen#/ \n\n### Web App basics\n - FE vs BE\n    * https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Introduction \n - Web Server \n    * https://developer.mozilla.org/en-US/docs/Learn/Common_questions/What_is_a_web_server\n    * https://developer.mozilla.org/en-US/docs/Learn/Getting_started_with_the_web/How_the_Web_works\n    * https://www.youtube.com/watch?v=syuIHCMHQgc\n - Static vs Dynamic sites\n    * https://developer.mozilla.org/en-US/docs/Learn/Server-side/First_steps/Client-Server_overview\n### Serialization/Deserialization\n - JSON\n    - https://www.youtube.com/watch?v=syuIHCMHQgc\n - XML\n \n### Topics to read on\n - Networking\n - UML\n - Coding Standards\n - Clarity and Maintainability\n \n### Selenium Webdriver\n1. [Official site](http://www.seleniumhq.org/docs/03_webdriver.jsp#introducing-webdriver)\n2. SauceLabs [\"Getting Started with Selenium for Automated Website Testing\"](https://wiki.saucelabs.com/display/DOCS/Getting+Started+with+Selenium+for+Automated+Website+Testing)\n3. Page Object Pattern\n    * https://github.com/SeleniumHQ/selenium/wiki/PageObjects\n    * http://internetka.in.ua/selenium-page-object/\n    * https://confengine.com/selenium-conf-2014/proposal/310/page-objects-done-right\n   \n\n### Misc\n   * Bash scripting :   \n        * http://ryanstutorials.net/bash-scripting-tutorial/\n        * https://habrahabr.ru/company/ruvds/blog/325522/\n        * https://cmdchallenge.com/ \n   * Books to read:\n        * http://automation-remarks.com/knigi-aqa/index.html","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filjapavlovs%2Fjava-training","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Filjapavlovs%2Fjava-training","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Filjapavlovs%2Fjava-training/lists"}