Skip to content

Java Fundamentals Course

enki-hq edited this page Jul 3, 2018 · 4 revisions

Fundamentals Course Overview

Table of Contents

Content

Below you can find the ordered content of the topic, in a linear progression

The linear progression of content aims to cover all content, course by course, workout by workout as follows:

  • first course is the only core one, denoted by its manifest
  • the next course is denoted by the first item of the next array in each course manifest
  • each course has its order of workouts designated by the sections field in the same aforementioned manifest

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-java
2 why-should-i-learn-java
3 java-versions
4 java-hello-world
5 compiling-and-running-java-code

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 java-identifiers
2 java-primitives
3 java-strings
4 functions
5 packages

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 difference-between-jre-and-jdk
2 different-types-of-variables-in-java
3 constant-notation
4 ternary-operator
5 use-meaningful-names

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 equals-operation-on-different-data-types
2 from-is-included-while-to-is-excluded
3 multiple-relational-operators
4 prefix-and-postfix-of-increment-operators
5 use-varargs-when-unsure-about-the-number-of-parameters

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

5. tips-i

Insights:

no name content aspects standards PQ RQ Quiz done
1 use-comments-to-explain-the-purpose-of-code
2 avoid-excessively-long-comments
3 avoid-similar-names
4 avoid-synonyms-when-naming
5 follow-existing-project-naming-conventions

Exercises:

⚠️ There are no insights in this workout.

Game:

name type aspects standards done
java-8 tetris

Insights:

no name content aspects standards PQ RQ Quiz done
1 always-specify-type-parameter
2 common-mistake-on-switch-statements
3 how-range-operations-work
4 short-circuit-evaluation
5 there-is-no-such-thing-as-pass-by-reference-in-java

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 the-trade-off-between-short-and-descriptive-names
2 supply-tostring-in-all-classes
3 package-naming-conventions
4 calling-one-constructor-from-another
5 avoid-using-static-variables

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 updating-interfaces-by-using-default-methods
2 instance-methods-are-preferred-over-default-methods
3 using-static-fields
4 using-inner-classes
5 an-interface-s-methods-do-not-need-to-be-declared-as-public

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 two-ways-to-use-an-iterator
2 iterate-without-an-index
3 double-brace-initialization
4 diamond-operator
5 implementing-the-comparable-interface-to-give-objects-a-natural-order

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

10. memory

Insights:

no name content aspects standards PQ RQ Quiz done
1 java-memory-management
2 distinction-between-stack-and-heap-memory
3 only-objects-that-are-not-referenced-are-to-be-garbage-collected
4 stop-the-world-and-garbage-collection
5 why-java-does-not-have-sizeof-like-c-c

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-a-class
2 what-is-an-object
3 inheritance
4 polymorphism
5 java-interfaces

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 java-modifiers
2 default-and-public-modifiers
3 the-private-and-protected-modifiers
4 the-static-modifier
5 the-final-modifier
6 encapsulation

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 loose-and-tight-coupling
2 cohesion
3 do-not-return-references-to-private-mutable-class-members
4 using-an-interface-as-a-parameter
5 default-constructors

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 uses-of-the-final-keyword
2 sibling-classes
3 utility-classes-and-static-methods
4 use-a-copy-constructor-for-non-immutable-objects
5 be-as-specific-as-possible-when-catching-exceptions

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 catch-multiple-exceptions-in-a-single-catch-block
2 avoid-empty-catch-blocks
3 creating-new-exceptions
4 throwing-an-exception
5 the-distinction-between-checked-and-unchecked-exceptions

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 avoid-unnecessary-exception-handling
2 use-descriptive-error-messages-when-catching-exceptions
3 retrieving-the-cause-of-an-exception
4 throwing-chained-exceptions
5 use-standard-exceptions-when-possible

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 singleton-pattern
2 static-factory-methods
3 facade-pattern
4 don-t-repeat-yourself-dry-principle
5 hashing

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

18. tips-iv

Insights:

no name content aspects standards PQ RQ Quiz done
1 converting-stack-trace-to-a-string
2 getting-time-based-on-time-zones
3 measuring-time
4 use-locale-class-for-internationalisation
5 most-common-reason-behind-stack-overflow-error

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 limit-accessibility-of-fields
2 private-constructors
3 the-distinction-between-overloading-and-overriding-methods

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 compare-classes-and-not-class-names
2 the-abstract-keyword
3 abstract-classes-can-have-static-members
4 abstract-class-vs-interface-in-java
5 template-methods-in-abstract-classes

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 defining-static-methods-within-an-interface
2 fields-with-java-reflection-api
3 floating-garbage-and-how-to-deal-with-it
4 increase-permgen-space-as-to-avoid-outofmemory-errors
5 creating-a-defensive-copy-of-an-object-to-guarantee-immutability

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-is-serialization
2 serializing
3 deserializing
4 serial-version-u-i-d
5 checking-if-a-class-is-serializable

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

23. tips-v

Insights:

no name content aspects standards PQ RQ Quiz done
1 java-8-lambda-expressions
2 use-lazy-initialization-to-defer-creating-an-object-until-it-s-used
3 prevent-exceptions-while-logging-data
4 throwing-proper-exceptions-for-unfinished-code
5 generating-a-compact-java-code

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 what-are-annotations
2 retention-and-inherited-annotations
3 variable-argument-function

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 use-javadoc-comments-to-describe-the-purpose-of-a-class-or-method
2 use-override-to-explicitly-indicate-that-a-method-has-been-overridden
3 the-distinction-between-checked-and-unchecked-exceptions
4 using-super-to-access-overriden-methods
5 specifying-an-annotation-retention-policy

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Insights:

no name content aspects standards PQ RQ Quiz done
1 declaring-repeatable-annotation-types
2 including-annotations-in-javadoc
3 restricting-an-annotation-s-application-by-using-target
4 suppressing-warnings-using-suppresswarnings
5 using-the-deprecated-annotation

Exercises:

⚠️ There are no insights in this workout.

Game:

⚠️ There is no game in this workout.

Aspects

Given the insights are tagged with aspects, we can filter over the linear content progression and create learning sub-paths.

These sub-path progressions will most likely not cover all content, but they will ensure and enforce an unified learning experience, tailor for the user wish.

For example, a user might be interested in new additions and updates of a language, rather than introduction lessions. Note that these sub-paths don't take games into consideration

👶 Introduction

If you are being introduced to the topic for the first time

⚠️ There are no insights tagged with this aspect in fundamentals. :warning: There are no exercises tagged with this aspect in fundamentals. :warning: There are no games tagged with this aspect in fundamentals.

💪 Workout

Theory put into practice/that’s how you achieve X points

⚠️ There are no insights tagged with this aspect in fundamentals. :warning: There are no exercises tagged with this aspect in fundamentals. :warning: There are no games tagged with this aspect in fundamentals.

🦑 Deep

Prerequisite knowledge consisting of 2 or more 👶/💪 workouts

⚠️ There are no insights tagged with this aspect in fundamentals. :warning: There are no exercises tagged with this aspect in fundamentals. :warning: There are no games tagged with this aspect in fundamentals.

✨ New

Recently added/gained traction feature

⚠️ There are no insights tagged with this aspect in fundamentals. :warning: There are no exercises tagged with this aspect in fundamentals. :warning: There are no games tagged with this aspect in fundamentals.

🔮 Obscura

Stories, obscure details that don’t specifically relate to a learning objective

⚠️ There are no insights tagged with this aspect in fundamentals. :warning: There are no exercises tagged with this aspect in fundamentals. :warning: There are no games tagged with this aspect in fundamentals.

Content without aspects

  1. what-is-java
  2. why-should-i-learn-java
  3. java-versions
  4. java-hello-world
  5. compiling-and-running-java-code
  6. java-identifiers
  7. java-primitives
  8. java-strings
  9. functions
  10. packages
  11. difference-between-jre-and-jdk
  12. different-types-of-variables-in-java
  13. constant-notation
  14. ternary-operator
  15. use-meaningful-names
  16. equals-operation-on-different-data-types
  17. from-is-included-while-to-is-excluded
  18. multiple-relational-operators
  19. prefix-and-postfix-of-increment-operators
  20. use-varargs-when-unsure-about-the-number-of-parameters
  21. use-comments-to-explain-the-purpose-of-code
  22. avoid-excessively-long-comments
  23. avoid-similar-names
  24. avoid-synonyms-when-naming
  25. follow-existing-project-naming-conventions
  26. java-8
  27. always-specify-type-parameter
  28. common-mistake-on-switch-statements
  29. how-range-operations-work
  30. short-circuit-evaluation
  31. there-is-no-such-thing-as-pass-by-reference-in-java
  32. the-trade-off-between-short-and-descriptive-names
  33. supply-tostring-in-all-classes
  34. package-naming-conventions
  35. calling-one-constructor-from-another
  36. avoid-using-static-variables
  37. updating-interfaces-by-using-default-methods
  38. instance-methods-are-preferred-over-default-methods
  39. using-static-fields
  40. using-inner-classes
  41. an-interface-s-methods-do-not-need-to-be-declared-as-public
  42. two-ways-to-use-an-iterator
  43. iterate-without-an-index
  44. double-brace-initialization
  45. diamond-operator
  46. implementing-the-comparable-interface-to-give-objects-a-natural-order
  47. java-memory-management
  48. distinction-between-stack-and-heap-memory
  49. only-objects-that-are-not-referenced-are-to-be-garbage-collected
  50. stop-the-world-and-garbage-collection
  51. why-java-does-not-have-sizeof-like-c-c
  52. what-is-a-class
  53. what-is-an-object
  54. inheritance
  55. polymorphism
  56. java-interfaces
  57. java-modifiers
  58. default-and-public-modifiers
  59. the-private-and-protected-modifiers
  60. the-static-modifier
  61. the-final-modifier
  62. encapsulation
  63. loose-and-tight-coupling
  64. cohesion
  65. do-not-return-references-to-private-mutable-class-members
  66. using-an-interface-as-a-parameter
  67. default-constructors
  68. uses-of-the-final-keyword
  69. sibling-classes
  70. utility-classes-and-static-methods
  71. use-a-copy-constructor-for-non-immutable-objects
  72. be-as-specific-as-possible-when-catching-exceptions
  73. catch-multiple-exceptions-in-a-single-catch-block
  74. avoid-empty-catch-blocks
  75. creating-new-exceptions
  76. throwing-an-exception
  77. the-distinction-between-checked-and-unchecked-exceptions
  78. avoid-unnecessary-exception-handling
  79. use-descriptive-error-messages-when-catching-exceptions
  80. retrieving-the-cause-of-an-exception
  81. throwing-chained-exceptions
  82. use-standard-exceptions-when-possible
  83. singleton-pattern
  84. static-factory-methods
  85. facade-pattern
  86. don-t-repeat-yourself-dry-principle
  87. hashing
  88. converting-stack-trace-to-a-string
  89. getting-time-based-on-time-zones
  90. measuring-time
  91. use-locale-class-for-internationalisation
  92. most-common-reason-behind-stack-overflow-error
  93. limit-accessibility-of-fields
  94. private-constructors
  95. the-distinction-between-overloading-and-overriding-methods
  96. compare-classes-and-not-class-names
  97. the-abstract-keyword
  98. abstract-classes-can-have-static-members
  99. abstract-class-vs-interface-in-java
  100. template-methods-in-abstract-classes
  101. defining-static-methods-within-an-interface
  102. fields-with-java-reflection-api
  103. floating-garbage-and-how-to-deal-with-it
  104. increase-permgen-space-as-to-avoid-outofmemory-errors
  105. creating-a-defensive-copy-of-an-object-to-guarantee-immutability
  106. what-is-serialization
  107. serializing
  108. deserializing
  109. serial-version-u-i-d
  110. checking-if-a-class-is-serializable
  111. java-8-lambda-expressions
  112. use-lazy-initialization-to-defer-creating-an-object-until-it-s-used
  113. prevent-exceptions-while-logging-data
  114. throwing-proper-exceptions-for-unfinished-code
  115. generating-a-compact-java-code
  116. what-are-annotations
  117. retention-and-inherited-annotations
  118. variable-argument-function
  119. use-javadoc-comments-to-describe-the-purpose-of-a-class-or-method
  120. use-override-to-explicitly-indicate-that-a-method-has-been-overridden
  121. the-distinction-between-checked-and-unchecked-exceptions
  122. using-super-to-access-overriden-methods
  123. specifying-an-annotation-retention-policy
  124. declaring-repeatable-annotation-types
  125. including-annotations-in-javadoc
  126. restricting-an-annotation-s-application-by-using-target
  127. suppressing-warnings-using-suppresswarnings
  128. using-the-deprecated-annotation
Clone this wiki locally