Showing posts with label Software. Show all posts
Showing posts with label Software. Show all posts

Sunday, June 16, 2013

Thinking About Software

One of my longtime friends from Mumbai, Harshu, has been e-mailing me links over the past few months of new entries he writes in his blog. Although my illiteracy in computer programming is not something I'm proud of, I found my attention captivated by the clarity and simplicity of his writing as well as his passion for coding which comes through in his posts. My curiosity got the better of me and I ended up reading his entire blog (which, reader, I highly encourage you to do; as written, you need not understand programming to appreciate it). I was so impressed upon reading it that I felt compelled to blog about it. So here we are.

A few words about Harshu: we have known each other since we were in elementary school. I don't remember ever not being friends with him. Don't you love the kind of friendships that have endured over so many years and so many miles you are unable to recall how they began? Funnily enough, we never lived in the same building, never went to the same school, and barely had any mutual friends. But somehow, through some cosmic alignment, we have always enjoyed a healthy relationship built on affection and respect. When I migrated to America, we stayed in touch via e-mail; when he moved to the US to pursue a Master's degree at the University of Cincinnati, we were in touch through phone calls; and now that he's living in the Bay Area, we periodically call each other to catch up. Although we have never been the kind of friends (not yet, at least) that know everything that's happening in each other's lives, there's no warm-up required for us. The communication just flows. In the past, when we saw each other after a handful of years, there was an obvious comfort we felt in each other's company. 

The overall impression I got after reading his whole blog is how proud he is of being a software developer. Indeed, he calls himself a software craftsman. That is so refreshing! Some might find that to be self-important, etc., but anybody who is remotely aware of the role software development plays in today's world will allow him and his ilk that luxury. Besides, how is he not a craftsman? Is he not spending his time creating rules and guidelines for a product to function in a beneficial manner? By that logic, he is indeed involved in a creative endeavor on a daily basis. He is unapologetic about the fact that he plays a crucial role in today's society, that the work he does impacts virtually every aspect of our lives, the way we live, our lifestyle.

His first entry, written in February, 2011, gives a great indication of his intellect and his passion for software development: he pursued a project outside of his regular job because he--key word--cared about a particular endeavor. And it snowballed into him landing his current job in California. The main lesson is that if you feel an emotional connection to your work or any given activity, you're more likely to dive into it and, in all probability, excel at it. As an aside, I downloaded the StumbleUpon application on my phone and although I am yet to spend much time on it, it seems to be fascinating. Again, made possible because of programming!

His third entry, written in August, 2011, shows his love for software development and his humility at being relatively new at it. The fact that he spends "quite some time after work thinking" about his profession tells us how consumed he is by what he does for a living. I clicked on the hyperlink for Cal Newport's blog and read all the entries on the homepage. What I found most interesting is the way Cal (and, I'm guessing, Harshu) insist on maintaining a healthy work-life balance on a day-to-day basis. Although they are immersed in their work, their lives are not defined by it. They do not let what they do at the office dominate what they do--or not--at home. A significant amount of importance is given to doing less; the emphasis, however, as always, is to do whatever you do very well. One of Cal's posts which I found not only immensely intriguing but also urgently pertinent is titled, Don't Ask "What Are You Good At?" Ask Instead "What Are You Willing To Get Good At?" On deeper thought, I found that to be totally valid. At the dawn of one's professional career, one may not be good at anything. But certainly there will be things one has an interest in and would be keen on investing more time and effort into them in order to become good at them. As I myself am at a crossroads currently as far as what to do with my life, I found this advice extremely sensible and valuable. Filmmaking is what I'm interested in and willing to become good--great--at. I initially disagreed with Cal's disagreement with the maxim, "follow your passion." However, upon reading his blog and doing some critical thinking of my own, I realize the truth in his disagreement of it. I believe one should follow one's interests, an activity in which one likes to be engaged for hours at a time; as Cal writes in the aforementioned blogpost, "passion will grown along with your skill."

Harshu's fourth entry, written in March, 2012, mentions a very important truth of life: learning by doing. Of course, one does not always have the luxury of indulging in trial-and-error work, but a healthy balance of theoretical learning and practical doing is essential for succeeding in any field. When I started writing my first feature film screenplay in 2009, I had neither had any formal education in writing screenplays nor had I so much as dabbled in it. However, piggybacking off the previous paragraph, I was willing to invest time and effort in that activity to become good at it, and I was willing to learn by doing. Just as building a game in a programming language unfamiliar to him was satisfying to Harshu, so was finishing my first full-length screenplay satisfying to me. Once the initial interest and hunger to learn is there in a field, it is only a matter of time before Harshu, myself, or anybody else builds/creates/develops something that exceeds their own expectations. The concept of deliberate practice, advocated by Cal Newport, makes a lot of sense and it is something I will be adhering to henceforth. 

His sixth entry, written in January, 2013, elaborates on his belief of being a craftsman. Of the three essentials he lists for progressing as a craftsman, I found the last one particularly key: "The tenacity to work hard through the not so interesting parts." How true! Although I partially disagree with Harshu that "you need to satisfy your work rather than rooting for some dream passion" (depends on the career one is engaged in and the career one wants to engage in; if both are the same, then there is no issue), I opine that once you have found, at the risk of being redundant, an activity you're willing to become better at, then "[s]atisfying the work that is given to you is a stepping stone towards building expertise and thus uncovering a deeper satisfaction of the work that you do." On the whole, in fact, this blogpost is so well-written, I want to provide a link to it right here. Great observations, my friend. (Check out Roger Ebert's review of "Jiro Dreams Of Sushi".)

In his eighth entry, written in April, 2013, Harshu writes about randomness and the influence chance has on our lives more than choice does. If there's one topic I couldn't agree more on, it is that. As a necessitarian, however, I believe that everything that happens in life is preordained. What may seem to us mortals as random or chance or, the worst, luck, our scripts, so to write, have already been written by the Almighty. What seems to us as an "accident", good or bad, happened exactly as it was meant to happen. Because we as humans do not have the view of the larger picture, we consider it as luck, when in fact it is our destiny. But I realize this can lead to a never-ending debate about determinism versus free will so I will let it be. Consider, however, all the events that needed to have occurred for Harshu to take the wrong exit, not least of which is the inception of the Super Bowl. 

As I wrote in the opening paragraph, Harshu writes in a clean and unadorned manner. That, in no small measure, got me thinking of my own writing style. As someone who wants to make a career as a screenwriter, am I wont to employing "SAT words" where an easier word could have been equally effective? Using big words is fine, I suppose, but not if it is unnecessary. Using verbal legerdemain to make a statement easily comprehensible or, conversely, making complex sentence constructions for the sake of poetry and humor is not the same as being a literary show-off; all style, no substance. As a software writer, it is understandable that Harshu's prose is functional and within one's vocabulary range. But, nonetheless, it has me wondering, as an English-language writer, about the prudence of following a principle I learned as an undergraduate student: "keep it simple, stupid".

On the whole, much like my friendship with Harshu, I have found his blog greatly enlightening, and I look forward to getting a notification e-mail whenever he posts his next entry. Supreme work, buddy.

Sunday, January 20, 2013

Today's Forecast: Bright and Cloudy

I have been growing increasingly fascinated with the concept of cloud computing. It is amazing. Very generally, we consider cloud computing to be "stuff stored on the Internet". That is true, in that there is no saving on the cloud without the Internet, but cloud computing is much more complex than being a mere closet for our files. However, we won't be getting into the technical details here.

"How you doin'?"
Let's take this blog entry itself as an example. I have made rough notes for the content of this entry in a Google Drive document. Before Google Drive, one would probably have made those rough notes in a MS Word document. Now I am sitting in Subway eating a sandwich, and I remember something I'd like to include in this entry. If I were using Word, I would have had to make a note on an application on my mobile telephone--or, worse, on a piece of paper or napkin--and then transfer it to Word once I got back home and on the computer. With Drive, I can open the document on my mobile telephone and make the addition then and there. Done deal. 

Cloud computing enables the user to get the work done without being restricted by the equipment available. This is done by separating the hardware from the operating system from the application. Let's break that statement down: Before the proliferation of cloud computing, work was hardware-specific. The documents saved on my laptop could only be worked on from my laptop. In other words, there was no separation of the hardware (my laptop), the operating system (Windows), and the application (MS Word). While at Subway, I was able to edit the rough notes document because the application (Google Drive) is operating system- and hardware-blind. Because it is a web browser-based application, it does not matter whether it is being accessed from a Windows laptop, a Chromebook, or an iPhone. It does not even matter which web browser is being used to access it. All that is required is an Internet connection. 

Regular readers of this blog know my feelings about empowerment and freedom and their connection to the Internet. I cannot help but draw a parallel between cloud computing and another abstract concept: diffusion of power. Authority figures across the board--from CEOs to dictators to parents--struggle with this concept. Indeed, it is not an easy concept to come to terms with, let alone practice. It involves foregoing one's ego, but I digress. What cloud computing embodies so well is decentralization. As a user, my goal is to edit that document. Would I rather have the convenience of doing it whenever and wherever or be handicapped by the fact that I don't have my laptop with me at all times? 

By this point, most people are aware of how cloud computing enables synchronization across devices, ease of use, agility, etc. Holding all those things together is cloud computing's defining feature: simultaneity. Collaboration and sharing are cloud computing's two underlying principles. There's a flow, a seamlessness with cloud computing. Sure, security will be a never-ending issue. But isn't security a never-ending issue by its very nature? Amazon's founder Jeff Bezos famously believes we are using less than 10% of what the Internet is really capable of. If that is true, it is awesomely exciting to imagine what the remaining 90+% has in store. It is critical for businesses today to embrace cloud computing. In other words, it is critical for people today to embrace cloud computing. Software was undoubtedly a terrific innovation, but while it was cool back then, who wants to be seen with a flip-open mobile telephone today?