RTJ2: Intro to Spring Boot

There is a demo project that I can build for the company that I work for. This is great because it gives learning purpose and sets a direction. At the end of the previous course, I felt increasingly impatient as I was looking forward to starting to build this application.

So far, I’ve only built an application that opened, executed commands sequentially, and then closed. I had no idea how to host an application that listens to requests, runs in the background waits for actions to happen, and interacts based on those actions. I felt very confident that if I had something like this running with a Hello World then I could figure out the rest.

I asked one of my team members to help me out and help me expose a /hello endpoint and return a world response. I shared the screen, and he helped me, but I saw things I had not seen before: what the hell are annotations? What are these random values I have to put somewhere like springapplication.run?

I felt overwhelmed and I realized that there is a layer I could not imagine before. I give it a day’s rest – the next day with fresh energy I decided I needed some introduction to Spring. For now, one of the more reliable forms of getting a recommendation is to google something like “spring boot tutorial course + Reddit + r/learnjava”. This is how I found the JavaBrains introduction to Spring Boot intro course.

This course starts at the beginning of Spring and explains why it was built and what are the benefits of using it, and typical use cases. Then it takes your hand and builds a rest API exposing HTTP services for managing different courses (create, edit, list, filter).

This was the first time I relied purely on video training and the experience was mixed. Firstly, it is difficult for me to focus on a video without pressing the right arrow and skipping 5 seconds : – ) Secondly, if you are stuck there is not a lot of help out there. The video series is well structured (most videos are around 5 minutes, with the longest being 15 and it is easy to follow. There was not a single time I could not repeat what the guy did.

It’s a way to start: I am not an expert but I started from nowhere and I have some understanding (enough to keep hustling on the training project). I do recommend it if you want to understand Spring as a beginner.

Continue ReadingRTJ2: Intro to Spring Boot

RTJ#1: The first course

One of my friends went through a similar journey, she left product management a few years ago and now she is working as a developer. I remembered which was her first course and without her knowing, I started the same.

That course is Java Programming and Software Engineering Fundamentals on Coursera by Duke University. It has five specializations:

  1. Programming Foundations with JavaScript, HTML and CSS
  2. Java Programming: Solving Problems with Software
  3. Java Programming: Arrays, Lists, and Structured Data
  4. Java Programming: Principles of Software Design
  5. Java Programming: Build a Recommendation System

All five specializations are distributed over four weeks. It assumes around 10-15 hours/week, depending on your speed.

Man, I loved this course! They combined videos & exercises and tests in such a meaningful way that it stayed fun throughout the journey. It starts at the very beginning: teaches the basics of HTML and Javascript, helps you to think like a developer and later shows you the very basics of Java.

The certificate given at the end.

The target audience is absolute beginners, so if you have some experience it will be a lot faster for you. I took a week of vacation to focus on this during the fall and then I could do a week’s worth of practice typically in a day. Later it slowed down.

It covers areas like cycles, data manipulation, CSV parsing, working with arrays and lists, sorting, searching, and basic design principles. It uses concrete examples, not some made-up exercises (like having earthquake data in a CSV file and filtering and sorting them).

The only downside was that it forced you to do things in a certain way. I often wondered, why we were doing a suboptimal solution just to learn that they were teaching the suboptimal solution first so it was clear why the other option was better – of course, by this time I already implemented it similarly that way and had to refactor.

The most clever way was the tests and exercises: you had to write and run the code to pass it. Imagine exercises like “Here are 3000 movies, sort them by rating first and name second. What is the 46. best movie?”. I feel I had to work for the certificate and therefore I am proud of it. You can find my solutions in this repository.

Recommending an entry-level course is always tricky: not too many people do multiple of them – so I can’t tell that it is better than the others, but I can tell them that it is good and I do recommend it.

Continue ReadingRTJ#1: The first course

RTJ#0: Impostor?

I take great pride in being capable of being very direct and to the point. Service delivery, insurance, no-code/low-code, and leadership, are all in my comfort zone. If I had to choose, I would say that communication and leadership are my forte.

Everyone has a small devil next to his ears whispering “Are you really good enough? Do others think I have no clue what I am talking about?“. I am no different: my impostor syndrome is that I never was a developer myself. I did low-code development, I designed applications, led development teams, and designed enterprise architecture: but I have never actually written it myself. People working with me assume I know a lot more (I do fake it often!) – but the syndrome is real. I am in huge fear and doubt just by putting these words, admitting the lack of knowledge on a blog that no one reads. “Would it not be better if I would just do the learning in secret, behind four walls, and later act as I have always known?” is going through my mind. I am shaping it off.

Around ’23 Oct I felt that now is as good time as any to act on it and decided that I should learn Java. Where I work now does have a Java backend team and I have a Java architect in my team: they can help me find a demo project to learn on and if I am stuck I have people to turn to.

I plan to document my Road to Java RTJ: things I wonder about, courses I take, and interesting notes I learn.

Continue ReadingRTJ#0: Impostor?