In my first post I went over a bit about myself and why I made this blog. This will be a longer post documenting my programming journey, from my first line of code to the present day. I also want to give a subjective comparison of the developer experience between Java, JavaScript and Python, based on my experience with each language.
If I’m not mistaken, I was first taught coding in my second semester of college in 2009. I was a business student and had to take a single, non-elective introductory programming course, which was taught in Java (I recall it was the last year the course was taught in Java; the next semester it switched to Python). The teacher was a middle aged corporate looking guy who dressed just like Bill Gates in those old Microsoft conferences.
I knew what coding was of course (being really into video games since an early age), but I had never written a line of code before. Through the semester we went over all the basic stuff, from Hello World to Class methods. I found the course super fun, did well in it and then it was over, and I never had a programming course again. A waste of time if you ask me: what is the point of having a one semester intro to programming and never learning any coding again? You never learn to write anything remotely useful. I don’t know a single college classmate of mine who nowadays does any serious amount of coding besides me.
Anyway, I had the course and that was it. I definitely wasn’t going to keep learning on my own, unfortunately: I was starting to figure out how to make a lot of money playing online poker and it wasn’t long before I was putting almost all my time and energy into that. Whatever little time was left, I devoted to classes and exams (I should have studied computer science from the beginning, but oh well).
Coding was always in the back of my mind though. I started playing poker full time when I left college, and many of the pros back then were developing software tools for modelling complex mathematical aspects of the game. I thought that was pretty cool! A lot of the more advanced software even included an interface for Python scripting, but I knew nothing of that. Through the years I met a few guys who were professional coders. Their job was relatively fun (even the very corporate Spring jobs), paid well and they usually could work at least partially from home. Most of them worked with Java full time even around 2015: in Chile and many other developing countries (think India, for example), enterprise software overwhelmingly trumps start-up software, so Java/Spring and .NET stuff were still back then the main things taught at universities.
I was making good money playing online poker and managed to save a bit over the years, but I eventually burned out. I’d say I multi-tabled online poker for 6-10 hours each day almost every day beginning around 2010 until 2015. I then started betting sports at that time and did well, so I played less poker for a few years. I again started playing pretty intensely starting around the COVID pandemic until about 2023. By then, I had developed chronic tendonitis in my right hand from so much mouse clicking and was constantly in pain when I grinded. I kept playing with no enjoyment for several years before finally deciding to call it quits.
At some point around 2015, I was no longer in college and decided to pick up coding. I decided to get back into Java because it was all I knew, and the IT guys I knew generally worked with Java as well and I figured I could get help from them if needed.
There really weren’t many good learning resources for Java online 10 years ago (at least not that I ran into), and I learned mainly from YouTube videos. Once I got to object oriented programming, and generally the stuff that makes Java what it is, I started to realize that the language was somewhat cumbersome to write in, especially if you’re a beginner. Teaching myself Java was getting harder the further I went, and when I eventually got to Java Server Pages and servlets, I hit a brick wall from a lack of good learning resources. I managed to get some very simple web apps to work in my IDE, but I could not for the life of me figure out deployment, how to work with things like Tomcat or how build tools like Maven functioned, or even what on earth a build tool was or why it was needed! (no joke I remember trying to learn Maven without even understanding what it was or what it did). I also learned a bit of Android development, but found it clunky and un-intuitive (I’ve heard it’s way better now with Kotlin).
(imagine trying to figure this shit out without a tutorial)
Nowadays you have platforms like Codecademy, FreeCodeCamp and The Odin Project that hand-hold pretty much the entire way from absolute neophyte to applying to junior dev roles. Back then I didn’t even run into something like Roadmap.sh to have an idea of what things I should learn, why I should learn them and in what order. I don’t even remember why I started learning JSP after core Java. The learning resources as I said weren’t great, and had I wanted to learn CSS or JavaScript I would have had to look elsewhere. Unsurprisingly I got burned out, studied Java ever less frequently and eventually quit altogether because something else came along (I had to move, or started sports betting, or something like that). It bothered me that I had chosen to give up coding and occasionally thought about picking it up, but I hadn't found the experience of coding with Java very pleasant and I was busy making money with other things, so it took me a couple of years to get back into it.
Around 2019 I read about something called FreeCodeCamp, gave it a try and was instantly hooked. Back then they had almost no ads asking for financial support and the learning experience was smooth, constructive and fun. I had never really learned CSS before, and found that fun, and then they taught you Bootstrap and I was surprised of how easy it was to make a web app look like the real thing. I learned JavaScript for the first time, and I actually found it much easier to work with than Java. I also came to find that the JavaScript world was very open-source and community oriented, unlike Java which I came to realize was very corporate and without many great learning avenues outside of universities. JQuery was all the rage back then, it wasn’t too hard to learn and allowed one to make dynamic websites without too much JavaScript code. It worked great back then and in my opinion still does. Overall, JavaScript coding felt like an upgrade over Java in almost every way. Of course I learned all the stuff about JavaScript that makes it a less-than-perfect language, but that was fine because I had fun learning it. After HTML, CSS and vanilla JS, I never jumped into React. Instead, I bought a Node.js/Express book, and started learning that too.
(I had a blast with those cat photo app projects)
At that point, however, the learning got difficult. NPM dependencies were problematic to deal with (backwards incompatibility being rampant, as well as the compatibility between different 3rd party dependencies always being uncertain), MongoDB was weird coming from SQL, and I came to learn that in JavaScript world backend APIs were oriented towards feeding a frontend (usually React) app, so I’d have to learn that as well. It was a lot to learn, but I was having fun and you could build real stuff with it, so I didn’t mind it too much.
Around that time (I think mid to late 2020), I hit the worst downswing of my gambling career. I must have lost money almost every single day for about 6 months, which very much humbled me because I had had my best gambling year ever in 2019. The COVID lockdowns were in full swing, my then girlfriend and I were home all day every day, far away from family and friends, and I was so desperate to win my money back that I started playing poker like 12 hours a day for months on end. It took a long time for me to run better, and I ditched coding again completely.
Back around 2022 I decided to yet again give coding a try. I had done better at gambling, managed to rebuild my savings and bankroll, so I was playing less hours and focusing more on sports betting. I had a lot of free time, so I figured I might as well pick up JavaScript again. A friend of mine was living in Japan around that time and he was doing a full stack JavaScript bootcamp. He said they had already finished with JavaScript and React, and that he had the option to learn Python for backend (and data science) or learn Node.js. He was going to start diving into Python soon, so I decided to learn Python as well. I went to Amazon and just ordered the highest rated Python book they had.
For some reason I find it a lot more fun to learn programming from a physical book. And the book is great! Eric Matthes is clearly a natural teacher, and he really does go in-depth into both the core language and 3rd party libraries, but at the same time it never stops being fun and engaging. The book is pretty thick, but it doesn’t feel thick, and it’s actually a page turner believe it or not. I later had a similar experience with Will Vincent’s Django books. Both Python Crash Course and Vincent’s three books are very well written and entertaining to work through.
(I think this book is a great intro to Python and programming in general)
I don’t want to go super in depth into Python and Django stuff in this post because I plan to write extensively about those topics on later posts. Suffice it to say that I mainly work with full stack Django now, and this website is built with Django and Wagtail CMS.
I even built a free web app with Django that a few people use regularly:
Lastly, here’s my assessment of the landscape for web development in different environments: I’ve found the Python development experience the best of the three languages, followed by JavaScript, and with Java in last place. The Python and JavaScript communities are also much more open-source oriented, and with a wider array of learning resources, as compared to Java. I’ve heard the Ruby/Rails community is similar in that way to the Python community, which would be a good thing. Employment-wise however, I’ve come to find Python web development isn’t exactly a gold mine right now. That’s fine though, I’ll always work with the tools I find more enjoyable, regardless of career prospects. If employment prospects are the main concern for someone just getting into Web Development, though, it seems to me full stack JavaScript is king right now so they should go that route.
I’ll be writing further about Django development in a coming post.
© 2025 Nicolás Ferreira. All rights reserved. Landscape Vectors by Vecteezy.