Claudio Davi
Posted on June 11, 2019
Introduction
I'm definitely not one of these wizard kids that started programming at 13 and were a genius by the time they completed 20. I started programming at 18 years old and I started with Java. I was terrible at it, the first time I saw a for loop
I thought it was magic.
I'm 25 now and have been programming since then, 3 years professionally and two of them coding in Java.
Background and Java
I went to college get the title of BSC in Software Engineering, I thought all my colleagues were at the same level - level 0 - but boy was I wrong. Almost everyone there could program, I did not. That made me the underdog, and as such I had to learn and study harder than most people.
From 2011 to 2016 I've been studying Java, it's patterns, code styles, best practices and idiosyncrasies. I'm sure I barely scratched the surface of the language, but after some time I started to feel productive. That's when I landed my first job as a Software Engineer Jr, back in January 2017.
Fast forward to September of the same year. At that time I was into Machine Learning and had already developed a few ML algorithms in Java by hand, then I experimented developing a few of them in Python.
Python with Love
At this point I already knew how to code and collaborate. Picking up a new language was not going to be as hard as it was the first time, but Python was so friendly and the community so active that I barely had any problems.
It took me another year to get a job as a full time Python developer, but today I'm way more productive in Python than I have ever been in Java. It feels fresh, clean and powerful.
It used to take me a day to go from a Factory to a full REST endpoint with Java, now it takes me a couple hours to model a basic CRUD application with Python and Flask.
What I miss the most about Java
Python also has its weaknesses, after I transitioned what I miss the most is the static checked type system. That saved me a lot of trouble and ensured my code would work wherever I needed to use it. In python to remedy this, I use the type hints and doc strings. It is still not checked and still gives me run-time errors, but when your software is growing, it can save you a lot of time that you would spend reading and refactoring your old code.
How could you transition to another language?
I started reading and experimenting, published a few articles on Medium in Portuguese (my native language), started tweeting about it and got some contacts. I suggest you follow the same path, study, write about it, tell people about your experiences and teach.
I started programming fairly late considering my peers, If I did it, you can do it too.
Did you change paths in your career? Tell me in the comments!
Posted on June 11, 2019
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.