[ENDED] Student Learning Giveaway (Aug 2018)

I want to give out the basic monthly subscription ($25/mo.) of Treehouse for 3 months.

Treehouse has 300+ high quality courses on coding and technology and is being used by 200,000+ students around the world. It helps students learn new skills with tracks for Front End Engineering, iOS, Android and a library of 300+ courses.

Who is it for

You can apply if you are:

  • A student in Pakistan
  • Between 16 and 22 years of age.
  • Can write code and have an aptitude for programming

How to apply

Send the following to zakishaheen [at] me [dot] com by 15th Aug 2018.

  • A resumé
  • A cover letter explaining all of the following (500 word or less):
    • your achievements in programming
    • Why do you think you should get this giveaway
    • What do you plan to learn in next 3-6 months from treehouse, and why (you can signup and see all the tracks for free and even start a 7 day trial)
  • Sample code from Github/Bitbucket (assignments, projects, toy applications, whatever you have coded so far).

What do you get

  • You will get a $25/mo Basic subscription of Treehouse for a trial of 3 months
  • If you show progress, the offer can be extended for another 3 months OR upgraded to $50/month pro subscription
  • Email/Chat guidance/mentorship
  • Occasional access to various resources as needed

Why am I doing it

I want to provide access to cutting edge technology knowledge base to students in order to unlock their true potential there by increasing my impact in society by a tiny margin.

Why Treehouse

Because I had to start somewhere. I am in no way affiliated with Treehouse or any other product.

Why not just give it randomly

Because I don’t want to waste our time and money.

Attention Leak

I define attention leak as:

Having heightened productivity and purpose, yet straying away from the task at hand with blinding belief of taking another task as equally or more important – there by leaking attention.


This results in wasted hard work and productivity, as one hops from one important task to another – never really shipping anything but having opened a lot of avenues.

Some may think that this is similar to having a small attention ‘span’. I don’t think it is the same concept because people who have low attention span simply cannot put their focus on a plan. People with a big attention leak have the capacity to do deep work, and sometimes can get themselves in the zone and get stuff done. Their attention span is stellar. But they simply keep grinding their processors trying to jump onto the next important thing. For example, Hamza sits down and plans his week. He spends a good amount of time going thru everything and picking the important stuff. He has everything figured out, neat and tidy. Yet as the week progresses, he is mid way thru a very hard book… he finds a pointer to another book. At this point, he follows that rabbit hole and so on until his attention has deviated from the original week’s plan. Mind you, Hamza still gets a whole lot more done than his peers and he ends up in a better position in the long run, yet the satisfaction of ‘winning’ and ‘shipping’ comes seldom and that makes him fall into imposter syndrome.

WWDC 2018 Watch list

Every year since 2009, I look forward to attending Apple World Wide Developer Conference. In 2016, I got the opportunity to attend it in San Francisco. It was a great experience seeing Tim Cook and all the Apple heroes close by and getting surrounded by people who share the same passion.

There is obviously a tonne to cover every year and I curate a list of videos I plan to watch. Here is the watch list for this year. I’ll (probably) update with some comments against each of these as I go thru them.

Excited for another year and probably the best year to be an iOS engineer.


Platform State of the Union


App Design

Emerging Tech

iOS Infra

Software engineering

Frameworks we love


Do you have any other recommendation? Chime in.

Everything you need to know about computing

Everything that is built in industry today is in fact taught at your school. You just need to be able to block out the marketing fluff and know the fundamentals. A lot of times students ask me, or declare, or tell their juniors ‘you learn to learn at college- all this knowledge is not applicable in real life’. I want to dismiss this notion and also explain how this magnificent and exciting field of computing works. Of course it is a gross simplification but I assure you that grasping these fundamentals will set you up for future success.

I used course names from my Bachelor’s degree back in 2004-2008 but it still holds true. Some names differ from university to university.

Ready? Lets do it!


To achieve something of value, you follow some steps to take information you have and convert it into new information. For example, if you want to go from LA to Sf, you take a map, chart a route and make a plan. You learn all this in school. We can work these steps faster by using computers who follow simple instructions. Learn about this in ‘intro to computing’.

So, You write a set of instructions called a computer program. Most programs need memory to hold data temporarily or permanently. In our case it needs the map, and it needs to hold some information while it performs those steps.

Temporary data is held in variables or constants. Things like ‘x=42’ or ‘name=‘elon’’. Permanent data is stored in ‘files’ for example ‘inventory-store-2012.dat’. It then performs instructions on this memory. This is done using a ‘computer language’. Almost any language will do so stop fretting about languages, Learn about instructions and memory in Computer Programming.

Now, Programs have a state, which is a snapshot of its memory and instruction it is at. For example, if I give you a map of SF and ask you to give me a route from MoMA to Golden Gate bridge, you will open the map and start following some intuitive set of instructions in your mind to find the route. If I stop you at any point and ask you what you have done so far, whatever you tell me is your state.


It could be in-memory state, or it could be persisted elsewhere for long term. When you are playing a computer game, which is also a program, your character’s position, your score, your health and karma are all stored in-memory. If you plug your computer off it is gone. But the high score leaderboard is persisted for long term. You can also ‘save’ your game which basically takes a snapshot of your memory and saves it. Learn about persistence in ‘Database Management Systems’. State can be hard to manage. One way is to think in terms of objects so Object Oriented Programming course is for you. As code grows, you need better ways to manage your code itself. Learn about this in Software Engineering which also teaches other things like requirement gathering, testing, design patterns, etc.


How you represent information is crucial. Searching for your friend in a list of 200,000 names when they are not sorted will take time. If they are sorted, you can use binary search to find it quicker. If you index these names, its even quicker. Data representation is taught in Data Structures. Efficient steps to process that data is taught in Algorithms. Underlying principles of all this is in Automata. Fascinating stuff.


So, Programs run as a process on a machine. A process is executed on a CPU (learn about components of a computer in CS101 and history of computing). An operating system handles this scheduling of multiple processes on a single machine. Processes talk to each other using IPC and RPC. The operating system ensures proper usage of hardware resources(CPU, RAM, video processor, network adapter, power, etc). Learn about this in Operating Systems.

Operating systems make available the underlying hardware resources. Different needs require different hardware. Learn about how simple on/off switches, transistors, registers, circuits work together in Digital Logic Design, Computer Architecture and Assembly language programming.

In order to convert your code to something a machine can execute, you need to compile it. Compilers are simple programs that do it. Learn about them in compiler construction.


Sometimes programs run on different machines. They talk to each other over a network. It is like cable in your TV. There are different ways to do it but mostly they utilize sockets and file descriptors. Learn about this in computer communication.


While programs can talk to each other over network, sometimes its hard to find which program is where and what language it understands. It sometimes is better to not worry about the fact that programs are running on separate machines. They need to act as one system. A distributed system. So they need remote procedure calls, data serialization and message passing. Learn about this in Distributed Systems. When these systems need to do intense processing you need efficient ways. You can learn those in ‘high performance computing’. Think weather prediction, missile trajectories, nuclear impact and super computers. Fun!


Your program needs to help Humans do their job better. Learn in Human Computer Interaction on how to do it. It will teach UX/UI and other stuff.

At this point, we should talk about abstraction. You know how when you plan a trip to go from LA to SF you just assume that at certain points there will be gas stations and our car needs gas and we need food and there are roads? We don’t worry about how gas stations work and how cars work or how roads are build. It is because we work on a higher ‘abstraction’ level. Similarly, what if you could simple make a user interface and do some high level stuff and do things over a network? So we have Web Programming. It lets you write programs on top of programs: a web browser and an application server. Both of which are just simple programs as we discussed but a web programmer works at a higher level of abstraction.


But what if computers could learn and make decisions on their own based on a set or rules or even make up their own rules? For example what if you chat application knows who your favorite friends are and surfaces their names when you open the app? Learn about this in Machine Learning and Artificial Intelligence. These systems work on very large stashes of data gathered (analytics) and processed (data science) and stored (data warehousing). All this in Big Data Systems.


Finally, you want things to be visible and get as close to reality as possible or you want to show information in a meaningful way. Learn that in Computer Graphics.

Phew. So now you know and we can lay down to rest the silly notion that schools don’t teach stuff that is used in real life.

Oh but you say what about ‘other courses’ we have to take?

Computer Graphics relies on Linear Algebra. You need to know about matrices, transformations, etc.

Data structures and algorithms need Discrete Mathematics as it relies on Graph Theory, Set theory etc.

Numerical computing, which is used in simulations of real world require knowledge of Calculus and Differential equations, maybe even Physics.

Other than all this, you need to learn about the legal and ethical issues that arise from working on all this so there may be courses related to that.

So, these are at least 30 courses that prepare you as a generalist in computing. It will expose you to a range of disciplines with in computing and different people get attracted to different things. If I were to tell you to simply learn AngularJS and Ruby on Rails, i am barely even touching the surface of what is possible in the field of tech.

So, stop worrying about languages and technologies and companies etc. Learn computing instead. Focus on fundamentals. Get exposed and find your true calling!

In some other post I may go into how, in light of this post, it is actually not just OK but good to do whiteboard interviews like they do in Tech Companies and how to ace them.

2017 reading roundup

In 2017 my reading volume was considerably higher than previous years. With this much reading volume my brain started to fatigue and it shows in 2018. 2017 was also a year of a big change as I switched my job.


The first quarter of the year was spent preparing for the programming interviews so I was going through some technical books.

  • NSHipster: Obscure topics in Cocoa and Objective-C
  • The NSHipster Fakebook
  • The Algorithm Design Manual
  • The Pragmatic programmer

The first two were iOS focused and the 3rd one is more geared towards computer science.

Space exploration

On a more interesting subject, I was able to cover some ground on space exploration.

  • Astrophysics for people in a hurry
  • Failure is not an option
  • No Dream is too high

Gene Kranz stole my heart this year with his epic adventures as the director of several key NASA missions including the infamous Apollo 13 mission. Neil DeGrasse Tyson did a wonderful job in ‘Astrophysics for people in a hurry’ and I thoroughly enjoyed it. ‘No Dream is too high’ by Buzz Aldrin was a major disappointment primarily because Buzz sounds too pompous and arrogant in the book. I’ll put “Failure is not an option” up there with “Astronaut’s guide to life on earth” and “starman”. I am continuously amazed and fascinated by their adventures and want to continue this category for years to come.


  • Hit Refresh
  • The Art of Learning
  • Saint Mother Taresa of Culcutta
  • The Everything Store

In 2017, I tried to randomize my sample of biographies. No longer am I just going to focus on Tech biographies – but don’t expect radically different subjects either. I really enjoyed ‘The everything store’ about Amazon (it was more about Jeff Bezos than Amazon though). Hit Refresh by Satya Nadella was a refreshing change in pace from the cut-throat Silicon Valley experience to a more mature Seattle/Microsoft setting. There were a lot of places where I could relate to Satya and its ‘refreshing’ to hear the POV from inside microsoft. The Art of Learning is about the life of a chess champion (and he has been good at other things aswell). Book about Mother Taresa was fairly disappointing because it was too ‘Christianity’ based.


  • How to raise an adult
  • How Children Succeed
  • Hero: become the strong father your children need

I want to make a claim: ‘any’ book you read is essentially improving you as a parent and parenting books specifically don’t really make people better parents. Yes they have really good advice and sometimes let you see things from different perspectives but nothing compares to an empathetic, knowledgeable parent with a growth mindset, who shows children that learning is a life long process – that parents don’t always know everything and that anything can be learned.

‘How to raise an adult’ is a phenomenal book. It starts with a lot of scolding especially for younger parents. This ranges from overparenting and setting expectations too high from kids which spoon feeding them everything. While I don’t agree with the tone of the book: taking an extremist approach to cull an extremist way of parenting – but I get the point. It has changed my mind and I would urge looking for some serious parenting advice for the long run to read this book.

‘Hero’ was a nice book, too – though I wouldn’t exactly recommend it unless you don’t have specific parenting agendas to complete first. Its about the author’s father and what she thought of him. ‘How children succeed’ was so boring I put it down after a few chapters.

Self help, Productivity

In this category, books I recommend:

  • Relentless
  • Superhuman by Habit
  • Deep Work
  • Managing Oneself
  • Ikigai

Books I don’t recommend:

  • Change Anything
  • 5% More
  • Start with Why
  • Standout 2.0


  • The Idea Factory: Bell Labs and the great American Innovation
  • Chaos Monkeys

The Idea Factory should be a required reading for computer scientists, all Americans, all engineers and anyone interested in innovation and technology. This is an amazing book about the amazing inventions and discoveries made at Bell labs.

Chaos Monkeys was apropriate to read before joining Facebook, right? It chronicles the author’s journey from Wall St. to y-combinator and finally Facebook. He doesn’t hold any punches back and has a great style of writing.

  • Dealers of Lightning
  • Lean: Quickstart Guide

These two books were subpar and I wouldn’t recommend them.


  • Gun Germs and Steel
  • Sapiens
  • Homo Deus

I could write a separate blogpost about this topic and in particular the books i read in 2017. I’m kind of disappointed that I picked two of Yuval’s books in the same year based solely on the populatity with the younger crowd and advertisment. Guns, Germs and Steel hands down beats Sapiens by a mile. Sapiens is amateur work in sociology, GGS is text book level stuff. It must be a required reading in schools.

As for homo deus, Yuval shows that he doesn’t have a great story line or way of writing so he blabbers abount any subject here. Common themes include religion bashing, etc. You would be better of reading’ The future of mind’ by Michio Kaku.


  • The sun also rises
  • Exit West

I had high expectations from Hemingway but somehow I just don’t get his dry writing style, especially in this book.

Mohsin Hamid disappointed me with Exit West. Too many show-offsy lines and a lack of coherent plot.


  • Long story short
  • Option B
  • Lean In

These three books are amazing in their own right. Margot is awesome on stage and the way she demystifies the magic of story telling in ‘long story short’, its inspiring.

Sheryl is a very thoughtful writer and a person full of life and stories. Both Lean In and OptionB are great samples of thorough writing and stories.

  • The daily rituals
  • Hal Higdon Half Marathon Training
  • Cryptocurrency
  • Creation
  • Status Update

Not much to see here. Bitcoin came and went and as most of the people round me were betting on its worth, I kept away. Tried to learn more about it but I just don’t click with Cryptocurrencies yet. ‘Creation’ was something I picked from Jeff Bezos’s biography The Everything Store but somehow found it really hard to read. Other books here are meh.

So onwards to 2018!


The more people I work with I develop more empathy. I wish I had learned this earlier: people are people. They all have the same issues, the same stories. Everyone struggles at different levels. Every is scared. Everyone is insecure, vulnerable – on a gradient of intensity. The more people I work with the more empathy I develop for nationalities, genders, opinions, etc.

As I pass thru the corridors of my workplace I look at people wondering if they care? If they wonder why I am looking at them? If they wonder the same about me? If they are better than me? If they are smarter than me? If they are happier than me? And the more people I meet, work, sit and talk with I realize we are more similar than different.

Then there is the imposter syndrome but I will leave that topic for a later exploration.

I think I have been conditioned in a certain way in last 30 years. Some of these conditionings are:

  • 10 girls to 25 boys in a class.
  • All boys school from 7th grade onwards.
  • Girls score grades and boys become street smart.
  • Girls get married and their husbands outshine in careers.
  • Physical beauty is real beauty
  • Girls maintain kitchen and boys geek out.
  • I am smart, others are not.
  • Love equals marriage.
  • Marriage equals children.
  • I am not smart as the white folks, non Pakistani folks, rich folks, other folks.
  • Boys only court girls.
  • Other people are always right.
  • There is a single right way of doing things and only other people know what that right way is.
  • Worry about how you chew, how you fold your shirts, how you speak, how you dress, how you comb your hair
  • Worry about making Queen Victoria happy in her grave.
  • Worry about what other people will say.
  • Worry about if everyone is happy.
  • Indians are evil
  • Westerners are immoral
  • Judgement passing is ok
  • Perfect is better than done
  • Elders are always right
  • People are born to fulfill their god-anointed role and for some people it is being dark skinned christians in Pakistan cleaning sewerage only

Just to mention a few. (It is a very complicated society with a lot of good and bad and everything in between).

This turns into conditioning because everyone around me is following the same curriculum. There is no diversity. Its only when you work, live, talk, sit with other humans that you realize there is no single truth, no single way. Queen Victoria’s etiquettes are not the end of the world and her passive aggressive clones are not the only people who deserve to be made happy all the time. That the world is much larger than my need to look like the cool boys in the next street or to become as cool as the rich uncle.

At this point in my life I think diversity and inclusion is very, very important – probably more than schooling and academics. This is, among other major changes, that I have been feeling lately.

2016 Reads – complete round up

2016 was so far the best year in reading for me. I set out with (a rather naive) goal of 45 books and was able to complete 35. I know that not all books are equal but having a goal is motivating. Most of these books did come from my annual read list that I set out in Jan 2016 but I do pick up strong recommendations throughout the year.

I read 5 hardcopy books and 30 audio books.

You can view the complete list of books and authors is here.


  • Einstein
  • Elon Musk

Both of these biographies are a must read. It becomes clear after reading the books that fundamentals of everlasting legacy are still hardwork, perseverence and curosity. There is no such thing as ‘genius’. Circumstances (bad, more than good) play a strong role in making strong people. Also, marriage and kids are not a barrier to productivity as most people believe. 

Space Exploration

If there is one human quality that would decide its future, it would be curosity. Curosity about what is out there, people who go after it,  and the tools, science and stories that enable it. These are very close to my heart. Col. Chris Hadfield (ex-commander of the ISS), Yuri Gagarin (first Human in space) and Adam Steltsner (team lead for EDL on Mars Curosity rover) are people to look up to in this curosity aspect. All of these books I highly recommend. 

  • An astronaut’s guide to life onearth 
  • Starman
  • Right kind of crazy


Problem with being an left-brained engineer is that you need to find a solution, a method to the madness, an optimal solution – any solution to almost every problem. Once you become a parent, you have a daunting challenge – a startup, maybe more than a startup! Learning from years of hardwork of other parents is my way of doing away with basics so I can add more value to my relationship with my daughter. 

Tina Payne and Dan Seigel have done a wonderful job in the first two books below. I highly recommend these books for parents with kids 3 and older. In fact, I reread whole brain child this year to refresh the ideas. Happiest toddler is for those parents who have kids younger than 4. A good book with solid advices. 

  • No drama discipline
  • Whole brain child
  • Happiest toddler on the block

Self help and productivity

Now this is the most controversial section of any library – but its like cheesy pop songs, everyone hums them and likes them but no one admits to being a fan. Its like a guilty pleasure. Sometimes, you don’t want to miss out on something super basic and other times you just need validation for your ways. Either way, self help books are going to stay in my yearly reading lists. 

Here are the ones that I do recommend:

  • Crucial conversations
  • Effective engineering
  • Will power instinct
  • The startup of you
  • The life changing habit of tidying up

Here are some that I couldn’t extract much value from. Maybe because Ive already heard the advice a lot of times (confidence gap) or I couldnt relate to it (way of the seal). Sometimes I cant invest or commit to the advice (mindfulness) and sometimes I will just sleep on it for now (rich dad)

  • The confidence gap
  • The way of the seal
  • Mindfulness
  • Rich dad poor dad


  • Creativity inc
  • Derailed
  • Zero to one
  • The lean startup
  • Effective executive
  • Hooked


Two categories from science made it to my list this year. Neuroscience and statistics (some would argue whether it is a science after all). Michio Kaku’s future of mind is a wonderful primer into knowing how far we have come to understand the most complex thing in the universe and where the research is heading. 

In better angels of our Nature, Pinker’s basic premise is that violence has declined in recent history. While the statistics presented are sound-ish, I still couldn’t come to terms with his research and day to day reality. It does give hope but …

  • Better angels of our nature
  • The future of mind
  • Signal vs noise


  • The complete friday Q&A (iOS)
  • Design and analysis of experiments
  • Python data science essentials
  • Data science handbook

Mike Ash is a great resource of iOS internal workings. He is a true hacker and someone I really look up to. The complete friday Q&A has great articles on internals of ObjEctive-C language and runtime as well as a lot of core Cocoa API. Some content is rather dated but is still useful in understanding a lot of concepts. 

Other books mentioned are great reference for getting started and motivated toward data science, experimentation and such things.


  • Who rules the world (Noam Chomsky)

A brutal account of American imperialist and interventionist ways in south american politics and in general future of the world since WW2. It became so depressing I had to put it down. I do recommend it if you have the stomach for some hard truths!


Dont watch the movie. Read the book. They ruined it in the movie.

  • Girl on the train
  • Herzog (incomplete)