Skip to content

Commit 56d3df0

Browse files
authored
Merge branch 'develop' into byte
2 parents 0a28671 + 1749774 commit 56d3df0

File tree

85 files changed

+543
-76
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

85 files changed

+543
-76
lines changed

book.toml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@ mathjax-support = true
1515
additional-css = ["ferris.css"]
1616
additional-js = ["ferris.js"]
1717
heading-split-level = 2
18+
default-theme = "light"
19+
preferred-default-theme = "light"
1820

1921
[output.html.fold]
2022
enable = false # whether or not to enable section folding

src/SUMMARY.md

Lines changed: 61 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -101,15 +101,54 @@ Intro to testing
101101
Gui stuff
102102
-->
103103

104-
# Modern Java
105104

106105
- [Prelude](./prelude.md)
107106
- [Asking for Help](./prelude/asking_for_help.md)
108107
- [Toy Problems](./prelude/toy_problems.md)
109108
- [Lies](./prelude/lies.md)
110109
- [AI](./prelude/ai.md)
111110
- [Java](./prelude/java.md)
112-
- [Getting Started](./getting_started.md)
111+
112+
<!--
113+
# The Computing Environment
114+
115+
- [Hardware](./hardware.md)
116+
- [CPU](./hardware/cpu.md)
117+
- [RAM](./hardware/ram.md)
118+
- [Hard Drives](./hardware/hard_drives.md)
119+
- [Motherboard](./hardware/motherboard.md)
120+
- [Operating Systems](./operating_systems.md)
121+
- [Personal Computers](./operating_systems/personal_computers.md)
122+
- [Servers](./operating_systems/servers.md)
123+
- [Mobile Phones](./operating_systems/mobile_phones.md)
124+
- [Game Consoles](./operating_systems/game_consoles.md)
125+
- [Abstractions](./operating_systems/abstractions.md)
126+
- [Defaults](./operating_systems/defaults.md)
127+
-->
128+
129+
# Modern Java
130+
131+
- [Set Up Your Computer](./text_editors/set_up_your_computer.md)
132+
- [Text Editors](./text_editors.md)
133+
- [IDEs](./text_editors/ides.md)
134+
- [VSCodium](./text_editors/vscodium.md)
135+
- [Install VSCodium](./text_editors/install_vscodium.md)
136+
- [Install Java](./text_editors/install_java.md)
137+
- [The Terminal](./the_terminal.md)
138+
- [Bash](./the_terminal/bash.md)
139+
- [Windows Subsystem for Linux](./the_terminal/windows_subsystem_for_linux.md)
140+
- [Chromebooks and School Computers](./the_terminal/chromebooks_and_school_computers.md)
141+
- [Commands](./the_terminal/commands.md)
142+
- [Directories](./the_terminal/directories.md)
143+
- [Listing Files](./the_terminal/listing_files.md)
144+
- [Creating Directories](./the_terminal/creating_directories.md)
145+
- [Changing Directories](./the_terminal/changing_directories.md)
146+
- [Creating Files](./the_terminal/creating_files.md)
147+
- [Run Java Programs](./the_terminal/run_java_programs.md)
148+
- [Getting Used to it](./the_terminal/getting_used_to_it.md)
149+
150+
151+
<!-- - [Getting Started](./getting_started.md) -->
113152
- [First Steps](./first_steps.md)
114153
- [Comments](./first_steps/comments.md)
115154
- [Semicolons](./first_steps/semicolon.md)
@@ -445,7 +484,7 @@ Gui stuff
445484
# Projects
446485

447486
<!-- chicken nugget number type things come up when dispensing change -->
448-
- [Tic-Tac-Toe]()
487+
- [Tic-Tac-Toe](./projects/tic_tac_toe.md)
449488

450489

451490
# Concepts
@@ -458,35 +497,6 @@ Gui stuff
458497
- [Practice](./code_is_read_more_than_written/practice.md)
459498

460499

461-
462-
# The Computing Environment
463-
464-
- [Hardware](./hardware.md)
465-
- [CPU](./hardware/cpu.md)
466-
- [RAM](./hardware/ram.md)
467-
- [Hard Drives](./hardware/hard_drives.md)
468-
- [Motherboard](./hardware/motherboard.md)
469-
- [Operating Systems](./operating_systems.md)
470-
- [Personal Computers](./operating_systems/personal_computers.md)
471-
- [Servers](./operating_systems/servers.md)
472-
- [Mobile Phones](./operating_systems/mobile_phones.md)
473-
- [Game Consoles](./operating_systems/game_consoles.md)
474-
- [Abstractions](./operating_systems/abstractions.md)
475-
- [Defaults](./operating_systems/defaults.md)
476-
- [The Terminal](./the_terminal.md)
477-
- [Bash](./the_terminal/bash.md)
478-
- [Windows Subsystem for Linux](./the_terminal/windows_subsystem_for_linux.md)
479-
- [Chromebooks and School Computers](./the_terminal/chromebooks_and_school_computers.md)
480-
- [Commands](./the_terminal/commands.md)
481-
- [Directories](./the_terminal/directories.md)
482-
- [Listing Files](./the_terminal/listing_files.md)
483-
- [Creating Directories](./the_terminal/creating_directories.md)
484-
- [Changing Directories](./the_terminal/changing_directories.md)
485-
- [Creating Files](./the_terminal/creating_files.md)
486-
- [Run Java Programs](./the_terminal/run_java_programs.md)
487-
- [Getting Used to it](./the_terminal/getting_used_to_it.md)
488-
489-
490500
# Control Flow IV
491501

492502
- [Exceptions II](./exceptions_ii.md)
@@ -551,7 +561,7 @@ Gui stuff
551561
- [Optimized Implementation](./growable_arrays/optimized_implementation.md)
552562
- [Challenges](./growable_arrays/challenges.md)
553563

554-
# Interactive Programs II
564+
# Interactive Programs III
555565

556566
- [Command Line Arguments](./command_line_arguments.md)
557567
- [Accessing Arguments](./command_line_arguments/accessing_arguments.md)
@@ -613,7 +623,7 @@ Gui stuff
613623
- [Challenges](./integers_ii/challenges.md)
614624

615625

616-
# Interactive Programs III
626+
# Interactive Programs IV
617627

618628
- [Files](./files.md)
619629
- [Paths](./files/paths.md)
@@ -874,10 +884,9 @@ Make them do one. -->
874884
- [Arguments](./lambdas/arguments.md)
875885
- [Return](./lambdas/return.md)
876886
- [Method References](./lambdas/method_references.md)
887+
- [Constructor References](./lambdas/constructor_references.md)
877888
- [Inference](./lambdas/inference.md)
878889
- [Built-In Functional Interfaces](./lambdas/built_in_functional_interfaces.md)
879-
- [Runnable](./lambdas/runnable.md)
880-
- [Function](./lambdas/function.md)
881890
- [Checked Exceptions](./lambdas/checked_exceptions.md)
882891
- [Challenges](./lambdas/challenges.md)
883892

@@ -953,7 +962,11 @@ TODO: Wait for hermetic java
953962
- [Collectors](./streams/collectors.md)
954963
- [Purpose](./streams/purpose.md)
955964
- [Challenges](./streams/challenges.md)
965+
966+
956967
<!--
968+
Make a challenge where the solution is to write normal code.
969+
957970
- [Regular Expressions 🚧](./regular_expressions.md)
958971
- [Theoretical Basis](./regular_expressions/theoretical_basis.md)
959972
- [Pattern](./regular_expressions/pattern.md)
@@ -964,14 +977,26 @@ TODO: Wait for hermetic java
964977
- [Matcher]()
965978
- [Pathological Cases]()
966979
- [Power]()
980+
981+
# Interactive Programs IV
982+
983+
- [Files II](./files_ii.md)
984+
- [List Files](./files_ii/list_files.md)
985+
- [Read Lines](./files_ii/read_lines.md)
986+
- [InputStream](./files_ii/input_stream.md)
987+
- [OutputStream](./files_ii/output_stream.md)
988+
- [Reader](./files_ii/reader.md)
989+
- [Writer](./files_ii/writer.md)
967990
-->
968991

992+
969993
# Conclusion
970994

971995
- [What Now?](./conclusion/what_now.md)
972996

973997

974998
<!--
999+
9751000
- [Strings III 🚧]()
9761001
9771002
Streams II

src/compilation/modules.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Modules
22

33
For reasons that will become apparent as we proceed,
4-
it is best if all all the code you intend to share
4+
it is best if all the code you intend to share
55
is contained within a named module.
66

77
This means at minimum your classes would need to be in packages

src/compilation/running_compiled_code.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ you would run `java --class-path output chopin.Impromptu`.
1818
`--class-path` should be self-explanatory. It is the path where `java`
1919
will look for class files.
2020

21-
But if you do not have any classes in the unnamed package - which will
22-
be hopefully be the case when you share code with others[^conflicts] -
21+
But if you do not have any classes in the unnamed package - which will hopefully be the case when you share code with others[^conflicts] -
2322
you instead want to run your code like this.
2423

2524
```

src/conclusion/what_now.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -142,12 +142,12 @@ most employable one of the many HTTP server options out there.
142142
### Desktop Applications
143143

144144
If you want to learn how to make desktop applications in Java you have basically
145-
three paths.
145+
two paths.
146146

147147
Path #1 is to learn Java Swing. This is an old crusty GUI framework that is kinda difficult to use
148148
but has the pro of coming with Java and being able to run on every potato in existence.
149149

150-
[Docs for `java.desktop` (Swing) here](https://docs.oracle.com/en/java/javase/24/docs/api/jdk.httpserver/module-summary.html)
150+
[Docs for `java.desktop` (Swing) here](https://docs.oracle.com/en/java/javase/24/docs/api/java.desktop/module-summary.html)
151151

152152
Path #2 is the learn JavaFX. By all accounts JavaFX is better software than Swing, but it was cursed
153153
by coming out at a point in history where desktop apps were no longer big business to develop. It
@@ -187,7 +187,8 @@ learned JavaScript that is a good one to touch next.
187187

188188
There are languages out there like TypeScript that compile to JavaScript -
189189
and you can find some projects out there that do much the same for Java -
190-
but just practically speaking learning JavaScript
190+
but just practically speaking learning JavaScript is going to be something
191+
you have to do at some point if you get into making websites.
191192

192193
### C#
193194

@@ -226,10 +227,10 @@ you do to make a full app in it, but it can't hurt.
226227

227228
[Kotlin Android Tutorial here](https://kotlinlang.org/docs/android-overview.html)
228229

229-
If you want to make Desktop or Mobile apps in Kotlin it is probably also worth checking out
230-
Jetpack Compose.
230+
If you want to make Desktop, Mobile, or Web apps in Kotlin it is probably also worth checking out
231+
Jetbrains Compose Multiplatfrom.
231232

232-
[Getting Started for Jetpack Compose here](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-multiplatform-create-first-app.html)
233+
[Getting Started for Jetbrains Compose Multiplatfrom here](https://www.jetbrains.com/help/kotlin-multiplatform-dev/compose-multiplatform-create-first-app.html)
233234

234235

235236
### Others
@@ -261,4 +262,7 @@ context for quite yet:
261262

262263
* Rust
263264
* Zig
265+
* Clojure
266+
267+
264268
[^wasm]: Fight me, WebAssembly fans.

src/easy_vs_simple.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Easy vs. Simple

src/exceptions_ii/unchecked_exceptions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Unchecked Exceptions
22

3-
When a part of your code might throw a "unchecked" exception, other
3+
When a part of your code might throw an "unchecked" exception, other
44
parts of your code do not need to account for that possibility.
55

66
```java

src/files_ii.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Files II

src/files_ii/challenges.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# Challenges

src/files_ii/input_stream.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# InputStream

0 commit comments

Comments
 (0)