Last week I HATED Android. I work up every day annoyed and not excited that I had to work on my CodePath assignment. I barely made my CodePath Tuesday 10am assignment deadline – I handed in my homework only 1 hour before it was due!
This week, I don’t mind Android (can’t say I love it as much as iOS, but it’s not too bad), and I’m actually excited enough about my Android assignment to wake up every morning and have the basics already completed as of yesterday. Now onto the optional assignments!
The thing is, it’s not about Android at all, it’s about what makes me love (and sometimes hate) programming – it’s where my personal joy of programming comes from.
You see, I’m a clean freak. When things are in chaos in my life, I do one thing that makes me feel like I have control – clean my apartment. It makes me feel like I accomplished something, and the result is that I have some order to my life. I’ve found that this same principle is where my joy of coding comes from.
I LOVE obsessing over the best way to organize my code, naming things so they’re easy to understand in the future, and making sure every single aspect of my application works flawlessly as expected.
That is why I prefer to have only 3 perfect screens in my application than 10 screens that all interact with each other. Once I have my 3 screens perfected, I can move on and add more complexity – I know starting with a bloated 10 screen app is a disaster waiting to happen!
I think this is also why I’m so in love with iOS programming. The Apple engineers are just as obsessive about creating the best development environment for iOS as I only wish I could be. Just last week, I discovered that if you drag a label (which has black text on it by default) onto a ViewController with a black background, the text will by default turn white!
These type of details make me sooo excited! Ironically, you will only notice this detail if it didn’t work! Imagine you had to drag on a black label on the black background, and now you’re frustrated as you have to search for the label and change it’s color! With this solution, you just take for granted that it works, since you experience no frustration!
After working with Eclipse for the past week (I highly recommend Android Studio if that’s an option!), I can tell you there are probably very few other programming tools out there that are built with such amazing detail in mind. And this is the type of detail – both building and experiencing it – is what personally brings me joy and makes me excited about waking up in the morning!
Last week, as I was working on my CodePath assignment, I was traveling, and I didn’t have too much time to really take care of the details. That is the real reason I hated it so much (although working in Eclipse did not help!). This week, as I’m back in my zone, and I can obsess over colors and animation of this week’s project, I’m a lot happier.
Knowing which part of programming brings you joy is probably the most important thing to know about yourself as a programmer. As I learn new programming languages and frameworks, that joy of obsession and keeping clean code by following best practices keeps serving me well, both to fuel my curiosity and excite me to keep going even in hard times!