DEV Community

Cover image for 20 Things I Learned in 2020 (Programmer Edition)
Fum
Fum

Posted on • Originally published at inspirezone.tech

20 Things I Learned in 2020 (Programmer Edition)

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 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 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.

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 and a Trello boards scraper to automatically export the JSON of your Trello boards.

3. Website hosting, domains and web terms

I started the website 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 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

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.

8. GitHub actions workflows

Yet another GitHub related learning I feel is worth its own heading! That’s because GitHub actions workflows 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 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.

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. You can see and download the game on my itch.io page (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 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 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 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.

Top comments (5)

Collapse
 
michaelcurrin profile image
Michael Currin • Edited

You may be interested to lookup a tool that reads a WordPress site with a database and outputs static site content. One way is with the Netlify plugin.

That would be nice if you want to have static content and want to speed and security (no server or database to hack) of a static site generator.

Collapse
 
michaelcurrin profile image
Michael Currin

I see you are into GH Actions and static sites. I have some workflows for GitHub Actions that you may find useful.

Workflows

Such as if you want to build a React or Vue or other Node single page app and serve it as a static site on GH Pages or Netlify. Or use Jekyll, Hugo, MkDocs, etc. to build your static site.

I'd recommend Jekyll as a popular static site tool. and you don't need any CI on GH Pages but you can use GH Actions if you need a custom flow.

Collapse
 
funbeedev profile image
Fum

I'm exploring Gatsby static websites with Netlify at the moment. The workflows might come in handy. Thanks for sharing :)

Collapse
 
michaelcurrin profile image
Michael Currin

Regarding your Python project on creating a GitHub repo - I have started using a feature in VSCode where you click the push button on a new repo and it will create as a private or public repo on GitHub. You have to sign in on the browser initially I think, but that auth gets reused on subsequent runs.

Regarding crontab and Python, see if my project is useful or interesting to you. I use it to run daily tasks to scrape HTML and store tweets, but without running excessively.

github.com/MichaelCurrin/unicron

Collapse
 
funbeedev profile image
Fum

Thanks, I'm definitely interested and will check it out!