The Source for Java Technology Collaboration
User: Password:



Sonya Barry

Sonya Barry's Blog

How do I get started?

Posted by sonyabarry on September 22, 2008 at 05:48 PM | Comments (5)

One of the biggest issues I've had with java.net since the first day I started working here is that there is no clear path for new developers to take. What do you do if you're fresh out of school and suffering from the great catch-22, you have no experience but can't get find a way to get that experience? What if you just want to join a project and get that experience? How do you find a project that might want your help? Our Help Wanted page was supposed to address that, but in practice it doesn't. It advertises for extremely skilled people, and honestly, I'm pretty sure that anybody with the skill levels described there would be working on their own projects, not looking for a random place to pitch in.

I've been thinking on this one for a long time. We don't need a huge primer, I think programmers are by nature self-starters but even self-starters could use a map sometimes. To that end I created a new page that will live in our java-net community. It includes links to some of the learning trails provided by Sun on other sites and some guidance to look for a small but steadily busy project to join as an observer. I also included a table with the top 200 projects (as measured by mailing list, code commit, and issue tracker activity) from the last three months and suggested that new developers avoid those projects in the top 50 since they are really likely to get lost in the shuffle until they know what they are doing. Here's the page with the table of projects: https://java-net.dev.java.net/new_developer.html

What other advice would you give somebody who is just starting out on java.net?

Bookmark blog post: del.icio.us del.icio.us Digg Digg DZone DZone Furl Furl Reddit Reddit
Comments
Comments are listed in date ascending order (oldest first) | Post Comment

  • Excellent initiative.. I am always pushing the idea of open source projects are complimentary education resources.. and your compiled busy-table helps..

    what about: if the project owners could fulfill a survey (or even a simple form field in the project documentation) indicating what are the skills available for learning on their projects...

    then later we can have a kind of Quiz or fluxogram where the novices can seek their best learning track ...

    1. what you are looking for? ()J2SE ()J2EE ()J2ME ...
    2. what in J2SE you are looking.. ()Image ()I/O API ()Threads ..

    and so on...

    Posted by: felipegaucho on September 23, 2008 at 12:17 AM

  • Teling kids to join a project at random is the worst you can do. The projects' team leads will soon realise that those kids are poorly motivated as well as poorly skilled both in the business logic and technical side of the project and start refusing them and kicking them out if they do make it in.
    If you hire someone (either for an open source project or a paying job) you want the candidate to be at least well motivated, especially if you have to invest precious resources into handholding them for a period while they learn the ropes. If you also expect to have to teach them the rudiments of the technical skills needed that becomes even more vital.
    At the same time kids need to learn that almost any job advertisement (be it for a paying job or an open source project) will have inflated requirements. Not only is that a reaction to the general trend of people to inflate their own skills on their resumes (evening out the game) but it's also a natural tendency of hiring managers. Not only does it reflect the wish to get the best of the best for the company/project (I've not seen many companies that don't claim to hire only "from the top 10% of people, which would naturally lead to 90% unemployment) but also is a reflection of the tendency to inflate your own skills. People don't want to have employees much smarter or dumber than they are themselves, and think themselves smarter than they really are, which reflects in the people they claim to want.

    Posted by: jwenting on September 23, 2008 at 10:43 PM

  • Well, it depends. For instance, I'd like to see more people working on my projects. So far there have been volunteers, but they didn't last long, also because I wasn't able to support them properly. In all cases, they were focused on specific areas that, at the moment, weren't not primary for me and, in order to prevent the project from being stopped in vital areas, I hadn't enough time to coordinate them. For instance, I have a few volunteers that started some translation job, but the project structure is still too volatile, resource bundles are often moved around as code is refactored, and I haven't found so far a way to coordinate people. In a few words, I'm not prepared yet for this area of development.

    On the other hands, I could probably manage better some kind of "kids", that are just willing to learn something and would accept any assignment from me. Of course, it's dangerous to assign some jobs to kids; but others could be fine. For instance, if anybodly would like to focus on writing tests, I could give them some work to do. There are some parts of the application that have almost zero coverage and I'm not working on them - I could easily create a branch and have people make test there. If they prove unable to do that, I can just throw the branch in the basked.

    Posted by: fabriziogiudici on September 24, 2008 at 03:46 AM

  • ... baskeT, of course.

    Posted by: fabriziogiudici on September 24, 2008 at 04:10 AM

  • @jwenting - I disagree. First, I don't think I'm telling anybody to join a random project. If anything, offering up suggestions of slow but steady projects narrows the field, and just like anybody else they will look for things they are interested in, whether it's a subject that's a hobby or a specific subject to round out a skillset. Anything they aren't that interested in they will quickly drop out of sight anyway.

    Second, if they're joining as observers and filing bugs and patches before you wave your magic wand and make them a developer, they have to prove themselves first. There are plenty of extremely flaky people on java.net, I know. A large portion of them are not students. The bottom line is, just like anybody else they have to show the project owners that there is a real commitment there before they get any real power in the project or investment from the owners. I think Fabrizio has it right.

    @felipegoucho - interesting idea. We'll think about it.

    Posted by: sonyabarry on September 24, 2008 at 07:22 AM



Only logged in users may post comments. Login Here.


Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds