I was enjoying my evening, reading through this article at a lazy pace and then it just hit me, but let me tell you a few stories first, so that you can understand the context of my thoughts.
Roughly, 5 years ago, I was given an assignment by one of my professors, a very short assignment, which simply asked to “model the temperature in a certain point on a board, using the Laplace equation for a bi-dimensional discrete grid”. Well, I was one of the “smart guys” around there, so I just went to my good ol’ pal Google to refresh my memory about that equation. Going through the article and the associated math felt like reading a bit of Chinese, but I did find a reference to something remotely useful: “the Laplace equation is the steady-state heat equation.” So, basically, all I had to do was figure out how to tame all those nice integrals into discrete equations that can be implemented in code.
Bummer. I felt like hitting a brick wall. WHY THE HELL MUST IT BE SO COMPLICATED???
I started googling around, to see if somebody else has done anything similar. Nothing, not even a clue. So then I swallowed my pride and asked a teaching assistant who “knew lots of stuff about lots of stuff”. For him, it was a trivial task. He had a deep insight into how these equations work and how to play with them. Actually, if you think about it, you don’t even need to read all that arid math, because everyone knows instinctively how heat dissipates on a metal plate, once you attach a heat source on it, and you can just imagine that the metal plate is a simple discrete grid. The problem is that, well, I usually like to be rigorous in my work, so I couldn’t see past the exotic words in the assignment, which simply asked to take a square grid, heat up one of the points and radiate the heat to the adjacent points, decreasing the temperature by a given coefficient with respect to the distance from the heat source. Now that I explained it in layman’s terms, anyone with a bit of programming knowledge can implement it (and it still looks awesome), but what would I have done if I didn’t have a friend who “knows lots of stuff about lots of stuff”?
Mind you, this assignment was due in two weeks, in which I had to go to courses, laboratories, do other homework, work a full-time job, etc. and I estimate that back then, it would have taken me at least half of year of continuous study to get a rough idea on how to go from those cute integrals to a human-understandable equation that can be translated into code. I’m not saying that I wouldn’t have enjoyed to carefully read some math and physics books, but this kind of wishful thinking wasn’t really compatible with the tight time constraints of going trough the Polytechnics University of Bucharest at a normal pace.
The next year we had a course about information theory and, more specifically, about data transmission. You know, Shannon’s theorem, Manchester encoding, multiplexing, flow control, error detection, etc etc etc, bla, bla, bla, and all that jazz… I can’t even start to emphasize the amount of “Chinese” that we were supposed to read, understand, and learn by heart from the professor’s 500 page book in order to pass the exam.
Of course it was a joke and most of us passed it without breaking a sweat (or learning anything useful), BUT we also had to do a mandatory project for the laboratory and I was among the “lucky ones” assigned to implement a simulation for the transmission of radio waves through air. Since I didn’t have the slightest clue on how to go about modelling something like this (I can guarantee you that it wasn’t even remotely covered by the course), again, I went back to my good ol’ pal, Google. As expected, I quickly got my neurons stuck in a knot reading some arid mathematics that few people comprehend.
Misery and despair! What to do?
I started asking some smart friends about advice on what to look for and where to begin. Nothing. I ended up asking on some Romanian forums, hoping to find someone who can, at least, point me in the right direction. Thus, out of sheer luck, I ended up finding someone with vast experience on this subject. He started telling me about Rayleigh fading, Intersymbol interference, white noise, colored noise, the almighty Fourier transform and filters.
I had no clue what he was talking about, since I barely touched some of this stuff in my previous courses. How could I possibly comprehend all of this in a couple of weeks and also do an implementation? It seemed hopeless, but, eventually, after many long hours of discussing with this extremely patient person (I still don’t know what his real name is), I managed to end up with a highly simplified model that was mostly trivial to implement. Why did it have to be so hard to understand and why didn’t I have access to proper documentation for these kind of tasks is a mystery to me…
So now you’re probably wondering what is the link between the above ramblings and this article that I originally mentioned. Well, let me put it this way: it’s all changing very, very fast, in a really good way. Back then, if I had a question that neither Google nor my friends could answer, I was at the mercy of a superficial collection of Romanian technical books that took forever to go through and rarely helped me. Now, we have stackexchange.com with its 99 Q&A sites. Say you have a very difficult and obscure technical question. Problem solved! Just take a minute and admire the amount of work poncho (whoever he is) put into his answer and into the comments to help me clarify all my subsequent questions…
Thus, we now have the ability to converge neurons from all around the world. People who have never met in person and, most of the times, do not even know each other’s real names can share ideas and insight into tough problems. Some of them actually spend countless hours providing priceless help without asking for anything in return. Some of them are really famous in their field. Some just love to help out. And some do it because they like to be a micro-celebrity in the geek’s world.
But this is just the tip of the iceberg. You can’t afford to go to a good school? No problem! Now we have Coursera, Udacity, edX, Khan Academy and many, many other online educational platforms that feature the best teachers in the world presenting high quality material at the click of a button, for free. “We enable life-long learning” (Daphne Koller, Professor in the Department of Computer Science at Stanford University). “If you’re one of those students who hate physics, it’s not your fault, it was just bad luck that you had a poor teacher.” (Walter Lewin, Professor emeritus of physics at MIT).
Starting with humankind’s largest encyclopedia, Wikipedia, we finally managed to transfer our entire knowledge from slabs of stone, papyruses and paper books spread around the world in big libraries that few people can access to a virtual, almost unlimited, always online (well, most of the time) storage facility called The Internet that, nowadays, can be easily accessed in many parts of the world and it is spreading continuously. But, we are still missing one key component: the ability to combine all this information in an intelligent and meaningful way, efficiently. The big software companies are starting to see the direction in which they need to go, but we sill have many challenges to solve.