Hacker News new | ask | show | jobs
by tomx 5277 days ago
Sounds like creating a new filter based on open source participation levels and quality. Potentially this is a pitfall, you're excluding brilliant developers who push all their energies into their (non open-source) day job. Although perhaps this is the idea.

I wonder what percentage of say, Google engineers have public open source projects?

4 comments

Also excluded would be developers who push their non-work energies into improving themselves technically.

After a hard day of work coding, I'd much rather, for instance, spend the evening reading Russell and Norvig's AI book and working on the problems therein to learn in depth the things that were covered in an introductory fashion in the online Stanford AI class, than dabbling in some open source project (and the often associated social drama).

I've got a lot of books besides that one that need more attention.

You lost me. I'm not understanding how you think contributing to an open source project is not a way to improve yourself technically, but reading a book is. In my experience you learn far more doing the former than the latter.

And in any case the subject at hand is identifying good developers. They aren't paying you to read books, they want to know if you can produce software. If you want to show them that you can, then producing software is an awfully good way to do that.

"Improve yourself technically" was not good phrasing, as of course working on an open source project will likely improve you technically, at least if the project touches on some areas that you haven't completely mastered.

However, that is going to tend to teach you things that are narrowly focused on the needs of that project.

For example, there are several occasions in my career where it would have been very helpful to know more about statistics than I do. I have learned some by taking open source projects that needed to do the same kind of statistical test I needed and studying their code, and adapting it for my needs (unfortunately my needs were sufficiently different from those of the open source project that nothing worth contributing back came out of my adaptations). However, what I learned there was how to do certain specific things in certain specific situations. I did not learn the boundaries of when those specific techniques are appropriate, nor did I acquire an understanding of WHY we use those techniques.

It would be much more productive overall if I were to sit down with a good textbook on statistics and study it, cover to cover, as if I were back in school. That will overall improve me in this area far more than looking at open source projects (or closed source projects) that happen to do some statistical calculation.

I aspire to be more than a coder just coding up implementations of things where others have done the deep thought. I aspire to be like a Knuth or a Dan Bernstein, who can code well but who has a deep and broad understanding of the theory behind what he codes and why it is being coded that way.

Books can teach you things. Open source can teach you things. Often these are different things. Open source has its own problems. (Books have their own problems).

If you stick to people who do a lot with open source because open-source measurement is all you can do, you're going to miss out on people who have been studying certain deep, interesting things, because while open source is great for general-purpose computer programming practice, it can be a lousy place to play with advanced, in-depth computer science.

I think whether an open source project improves you, technically, depends on the scope of each project. For example, you could make 100 simple CRUD web applications in the same way, and not learn anything from it.

For the projects I tend to work on, reading 100s of pages of documentation is necessary. To create a good solution, I must understand the domain well. I spend many evenings reading books on kernel construction, networking, algorithms and so on. This is improving me technically. When I go into work, the knowledge then helps to make better software.

Isn't your point just agreement with mine? You're reading books (or wikipedia or whatever) as a necessary task in a focused effort to develop software. Clearly you didn't take me to mean that you should never read, right?

But the GP post seemed to be arguing the opposite: that focusing your effort and learning on a practical goal was not a way to "improve yourself technically". And that's the part that lost me.

I don't budget books. (Well, the actual budget has to do with available shelf space and how much of the floor my wife is willing to let me pile books on).

About ten years ago I read a bunch of books on MPEG2/4 and some other video-related stuff. I wasn't doing much in the field, it just seemed interesting. Eight years later it turned out that the project I was on needed this type of expertise, so I was able to contribute on stuff that people hadn't expected me to be able to. It was fun.

You can't easily foresee this kind of thing. I'll probably never need to know the details of how Vax/VMS did its free page management, but I might run into a related problem, so reading that OS book 25 years ago might pay off.

What I see from people who /just code/ is that their skills rot far faster than people who like to learn stuff. If all you do is code, after ten years you have another 100KSLOCs of Java or C++ or SCHLOPBOL under your belt . . . and who cares?

I like to learn stuff and hopefully get a chance to apply it. Otherwise I'm just a garage mechanic who fixes bicycles in my spare time.

Upload your solutions to your website or pop them on github.
I had the same reaction. They I tried to think of the best developers I know. Then I thought how many open-source work they've done, or had a git account, or had an "accurate", traceable profile on Stack Overflow.

I came up with ZERO.

As much as this service probably tries to harvest social media information about the developers a company might want to hire, most of my developer friends are VERY social media agnostic. They don't like it, won't use it, and most of the time, don't want people to know what they're working on in their spare time.

Still, it may exclude false positives. Which is half the battle.
Many very good engineers don't do open source. Not to mention that as an employer, ideally people you hire put close to 100% of their development time into things that benefit their primary employer. Hiring someone who is a hard core open source contributor could actually be a negative, because at best the day job will get 75% or so of his attention.

  >> Google engineers have public open source projects?
Probably much lower than for comparable skilled developers. I would expect that the push to show a productive 20% time project (in addition to your other work) would make it really difficult to do more projects on the side.
How is the push to show a productive 20% project at Google any different than the push at most companies to show a productive 100% work time. Most people working on open source projects are working full time and doing open source in their free time. People who are willing to do that, and who produce high quality open source code are definitely worth hiring, but it's difficult to do and isn't for everyone, so hiring only on the basis of open source contribution is a bad idea.
I don't work at Google, but I have heard that there is a lot of pressure to show some good results on your 20% project. It is pretty hard to do great things in a day a week, so there is a lot of pressure for this project to bleed out into evenings and weekends.

At the same time you are also expected to be doing great things on your 80% job, surrounded by brilliant people who are also doing great things.

I can't speak for Steve Yegge, but the energy that he put into blogging before going to Google seems to not be available now (unless he is getting internal pressure to blog less).