Howdy internet friend, and welcome back to my blog. Thanks for taking the time to read this, but if you want to skip to the dog pictures I won't judge you! Today I am going to be writing about the 100 days of code challenge. I spent about two minutes looking back through my blog on whateversauce.com and I didn't see any posts about it, but I know I've started it twice and finished it once. I have been inspired by seeing so me of my Twitter friends posting about it, and I decided to try it again for myself. If you aren't familiar with the idea, here is the website but if you don't want to click on the link, here is the basic idea. Every day for the next 100 days, I am agreeing to write code. Ideally it would be for an hour, but I'm not going to hold myself to that.
I have actually been programming or coding every day for the last few days, but I wanted to formally start working on it today. I'm going to Tweet about it shortly after finishing this post as well. Last week I started reading Coders at Work and I am really enjoying it. I also want to point out that I think it is very interesting (but not surprising) that there is a website for that book! It's been a really enjoyable read and the first interview I checked out was with one of my favorite programmers, Ken Thompson who wrote the most excellent "Reflections on Trusting Trust."There aren't many things that I would classify as must-read, but if you like computers I would put this in the must-read category! It really melted my brain when I first read it, because it was stuff I never thought about before and haven't been able to stop thinking about since.
I am reading Coders At Work because I have previously tried and given up teaching myself programming a few times now. I've written on this subject before on my blog, but I always find a way to convince myself why I can't or shouldn't be a programmer. I am working on extending myself more grace, and I am also trying to be the kind of person that I want to be. I've managed to achieve many of my other goals, and this is yet another I can work towards achieving.
That being said (written), I am going to attempt to write code every day for the next 100 days. I'm not going to set a requirement on the amount of time I spend writing or reading code - I think that even five minutes is better than nothing. I'm also going to use a generous definiton of code and spread it around to include blog posts here as well. If you can agree that code is a set of instructions that computers read and use, then by that definition you should agree hypertext markup language is a form of code. Extending this definition to CSS shouldn't be a stretch either, and in the event that I decide to change up the colors or something else about this website, I am still going to count that towards the goal. Perhaps I will take some time to design a better-looking website, like it could have come from the mid 2000s rather than the late 1990s? I haven't yet decided because I actually like the way this blog looks right now.
I saw a TikTok video recently that puts my feelings about programming perfectly. When starting over, you aren't starting from scratch, you are starting from experience. Now that I am happy with where I am at with frontend end web stuff, I am going to shift my focus to learning C. In my last post, I talked about fuzzing targets and I have been leaning towards the Linux kernel as a target. My goal in writing exploits will be privilege escalation, and the Linux kernel is a target sitting on millions of embedded devices. I am leaning towards writing my own custom fuzzer to better attack the kernel, which will force me to understand C better so I can effectively audit the code and write a good fuzzer. I plan on uploading any code I write to my Gitlab account, which right now doesn't have anything all t hat interesting. My goal in fuzzing this time is not to do what I did last time and just turn AFL on against the target and try to smash it with ugly input. I may eventually write a fuzzer that does that, but I would rather implement and understand the code in a meaningful way so I can write a custom fuzzer to break it. I suspect I will learn more more doing it this way, but I will report back in the future.
My intention is to document that journey here as well, so that it can be beneficial for those who come after (and also as a reference to myself). I hope to improve my documentation skills, because I think that's important in being a good developer. I hope that I can help other people who are interesting in learning to program. I am making sure to take plenty of breaks and not try to push myself too far or too fast. I've got some ideas about projects I want to work on, but I am going to make sure that I finish this course first so that I have a good foundation upon which to build. I've got really ambitious ideas for projects that I want to build, but I am going to start slowly and make sure that I have a strong foundation. Also, who knows? Perhaps someone will see this work and offer me a job!
So, if you want to learn about kernel fuzzing or how I make it with the goal of completing the 100 Days Of Code challenge, check back for future updates. If not, that's cool too. Either way, I hope you have a very nice day and a most excellent weekend. Cheers, internet friend!