2018 has been a wild year for me, it was the first year of my professional career as developer, before that I dealt more with networking infrastructure and administration. How I went from a career towards SysAdmin to Developer is another story for another day. Before starting really working with development I've never dived deep into the development world, I was still at college studying to get graduated, there wasn't much space, specially because it was not my first choice at first. But I was caught by the development world and here I am, one year ago, writing a retrospective and somewhat asking for advice about my eagerness to learn a lot of things at the same time.
Let's start from the beginning, I was hired for a Java Web Developer position, and, I have to confess that days before the interview I had no knowledge of Spring Framework at all, I mean it, I'm not ashamed for saying the truth. I knew Java from college and has developed simple web applications in the past, but it was in C# despite the MVC concepts are the same. That was what helped me in understanding Spring, JAX-RS and other frameworks from Java quickly. Fortunately, I was hired and I started to study Spring deeply while at work and outside of the company. Spring Boot, Spring Security, Spring Data, Spring Session, etc. I still have a lot to learn though.
In the meantime, the company is also a AWS partner, we usually deploy our applications on AWS and the knowledge of its services is paramount. So, I also started to study AWS with the goal of getting certified. After some months of study, I was able to pass the certification exam and I'm now a certified developer. It helped me a lot in having confidence to propose improvements to what we already had on AWS and it has been great to see this come to fruition.
Only that is already a really good amount of knowledge to swallow, Spring and AWS have some things in common: they are huge, with a lot of modules, services, complexities and details, they range from simple web applications to security, data handling, etc. I also put some effort on understanding DevOps on AWS, which was not really part of the exam that much. I also took a liking for serverless and for that reason spent a long time making experiments with AWS Lambda and DynamoDB.
Since I was doing experiments with DynamoDB, I also took a look at MongoDB to see what differences they had, I saw that DynamoDB had some limitations during my experiments and I had to take a look at other solutions to see if they were more compatible with my user case. Right now I'm experimenting with Elasticsearch and Logstash and enjoying a lot as well, it can have a very good impact in future projects in my opinion.
However, before I enter into the current Elasticsearch vibe I also had the front-end vibe, I was worried about my knowledge of HTML, CSS and frameworks such as Angular, VueJs and React, I also made a post about Full-stack development, I was and I am still worried about how to become a full-stack developer. My first adventures with Angular was not that pleasant, but recently, after so much time making web applications, many of the experiences I had with Spring and template engines such as JSP and Thymeleaf, proved to be very useful in understanding Angular better, right now I going back to Angular and developing an UI for a personal project, maybe soon I will talk about that here.
Besides all that, I'm also right now experimenting with Flutter, the newest and shiny framework for mobile development by Google. This year I also played around with native Android development with Java, NativeScript and Xamarim! Flutter has been a pleasant surprise and I think this vibe will last through next year.
So, after all that I think it is possible to understand what my worries are: I'm all over the place! I experiment with a lot of things from databases, mobile and web frameworks, cloud providers and so on, without going deeper into any of them, excluding Spring and AWS, which actually makes part of my daily professional life.
What are your takes about this? Should I focus more? Is it all right to experiment so much without going deeper? What are your experiences on dealing with the huge amount of technologies we have at our disposal nowadays and the curiosity IT guys like us naturally have?
Happy holidays! :)