Blog Post
Beginnings
Website has launched and its time for me to share my initial thoughts in a blog post.
Looking at old code you wrote can be painful, as you will improve over time and see the mistakes you made in the past. This can also be a good thing as its one of the best ways to see how far you have come. Browsing through old commits and archived projects will give you a timestamp when you have learnt skills and eradicated mistakes. Even better if you haven't looked at a module in a long time as you will most likely have new techniques to improve the flow of code.
When I started 'scripting' years back I barely knew what a data structure was or what OOP was meant to achieve or resemble. Its strange as looking super far back for me shows no resemblance of my current coding style looks like. Making it hard to read and almost resembling someone else's code or just seeing plain stupid mistakes in terms of my usual conventions in the present. Some clear offenders at this stage of learning are monolithic modules with thousands of lines which should really be split up as much as possible. Clear avoidance of using Pythonic boolean checking like type(foo) == int
instead of isinstance(foo, int)
which is a clear mistake, or even just checking against boolean's like if foo == True:
instead of just if foo:
and many more to count... Some from not knowing their existence, plain understanding and refusing to use it or just plain ignorance.
These issues were fine back then as all my projects wouldn't exceed a combined 1000 lines, but as I started planning bigger projects, so my code quality also had to increase in order to be more manageable. Lack of coding convention and etiquette started slowing me down when I started hitting the 10.000+ line threshold. While producing code that worked, it was not expandable or maintainable at all. This brought development speed down to a crawl almost as if my progress was standing still. My CI/CD techniques were none existent and I was barely testing or documenting my code. This stand still gave me the urge to learn everything about the software development life cycle, since I wanted the project to be successful. As I go back to this stage of my development timeline I understand what I did at the time, but would do things completely different in the present day. Large projects do show the importance of a good coding workflow and scaling highlights the failure points of all code bases.
Now when looking back a few months to half a year it blurs the line. My code has evolved as most of my days have been absolved in learning computer science concepts more intimately and just coding the rest of the time. I am still surprised on how much progression there has been as my code improves incrementally each day. Its smaller things like more efficient and appropriate algorithms or design patterns that are less obvious to the uninitiated and are harder to spot, but that's also the reason that software developers' need to continuously learn in order to pad out those issues over time. My hope is that when I look back at some of my code from now in half a year or year I can still see that progress.