loading...
Cover image for My First Week of Java

My First Week of Java

sbu_05 profile image CoolCodekid ・3 min read

This is my first week learning Java and can I just say "Wow, its a lot". This is coming from a python programmer so I should not be surprised. Before I say any more I just want to point out that I am not trying to discourage anyone from learning Java this is purely an opinion piece.

I knew that I wanted to code in Java a long time ago but I kept putting it off. I kept weighing the pros and the cons. Here is a rough picture of why I did or did not want to learn Java.

Reasons to learn Java?

✔️ Develop android applications
✔️ Develop backend servers
✔️ Program competitively

Excuses stopping me from learning it?

✖️ The installation process
✖️ Learning curve (estimation 3-6 months for me)
✖️ I have no intention of using it in the immediate future

The last excuse is probably the biggest reason why I delayed learning it. I already had a full plate and didn't feeling like making any unnecessary commitments. When I commit to learning a programming language, I just know I am going to go the extra mile. At that point in time, I thought it best not to spread myself thin.

But as of last Monday, I to put an end to my procrastination and began the journey of learning Java. (Disclaimer! Java is apart of my curriculum this semester so I didn't have of a choice 😂). Nonethelesss, I embarked on this task, with my mind set on conquering this language in as little time as possible. Note! The learning curve listed above is the time I think it will take for meeee to build a decent project with the language.

After a difficult week I can say I am still not entirely used to it but I can know write Hello world programs with my eyes closed so it's a start. Good news is that Java is the third language that I am currently learning, which means I shouldn't have a hard time picking it up right? Wrong!

In case you're unaware, for the bulk of the past 7 months I have been programming in python. Python is a weakly typed language meaning you don't have to define the data type of each and every variable. It is extremely verbose and easy to pick up. Having used python heavily has put me on edge with the idea of having to learn an entire new language!

Let the record also show that the java installation process is absolute GARBAGE 🚮. I wanted to start learning Java earlier to get a headstart but I always got thwarted by the installation process. I didn't have the grit to stick it out when I ran smaller issues. And what's worse was having to to setup an entire new language with a new IDE (I use sublime text).

I cannot live without sublime text. I have gotten to known her so depply, to the point where we even finish each others sentences😉 if you know what I mean. If you think that I describe the relationship I have with my editor is disturbingly romantic, that is because it is. To put it simply she is just "Sublime!".

Learning a new language, no problem. Change my editor. That is absurd! I will not have it. So I did what any other dignified programmer would do. I customized my editor for Java. I knew it wouldn't be easy but it would be worth it!

There aren't a lot of Java related packages for sublime text. It kind of hurts but I knew what I was getting into by sticking with Sublime text. I'm thinking of creating my own color scheme because the ones on the package manager do not play well with Java. I know the Internet is trying to send me a message that is, "Sublime text is suited for Java development". I'll just have to prove them wrong 🙃

Going forward

As much as Java can be difficult with its little nuances and quirks, I do enjoy a good challenge and its going to take a while for me to get used to and even longer to build anything siginificant enough for me to deem worthy of placing on my portfolio. If you're learning Java for the first time. Let's be friends 🤝 or let me know what your first Java experience was in the comments.

As always, thanks for the read and Happy coding 💻

Posted on by:

sbu_05 profile

CoolCodekid

@sbu_05

Aspiring Computer Scientist...

Discussion

markdown guide
 

Thanks for sharing! And have fun learning!

From my experiences, forcing one IDE for different languages will just bring more pain and headaches as you advance with the particular languages. This is mostly because of integration with build systems, debuggers and tools. Sure you can invest time for setting up the tool but that would distract you from the actual task: learning.

 

Let the record also show that the java installation process is absolute GARBAGE

Step 1: sudo apt install openjdk-11-jdk
End of my tutorial series :)

Once you are done with Java basics I highly suggest you to learn what SOLID principles are then learn about Design Patterns, that's something I wish I would of done earlier.

 

Thanks for the advice. I've actually taken an interest to coding architecture.

Just want to add that Linux installations are simpler than windows. If you never had to worry about "PATH" and "environment variables" consider yourself lucky

 

Once you use IntelliJ IDE you'll forget all about Sublime

 

Yes, I've heard great things about Intellij. Only problem is that my laptop is really slow so it would spoil any IDE experience.

I do plan on testing other editors and IDEs in the future. When I do. intelliJ will be one of the first that I will try out!