What programming tehcnologies should you learn in 2020?
2019 was a great year for me. I felt like it was my most productive year and I achieved a lot during it. I focused myself completely on the web. Whether that was websites or web applications. I had a lot of fun working in the frontend space.
The frontend space isn't slowing down, but I feel like it's at a good level where I can start branching out to things that I can improve on, or learn in 2020.
First... a reflection of 2019.
I will have write more about this soon, but for now. 2019 was a big year for JavaScript. Something I will include in this section but not in my list is TypeScript. I might give TypeScript a go, but for now, I want to acknowledge the adoption that developers had for it in 2019.
React also took the crown for satisfaction in 2019. I loved working with React throughout the entire year. This of course leads me to learning things to make React an even better experience.
I love working with Python, which is why I still continued to use it in 2019. I like working with Node as well, but Python will always be my go to. 87% of developers used Python3 instead of 2 in 2019 and now Python 2 has officially retired. Like a dog that ripped up your couch... I loved you, but sure as hell won't miss you. I continued to use Django throughout the year with Django Rest Framework. Amazing.
That's basically my 2019. Some WordPress still here and there.
What's inspiring my list?
I love working with frontend so much, that it has caused me to not focus on the backend (imaging only reading this part of the post and wondering what I was talking about). So this year, I want to focus on being a lot more well-rounded. So in my list, I have some needs, wants and maybes. They are fairly self explanatory. So let's start.
Needs
Nginx
I already "know" Nginx. As in, I have done a little bit of work to get it. Now the issue with this, is that I am too self-reliant on awesome technologies like Netlify to do the entire deployment process for me that it makes me scared to even touch Nginx.
Everyone knows the classic saying:
If you fear Nginx, just take some time to learn it. It's probably not that bad. - Lewis Menelaws
Nginx is just a piece of the deployment puzzle, so rather than just mentioning that, I will also say that I want to learn much better build processes to make my life a lot easier.
Webpack
This is a little embarrassing...
I barely know how to work with webpack...
Now, I know a lot of people are in the same shoes as me and they don't want to admit it. I see the benefits that Webpack provides... but just like with Nginx, I have been given a free pass with webpack config files that are included in web application. Which doesn't allow me to 100% understand what it's doing.
So of course, I want to thoroughly understand how Webpack works so I can include it in almost all of my projects that I work on. Developing for the web wouldnt be the same without some sort of build process. So it's time to understand the power and customization behind it.
Linux
Just like the other 2, I know Linux enough to do really well with it. However, I need a lot of training on it if I want to 100% be a full-stack developer. One of my goals is to get an AWS or Azure certificate and to not know Linux would be the first step on failing that goal.
I've used Ubuntu for all of my development work and love it. I've even used a Ubuntu desktop computer to do a lot of coding. I have now switched over to Mac OS X and love it.
For me, it's mostly about troubleshooting. I want to be able to understand a problem that is happening and be able to quickly attend to it, without first learning about how things work. A challenge for sure, but it's something I am ready for.
Wants
CSS-in-JS
The internet is very black or white when it comes to CSS in JS. Some say that it's blasphemy and that there is no room for it in the JavaScript ecosystem. Others, will say the opposite. I haven't dug deep enough into the matter and because of it, I am clearly behind in the discussion, meaning I can't have an opinion.
I was also late for SASS as well, and once I started using it, I fell in love immediately. Especially with the include
syntax. There are lots of CSS in JS libraries to choose from as well.
Agreed.
Flask
I've sort of worked with Flask before when developing a chatbot that required serverless functions connected through AWS Lambda. It's similar to express but for Python. Super minimal and allows you to plugin whatever things you want. A non-opinionated framework you could say.
I use Django mixed with Django Rest Framework, but at times, I wish I could strip down a large part of the setup to just get the urls
and views
.
My goal is to try to use Flask so I can learn the bits and pieces of everything that I might be missing during the web development process.
NestJS
I am a big fan of Express, but NestJS looks like it takes it to another level. This project caught my eye at the beginning of the year and it looks extremely flexible.
The reason I put this on my list is because I am curious about switching from Python to full on JavaScript. I've seen some tutorials and I love the fact that it's super easy to read. It's something I have to look more into.
TypeScript
JavaScript developers have fallen in love with TypeScript. Again, I am behind. What is with all the hype behind TypeScript?
Well TypeScript makes the debugging process 1,000,000 times easier. It integrates really well with Visual Studio Code, so it makes it like a full IDE. You can define "types" for different variables or functions so that you can ensure that your data is consistent throughout.
I want to learn TypeScript in 2020, but I don't have a huge need for it at the moment. Then again, that's what everyone says.
Maybe
These technologies listed before look amazing. These ones also look amazing, but I just won't have a priority to dig deep into them unless it's a need or extra time.
Svelte
Svelte has been all over the internet in 2019. After watching this talk by Rich Harris, I understood why. Svelte takes a brand new approach to the frontend by removing the VirtualDOM and is instead, a compiler for JavaScript that runs without a VirtualDOM.
The benefits: extreme performance, writing less code and no managing state. It's an incredible piece of software. I know it will blow up even more than it has in years to come. For now, I want to continue focusing on React because of it's maturity and ecosystem. I will get around to Svelte, but currently I have no immediate choice to move over.
Postgres
I throw this under the "maybe" section because just like Svelte, I don't have an immediate choice to switch over. I currently use MySQL and use SQL somewhat frequently, so I know it's not an urgent choice to move over.
Conclusion
What technology do you guys want to learn in 2020? What kind of developer are you?
Follow me on Twitter and talk with me there as well.
Happy coding!