One of the items people agreed on in the "How to Interview a Programmer" discussion, was the importance of developers actively reading books on programming and design -- beyond those merely covering syntax. So, we want to hire indviduals that take it upon themselves to continuously increase their knowledge in areas like design, patterns, and other best practices.

If continuous education is so important, should a manager set aside time for it, or is up to the developer to do this on his or her own time?

I personally feel that continuing education -- which I've done entirely on my own time -- has benefitted me enormously. Now I'm no Rickard Oberg or Josh Bloch, but I'm a heck of a lot better off than I would be had I just "showed up for work" each day. In fact, I'm so convinced of the efficacy of supplementing "hands on" work with study that if I were a manager I'd make all my developers devote an hour a day to some sort of approved reading/study. What do you think?

If the answer is no, what do you do if you hire into a situation where the developers aren't bothering to "grow" their expertise on their own time? My experience is that almost no developers bother to do this.

I would say in general developers should take the responsibility for their own continuing education.

But on the other hand, I believe it in the best interests of most employers to facilitate continuing education of their developers. Return on investment (ROI) for education expenses is hard to calculate, but I think employers in general will get a return from give developers some budget for books, and some budget and time for classes and training. Employers get good will, and hopefully better software, from their developers.

I doubt it is in the interests of most employers to set aside some paid developer time each week for sharpening the saw. Nevertheless, one company where I consulted had monthly brown bag lunch meetings, in which one developer presented on some topic. (In fact, in late 1995, I attended one of these brown bag lunches where the presentation was about a brand new programming language called Java.) This didn't take any time away from the developer's day, because they would probably have taken some time out to eat lunch anyway. It also helped foster a culture of continuing education among the developers.

> I would say in general developers should take the> responsibility for their own continuing education.

But suppose they don't. What do you say to the other part of the original question:

If the answer is no, what do you do if you hire into a situation where the developers aren't bothering to 'grow' their expertise on their own time? My experience is that almost no developers bother to do this.

We know this kinda thing is valuable, or so many people wouldn't have cited it as important as an interview question. For our next hires, we'll make sure they do this. What to do for the current bunch that isn't inclined to pursue this "off the clock"?

> > But on the other hand, I believe it in the best interests> of most employers to facilitate continuing education of> their developers. Return on investment (ROI) for education> expenses is hard to calculate, but I think employers in> general will get a return from give developers some budget> for books, and some budget and time for classes and> training. Employers get good will, and hopefully better> software, from their developers.> > I doubt it is in the interests of most employers to set> aside some paid developer time each week for sharpening> the saw. Nevertheless, one company where I consulted had> monthly brown bag lunch meetings, in which one developer> presented on some topic. (In fact, in late 1995, I> attended one of these brown bag lunches where the> presentation was about a brand new programming language> called Java.) This didn't take any time away from the> developer's day, because they would probably have taken> some time out to eat lunch anyway. It also helped foster a> culture of continuing education among the developers.

> > I would say in general developers should take the> > responsibility for their own continuing education.> > But suppose they don't. What do you say to the other part> of the original question:> > If the answer is no, what do you do if you hire into a> situation where the developers aren't bothering to 'grow'> their expertise on their own time? My experience is that> almost no developers bother to do this.> > We know this kinda thing is valuable, or so many people> wouldn't have cited it as important as an interview> question. For our next hires, we'll make sure they do> this. What to do for the current bunch that isn't inclined> to pursue this "off the clock"?> Hmm... I don't really know. I suppose it depends greatly on the environment and people. But I imagine that if I suggested a monthly brown bag lunch meeting at most places I've worked, the other developers would be receptive. At the very least, the person responsible for giving the presentation each month (a different person each month) would have to do a bit of research (continue his or her education) to prepare the presentation. The others would be continuing their education at least during the monthly brown bag lunch.

But I think getting a brown bag lunch kind of thing going might also help foster a bit of a culture of saw sharpening that you say is lacking, such that more developers would take up the activity on their own. It is hard to change an entire entrenched culture, but you can at least try and nudge it a bit.

Anyone have any other ideas besides my obvious favorite: the brown bag lunch? (Makes me hungry for knowledge just thinking about it.)

Well, I never had a problem using my own time to study and to experiment new tecnologies. However, lately I?ve been feeling that I should be able spend my free time seeking other interests. As far as I know we only have one life, and it should be rich and full of experiences. I love software development, but I also want to learn other things, to draw for example. All my employers benefited from my study, I spend my money on books and my time to read them. I?m not saying that they should my books or pay for expensive treinaments, but at least they could offer some hours for week. We all deserve to be avaliable for our loved ones. If we are happy, we will show up for work in better condition to face challenges.

I have a few points (and opinions!) to note from my own experience (as a programmer and occasional project lead):

The first company I worked for required that every employee have a certain percentage of their time devoted to self-study training (usually 1-2 hours per week) if project pressures were minimal (they estimated well, so crunch time was rare). Every manager was to have budget enough to send an employee to 1 to 1.5 weeks of training per year. No manager that I knew of ever had their training budget denied or axed. Training on demand was always OK but usually charged to the customer (we were consultants for the most part).

Brown-bag lunches and internal training seminars were frequent, requests for books were only denied if you over-did it, and employees were asked to monitor and report on their training status and skills. On thing we had was a periodical, book, and software library so everyone could stay in touch with technology and our customer's business fields. All periodicals were routed to interested individuals and everybody generally had one or two in their inbox at all times. Many people at this company spent time reading during off-work hours to go above & beyond, and it showed.

This company was not large (80-120 during the time I was there) but was composed mostly of high-performing and technically sound developers, designers, and analysts. It was one of the best places I've worked at, and the above is one of the major reasons.

Later jobs I've had were tighter on their budgets, so training was more difficult to get, motivation/morale was lower, and the employees tended to be less skilled or more specialized and unable to adapt to new technologies quickly. It was more difficult to get new technologies to be approved for use, and open-source/free software often came in (sometimes under the radar) because the "approved" tools and technologies didn't meet the programming needs and/or training in the "approved" stuff was non-existent. Or the other scenario is consultants are hired because the employees don't know the technology. Vicious circle, stuff, here.

To summarize good programmers will be supported by training time and budget (classes, periodicals, books, etc) and will generally be more motivated and skilled in doing what they are asked to do. Alterniatively, you can have good programmers without the above support who go the extra mile to read/experiment on their own time, attend extra seminars/brown-bags, and keep up-to-date on many technologies, not just those related to their specific job function. I did this when not supported, only because of my experience from the first job and the realization that I needed new skills to get out of my current job! Great programmers only happen genetically or when both supported and motivated to go the extra mile, and for an extended period of time.

If all a manager can do is provide some books and a few routed periodicals, encourage self-study, and organize monthly brown-bags (maybe even providing sandwiches!), that manager will have better programmers than the manager who does not provide those items.

The bottom line is that a manager needs to make a conscious decision to cultivate their programmers and grow them into something better, or those programmers will generally stagnate, leave, or turn bitter/sour and cause harm to projects and morale.

Appreciation/depreciation of programmer talent should be an easy equation for a manager, but the unfortunate fact is many don't recognize this, and realize it too late to save projects or even companies. The same goes for a programmer - one day it may be too late to save a job or a career.

Continuing education, whether it be for a developer or an auto mechanic or whoever, is in the best interest of both the developer and the employer. But, because employers know they can always find some kid with a still warm diploma in hand to work for less money, but with the latest education, they are unwilling to "pony up the dough" for further education. This forces the developer to pay for their own education and makes for one less expense for management.

Hi there, I am working on a project to come up with a system to automate the scheduling of the time table. This will involve:Allocating lecturers to a particular lecture room, The time when the lecture is to take place,To Centralise the details of lecturers, subjects, venues(lecture rooms).

The system will be able to tell the required information for eample, if the subject is a practicle one, it (the system) should be able to book the labs and allocate the needed resources for example Projectors.

The system should send a text message to the lecturer's phone number to inform(remind) them on the time, venue, and subject he/she is to teach.

I am going to use PHP and MySQL to comoe up with a database to hold the details.

Anyone out there who can help or has ever done a related project, should kindly help me out.