Skip to content

Commit

Permalink
Remove Java sections
Browse files Browse the repository at this point in the history
  • Loading branch information
giulianopz committed Jun 2, 2024
1 parent 64fd1ee commit cd7876d
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 215 deletions.
6 changes: 2 additions & 4 deletions src/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,10 @@
[Introduction](./intro.md)

- [Teaching Yourself CS](./teach.md)
- [Java](./java.md)
- [Most Popular Libraries, Frameworks and Tools for Java](./libs.md)
- [Other Programming Languages](./languages.md)
- [Software Testing](./testing.md)
- [Programming Languages](./languages.md)
- [Algorithms & Data Structures](./algs.md)
- [Software Design](./software-design.md)
- [Software Testing](./testing.md)
- [Inter-Process Communication (IPC)](./ipc.md)
- [I/O](./io.md)
- [Databases & SQL](./db.md)
Expand Down
28 changes: 12 additions & 16 deletions src/intro.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
# Introduction

This is a dump of links I keep collecting as I progress as a software programmer. I use it to have a personal log of good stuff I discover while wandering about in the web.
This book is just a dump of links I keep collecting as I progress as a software programmer. I use it to have a personal log of good stuff I discover while wandering about in the web.

Ideally, it describes a learning path to get into programming starting from Java, which is just the typical entry point (or entry level) programming language for many people in enterprise software development. Despite all the [criticism](https://en.wikipedia.org/wiki/Criticism_of_Java), the world still runs on Java 8[^1] (or newer versions, hopefully): it's an ubiquitous language you can encounter even in the most remote places (e.g. in a [PlayStation](https://www.mikekohn.net/micro/playstation2_java.php)). On the other hand, some of these critics are well-founded[^2]. So, equally, having a look to [modern programming languages](./languages.md) sounds reasonable. Especially to Go, which really seems to be destined to replace Java pretty everywhere. Generally speaking, any programming language is good as long as it allows you to get your job done (just like any natural language is good as long as it allows you to transmit a meaning).

Although the repo is quite dense, one must keep in mind that the focus of learning to code should always be on learning abstract concepts and their low-level implementation details, which underlie the tech stack used in modern programming, rather than specific and ephemeral tools (e.g. libraries, frameworks, etc.):
While perusing the vast array of articles, books, videos, etc. linked, one must keep in mind that the focus of learning to code[^1] should always be on learning abstract concepts and their low-level implementation details, which underlie the tech stack used in modern software, rather than specific and ephemeral tools (e.g. libraries, frameworks, etc.):

> Modern programming is becoming complex, uninteresting, full of layers that just need to be glued. It is losing most of its beauty. In that sense, most programming is no longer art nor high engineering (most programs written at big and small corporations are trivial: coders just need to understand certain ad-hoc abstractions, and write some logic and [glue code](https://en.m.wikipedia.org/wiki/Glue_code)). Only very few programmers are facing the artistic face of programming. Only very few programmers are facing high engineering in programming.
>> Salvatore Sanfilippo[^3]
>> Salvatore Sanfilippo[^2]
In fact, an [application software](https://en.wikipedia.org/wiki/Application_software) usually consists of levels (or layers) of [abstraction](https://en.wikipedia.org/wiki/Abstraction_(computer_science)#Levels_of_abstraction), wherein each level represents a different model of the same information and processes, but with varying amounts of detail. Each relatively abstract, higher level builds on a relatively concrete, lower level, which tends to provide an increasingly granular representation.

Expand All @@ -23,22 +21,20 @@ In this respect, the following chapters naturally derail from application progra

---

[^1]: Vicki Boykis, [IT runs on Java 8](https://vickiboykis.com/2019/05/10/it-runs-on-java-8/)

[^2]: Jamis Buck, [LEGOs, Play-Doh, and Programming](https://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programming)
[^1]: Jamis Buck, [LEGOs, Play-Doh, and Programming](https://weblog.jamisbuck.org/2008/11/9/legos-play-doh-and-programming)

[^3]: aka [antirez](http://invece.org/)
[^2]: [antirez](http://invece.org/)

[^4]: Joel Spolsky, [The Law of Leaky Abstractions](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/)
[^3]: Joel Spolsky, [The Law of Leaky Abstractions](https://www.joelonsoftware.com/2002/11/11/the-law-of-leaky-abstractions/)

[^5]: Andrew Doss, [How Long is a Negative Timeout?](https://www.andrewdoss.dev/writing/timeouts/)
[^4]: Andrew Doss, [How Long is a Negative Timeout?](https://www.andrewdoss.dev/writing/timeouts/)

[^6]: Fabien Sanglard, [A Linux evening...](https://fabiensanglard.net/a_linux_evening/index.html)
[^5]: Fabien Sanglard, [A Linux evening...](https://fabiensanglard.net/a_linux_evening/index.html)

[^7]: Julia Evans, [Get better at programming by learning how things work](https://jvns.ca/blog/learn-how-things-work/)
[^6]: Julia Evans, [Get better at programming by learning how things work](https://jvns.ca/blog/learn-how-things-work/)

[^8]: Peter Norvig, [pytudes](https://github.com/norvig/pytudes)
[^7]: Peter Norvig, [pytudes](https://github.com/norvig/pytudes)

[^9]: Peter Norvig, [Teach Yourself Programming in Ten Years](https://norvig.com/21-days.html)
[^8]: Peter Norvig, [Teach Yourself Programming in Ten Years](https://norvig.com/21-days.html)

[^10]: Erik Dietrich, [How Developers Stop Learning: Rise of the Expert Beginner](https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/)
[^9]: Erik Dietrich, [How Developers Stop Learning: Rise of the Expert Beginner](https://daedtech.com/how-developers-stop-learning-rise-of-the-expert-beginner/)
81 changes: 0 additions & 81 deletions src/java.md

This file was deleted.

12 changes: 5 additions & 7 deletions src/languages.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
# Other Programming Languages

## Other Programming Languages
## Programming Languages

- [Go](https://go.dev/tour/welcome/1)
- [Rust](https://doc.rust-lang.org/book/index.html)
- [Zig](https://ziglang.org/learn/overview/)
- [C](https://blog.bradfieldcs.com/how-to-learn-c-59222a627a4c) / C++
- [C](https://blog.bradfieldcs.com/how-to-learn-c-59222a627a4c) & C++
- [Lua](https://www.lua.org/)
- [Kotlin](https://kotlinlang.org/docs/getting-started.html) / [Scala](https://docs.scala-lang.org/tutorials/scala-for-java-programmers.html)
- [Java](https://dev.java/learn/) & [Kotlin](https://kotlinlang.org/docs/getting-started.html) & [Scala](https://docs.scala-lang.org/tutorials/scala-for-java-programmers.html)
- [Python](https://docs.python.org/3/tutorial/)
- [Ruby](https://www.ruby-lang.org/en/documentation/quickstart/) / [Crystal](https://crystal-lang.org/)
- [Ruby](https://www.ruby-lang.org/en/documentation/quickstart/) & [Crystal](https://crystal-lang.org/)
- [Nim](https://nim-lang.org/docs/tut1.html)
- [Erlang](https://www.erlang.org/doc/getting_started/intro.html#prerequisites) / [elixir](https://elixir-lang.org/getting-started/introduction.html)
- [Erlang](https://www.erlang.org/doc/getting_started/intro.html#prerequisites) & [elixir](https://elixir-lang.org/getting-started/introduction.html)
- [Haskell](https://www.haskell.org/get-started/)
107 changes: 0 additions & 107 deletions src/libs.md

This file was deleted.

0 comments on commit cd7876d

Please sign in to comment.