Reading, writing, number… and coding skills

In the not-too-distant future, coding will be part of the mandatory curriculum in schools around the world. It is just inevitable, since technology will deeply affect the lives of humans and organizations, and “communicating” with a computer will become as important as speaking to a person. Actually, this future is already in alpha version: this year the UK is the guinea pig for introducing programming languages since the first grade. Obviously, not every kid will become a programmer, in the same way that few people ultimately become mathematicians! However, it’s undeniably important to master basic arithmetic in our day-to-day activities. And so will be coding. I did not study Computer Science in college, and I was born in a different era (the “best” CS instruction I received at school was how to use Microsoft Word!), but this is the spirit of one of the goals I have set for the next few years.

I have always been fascinated by coding. As a pre-teenager, I got Internet access for the first time in June 1998. By November I had already learnt some basic HTML, by “interpreting” the source code of web pages, and I published my first website on Geocities.

(Side note: my creation was the first Italian website about Oasis, my favorite band in the mid-90s. I guess it is no wonder I ended up working in the music industry! The website had a few thousand visitors each day, which was not bad at all given the internet penetration at the time in Italy. I kept the website active for 3 years, then switched to recording my own music as my main hobby. Unfortunately, I lost all the original files, but here is a screenshot of the landing page, minus images, via WayBackMachine. The “optimized for Netscape Navigator” and “you are visitor # since 16th November 1998” bring a feeling of nostalgia!).

Capture

I have had exposure to HTML/CSS (besides the site above, I also built a personal website which supports to this day my songwriting/recording activity) and SQL (at work I interrogate on a daily basis a huge data warehouse of Spotify listening data). However, I am completely self-taught, and I lack any kind of formal training and understanding of overarching programming concepts. If I had to do a parallel with foreign languages, I would say that I can have a decent everyday conversation in HTML, and I can buy train tickets in CSS and SQL. But I have no idea about advanced grammar and syntax!

More importantly, I don’t know anything about back-end languages like Java, PHP, Ruby, Python or (the next one strikes some fear in me) C++. Regardless of what exactly I will do professionally in the years to come, I think that I will benefit from a general understanding of how an application is built. So here comes my objective: before the MBA begins in September, I want to learn at least one back-end language up to a beginner level, aka “capable of everyday conversations”. I will then aim to sit in a few Computer Science classes during my time at Stanford, taking my learning slightly further and deeper.

I recently started taking some basic courses on CodeAcademy, which is a fantastic and addictive education platform. After refreshing HTML and CSS, I am now checking the more advanced options: PHP, Ruby, Python. I will stick with one of these, based on my initial “feeling” with the language, and I will then learn/practice as much as I can, which for me usually implies building something from scratch.

PHP

This objective truly gets me excited, and sounds realistic enough. Anything beyond that would most likely be out of reach. Yesterday, I had an interesting conversation with a GSB alum on this point. He is a CEO and co-founder of a start-up in the Bay Area, which operates through a web application. We discussed how his lack of technical knowledge is impacting his experience. He was candid about it, and said that he is taking care of business development, his true expertise, whilst delegating all decisions about the product to the CTO and COO. This sounds indeed like an efficient division of labor.

He suggested to focus during the MBA on the areas that I could really master. In my mind this includes entrepreneurship from a management / sales / finance / biz development perspective. I do see his point, and agree with him. At the same time Stanford makes it so easy to take classes at the Engineering School, and I have such deep curiosity about it, that a few CS courses are just an unmissable opportunity.

My aim is really clear though. I will never be a programmer, and I do not plan mastering any of these languages. Just like foreign languages or music instruments, mastering requires not only a thorough understanding of the key concepts, but also years of practice. Too late for me!

Stanford has just introduced a joint MBA/MSc in Computer Science, which I believe is a fantastic educational opportunity. For a few months, I have contemplated the prospect of applying to this joint degree, but I have come to the conclusion that it would be too much at this stage of my career. If I ever find myself co-founding or working for a start-up, I certainly do not plan being the CTO. That being said, I would really like to have the minimum required knowledge to have great conversations with him/her!

11 thoughts on “Reading, writing, number… and coding skills

      • Dear Federico,
        First of all, sorry for the delay on arguing on my link.
        It’s a book by an Italian philosopher (Ferraris), who re-elaborates Derrida’s idea about “writing” in a more intelligible way for human beings in general 🙂 As everybody knows, Derrida’s thought is really hard to understand!
        Ferraris argues that “coding” is a specification of “writing”. He shows us that our era is dominated by “writing”, not “communicating”.
        You mentioned in your post how “communicating” with a computer will become as important as speaking to a person.
        I absolutely agree with you, whilst putting quotes on communicating. Indeed, we write to a computer, with the idea that someone will eventually be reading.
        One “negative” consequence of this way of communicating is the potentially increasing lack of “ability” to listen to people.
        In my daily activities I interview “millennials” – their ability to listen to questions is sometimes ridiculous, while their writing abilities is really impressive, if compared with the prior generation.
        So, let’s improve coding and keep on “listening”! 😉

        PS: M’arei paldunà pa’ l’ ‘nglesu! 😉

        Like

  1. Completely agree with you Federico!

    I see a future where coding will be an essential part of every facet of life – home maintenance, personalizing car etc., Also, I think almost all jobs will require some basic understanding of how coding works. For example, a doctor/nurse might need to learn to coding to analyze/visualize patient data. A chemical engineer, might have to code to control/monitor the process.

    I made coding an objective couple of years ago and I developed my website. Last year, I developed a mobile app. And this year I am looking to do something different (related to Internet of Things, http://www.spark.io) to keep up with technological advances.

    Thanks for a great blog! And keeping it active. Stanford is great a school.

    btw – what is the font that you use? it’s beautiful.

    Like

    • Thanks for such a thoughtful comment.

      Where can I find your website/mobile apps? And which tools did you use for learning how to develop the mobile app? That’s my next objective.

      Spark.io looks extremely interesting, I will check it out.

      Btw the fonts I use are Ubuntu for headings and Museo Sans for body text. All the best!

      Like

      • Hey Federico!

        I released the app in beta version. So you cannot find it in the store. But I sent you the link so that you can download the app.

        I used Visual Studio with Apache Cordova. I depended a lot on stackoverflow.com for answers to many questions during the development. I don’t claim to understand everything that went into developing an app but I have high level understanding of what needs to be done. My confidence to deal with technology only increased!

        Like

  2. Definitely agree that programming is going to become an integral part of school curriculum, as it should be. I graduated from college with a major in electronics and while I did have some exposure to coding in C++, I was nowhere close to being an expert. But I joined a product development startup as a software engineer and I’ve learned everything I needed to know on the job. Now, I develop web and mobile consumer/enterprise applications for a living. It’s not difficult to learn how to code, but I’ve found that just sitting through videos or reading code isn’t going to help. Practice, practice, practice. Write as much code as you possibly can. There are a lot of great videos on Udemy, I remember using that one extensively when I was trying to learn. Hope that helps!

    Like

    • Thanks for your input! Agreed 100%. Watching videos or taking the quick courses on CodeAcademy is just the very first input. Learning comes with practice. It’s the same with a musical instrument, e.g. guitar or piano. Reading a book with the harmonic sequences / melodies / rhythm pattern will not allow you to play the instrument. That is just the underlying foundation.

      Right now I am just “picking” one language (a few weeks in, it seems to methat Ruby is the easiest), then I will definitely build something as a way of learning. Can I ask your opinion on whether I should also consider Objective-C, as that is the foundation of all iOS apps? Or is it too “narrow” as a language?

      Like

      • I am a huge fan of Ruby, more specifically Ruby on Rails which I think is the simplest way of building a basic web application. The syntax of the language as you might have noticed is easy to understand. The beauty of it is that in a week, you can easily set up a simple login based web app which might take months to achieve as a beginner in any other language!

        You are right to an extent. While Objective C is the foundation of all iOS apps, it is actually sort of a mix of features from C and C++. The syntax was a little difficult to grasp initially, most because it is very long winded and complex looking, especially when compared to something as simple as Ruby. I would suggest that you stick to getting a hang of C++ first, because a lot of the Object Oriented design patterns are same across the board. Once you’ve mastered C++, you will find that Objective C isn’t as daunting. I look at this way – start with Ruby so that you don’t get scared off by coding. Then look at either C++ or Java, because nothing builds your fundamentals like these two languages do. Java more so than C++, because you can build nearly anything with it.

        Would you have any suggestions for me as to where I could learn SQL or other similar data mining tools that you use to analyze large datasets? I’m really interested in learning more about data analytics and finding trends in datasets. This is actually quite useful to me as a product manager when I try to assess what types of users are downloading apps, the bounce rates, conversion rates and things like that!

        Like

  3. Great information here, thank you so much! The PHP basic course was very useful for me to quickly edit the WordPress theme for my personal website. Everything was so much clearer and I understood exactly what I was doing at each step! But writing PHP from scratch looks more complicated than Ruby. So, yes, I think will indeed stick with Ruby then. Do you agree that I should be learning Ruby (basics) first, then moving on to Ruby on Rails? Or is there any advantage in starting with the latter directly?

    I learnt some SQL on the job, where I already had an existing and well structured data warehouse to run queries on. I used this book (http://www.amazon.com/SQL-Minutes-Sams-Teach-Yourself/dp/0672336073/) since I just needed some structure on the very basics. With your experience you could master it at a more advanced level pretty quickly. I am sure you can find online some courses where the underlying data is simulated. Or you could create your own database with publicly available data, I suppose.

    Like

    • I’m sorry I just saw this (didn’t receive any notification, weird). In any case, the syntax of Ruby is so easy to understand that you could quite easily jump right to Ruby on Rails. But if you have some time on your hands, there’s no reason why shouldn’t start from the basics of Ruby and then work your way up to Rails.

      Thanks for the link to the book! Definitely going to look it up.

      Like

Any thoughts?

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s