Why Learning to Code is So Damn Hard

Erik Trautman of the Viking Code School Blog did an outstanding job explaining “Why Learning to Code is So Damn Hard“.  It’s a rather long read, but it’s easy to get, and it explains the different stages extremely well.

coding_is_hard_combined_chart

He looks both at the variability of confidence as one gets competence, the scarcity of resources for each stage, and the scope of knowledge.  Just to have it here for a quick reference, here are the stages:

  1. The Hand Holding Honeymoon is the joy-filled romp through highly polished resources teaching you things that seem tricky but are totally do-able with their intensive support. You will primarily learn basic syntax but feel great about your accomplishments.
  2. The Cliff of Confusion is the painful realization that it’s a lot harder when the hand-holding ends and it feels like you can’t actually do anything on your own yet. Your primary challenges are constant debugging and not quite knowing how to ask the right questions as you fight your way towards any kind of momentum.
  3. The Desert of Despair is the long and lonely journey through a pathless landscape where every new direction seems correct but you’re frequently going in circles and you’re starving for the resources to get you through it. Beware the “Mirages of Mania”, like sirens of the desert, which will lead you astray.
  4. The Upswing of Awesome is when you’ve finally found a path through the desert and pulled together an understanding of how to build applications. But your code is still siloed and brittle like a house of cards. You gain confidence because your sites appear to run, you’ve mastered a few useful patterns, and your friends think your interfaces are cool but you’re terrified to look under the hood and you ultimately don’t know how to get to “production ready” code. How do you bridge the gap to a real job?

I’ll also borrow the resource density chart, which is very handy:

coding_is_hard_resource_density

 

Not only the article explains why learning to code is so hard, but it also suggests how to make it easier, depending at which stage you are.

I think this is one of the best articles on professional development in software development that I’ve seen ever.  Do read the whole thing.  It’s that good!

SchemaSpy – Graphical Database Schema Metadata Browser

SchemaSpy – Graphical Database Schema Metadata Browser.  This is a tool written in Java that helps one to generate database schema documentation.  Have a look at some sample pages.  Those familiar with Graphviz will immediately realize that the tools is using dot for graphing tables and their relationships.  Those familiar with SugarCRM documentation will immediately notice that SchemaSpy is used for the API documentation.

WhatsApp passes 800,000,000 active users

whatsapp-numbers

TechCrunch is reporting on WhatsApp passing the 800,000,000 active users mark.  Almost exactly a year ago, it was at 500 million active users.  I don’t care much about WhatsApp’s business or service, but from the technical point of view this is quite significant.  That’s almost a million active users acquired every day for the last year.  That’d be a challenge for anyone to handle.  Thinking that this growth might have been not too linear gives me digital goose bumps.

I haven’t seen anything recent describing their infrastructure, but this article from last year provides a starting point for the imagination:  Erland + FreeBSD + 550 servers, with preference for larger box with loads of RAM and cores.  I’m sure that have grown quite a bit in a year too.

Citizenfour

citizenfour

It’s been a long while (almost two years in fact), since I posted a movie review.  It’s not that I haven’t seen any good movies in this period, but more of the fact that I tend to sound repetitive when I write these.  Watch that, this one is awesome, etc.

Last night I’ve watched “Citizenfour“, and I have to say I’m shaken by that documentary.   And I’m not a privacy or security freak, and I was somewhat familiar with Edward Snowden’s story.  This film, while portraying his personality, is not so much about him, as it is about the state of affairs.

As a non-US citizen, I have very little interest in what the US government is doing.  I don’t particularly care if someone is recording my Internet traffic, Google searches, or the phone calls I make.  I’m not worried about ending up “on the list”, or anything like that.

But not everyone is like that.  I do understand how government surveillance can be used, how data can be analyzed, and how pressure can be applied.  And I do share the point of view that the balance of power between the government and the people is way off (and not only in the US), and that we are beyond the point of any meaningful individual resistance.  It’s just that I don’t do anything about it, and Edward Snowden did.

For me personally, quite a few things were new in this film.  It was interesting to learn about the variety of NSA and CIA programs, the depth of their rich, and the technology that is in place already.  Some of it does sound like science fiction future, but is in fact very possible.   The stuff about security access in the NSA, drone video feeds, data gathering, analysis and search, with real time notifications, etc – all that was insightful.

The other side to the movie that I found interesting was the whole process that was used to expose these documents.  There is in fact no framework as to how such things can be done, what should and shouldn’t be published, how things can be verified, etc.  The move to remove his own bias and pass on the responsibility onto the journalists was interesting.

Overall, I think that the more people see this movie, the better.  The issues raised are very important and we should know about them.  It doesn’t only affect criminals or terrorists or Americans.  It affects everyone.  In particular everyone who has a phone, or a computer with an Internet connection, or a credit card.  After all, there are 1,200,000 people on the US watch lists, and from what I understand, this list is growing fast.