A book I have been listening to recently mentioned an anecdote that has really stuck with me. It is the story of three stone masons and it goes as follows:
“A man came across three masons who were working at chipping chunks of granite from large blocks. The first seemed unhappy at his job, chipping away and frequently looking at his watch. When the man asked what it was that he was doing, the first mason responded, rather curtly, “I’m hammering this stupid rock, and I can’t wait ’til 5 when I can go home.”
”A second mason, seemingly more interested in his work, was hammering diligently and when asked what it was that he was doing, answered, “Well, I’m molding this block of rock so that it can be used with others to construct a wall. It’s not bad work, but I’ll sure be glad when it’s done.”
”A third mason was hammering at his block fervently, taking time to stand back and admire his work. He chipped off small pieces until he was satisfied that it was the best he could do. When he was questioned about his work he stopped, gazed skyward and proudly proclaimed, “I…am building a cathedral!”
Why did I begin with that anecdote? I will come back to that but here is what inspired me to write this blog post. Recently, I was invited to a friends house for dinner and the topic of conversation turned to careers and jobs. One of the gentlemen present was interested in pursuing a career in IT and as usual, I was the only IT guy at the party. My friend introduced me to the gentleman interested in IT (let’s call him Mr. Stone Mason) and we started to talk. Mr. Mason had never worked in IT and was interested in getting a job but was uncertain as to the route he should take. I asked him if he had ever pondered which branch of IT he would be interested in such as software development, quality assurance, business analysis etc. Mr. Mason said that he was interested in taking some courses so he could get a job and whether I could recommend a course that would help him land a position.
Mr. Mason immediately reminded of the parable of the three stone masons I quoted above. I thought to myself that Mr. Mason will likely always be one of the first two types of masons. He likely will get a job if he is motivated enough to learn and apply to positions but he most likely will never be the third type of mason: the one that has an end in mind and the one that builds a cathedral.
For the next few minutes I tried to explain to Mr. Mason that he should not pursue IT as a job but treat the study of computer science as a discipline and I tried to extol the virtues of computer science and what possibilities it holds. However, no matter what I tried, Mr. Mason was only interested in finding a job. Not there is anything wrong with getting a job. After all, I am a programmer and I do have a job. The money is good and I get to do what I love. However, at this point, i can honestly say that I do not just do what I do to earn a living. Earning a living is only a part of what I do but learning new things, developing new skills and discovering new possibilities gets me excited every day.
In this post, I am hoping to convince anyone that is trying to get a job in Information Technology to not just pursue computer science as a job but to actively pursue a larger goal. What that goal is will depend on the individual but I hope that whatever that goal may be, it will be more than just getting a job; it will be to build a cathedral.
In that same spirit, today I am hoping to teach you how to lay a stone by writing one very simple line of code. You should then be able to lay the next stone and the next stone until you build your cathedral.
For this part of the post, the developers can just tune out as they won’t learn anything new. However, for anyone who is a complete beginner, here are the steps to writing your very first line of code.
- If you are reading this post in the Chrome browser, hit Ctrl+Shift+i on your keyboard to open the Chrome developer tools. You can open your developer for another other browser by reading the following article.
- Click the “Console” tab write and following of code in your console (denoted by a greater than sign) and then press enter. Feel free to copy and paste the code if you like.
So what just happened? You have just written a very simple line of code. You have instructed your Chrome browser to log the message “Hello World!” to the console window. The reason you see “undefined” in the console output is that the function you invoked did not return anything. If you don’t know what functions are, they are simply self-contained code that accept parameters, perform a task and usually return a value. For example, a sum function might accept two numbers as parameters and return the sum of the numbers. In this case, the console.log function accepts some texts as a parameter, writes that text to the console but does not return any value.
So you might be thinking to yourself “So What? This doesn’t help me.” and I am inclined to agree with you; to an extent. The message I want you to take away is not that you have learned some mundane piece of computer code. It is that all of computer science is really as simple as this exercise we just performed. You learned a new concept, you learned its explanation, you wrote some code and you gained some insight on how to learn more. You can continue your journey from here and keep building on this knowledge every day and simply keep laying more and more stones. How you choose to see the end result of your endeavors in computer science will in large part determine your success. You can choose to be any of the three types of masons above. Whether you want to get a job, whether you want to change the world, you can do it by writing one more line of code and by laying one more stone.
Here is just some of what is possible by writing one more line of code
- We may just be rid of the inflationary spiral of a perpetual debt based economy because someone decided to write one more line of code.
- We are close to reading human minds because someone decided to write one more line of code.
- It is now possible to solve the energy crisis in third world countries because someone decided to write one more line of code.
- We can eradicate illiteracy because someone decided to write one more line of code.
- We may be close to creating self-aware machines because someone decided to write one more line of code.
I could create a list so long and so amazing that would completely blow your mind but I think the examples above should suffice.
What can a few lines of code do? They can expand your horizon and change the way you perceive the world. With a few lines of code you can help the people suffering around the world. You can help solve the worlds most complex and interesting problem while making money and making an impact. You can leave behind a legacy for generations by writing one more line of code.
Today i taught you how to lay a brick. I hope you will not stop here and keep building your cathedral. I hope that you will choose not stop here. I have just taught you to say hello to the world, please join me and the millions of other developers who are trying to change the world. You might just get rich and famous doing it.