Hello everyone, the handle I normally go by is arkan501, but you can just call me Arkan. This post marks the start of my dev blogs. What brought me to start a blog, is actually a universal problem that many aspiring software developers appear to face.
I am very bad at creating documentation.
You see, a couple years ago I made the tough decision to finally go to college and pursue a degree in Computer Science. The programming projects I have encountered so far don't really require much documentation beyond the inline comments describing what certain function are meant to do, or why I decided to create a function to return 3.14 as pi instead of just creating a constant for it. However, I am a bit of an over achiever...
I was interested in a career in programming long before covid was on the rise, but never got around to actually investing any serious time into learning anything. If I recall, maybe I learned how to print hello world
to the terminal? Regardless, what I knew at the time was that if you wanted to really show what you were worth, then you needed some projects under your belt. So now that I'm taking the time to invest in this career path, I applied that mentality and began a few small projects here and there. Making projects is important for every programmer, as it's often stressed by many veterans,
you learn by doing.
Another important aspect that goes along with the doing though, is the debugging and documenting!
Git commits, and various comments in my remote repos have served well enough, but eventually it becomes not enough for everything happening with a project. Sure, every micro commit can be fairly well documented, or needs no documentation beyond the title of the commit,
chore: deleted redundant function
However, I was quickly finding myself, in my current project, making some tweaks here and there when working on something else (the project is just a chess game library that I can use in other projects).
It started small, I'd be updating how the pieces move on the chess board, and then I would decide to just change the name of a variable to be a bit more uniform with some naming convention choices I made during this update. Then while fixing a bug that allows the King to teleport to the other side of the board, I need to go into a few other functions because after the bug fix I realized I could make similar tweaks to optimize those functions. Then while finishing up the move generation I had a brilliant idea to use a different board representation that would be far more optimal than the 1D array implementation I am using at the moment. Ohhh, but it broke the Knight's movement and now I need to fix that, but because of my ADHD I decide to put that off and start on implementing generating the board state from a FEN string that I said I wasn't going to do until after I fixed the King teleporting to the other side of the board, that I actually never fixed so I go back for that, and then I have to fix those functions that I though I optimized, but didn't actually optimize because the tweaks made them worse -- I hope you can see what I'm getting at here. I am all over the place, and by the time I get around to committing my changes, I have no clue what I've actually done beyond what I was working on right before making the commit.
I have been meaning to start some kind of blog, but never got around to it. I would also like to not just create documentation for my programs, but to also document my journey to becoming a software developer. This first blog post may not have a whole lot of bells and whistles beyond that only bold sentence after the first paragraph, but hopefully I get better at formatting my blogs, and making them prettier. For anyone who accompanies me on this journey, I thank you for the company!
Top comments (0)