With 2021 about to conclude I thought it would be a nice exercise to reflect on how the year has gone from the perspective of a developer. I made a similar post last year that focused on what I learnt over the year: 20 Things I Learned in 2020 (Programmer Edition).
In 2021 I had many targets of learning new skills and working on several development projects. These reflections for 2021 are useful for looking back and analysing how the year went, lessons I learned and what can be done to improve for the following year.Ā
Each reflection has a heading that captures the overall category behind the reflection.Ā
Why donāt you carry out your own reflections for 2021 yourself? š
1. Learn the fundamentals
This reflection comes from my attempt at working on several development projects without knowing the fundamental language or framework that is needed in itās implementation. Particularly, a web design project Iām working on called BibleBeforeBread.com which uses the GatsbyJS web framework (source on available on GitHub).
In my attempt to put together the site, I didnāt take the time to learn the languages behind what the Gatsby framework is based on which is JavaScript and React. This ultimately slowed me down in the execution of the site as I tried to āhackā my way to a solution by using examples on the web.Ā
In the end, I realised a proper understanding of JavaScript at the minimum is needed to execute this project properly.
2. Donāt do too many projects at once
Perhaps the biggest lesson of the year for me is not attempting to execute too many project ideas at once. I certainly got carried away with several plans for development projects and trying to jump between them.
Not only does this slow down the progress of each project but doing this also makes it more likely to rush through the current project of attention so you can move on to the next one.
Iām writing this down as my own reminder for next year to be more focused on reaching each project to a satisfactory stage before moving on to the next.
3. A PoC wouldnāt hurt
A PoC (Proof of Concept) is a task done with the purpose of validating a core concept before turning it into a full project. This is usually done to ensure the project itself is a concept that can be made a reality and the proper development tools, frameworks and so on, are available to execute it.
The task of carrying out a PoC is something I want to pay more attention to for future projects. As mentioned previously, I tended to get carried away working on several projects at once and jumping from one to the next.Ā
Several of these projects could have benefited with a PoC where I first tested the main concept using several programming languages or frameworks to test which one would be most suitable. Something to keep in mind for the next projectā¦
4. Beware Technical Debt
In summary, technical debt is a concept to describe when shortcuts are taken for software development projects that will ultimately result in a long term consequence that will need to be paid back in the form of a ādebtā.
Read more about technical debt: What is Technical Debt? ā The elephant in the development room
The topic of technical debt has been an area of study for me in the past and I continuously look for ways to overcome it in engineering projects.Ā Again, with attempting to do too many development projects at once I felt impacted by technical debt as some projects did not reach the stage I aimed them to be by the end of the year. Taking shortcuts by not learning the fundamentals properly also slowed down the progress of several projects.
Technical debt is something I want to be a lot more conscious of as I plan the execution of several projects next year.Ā
5. Accountability matters
When attempting to execute several plans, it can be easy to get distracted (or lazy) if no one is expecting you to deliver. I discovered the importance of accountability when I joined a group that focuses on pairing people up with similarities to help keep each other accountable and keep on track with goals.
Joining such a group also kicked started the idea to expand the inspirezone community to keep members accountable by creating a close-knit community. While our community is still growing, we are planning out ways to bring accountability as a focus to help developers who join. Why dont you join our community and get access to the Discord server.
Also check out this post highlighting the importance of having accountability as a developer: Donāt go on the dev journey solo ā 3 Key reasons why accountability matters
6. Be organised
Organisation is key to having a clear path and mind in what your next goals should be. I use Trello, an online task management platform to organise my work. Read more about how I use Trello as a developer: Using Trello to organise your dev projects
However, the arrangements of my Trello boards become disorganised during the year. This eventually slowed me down as I spent more time than ideal figuring out where to retrieve my next task.Ā
This showed the importance of keeping organised and not getting carried away with management tools. Simplicity is what I want to remember for next year as I re-structure how I handle tasks on Trello.
7. Stick to a plan
Following on from the point of being organised, drawing up a plan and also sticking to it is another valuable lesson. Itās nice to have plans, but what use is it if not followed? I often drifted away from plans IĀ created to help reach a particular goal or milestone due to getting distracted by other tasks.
Probably another result of attempting to work on several projects at the same time, which I intend to correct for next year. So the main plan, is not only having a plan, but also sticking to it!
8. Python is cool
I continued to use Python in 2021 to enhance existing projects and work on new ones. Check out my GitHub profile for several Python projects I work on.Ā
The first language I learned was C which is suitable for low-level embedded programming. From my recent interest in developing side projects, I find myself reaching for Python due to the ease of putting together a program. Python is truly a general purpose language that can be used for tasks big or small
I also wrote a blog post about the popularity of Python and why every developer should consider picking up the language: Compelling reasons why python is popular with developers in 2021
9. Web Design is fun
I discovered throughout the year I enjoyed web development as I worked on various web design activities and working with HTML, CSS and attempt to learn the Gatsby framework.Ā
Web development is an entirely different area to my field of Embedded systems but itās been a fun experience learning about it and hope to continue my learnings into next year!
10. Know your tools
I continued to use VSCode as my main development editor. I also discovered taking time to learn more advanced features of your tools can go a long way in improving efficiency. The lesson here is to become more intentional in learning how to truly use the tools you have at hand.
11. GameOff 2021
GameOff is a game development competition hosted by itch.io. For the GameOff 2020 competition, I submitted a game called āSaveTheSheepā. In 2021 I used the ābugā theme of the competition to make a ā2.0SaveTheSheepā.Ā
View the source code for the game on GitHub which was built using Godot game engine.
Interested in learning how to build games using Godot game engine? Check out this post on my experience with the engine as a beginner to game dev: Making my first game in under a week using Godot engine (you can do it too!)
12. Done is better than perfect
Perhaps one of the key takeaways for me in 2021 is the concept of āDone is better than perfectā. In fact, I wrote a whole post about this and how developers can learn from this concept: Done is better than perfect: The implications in software development.
The idea is to work on implementing tasks and projects by focusing on the key items needed for that task to be completed or the project to be shipped. Otherwise, you can find yourself falling for the trap of trying to get things perfect and never getting it done at all. This lesson is one I want to keep in mind as I plan several projects for the year ahead.
13. Code Mentoring
I successfully applied to be a mentor on the CodeMentor.io platform. On CodeMentor, anyone who needs advice can get help for anything relating to their development projects, tech startup, assignments (with some limitations), tutoring and much more. Reach out directly to mentors on the platform with relevant experience toĀ help you or post a request and let mentors reach out to you.Ā
On the other side, you can apply to be a mentor to help others which is how Iāve been involved with the platform. My experience with CodeMentor has been positive and I encourage anyone who either needs help or who wants to help out as a mentor to give it a try.
You can directly reach out to me on the CodeMentor platform and let’s discuss how I could be of help to you:
14. Imposter syndrome is real
Imposter syndrome refers to feelings of doubt about your competencies and capabilities. This leads to feelings of inadequacy and feelings of fearing you may get ‘caught’ as an imposter. This is common amongst programmers of all levels of experience and is one to watch out for.Ā
I related to this throughout the year, particularly whenĀ I registered on the CodeMentor as a mentor to assist others. I also wrote a post on 5 Powerful ways to combat programmer imposter syndrome which I hope can encourage someone to overcome such feelings!
15. Hacktoberfest
Similar to Hacktoberfest 2020, I once again participated in Hacktoberfest 2021. There were a few lessons I carried over from my experience of the previous year that helped with receiving even more contributions this year.Ā
See my reflections on Hacktoberfest 2021: Maintainer Reflections on Hacktoberfest 2021 (And what to do better next time!)
16. Open Source infographic
Open source was a big part of my development involvement in 2021 and has always been a focus on our inspirezone community. So much so that I created an infographic to explain the importance of open source on the developer community: What is open source and why does it matter? | An infographic
Looking at the infographic helps keep me motivated to continue with open source endeavours. Check it out and perhaps it will inspire you!
17. Repository maintenance
2021 saw a continuation of being an open source maintainer for the inspirezone GitHub repositories. It was great to see contributions to the repositories, particularly during Hacktoberfest.Ā
Being a maintainer has its challenges but equivalently great rewards which is why I will continue to act as an open source maintainer in the next year and beyond.
I also wrote a post to encourage more people to consider taking on the role of a maintainer: 5 Compelling reasons to become an open source maintainer and accelerate your growth as a programmer š
18. GitHub Hackathon
Another hackathon participation was the GitHub Action hackathon hosted by DEV. The goal is to submit a GitHub Action for the challenge designed to help maintainers, contributors or just as a fun way to interact with Actions.
My entry for the hackathon was a GitHub Action called āChecked Changed File Helperā which is designed to help maintainers perform automated checks on files submitted to a repository.Ā
Participating in this hackathon has been a great way to get me thinking of how to improve the efficiency in how I maintain repositories and I hope to improve on this GitHub Action in the future.Ā
Read full details about the āChecked Changed File Helperā GitHub Action here: Perform powerful automated checks on repository files | Using GitHub Actions āļø
19. Developer communities
It’s been over a year since I began my involvement with developer communities by registering with DEV.to. DEV is an incredible space for developers of all kinds to exchange knowledge and experiences.
Throughout 2021, I also discovered some other developer communities which Iāve become a part of such as Codenewbie, Hackernoon and Aviyel. I also kick-started the inspirezone community and Discord server as the starting point of the goal to grow a space where motivated developers can help keep each other accountable.
Participating in communities is a great way to interact with like-minded individuals and provides opportunities to become visible and network with others in your areas of interest.Ā
Check out this post highlighting the positive influence developer communities can have on you: 5 Persuasive reasons to join a developer community
20. Blogging
This inspirezone site launched mid-2020 as a result of my attempt to start a blog to help developers be inspired, motivated and efficient in their goals to develop their skills. Although at launch, I might not have used those exact descriptions of the purpose of this site! Inspirezone will continue to change according to needs of the community.
This is the 65th blog post on this site, and I look forward to seeing more content that will hopefully be useful to developers of all levels of experience.
Got any comments or feedback about our website and community or ideas for collaborations? Reach out to us.
21. Learn from your past
Reflecting over the past year is one thing, another is to actually take the learnings from those reflections to have a more effecient upcoming year. This final reflection is more of a solidification of previous reflections to remind ourselves to actually learn from our previous experiences.
Around time last year, I wrote a post on 7 Exciting coding resolutions to grow your development skills. While I ticked off several on that list, Iād like to complete it this year, especially the 1st point of āComplete a project from start to finishā to get several projects over the completion line.
Did you find this article useful? Also checkout other articles on developer tips:Ā
Thanks for sharing these great thoughts Fum. One that resonates very much with me is the – ‘Done is better than Perfect’ I really need to take that one in and implement!
Glad it resonated with you! Thanks for your comment š