This site is a low down on what's going on in my life, what I'm working on, what I'm thinking about, and how I'm feeling about life in general.
Thursday, 27 March 2008 19:38
Today in work I spent some time with one of the guys from our office, a knowledge manager, who wants to upskill and become a developer.
We program our web based apps in ASP, but he has very little experience programming, really only a little html knowledge, but he is a very intelligent person. A few month ago he mentioned to me that he wanted to upskill, and wanted guidance on a learning path.
This is actually very difficult to guide on because if you want to start developing while learning, as he does, then you need elements from 4 key families:
The order I recommended he focus on these items was HTML, CSS, JavaScript, ASP. The reasoning being is that once you can design the end product, then you can start to substitute static elements for dynamic elements.
Today, he had a task he wanted to complete, add a "Rate this article" feature to an existing application, and wanted me to help him though it.
As I thought about how I was going to teach him how to program this feature, which combined all four programming areas, I came to the conclusion that for a first lesson, trying to teach syntax for four different languages was a pointless exercise for the time we had (about half a day), so I decided that I would focus on what I consider the hardest thing to master as a developer, non-linear thinking.
One of the comments I had during our lesson was that it was quite hard for him to wrap his head around developing in a non-linear fashion. Indeed, you call functions from separate documents, use sub routines, pull data from databases, it's a lot to think about.
As an asp developer, developing a standard asp data-driven solution, if I really think about it, there are probably no more that 10 / 15 different vbscript functions and objects or operators that are actually used. Consequentially vbscript becomes one of the simplest components of the education package, but if you cannot wrap your head around how you're going to achieve your programming objective, then the task becomes huge.
The way we approached the project was not on a computer, but in a meeting room, with a pen and paper. our approach was as follows:
For step three, we decided that the user would firstly see greyed out stars, would click the star rating they want to give the article (1-6) which highlights the rating with gold stars. Finally the user would click submit to save the rating, without reloading the page.
For step four we looked at what we'd just detailed in terms of user interaction, and I helped him detail how we would achieve each item.
Firstly, I drew the containers for each of the 6 stars, and then outlined the syntax that would create that:
<a href="javascript:void(0);" onClick="ratingFunction('1')">
<img src.......>
</a>
Then I explained the need for a javascript function to accept and set the rating, one to submit the form, and a variable to set to show that the rating had been set (Not essential but makes it easier to understand what is happening).
I implemented an AJAX call for him to send the rating to an asp page that inserted into the DB, and we created the table in sql.
From a programming perspective, we agreed that this was a fairly ambitious task for the timeframe, and whilst he picked up bits and pieces, the important thing is he started to learn how to think as a developer, and that sometimes, finding the correct syntax is a lot easier if you clearly understand what you are trying to achieve.