A 5 rule checklist for web developer internship survival

Finally I’m an intern! A web developing intern! So I’m learning the web and the development on one hand, but also how to be an intern, the best one I can be. Basically, the story is that about a year after returning to web development, I have found a place where I can work with others and learn from them, and I want to get the most out of that experience. I’m both learning, and learning to learn. Mostly I have to remind myself to concentrate and to NOT complicate. Here are some notes I have scribbled down for myself, who knows maybe they can be useful to someone else, too.

3) “AN EASY GAME IS A CONTRADICTION IN TERMS” (a citation, see the previous post about the book “Spaghetti hacker”)


It’s fine to admit you don’t know something. You can’t learn without that. But sometimes it is hard to avoid falling into the trap of keeping up an image, especially if surrounded by culture that makes you feel like you need to put up a front (and the tech enthusiast scene can be like that, sometimes). As the book “Apprenticeship Patterns” suggests, it is important to “Expose Your Ignorance” (one of the patterns explained in the book) and help create an atmosphere where it’s OK to do so. There are many reasons for that.

It is important, for example, to be able to communicate clearly so that the others can know what you can learn from them. It it especially fundamental and respectful towards others to be clear about your limits so that they don’t get themselves in trouble by counting on you where you can’t deliver. But it is more then just that. Admitting ignorance is important for your inner learning process as well.

If you need to keep up a facade of knowing, you will be using all your mental energy, concentration and attention for that. You’ll be worrying more about other people’s opinions of you and about making an impression then about doing and learning. When I want to do something well, say write code, the ideal situation would be the one where I can concentrate completely at the task at hand, and not worry about appearing and impressing. That frees up the resources and helps me work faster and better. But like all ideals, it remains more or less out of reach. Something to strive for, work towards. Obstacles are many. The mind tends to wander because the mind tends to wander, and we have to consider the context and the bigger picture every once in a while, as well.


Technical expertise is surrounded with hype and mystery. That can be fun, but also paralyzing. Every time I tried to become a proper programmer, in the past, I got lost. I would usually fall victim of the myth of the tech wizard/“hacker”, depicted like know-it-all genius that throws miracles around like it was easier than breathing. If your mind starts telling you “a true programmer should know this” or “a hacker would know that”, just  ignore it’s ramblings and consider that that’s just the past and the stereotypes and other people’s fantasy world talking, and move on, thinking about next thing you can do and learn and the fun you can have doing it. Ignore the stereotypes, ignore the past. “Don’t be another sequel” as a song suggests. Your present and future will thank you for it. I wouldn’t know what to learn first, what to do, what to skip, and I would start studying too much at the same time, getting overwhelmed, and then in the end dropping everything, feeling like an ignorant idiot.

Now I’m taking it easier, reminding myself not to skip steps, and that even the greatest journey is done one step at a time. I am an apprentice, not an expert, and it’s OK if I don’t know everything. I am guided by two main principles: the task at hand and the passion for the subject matter. That way I can rediscover even the most technical topics in a new light. It is no longer about “look, mom, I know stuff about x y z”, but it’s more like “oh, but this stuff can be fun and useful, I can make it mine, now I see what all the fuss is about”. Instead of taking a dictionary of all the stuff a true programmer or whatever should know and trying to cram it all into my head.

3) “AN EASY GAME IS A CONTRADICTION IN TERMS” (a citation, see the previous post about the book “Spaghetti hacker”)

I know some people who have become tinklers, techies, programmers, “hackers” because someone had challenged them when they were little, and they stepped up the occasion. I’m not like that. Or at least I didn’t use to be. I hated puzzles, hating being dared, the provocations, the risk of losing and making myself look silly. Maybe I took stuff too seriously. Doesn’t matter any more. And it is also important to distinguish a true game you can be an active participant it and create it as you go along, from a situation where you are just being played with. If it is the second, if the others are just messing with your mind to make you to feel important and smart, just drop it and concentrate on doing something concrete why they waste their time. Just do. Just code. Just learn. As simple as that. You can always challenge yourself in some way, without all the overhead.


But when you are facing a true game, a true challenge, either coming from the outside or from yourself, play it. Don’t be afraid. Sometimes the only way to win is not to play. Other times, the not playing is the only real way to lose. It is better to do the best you can, and arrive and the finish line, like a hobbyist marathon runner, then to quit because you are not perfect enough. Reaching that finish line can be a victory. Play hard, work hard, don’t cut corners, but at the same time, don’t push yourself to the point of breaking and quitting. “Real Artists Ship”, remember (Steve Jobs). Remind yourself that whatever it is you are afraid of, not doing is worse than doing less then perfectly. “If you try the best you can, the best you can is good enough.” More lyrics there. The hard thing is figuring out what “the best you can” is. In a given context. In that exact moment, not in an abstract way or ideally. Finding a balance.


One of the most interesting things I have learned from the 6.00 MIT Open Course Ware course is that, when programming, the problems are often simpler then they look. I keep asking myself – is this a typo? Am I running the same code that I am modifying? These things are said out loud at MIT, not taken for granted, and I found that very refreshing. Simple advice can make a big difference. When we are afraid, like say, afraid of failing, eyes get bigger and we see who knows what. Maybe we’ll blame the technology that we find most confusing and concentrate on that, when the problem could be something much more trivial. Try to relax. I know it’s not easy. And remember to laugh with relief and feel silly in a good way if you find a simple solution to an apparently complex problem.

Seriously. Techies don’t need to be grim and gloomy all the time.

SMILE. LAUGH. Not in your head. PHYSICALLY.

As often as you can. Even at your mistakes. Especially at your mistakes (learning from them, however). Even at difficulties. Especially at those. It helps.


About apprenticecoder

My blog is about me learning to program, and trying to narrate it in interesting ways. I love to learn and to learn through creativity. For example I like computers, but even more I like to see what computers can do for people. That's why I find web programming and scripting especially exciting. I was born in Split, Croatia, went to college in Bologna, Italy and now live in Milan. I like reading, especially non-fiction (lately). I'd like to read more poetry. I find architecture inspiring. Museums as well. Some more then others. Interfaces. Lifestyle magazines with interesting points of view. Semantic web. Strolls in nature. The sea.
This entry was posted in learn-from-mistakes, learn-to-learn, musings, tutorials and tagged , , , , , . Bookmark the permalink.

Leave a Reply

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 )

Google+ photo

You are commenting using your Google+ 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 )


Connecting to %s