Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

As a first-time part-time software developer at a small consulting company, I'm struggling to organise time to further my own software development knowledge - whether that's reading a book, keeping up with the popular questions on StackOverflow, researching a technology we're using in-depth, or following the front page of Hacker News. I can see results borne from my self-allocated study time, but listing and demonstrating the skills and knowledge gained through Professional Development is difficult.

The company does not have any defined PD policy, and there's a lot of pressure to get something deliverable done now! when working for consultants. I've checked what my coworkers do, and they don't appear to allocate any time to self-improvement; they just work at the problems they're given, looking up specific MSDN references, code samples, and the like as they need them.

I realise that PD policy is going to vary across companies of different size and culture, and a company like my own is probably a bit of an edge case. I'd love to hear views and experiences from more seasoned developers; especially those who have to make the PD policy choices in their team or company.

I'd also like to learn about the more radical approaches to PD, even if they're completely out there; it's always interesting to see what other people are trying.

Not quite a summary, but what I'm trying to ask:

  • Is it common or recommended for companies to allocate PD time?
  • Whose responsibility is it to ensure a developer's knowledge and skills are up to date?
  • Should a part-time work schedule inspire a lower ratio of PD time : work?
  • How can a developer show non-developer coworkers that reading blogs and books is net productive?
  • Is reading blogs and books actually net productive? (references welcomed)
  • Is writing blogs effective as a way of PD? (a recent theme on Hacker News)

This is sort of a broad question because I don't know exactly which questions I need to ask here, so any thoughts on relevant issues I haven't addressed are very welcome.

share|improve this question
    
Please follow this proposal for that kind of question: Organization aspects –  bigown Dec 10 '10 at 19:22
8  
If you get paid for 20 hrs per week, but wish to spend 5 hrs per week on learning - good luck selling this idea to your employer. I have worked 30 hrs per week before and took a class on my own dime and time, even though I could have pulled off some sort of compensation (but it would have come out of my bonus). All I really wanted was an opportunity to work less then 40 hrs per week. It was a blessing! When people move around a lot and leave after 2 years, it does not make sense for an employer to pay for your education. It sucks that your old knowledge becomes useless but its not their prblm. –  Job Jan 9 '11 at 0:16
    
What i do is try to minimize my time at work (try to get it 40hours a week rather then 50+), read books and then charge companies more (contracts when i did them and i applied to other companies asking for more when i wasnt doing contracts) –  acidzombie24 Jan 9 '11 at 3:57

8 Answers 8

Company-backed PD time can encourage an atmosphere of learning and sharing. I don't really like the style where companies schedule PD time for you (like one Friday afternoon a month), but I do like a company that makes allowances for it. I worked at a company where we actually set PD goals, and there was a heavy emphasis on sharing what you learned. Some people did presentations, but I personally like learning about new ideas and then implementing them. Sometimes this is through projects in different languages, sometimes they are still related to the current project (and may even be incorporated later). I believe it does pay off because it can lead to more skilled developers. I think companies may see more benefit from PD when developers share their knowledge, even if most of it is individual. At the very least, discussing what you have been working on is good.

For example, I wrote a mock testing framework to see how it was done, and I also embedded an IronRuby shell that interacted with our C# application. The mock framework helped me learn a lot more about reflection, expression trees, and testable code practices in general, and the IronRuby shell helped me learn about the DLR and brush up on my Ruby. Experimentation is healthy here.

However, it is very hard when the client is breathing down your neck, and I will admit that my previous company really slipped on PD towards the end because the project was so demanding. Unfortunately, I find that companies that do not foster this kind of environment often attract a lot of people who aren't passionate about what they do, and they tend not to improve their skills over time. That's a generalization, but it's my current experience.

share|improve this answer
    
Can you be more specific on what the PD goals were? (hours/week? presentation/month?) Or was it a little less structured than that? –  jshu Oct 10 '10 at 9:12
9  
+1: "...companies that do not foster this kind of environment often attract a lot of people who aren't passionate about what they do..." - and will have higher turnover of talent as passionate people will not be content to stagnate in their work. –  Steve Evers Oct 10 '10 at 9:17
    
@jshu: They varied. It wasn't really a "X hours PD time" type of goal. Some examples might be: prepare a presentation on X technology/concept, earn X certification, learn X programming language. We usually picked 2-3 goals at a time. We usually chose them at 6-month intervals, which is a long time (but not as long as you'd think). –  Matt H Oct 10 '10 at 9:21
    
Agreed with @SnOrfus: the reality is that if you specifically encourage professional development you'll attract -- and generally retain -- the best people. I'm a firm believer that it's my responsibility to always be preparing my employees for bigger and better things. Hopefully those things will be in my company, but if they go somewhere else they'll still refer employees and speak positively about us in general, sometimes even refer business to us when appropriate. It's a win-win. Very few will just take advantage of us and bail, and we're better off without them anyway. –  Matthew Frederick Jan 9 '11 at 3:40
    
Yow Friday afteroon! I'd rather be drinking / skiing / travelling / whatever. Now Tuesday morning 9am-Noon, now _that_would make a statement. –  Michael Durrant Apr 19 '12 at 1:57

Is it common or recommended for companies to allocate PD time?

Recommended yes, common no.

Whose responsibility is it to ensure a developer's knowledge and skills are up to date?

It's the developer's own responsibility.

I think you just have to take the time. Use your own judgement and spend 10 % or so of your company time to study secretly. It's easier to ask forgiveness than it is to get permission.

share|improve this answer
2  
+1 it is also recommended to ask your boss for trainings. He is not going to think about that himself –  user2567 Oct 10 '10 at 8:35
1  
Yep, asking doesn't hurt. But even if your boss doesn't get it, it's still your responsibility to keep your skills up to date. –  Joonas Pulakka Oct 10 '10 at 8:53
1  
Great quote, great point. I suppose if a developer's work improves and nobody notices the 10% time used, there's no issue to be raised. Any references on the recommendation for companies to allocate PD time? –  jshu Oct 10 '10 at 9:20
1  
Absolutely. And those guys looking things up on MSDN? They are doing what is called on-the-job-learning. There's nothing wrong with that - in fact it can be far more productive and useful than reading a few books or browsing web sites. Rule of thumb: you remember about 10% of what you read. You remember about 70% of what you DO. Professional development varies hugely depending on the domain. Not a lot is really learned in courses... a great deal is learned by doing. –  quickly_now Jan 9 '11 at 2:40
    
@Joonas +1 again, great quote, but then isn't that the reason why it actually might hurt to ask? –  mathStudent Jul 21 '11 at 18:41

Is it common or recommended for companies to allocate PD time?

Like someone else said, it's recommended but I've never seen it.

Whose responsibility is it to ensure a developer's knowledge and skills are up to date?

Ultimately, it's the developer's. Part of that responsibility is also finding an environment that allows you and/or encourages you to do so.

Should a part-time work schedule inspire a lower ratio of PD time : work?

Part-time: Yes. All part-time work I've ever seen is paid by the hour, for a specific purpose. Part-time work, for a job like software development, already signifies (to me anyway) that the company has no interest in keeping developers for the long term, let alone cultivating a strong team.

How can a developer show non-developer coworkers that reading blogs and books is net productive?

I've never heard of a respected developer that wasn't expected to know about bleeding edge technologies and techniques at the drop of a hat. Part of a good developer's value is being aware of those technologies and techniques that can provide value to a company/team and then sharing them when appropriate.

The employers that are users (not end-users, but the hot girl that wants to you to do her homework) will expect that you do that on your own time. Others will not.

Is reading blogs and books actually net productive? (references welcomed)

Depends on the blog. Will Eric Lippert's blog generally make you a better C# developer? Likely. TheDailyWTF? As entertaining as it is... maybe not so much.

share|improve this answer
1  
You know, I actually think there is educational value in thedailywtf. Not for me, but I have worked with people who would get educated by reading it (unfortunately). –  Jason Baker Jan 8 '11 at 21:31

If the company has a mature development team then there may be time allocated to professional development as part of the overall process. On the flip side, I've seen in start-ups where you don't have professional development done on the company dime as the company is struggling to survive in some ways so there are bigger fish to fry in a sense.

The developer has most of the responsibility for keeping their knowledge and skills up to date though I would note that often a developer will have to refine skills as needed. For example, of the hundreds of applications my company uses which ones do I really need to know in-depth versus just having a passing knowledge of the API I'd connect for my part of the system I'm building. There is also something to be said for date here having a couple of connotations. While there is one that is knowing the latest and greatest, the other side is that what the company uses may differ and that is the version to know really well.

A part-time work schedule shouldn't be a factor in deciding how much time to spend on professional development versus work to my mind. The question is how well would your boss handle this.

Depending on which non-developer co-workers, this could be useful or useless. If we are talking about people that you rarely communicate on a regular basis, then this may not be a good idea. On the flip side, your manager and those who work on projects with you may ber another story though in this case the key is to use what knowledge you gain from blogs and books to some extent. To some extent, using Google Fu to find how to do something is up this alley to my mind and would be a starting point if you want to get some things unblocked by things like Websense.

Reading blogs and books is productive if you are getting something out of it. For example, if you are a web developer that usually works on database-driven websites where there aren't any advanced Mathematics needed, then reading about numerical analysis and symbolic computation may not be that useful. On the flip side, reading Refactoring may be useful if you want to know more about the subject and weren't taught a lot about it.

Writing blogs would fall into that category of questionable professional development to my mind. If you are doing it with an eye towards getting feedback and developing your skill then I could see it working. On the other hand if you are doing it purely to stroke your own ego, then I'd question the effectiveness so it can go both ways.

share|improve this answer

I've left a few other comments against other answers, but I'll generalise a simple answer here:

Your professional development is your business.

Your employer (if switched on and not a nut-case) is interested in ultimately only 2 things:

  • getting the work done

  • avoiding excessive staff turnover due to the associated costs

So they issue they face is how to achieve that. Employers generally expect a level of competence, and a certain amount of output. YOU are responsible for both but the employer can also help you to do this, for, by example

  • sensible work hours

  • a sensible working environment

  • sensible pay (to avoid paying peanuts / getting monkeys)

  • encouraging communication and cooperation amongst the employees (up to a point, a day a week of lovely communication about what you did on the weekend is not really acceptable)

  • and a certain amount of encouragement for investigation, improvement and keeping up to date.

Note on this last that its a certain amount (how much?) and its encouragement.

Your employer may choose books but will struggle to force you to read them. Your employer may send you on courses but struggle to get you to stay awake or pay attention.

In the end it comes down to you figuring what you need and seeking some support - for example attending a conference or course, or buying a book that will help you DO YOUR WORK BETTER. You need to make a case and ask for management support and money. Sometimes you will get it, sometimes you won't. Some managers have a culture and an expectation that their people need training / education, some don't. Some expect it but want the people to find it for themselves (thats all about not spoon feeding people who are supposed to be adults).

When it comes to reading blogs, magazines, etc - there is a REALLY FINE LINE between educating yourself and goofing off.

If you are reading windows material on MSDN, its probably job related. If you are reading Electronic Design magazine, it could be job related. If you are reading XKCD or the rantings of a former drug lord, then its not work related.

The difficulty you have here is perception: if it looks like you have a web browser open reading stuff that looks like a blog, the only person who knows if its work-related or not is you. If you are caught doing what looks like goofing off, YOU have the problem because you created the perception.

In the end, things that look like formal education or are clearly work related (reading manual pages, etc): work time.

Courses, etc, if you can justify them: work time. (But more below).

Reading blogs and things that you are curious about but not directly related to work: YOUR OWN TIME.


Just a note about courses and conferences: Some have an attitude that they work 8 hours a day and get paid for it, so a conference that runs 8 hours and has a dinner that evening... well thats extra time (to take off later to make it up). Similarly, if you have to travel in the evening or on a weekend... the company should make that up.

Well - just remember that you get something from this kind of education as well - so its pretty rich to expect the company to spring for the course, the travel, the accommodation, and then to give you time off to make up for an evening dinner (that they paid for); and similarly that they make up your travel time on a Sunday or one evening.

There's give and take... and its reasonable in these cases to just treat your time that you lost as tough luck... gone... because you get the benefits long after leaving that employer and going somewhere else.

share|improve this answer

In a lot of ways, I view this question as being along the lines of "Should my employer pay me a good salary?" or "Should my employer give me vacation time above what the law prescribes?". Of course, there are a lot of different points of view about what employers "should" do, but they're largely moot. The terms of your employment are an agreement between you and your employer. If you need to modify that agreement or your company isn't holding up their end of the bargain, your recourses are:

  1. Renegotiate that agreement.
  2. End the agreement (in other words, quit).

Unfortunately, it's usually easier to get a potential employer to agree to things than it is to get an existing one to agree to new terms.

Disclaimers:

  • I'm assuming the US, some of the legalities and assumptions might change if you're elsewhere.
  • I'm not necessarily saying any of the above is the way it should or shouldn't be. I'm just saying that's the way it is.
share|improve this answer
    
+1 for pointing out "How it is". Programmers do not have union and do not need one (if they are any good). –  Job Jan 9 '11 at 2:18

At my workplace we're responsible for keeping up to date ourselves, but if there's a class we want to take or a book we want to read we can ask the company to pay for it and (if a class) study on company time. I've also had a week's self-study time granted to start learning some Python (to be taken when there was little regular work for me to do). It has worked well for me so far, but it truly is a personal responsibility - if I hadn't requested the time to study no one would have pushed me to do it.

share|improve this answer
    
And this is how it should be. I've worked with people who expect their managers to arrange their career development. What rubbish. YOU are responsible for your own development. If you find a book or a course or something that will help you do your job better, get the details, MAKE A CASE in half a page (in writing) and take it to your manager for a chat. 7 times out of 10 you will get it approved. If its just bullshit or a whim, then forget it. Show how it makes you do your job better. –  quickly_now Jan 9 '11 at 2:44

I don't think I'd like my company to schedule this kind of thing for me, I prefer to learn when I am "in the mood" so to speak:

  • clear mind
  • no stray thought (current project, something personal, etc..)

At the moment, I simply take advantage of compile-time / unittest-time to relax and browse SO / technical blogs / Google Talks / etc...

The short things I do at work in this "spare" time. The longer I prefer to do at home, calmly.

I imagine of course that not having children to care for help a lot regarding the personal time I can allocate for this.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.