Rendered at 07:33:16 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
voidUpdate 11 minutes ago [-]
Your category names aren't rendering the "&" correctly as "&", might want to look into that (Chrome 147.0.7727.138, Windows)
kristianp 5 hours ago [-]
Takes me back to simpler days when Java was THE language to learn and book like this was interesting. It seems the author took each day in the book as an inspiration for a blog post, which gives it value beyond the book itself.
deepsun 4 hours ago [-]
I taught students in Java and Python and noticed that Python is actually harder. Things you don't even notice, like breathing, make a lot of confusion for newcomers.
The biggest one is types -- students think in terms of meaning, not types, e.g. "this my variable contains first name", but they don't realize it's a string. Or "this is products in checkout cart", but the variable is an integer, so it's products count, not a list of product. Once students get idea of getting an item of a collection and getting a field of that item, while watching every type along the way -- that's a major breakthrough during learning.
The easiest to learn would be a language where you have to define all variable types on top, like Pascal (a language created specifically for learning). But Java is still better than Python, as it doesn't even run wit messed types.
DeathArrow 2 hours ago [-]
Java would be fine if it and it's community wouldn't force OOP and GOF patterns everywhere.
gbnwl 4 hours ago [-]
What exactly is the intuition behind taking something inherently linear like a sequence of 100 days and presenting it as a graph with no information given about the rationale or reasoning behind the edges.
elric 38 minutes ago [-]
Think of each day as a lesson, and then it makes more sense. E.g. Lesson 49 was useful for understanding Lessons 50 and 65.
gowld 3 hours ago [-]
It's 100 days of Java, not 100 days of Visual Information Architecture.
jacobrussell 4 hours ago [-]
I looked around, but can't find the source information this was created off of -- where are the questions/topics for the 100 days listed?
celurian92 2 hours ago [-]
the source is mostly the content tags in each blog posts. https://mohibulsblog.netlify.app/blog/ each post have some content tags. graph is based on that.
celurian92 3 days ago [-]
I completed 100 Days of Java and ended up and it took me roughly 5 years.
Made an interactive map/index of the posts, linked by related topics. I made it to make the series easier to browse by concept instead of only by day number.
evanjrowley 8 hours ago [-]
Nice work! I appreciate the topic and search filters too.
Zardoz84 26 minutes ago [-]
> Day 1: Comparing/ checking equality against multiple Strings.
Just use Apache Commons Lang Strings.CS.equalsAny . If not, List.of or Set.of (if N could be big) should be the best options. Streams are better when you chain many operations.
Mashimo 58 minutes ago [-]
Wait, foreach is slower then for loop? I did not know this.
aw1621107 17 minutes ago [-]
I'd be a bit skeptical of the result given the benchmark program:
import java.util.ArrayList;
import java.util.List;
class Day06 {
public static void main(String args[]) {
List<String> fileTypeList = new ArrayList<>();
for (int i = 0; i < 1000000; i++) {
fileTypeList.add("fileType");
}
long beforeForLoop = System.currentTimeMillis();
for (int i = 0; i < fileTypeList.size(); i++) {
fileTypeList.get(i);
}
long afterForLoop = System.currentTimeMillis();
System.out.println("Time took in millis for for " + (afterForLoop - beforeForLoop));
long beforeForeachLoop = System.currentTimeMillis();
for (String s : fileTypeList) {
}
long afterForeachLoop = System.currentTimeMillis();
System.out.println("Time took in millis for foreach " + (afterForeachLoop - beforeForeachLoop));
}
}
To be honest I'm surprised the JIT didn't eliminate the loops altogether.
If you want proper results you probably want to use the Java Microbenchmark Harness [0]. You'd probably want some actual data/work as well so the JIT doesn't overspecialize on the benchmark.
for each is syntactic sugar for a while loop with an iterator. It will always be slower than the classic for index loop over the same collection/array.
afunk 4 hours ago [-]
You should try rendering the graph in 3js. It’s pretty easy and so so beautiful.
Toto.tech has a decent example. You have flight controls with wasd + mouse
celurian92 2 hours ago [-]
will try it this weekend. Thanks for the suggestion
fabiensanglard 8 hours ago [-]
This website is very confusing.
debesyla 9 hours ago [-]
I personally am not sure what's the point of this, when the graph seems like doesn't give any real information + doesn't even work on mobile (no hover), but congrats on finishing up the series!
celurian92 2 hours ago [-]
sorry as UI was not optimized enough for mobile but my intention was to show the adventure of writing and learning more about java
artenes_dev 7 hours ago [-]
This looks interesting, I worked with Java some time ago, but haven't touched it for some time. I guess since the graph is really not that intuitive this really describes how complicated can be learning Java!
celurian92 2 hours ago [-]
Learning java is not that hard. I really love this language with all its quirks. so i guess i will be little biased here but its my fault not to represent the information in such a way that it can be more intuitive.
ivolimmen 53 minutes ago [-]
As a Java Developer that has been coding since Java 1.2.2; it depends on the quirks :D
The biggest one is types -- students think in terms of meaning, not types, e.g. "this my variable contains first name", but they don't realize it's a string. Or "this is products in checkout cart", but the variable is an integer, so it's products count, not a list of product. Once students get idea of getting an item of a collection and getting a field of that item, while watching every type along the way -- that's a major breakthrough during learning.
The easiest to learn would be a language where you have to define all variable types on top, like Pascal (a language created specifically for learning). But Java is still better than Python, as it doesn't even run wit messed types.
Made an interactive map/index of the posts, linked by related topics. I made it to make the series easier to browse by concept instead of only by day number.
Just use Apache Commons Lang Strings.CS.equalsAny . If not, List.of or Set.of (if N could be big) should be the best options. Streams are better when you chain many operations.
If you want proper results you probably want to use the Java Microbenchmark Harness [0]. You'd probably want some actual data/work as well so the JIT doesn't overspecialize on the benchmark.
[0]: https://github.com/openjdk/jmh
Toto.tech has a decent example. You have flight controls with wasd + mouse
To name 2:
https://devdocs.io/openjdk~21/java.base/java/util/gregorianc...
https://devdocs.io/openjdk~21/java.base/java/net/url#equals(...