What’s been going on lately

It’s been a while since I updated this here blog. Truth be known I have been doing a lot of MIM (Mouth in Motion) rather than putting things in action. I am rounding up university in a couple of weeks time, on the 11th of June to be exact, so the race is on to complete my final year project.

I have learned a couple of things whilst building this software, and I can see the fruits of my year long internship. I’ll post it as open source when it is all done and I’ll blog about a few techniques I’ve picked up along the way.

Pair Programming

Today at the office was another session of pair programming. This time it was with my team leader a very brilliant dude. It was initially a code review session which turned to code refactoring. The general gist is, a payment webservice that we have for one of our clients, did not hit the Non-GBP Amex accounts when users paid by Amex Card in a different currency like EURO. We hadn’t provided the entires (Amex accounts) in our config settings nor did our webservice code handle the Amex accounts, which are different from other card types in all currencies.

I’ll spare the details. Anyways we fixed the problem and refactored the code from it’s stink. One thing I took away from the experience is a little more experience on how to make code more readable and maintainable. Pair programming with someone who is more experienced than yourself will only improve and make you a lot better therefore I will keep on seeking out more code reviews and pair programming session as they are invaluable making me a better programmer.

Getting Things Done.

Was commuting from the office today and thought to myself, ‘how do things get done?’ and the simple obvious answer  ‘One step at a time’. How did twitter get built, one line of code at a time, same with facebook, reddit and everything else.

At the back of my mind I tend to think that one day I’ll just wake up and build a very cool app just like that at a go, but it ain’t gonna happen that way. In order to build or do anything, it has got to be done one step at a time, seizing the moment. As a wise man said; “Seize the seconds and minutes, the hours will take care of themselves”.

Technology Hype

Okay I admit it, I am very hyped about the hottest programming language out there and basic instinct is always to dive in head first (not very wise). As I said in my previous post, that I will be rewriting my uni project in rails, just before the dust settled, I came across this post which literally smashed my head against a brick wall. FKS stick to your goal damn it! I haven’t dived deep into my current language (C#), that I wanna pick another due to my technology junkie(ness), doing this won’t take me far, so I revert my decision to rewrite the project in rails and stick to the original plan (when it’s done, I’ll blog about it)

Why am I posting this incosistency? Well because I am me, and I have this challenge.

After effect of one week information fast

So I didn’t fully fast for a week, in total I spent about 2 hours going back to my habit (reddit, hacker news, etc) but I must say the experience was edifying. What did I get out of it? In one word, ‘Clarity’. I re-prioritized my goals for the year, scaling them down to managable goals for each quarter, each week and daily goals. In the next 5 weeks, there should be effects of the experience appearing on this blog (stay tuned).

One week information fast

I am on a one week information fast. I noticed I waste a lot of time reading blogs, reddit, hacker news, wired and other sources of information like an addict. This isn’t doing me much good as I am not practising my coding skills as much as I should, therefore enough is enough, more signal less noise. I will post back after a week on how I did.


Experiment on how to learn

Learning is an endless process. One can never learn all that needs to be known because change is the number one constant thing. With that acceptance in place, the question arises of how to motivate myself to learn and keep on learning? I have tried a couple of learning techniques that definitely don’t work for me.

For example, developers usually are excited about the new shiny technology that surfaces, maybe in an effort to get management to adopt it or to increase their market demand or just for hack sake. Like most developers, I get excited about new technologies as well and even play with em a bit, but the excitement for me tends to wear out rather quickly because, I know that the current technology stack available at the moment is way too broad and there is still so much to learn.

So how to learn? I am now messing about with this concept, were the author’s motivation to learn comes from her desire to teach/share. I don’t have anything to teach but I would like to document whatever it is I am doing in a tutorial idiot-proof way, so that I or anyone else can look at it and it will make sense. My brain tends to get fuzzy when complexity is involved, (major reason why I am a programmer) and my basic instinct is a desire to get rid of that complexity and simplify things.

To be honest, the main reason of this blog is to motivate me to learn.