20 Things I Learned in 2020 (Programmer Edition)
Tags: yearinreview, productivity, career, 2020
Published: 2020-12-31 21:17:11

*Quick note: I'm creating a brand new community for developers focusing on building programming skills through a welcoming online collaboration environment. See details on [inspirezone.tech](https://inspirezone.tech) and consider joining us. We need developers like you!*

---

In 2020 I made a more conscious effort to expand my knowledge outside of my field of Embedded programming and the C language. I also started the website [inspirezone.tech](https://inspirezone.tech/) which allowed me to practice writing and document my development learnings. 

To reflect on what I’ve done throughout the year, here are 20 things I learned in 2020. This also includes things I improved on or started during the year. These are either related to programming directly or are tools, technologies and other miscellaneous things which I felt help me grow myself during 2020. 

I recommend you also reflect on your learnings every once in a while. So you can analyse how much you’ve done throughout a set period of time and how well you’ve met your personal targets!

Although this is more of a personal reflective exercise, I hope it will help inspire some of you. You may use any of the items on this list to set targets for yourself in the coming year.

Here are 20 things I learned in 2020 in no particular order…

## 1. Improving python skills

I coded in python a lot more this year and as a result have grown my knowledge of the language. See some of the python applications on [my GitHub](https://github.com/funbeedev).

## 2. Web scraping

I discovered the power of web scraping and I’ve now written several scripts on this. The prospects of what one can automate with web scraping are countless… I will definitely be making a lot more web scraping scripts. Some of what I've done so far is a [job search scraper](https://github.com/inspirezonetech/JobSearchWebScraping) and a [Trello boards scraper](https://github.com/funbeedev/TrelloBoardsAutoExport) to automatically export the JSON of your Trello boards.

## 3. Website hosting, domains and web terms

I started the website [inspirezone.tech](https://inspirezone.tech/) which enabled me to learn all about domain names, hosting and all other things involved in the process of making a website live!

## 4. WordPress

I built my site using WordPress, the world’s most popular CMS (Content Management System) platform. My website exists because I had to learn how to use WordPress!

## 5. SEO

SEO (Search Engine Optimisation) is all about using techniques that makes it easier for search engines to find your web based content. SEO is a term I only discovered this year but I now follow basic principles guided by the WordPress plugin [Rank Math](https://rankmath.com/) to improve my sites SEO.

## 6. GitHub platform

Although I had experience with source code management platforms, I did not have much experience using GitHub in particular. This year I started using GitHub consistently and have discovered how powerful it is as a platform, especially for open source projects. The community of open source developers on GitHub is incredible!

See this post I made on dev.to to show my appreciation of open source: [10 Incredible projects showing the power of open source](https://dev.to/funbeedev/10-incredible-projects-showing-the-power-of-open-source-53fl)

## 7. GitHub API
I delved into API development and wrote a python program that uses the GitHub API to automatically create a local and corresponding remote repo on GitHub. You can see it on the [GitHub repo](https://github.com/inspirezonetech/AutomateGitRepoSetup).

## 8. GitHub actions workflows 

Yet another GitHub related learning I feel is worth its own heading! That’s because [GitHub actions workflows](https://github.com/features/actions) is an extremely powerful feature of GitHub allowing you to automate how you organise and test changes to your repositories.

I use GitHub actions on the [Inpsirezone GitHub repos](https://github.com/inspirezonetech) to automate a few basic checks when someone submits a pull request. This has got me interested in seeing how CI/CD can be used to even further simply the process of maintaining repos I look after because automation rocks!! 

## 9. Expanding knowledge of git 

Forking and pull requests is something I rarely did because of the nature of my previous programming projects. But now that I’m involved in GitHub a lot more and with open source, it’s something that I’m now comfortable with.

I also used the git command line a lot more this year when I previously relied on git client apps. This has improved my understanding of git.

## 10. Open source contributing

Made my first open source contributions this year mainly thanks to Hacktoberfest!

## 11. Open source repository maintenance

I became an open source maintainer as I host the projects found on the [Inspirezone GitHub page](https://github.com/inspirezonetech). 

## 12. Markdown

I started writing proper README files and other documentation files for every repository I create. This allowed me to learn more markdown syntax. Joining dev.to and making posts has also helped!

## 13. Godot game engine

I made my first video game using the [Godot game engine](https://godotengine.org/). You can see and download the game on my [itch.io page](https://funbeedev.itch.io/save-the-sheep) (Warning: It’s no blockbuster 😉) 

I’m looking forward to growing my skills in video game development with Godot or other game engines and excited to explore this further next year!

## 14. VSCode

Decided to finally give the most popular code editor a chance and haven’t looked back since.

## 15. Blogging

A skill I have lots to improve on but [my blog](https://inspirezone.tech/blog/) now exists so I can consider myself a blogger now!

## 16. Tutorial style blog posts

I wrote several posts that guide others on how to achieve something with a programming language, tool or platform. Again, lots to improve on in the future.

## 17. Using Canva

I use [Canva](https://www.canva.com/) to put together the illustrations found on my site. I’m no artist but I’ve greatly enjoyed exploring my creative side and couldn’t have done it if Canva wasn’t such a great and simple tool to use!

## 18. 9 Rules for Debugging

I read the book “*The 9 Indispensable Rules for Finding Even the Most Elusive Software and Hardware Problems*” by David J.Agans.

This was a great read and I need to work on applying these 9 rules in practice. I’m targeting to read a lot more programming related books next year.

## 19. Linux Crontab

[Crontab](https://man7.org/linux/man-pages/man5/crontab.5.html) is an extremely useful utility to schedule the time and frequency of running a command or scripts. I use this to schedule scripts I want to run periodically.

## 20. Building static websites

Although I focused on learning WordPress this year I also want to learn how to code websites using web development frameworks. At present it’s something I’m still very new to and look forward to seeing how much I learn in 2021.

## Conclusion

This is a personal list of 20 things I learned in 2020. I look forward to continuing the learning process in 2021!

Why don’t you form your own list of things you learned this year? If you have a list, share them in the comments below.