Christian Heilmann

You are currently browsing the archives for the learning category.

Archive for the ‘learning’ Category

Promote better JavaScript documentation with PromoteJS

Sunday, September 26th, 2010

As I heard during my visit in the valley last week and just now from the goings-on at the JSConf in Berlin, Mozilla is working on ramping up the already amazing MDC documentation for JavaScript and you can help by providing some guerrilla SEO - simply add the following image with the right code available at http://www.promotejs.com/ to any article that talks about JavaScript:

JavaScript JS Documentation: JS Array splice, JavaScript Array splice, JS Array .splice, JavaScript Array .splice

The reason is obvious when you search for the term “JavaScript” – the things you find are wiki articles or even products that tell you not to care about learning JavaScript when you use them. As the term JavaScript was a hot SEO term during the DHTML days and with the resurrection now a lot of sites washed out the experience of finding something good when you try to use the web to find it. When I wrote my JavaScript book Beginning JavaScript with DOM Scripting and Ajax I had a chapter that told you where to find good information about JavaScript and other than the MDC and SelfHTML (if you are German or Spanish) I drew quite a blank. Lately Sitepoint started to put together some good docs but then all we had was W3Schools.

Let’s shine a Flashlight on the elephant in the room: W3Schools. This site is the number one for almost every technical search term in CSS, JavaScript and HTML. There are a few reasons for this:

  • Its SEO is spot on – heading structure, amount of links and deep level content (long tail)
  • It leaves you with a good feeling – “oh this is how simple it is! Cool, no need to read more, just copy and paste the example and I am an expert”
  • It is fast and small

The “good feeling” part is also what makes it dangerous. I ranted in several talks about the Siren Song of W3schools – it gives you the what but not the why. You can use it as a reference when you already know your stuff but it is dangerous for people to learn a subject matter. Programming is not about syntax alone – it is also about the environment you apply it in. W3schools is like bringing up your kid on fast food – quick, fast and cheap. This is not the fault of the maintainers of W3Schools – it is the fault of people sending new learners there for information.

The PHP docs are a good compromise of fast information with insights from implementers in the field – I learnt more from comments on the docs in PHP than from the entries themselves.

In the write great code examples chapter of my Developer Evangelism handbook I described a blueprint how to write a code example that explains and educates. Sadly this takes much more work than just showing the syntax. And this is why the docs sites that simply tell the “how” are winning – they update much faster with less overhead.

It is very cool to see Chris WillisonChris Williams(DOH!) and others take on the challenge and Mozilla to me is the perfect host for this kind of effort – they are open, independent when it comes to JS and have a track record of providing good docs.

Interestingly enough about five few years ago I tried a similar approach for all docs:

Replacing old tutorials with new ones - Obsoletely Famous by photo

Other than getting it hacked once I found no support for it though so I shut it down a year ago. Now with the leading names of the market talking about a similar thing at the leading conference of the language we have a better chance. Help us!

The joys and perils of working for a large corporation

Saturday, February 9th, 2008

This is not a technical post, but something that I’ve been pondering about for a while and it is related to a lot of comments and emails I get through here. I wanted to sum up some points what it is like to work for a large, very public corporation and what my points of view and my circle of influence are.
Lately I’ve been getting a lot of questions about this and instead of repeating myself over and over again, I take this as an opportunity to write a reference piece.

There comes a time in the career of a developer where you go up the hierarchy in your company. Most of the time this is because of your performance and dedication to the company but also to the wider market that you work in and due to the fact that you have proven to yourself that you are a good developer and team player.

Web Development is a very young profession and we do make all the mistakes that have been done in other professions before. One thing is for sure though: you need to keep your eyes open and roll with the changes of the market in order to succeed. If you take your job and the fact that the web is a new media really serious this means that you need to check out future technologies and ideas as much as delivering the current ones to full satisfaction.

If you’ve done this for several years and feel your forehead getting numb from running against walls trying to get this idea through to people whose main concern is to make enough money to be able to pay the wages and other company expenses you got two choices: start an own company, consult others or try to join one of the big players in the market.

The former two come with financial unknowns and a lot of stress. The second also comes with the decision to let go of some of your dedication as you cannot over-deliver. You consult, you invoice, you hope they get better and you leave for the next job. You know what to do right, but you hardly ever get the chance to really deliver it.

The latter – working for a future-facing, established corporation that is not in trouble – comes with a lot of positives:

  • You work for a company that has been around a while and knows how to treat employees so that they can deliver (this means HR issues are taken care of and the pay is no problem either)
  • You work for a company that already has a lot of developers working for it and doesn’t have to start understanding the value of good IT support. This includes getting adequate hardware, the right software and upgrades whenever they are necessary rather than when they fit the budget.
  • You get reach beyond your wildest dreams – millions of users – and learn about tricks of the trade you never thought necessary but that are when you want to deliver a great experience for all these people.
  • You get the chance to work with amazingly skilled people – those whose books you read and wondered how the hell they come up with great ideas like that.
  • You get to propose people you always wanted to work with to get hired – and find that there is a budget for that!
  • You find that there are departments in the company that research technologies and ideas that aren’t an immediate success but will be a great asset in the future. You even get kudos and maybe even more for proposing them some ideas.
  • You can learn from the massive experience of people that have been playing in this league for a long time.
  • You get company perks (free food, cheaper hardware, gym, health care and so on…)

All of this will make you happy but there is a flipside, too.

  • You are a geek, possibly even with a “scene” background and you “sell out to the man” in the eyes of a lot of people that saw you as an equal before.
  • People expect you to change drastically and you have to suffer many “tongue-in-cheek” comments about you “being assimilated”, “joining the mothership” and other “clever” remarks.
  • Whenever you talk about a product of your company, people will take it less serious than when you said the same prior joining the company. “Of course you say this is good, they pay you for it”.
  • You will be responsible for everything your company does, no matter how far removed from your area of expertise or even location it happens.
  • You will be judged not by the good stuff that happens but by the lower quality things the company produces – it is fun to poke the giant and show that you can do things better (whilst forgetting the dependencies the giant has to support that you don’t have to)
  • Naturally you will be considered to have insight into all the happenings in the company and probably can tell in detail whatever people might want to know.
  • It is expected that if somebody wants you to work for them (for example as a speaker at a conference) your company will gladly pay for your travel there and the accommodation and not the organization that wants you to work for them.
  • You are expected to be as rich as the richest director in the company, as all the goods are shared equally, right?
  • You will know what stocks to invest in as your company is big in Wall Street
  • You can get anyone a job in your company, even if they haven’t the faintest clue what they really want to do or what they can bring to the table.

Each of these is no biggie and you can shrug them off, but it is amazing how many of these happen day in and day out.

So here is what I do and know about my company and its future:

  • I work as a web architect, giving advice on frontend web development matters to the people who build the internal tools that we build our web sites with.
  • I am part of a team whose job it is to define the standards frontend web matters are delivered to.
  • I am working on internal tools to make it easier to re-use code and components across different products.
  • I propose people to hire and interview others for positions in web development
  • I am an external European arm of our development library and can offer information and talks about that
  • I am a speaker that can talk about all the public facing APIs, libraries and components we offer for outside developers
  • I am an internal trainer on all matters web development and human interaction (accessibility, writing for the web…)
  • I am reviewing internal code and products of Europe, Asia and sometimes the US
  • I talk a lot to teams in the US to make sure our standards tie in with their ideas and will become global standards
  • I talk to universities about hack days, challenges and other academic happenings.
  • I keep an eye on the team in Europe and around the globe to make sure that developers are happy and can do a good job – removing obstacles for them and talking people out of ideas that would mean a lot of work for the web developers without much gain.
  • I liaise with other people in the same positions and HR and PR to make sure we have some processes in place that will ensure that we can hire good people in the future and give potential new developers an insight into what it means to be a developer for a large site like ours.
  • I speak to the backend teams to ensure we work together smoothly and have methodologies that work hand-in-hand.

This is a lot, and it keeps me busy with the things I care about the most – cool technology that benefits web surfers and empowering people who want to build this technology.

In short, I talk a lot to developers, their managers and outside people about our technologies to make sure that we can deliver good products and have fun experimenting with new ideas.

And that is all that I know about in my company. Anything else, I’d venture to guess that you know more than I do!

It is official, I am an ELF

Thursday, November 29th, 2007

No, I am not talking about last year’s elf yourself viral pest, but about being an Excellent Learning Facilitator or ELF. This is a training for trainers which turns a lot of your beliefs about teaching and training inside out and by doing so makes you a much better trainer. I normally don’t talk about personal stuff here, so sorry if you expected another JS posts, but I really wanted to talk about this as I think a lot more people should go for it and I am proud to have pulled it off.

The ELF course is held by the UK company Matrix42 and has a lot of cool benefits:

The ELF courses are mapped to the National Occupational Standards for Learning and Development
The Bronze assessment is accepted as evidence of competence for professional membership of the Institute of IT training, as recognised by OCR at Level 3 equivalence on the National Qualifications framework
It is also one of a few qualifications to be endorsed by the British Computer Society (BSC) against their ACTT qualification which is a level 4 qualification on the National Qualifications framework

Beats me what a lot of that means but what I took away from the course is basically that it:

  • teaches you how to make learners find solutions themselves instead of listening to you (thus remembering a lot more)
  • makes you aware of the different kind of learners and how information should be conveyed to them to be easy to take in and to stick
  • teaches you to plan a full learning event and sessions in those to be as useful as possible for the participants
  • makes you aware that you can teach really complex technical courses without computers or monkeying about in front of a powerpoint.

My personal win was to get away from the speaker that I normally am and switch to trainer when I need to. Not everybody who gives public speeches and writes books is also a good trainer, actually it is quite a step from one to the other and you need to set a massive switch in your head.

In my case I messed up my first practical test exactly for that reason: I was more of a presenter than a trainer which made me rush participants. Silence is not a problem and if neither you nor participants in a training talk this does not mean nothing happens. In the heads of the participants there is a lot going on. I changed my pace and stance and voila, the second time I passed with flying colours.

Anyways, I am proud to be an ELF, and I will try my best to use this new approach and ideas as soon as I can bag another workshop or longer training session.