First things first: Happy 2020 everyone!
The start of the new decade brings a perfect opportunity to start fresh with my programming journey. I got started with web development in 2012. I learned HTML and CSS and started with JS, but got stuck at the basics. At that point it seemed kind of challenging and thought that I should try learning some other languages before approaching it again. Unfortunately I got stuck in the so-called tutorial hell, where I just couldn't do anything beyond what the instructor showed me. So I just hopped from one language to another, one framework to another, till I completely abandoned my programming hobby for a while. I picked up programming again when I started college couple years ago and since then I've been doing it on the side. But despite doing the coding for almost a decade, I can't really say that I know how to code. But it doesn't really matter.
I'm still here. Still breathing, living and I'm sure as hell going to try get a little better at this craft than I was before.
I believe I have a decent understanding of fundamentals of web development with HTML and CSS. I can build up a website layout with no problem, but I feel I lack knowledge in a bit advanced topics, like pseudo elements, CSS Grid, and HTML5 API. So my goals concerning HTML5 and CSS are:
- Build 3 multi-page website layouts:
- using CSS Grid
- using pseudo elements
- using Pug.js/SCSS
- implement some JS scripts
- Fetch API
- Iterators and Generators
- Prototypes and the New Operator
- JS patterns
- All the rest of fancy-schmancy ES6+ features
Despite it being 2020 I'm still interested in learning jQuery. Yes, I've read the articles and saw the videos were they bash the JS library and pronounce it dead every year. But the fact is that 85% of top 5 million websites are still using it. It might be bloated, old-fashioned and you can do a few things in vanilla JS more elegantly, but at the end of the day, jQuery can still get things done and that's all what really matters. People didn't stop using regular tooth brushes just because we have electric ones. So why should we abandon an established tool in order to just be hip? /end of the rant.
So the previous decade was the time, when web development saw the rise of JS front-end frameworks and I would like to at least try building something with either Vue or React. I already started watching tutorial videos on Vue, but I don't really see beauty of it right now. So my plan for 2020 considering JS frameworks is:
- Learn fundamentals of Vue.js
- Build one webapp with Vue
- Learn fundamentals of React
- Build a web app with React
When I got started with programming Ruby and Ruby on Rails were a hot topic in web development community. But the dark terminal in which you were supposed to run the ruby code scared me off. So I wasn't really excited about learning it. Later on I saw that you can build really exciting stuff with it and the community support was really great. In addition to that I stumbled upon a decent Ruby on Rails course which had some really interesting projects in its curriculum. I got through the Ruby basics segment and started learning the Rails part of the course, but unfortunately got discouraged from learning it further.
Reason being was again those videos, articles and reddit posts with headlines "Ruby/Rails is Dead" or some variation of that. So I thought why should put any effort in learning a "dead" technology stack. As with jQuery, it still is a tool that works and is still wildly used, despite not being the most coolest kid on the block anymore. So again, why not learn if it still works.
- Refresh knowledge of Ruby
- Learn the RoR fundamentals
- Build 1 CRUD app
- Build 1 chat app
- Build 1 e-commerce app
Python was the first "real" programming language I learned. I stumbled upon a book "Python for kids" by Jason R. Briggs and I got hooked. I started coding with python and I remember enjoying a lot, but eventually I got stuck again.
In recent years Python has been gaining traction among web developers so I decided to refresh my knowledge of Python basics and maybe go a little bit beyond that with Django framework.
- Refresh the knowledge of Python basics
- Learn basics of Django framework
- Build 1 CRUD application with Django
In recent years I got into gaming and as fun as playing games is, I would like to try and make a video game on my own. The game engine of my choice is Unity and the language it's using is C#, so that's what I'm planning to learn.
So the list of languages and technologies I want to learn is quite long, and the plan is quite ambitious. In order to help follow through with this journey, I plan to document this journey, by sharing what I learn this year. I have 365 days ahead of me, so I better get started.