It was 1998 and that was the "state of the art" web application programming that I had any access to. It was a time before the web was filled with
src of an
<img> was something that I could programmatically change was a profound realisation for me at the time, although that now seems a very long time ago.
My web hacking went along with what everybody else was doing, maybe with a delay of a year or two because I had to wait for stuff to arrive in Germany (the Internet was very slow back then). Netscape and IE 4 came out and brought new ways of dynamically manipulating and animating HTML content. DHTML was born, and I tried to figure it all out until I could swap out content with layers (layers!) and divs that worked in both browsers.
It was cool to play with, but at that time building things that worked consistently was not much fun, so I turned to the dark side and got involved with backend web development. I could let others worry about all the quirky browser differences. The backend is where I found my passion for databases.
But then 2005 came around and everything changed. Google unveiled Maps and the world was a different place. I distinctly remember, to this day, dragging the map inside the browser window — and I still get goosebumps thinking about it. Google Maps was the Beatles coming to America moment for the web.
Around the same time, 37signals came along with their web based apps for freelancers and small businesses and not only showed the world what can be done on the web, they started a year long discussion between supporters of what we call native desktop apps and web apps. We now go through the same thing with native mobile apps and the web.
37signals even wrote a book about how to build a bootstrapped business around the software as a service model that sparked a whole generation of web app entrepreneurs who built great products that touched the world in their own ways.
Truly inspired, a friend from university and I set out to do our own software as a service. We spent a good amount of time on it, but ultimately, it didn’t go anywhere. There were a number of issues, but my poor understanding of frontend web technologies certainly didn’t help. We managed to build a functional prototype, but the code was a mess, bugs were impossible to fix, new features wouldn’t land, and refactoring efforts failed multiple times until we gave up. We folded and I went back to the backend and database side of things.
Fast forward to where I start Hoodie and find myself in the company of excellent frontend developers. Now, the best I can do for the project is build out all the backend so they don’t have to worry about a thing while they knock out the frontend.
However, I am still longing for a deeper understanding of the frontend world. I can dabble, but I want to be confident.
Computer science is fundamentally about building things. Unlike architecture or structural engineering, the what, how, and why of doing our work changes on a scale of years, if not weeks sometimes. Stuff we learned last year is proverbially obsolete today.
The flip side of this nature is that it is very hard to build a canon. Sure, we have algorithms and data structures as the foundations of modern teaching and yes, they are part of everyday work, but programming and building products is just so much more.
It is on us to figure how to get the missing pieces into a curriculum that informs future generations of web developers.
Truly inspired again I went on and built a small side project. It isn’t much, but it makes me excited about building more web apps.
&yet are the 37signals of our generation and I just can’t wait to see what the people they inspire come up with. I can’t wait to see what you come up with.
— Jan Lehnardt
Berlin, September 27th 2013