Powered By Blogger

My Blog

One new concept a day (at the least). One new thing to explore in the exciting world of Computer Science each day. That's the Programmer in Training promise :P

Code and learn, boys. Code and learn.

Search This Blog

Wednesday 14 January 2015

Thoughts and Apologies

Hmm, okay, so where do I begin?

A'rite, first off, feel free to ignore the entirety of this post if you are looking at this blog for nobler purposes of learning. This is not a post involving anything to do with algorithms, webdev, appdev, or any part of Computer Science in general. In other words, it is not one of my regular (okay, not so regular) concept posts. This is just me sitting at my keyboard (which has gone unused for a while now, I haven't been doing much of code lately) and tapping out whatever I think, because I am just utterly bored, and I'm not really in the mood to do something super-productive, and I want to wean myself off 9gag.

So let's start with why a post hasn't come out here for a month. So for those of you who do not know me personally, our institute had winter vacations for a month (the whole of December), so I went home to Dubai. What I had expected to be a nice free month of productivity quickly dissolved into oblivion because I had sleep curfews (yes, I am 19, and yes, you read that right. Thanks Dad!). So I would basically be whisked off to bed leaving me without time to write out my blog posts, which (quite naturally) are mostly penned at night, when I am feeling most creative and woo, I'mma write the best blog post the world has ever seen kinda stuff. In fact, as of the time of writing of this post, the time is 11:38 pm locally, so you get the idea.

So if any of you were eagerly checking back day-after-day on this blog for a new concept post for the past month, I am really sorry. Also, I'd advise you to use an RSS feed program or set up an email alert or something.

So now that I am done pretending that I have a gigantic readership, let's get down to the bigger question: why isn't this post a concept post? The answer is twofold: one, I am simply not feeling it right now. I spent a lot of today reading a lot of stuff, and after a while even productivity hits its limits. But the bigger reason is the second one: on Concept 8 (Insertion in AVL Trees), I have spent about 3 whole days writing it, and it is still not complete. That post is scaring me now. More than anything, I recently remembered that I have actually never tested/implemented the algorithm into actual working code. This has put me into a sort of authenticity crisis: am I qualified enough to be writing this post? Sure, I know the concepts, but is that enough? Embittered with this thought, I proceeded to try and code this in Python, when I realized that a direct Python implementation would be simply unreadable, defeating the entire purpose and making that code unfit for public consumption. So I decided to use object-oriented Python code. But then I realized that it has been a couple of years since I actually wrote OOP Python code. So I proceeded to learn OOP Python code, which brings me to the present moment (I just finished the basic concepts about 10 minutes before starting this post). Basically I am distracted easily: you can see how my brain works (or doesn't). All this while the post itself sits unfinished, and since I started penning that a month ago, I now have to read it again because I have forgotten what I wrote.

Anyhoo, the post should (hopefully, Flying Spaghetti Monster willing) be ready by tomorrow (afternoon? evening? night? I dunno). With this post, I am also recommencing regular concept posts. I have tons to write here and tell you guys.

You see, all that while was not wasted, really. Even though productivity is difficult to manage at home, I managed to read a fair bit and learn a lot of new stuff that is incredibly useful, so I guess you can say that there's a good period of activity to come up on this blog. The downshot was that I have actually coded very little (close to nothing) for a long time, and I am looking forward to getting back into the coding scenario.

What have I read, you ask? Well, among things, I read quite a bit about coding "best practices" and about writing efficient, highly readable, highly debuggable code that scale well in collaboration with a larger number of developers. The book that I read is called Code Complete 2 by Steve McConnell.


This guy.

Full disclosure: I pirated this book. However, this book is actually way too good for anyone to do anything as cheap as that. In fact, to repent for my sins, I'm gonna buy two print copies of this book, but with my own cash. You see, currently I am a student, and I'm living off the meager amounts my parents send me, so I can't really choose to buy the book (which costs $33, which is 2071.44 Indian Rupees, which is a very big deal here). But seriously, this book put me off my own code. It's pretty much an eye-opener onto stuff that should really be the first things you think about when you want to code something, but usually end up entirely being ignored, which then ends up being a developmental/debugging nightmare. My own code looks like horseshit after reading this. I highly recommend everyone, I mean everyone, who has ever given a thought to software development, to go out and read this book first. Don't write any code till you feel you have learnt something from it.

So anyway, long story short, I'm back, and I have new stuff I wanna share with everybody. So if that's cool then we can proceed to the usual concept discussions ASAP. Also, occasionally I'm gonna chip in some of my own thoughts which don't have much to do with CS per se, like this post. You can filter out these posts: I will be tagging all of them with either "thoughts" or "rambling" or both.

Meanwhile, keep learning and stay sharp.

Ciao.

Written with StackEdit.