My First Week of Java
Tags: java, newbie, experience, devjournal
Published: 2020-08-08 15:14:30

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?
:heavy_check_mark: Develop Android applications
:heavy_check_mark: Develop Back-end servers
:heavy_check_mark: Program competitively 

# Excuses stopping me from learning it?

:heavy_multiplication_x: The installation process
:heavy_multiplication_x: Learning curve (estimation 3-6 months for me)
:heavy_multiplication_x: 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 part of my curriculum this semester so I didn't have of a choice :joy:). 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 :put_litter_in_its_place:. I wanted to start learning Java earlier to get a head-start but I always got thwarted by the installation process. I didn't have the grit to stick it out when I ran into 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 deeply, to the point where we even finish each others sentences:wink: 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 :upside_down_face:

# 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 significant enough for me to deem worthy of placing on my portfolio. If you're learning Java for the first time. Let's be friends :handshake: or let me know what your first Java experience was in the comments.

As always, thanks for the read and Happy coding :computer: