This article was originally posted on my brand new blog The Developer's Dungeon
I have been working as a developer for the last 5 years. It is not a long time, I know, but at this time I think I have improved a lot, more than if I would have taken a passive approach with my career. I have noticed that people always come to me and mention technologies to get my opinion as to if I had tried everything that is out there.
Although is an overstatement I did had quite a few different experiences, between professional work and hobby I have done regular business applications, games, game cheats and hacks, online bots, high load public API's, visual studio code extensions and even custom Android ROMS. Why do you ask? because not learning is being dead, simple as that.
Let me say that again! not learning is being dead.
There is always a new book out there, something interesting that you haven't tried before and something that you can learn from and is your job to take action and do it, nobody else can do it for you, if you just wait to "learn on the job" you might wake up one day in that crappy old job doing the exact same thing that you been doing for the last 10 years and be forced to improve, it's not gonna end up well.
To be fair not all my learning has been 100% deliberate, I did plan to investigate technologies or read a certain book or get better at a certain skill but I have not always been as organized as I am becoming now, so I will try to share my workflow with you.
I needed a way to keep all the mental complexity of advancing my career in one place, for that I chose Notion, it is a great tool with tons of templates for basically everything you could ever need, I don't just use it for my personal development, but for my budget, job applications, food tracking, and freelancing jobs documentation.
So how do we start? first, we set up our goals, for me, I just made a list.
- Get good at Functional Programming.
- Get clear practice on the Clean Architecture pattern.
- Become a real full-stack developer (improve frontend).
- Create my own website/blog.
- Get a remote backend/full-stack developer job.
I have other goals like losing weight, saving extra money, investing, improve personal relationships, etc. I just named the ones related to software 😄
After that we translate those goals into smaller and concrete tasks so when completed it will take us one step further to our goals, I track them using a Kanban board in notion as you can see in the picture below.
Here you will see things like:
- "Read Design Patterns"
- "Read Mostly Adequate Guide to Functional Programming"
- "Read Structure and interpretation of computer programs"
- "Create Basic website layout for landing page"
- "Create basic website layout for the blog"
- "Finish Pending features on Angular Test Explorer (that is the vscode extension I mentioned before)"
So that is all fine and dandy but then you have to make sure you do them right? well, I noticed by trial and error that if I don't plan them, they never get done. So how do I do that? good old Google Calendar to the rescue.
On Sunday evening before the weekend ends, I plan what I am gonna do next week(and yes the planning is also on the calendar), I don't get too specific here, I just put "Code", or "Read", or in some special cases "Do Code Katas".
I am trying, still not perfect at it, to follow the "2 hats mindset" here, basically what this means is that when I plan my week I have the "boss hat" on, during the week, on the other hand, I have the "employee hat" on, if my calendar says exercise then the boss said exercise so it is exercise time, no questions asked I just shut up and do it, this, of course, is easier said than done but I am trying.
Finally, I write my progress down in a notebook, yeah no apps here, a real notebook, also I read what I have accomplished the previous week so I always have it fresh in my head.
So far my progress has skyrocketed since I started becoming more disciplined and organized about my career, now it is much clear what I want to accomplish and if I am taking the right steps.
My workflow is not perfect, I am still trying to get better at it but I truly hope to see my process inspires you to take your path into your own hands, put some deep thought into it and plan your hard work. It will make a world of difference.