All the time. Negative thoughts are normal and increase as you learn more and can see where the flaws in your work are. The more you learn, the worse it gets, until at some point you'll be confident enough to look at your work and defend your choices (to you and to others).
This doesn't really have much to do with working alone, but it is harder to grow if you can't get feedback and aren't forced to explain your code to others.
If (like me) you are physically unable to get together with your peers IRL to discuss your work (for instance, because you're about 1000km away from the nearest person you can conceivable discuss things with), you should find other ways to do this. IRC is good, putting code up in github for feedback, blogging about it, these all help kickstart the next round of learning.
You may feel worse about your code once you get some external eyeballs on it, but it's likely you'll get positive feedback, which is always comforting.
There's no aboiding negative thoughts, it's a sign that you are striving to do better. Start worrying when you don't think you can do better.
Not at all, there are many different projects with varying levels of difficulty. Everything from documentation addins to web apps, build system fixes or runtime work. We don't care what your level in school is, we care that you're excited about contributing to open source and propose a project that you can do.
Google Summer of Code is a global program that offers student developers stipends to write code for various open source software projects. There's 175 participating organizations, one of which is Mono, which has been a part of it since the very first year. I know it's a fad to not RTFA, but really, it's not that complicated :)
The problem is that they do the exact same thing for people that they reach out to. Their recruiters go out to mailing lists and linkedin and harvest emails, then contact those people and offer them positions. If you say yes, they start you on the exact same anonymous interview process, the interviewers having no clue that you didn't apply yourself and treating you just like any other generic wannabe. That's why a lot of the best programmers won't take offers from Google, they know they're going to be treated like cattle throughout the whole process by people who have no clue who they are or what they've done and don't really care to know.
It's important to know that googlers are encouraged internally to do interviews (for extra cookie points? I don't know :P), they're assigned randomly to candidates for most of the process, so they're not a part of the whole process, just a piece of the machinery. No one oversees the interviews to make sure questions are not repeated and that there's a logical thread from one to the other (especially the onsite interviews), and you might not even be asked the questions that are actually relevant for the position they're considering you for, when you're in the latter stages of the process.
The stories I've heard from the hiring trenches are all pretty much the same. It's a great company, but their hiring processes are very weird.
They employ a lot of people that can write code on boards, and can certainly churn it out at high velocity. But when you start looking at the actual code... it's bad. When I first looked at the chrome code, the layer they dumped on top of webkit to make it out-of-process, the only thing I could think of was "this looks like something a kid fresh out of college would cobble up together". Same thing with most of their projects - lack of clear design, hacks, hard to maintain, lack of standards, no portability. The projects that get visibility end up getting better (more competent programmers assigned to them), the rest lingers in crappiness mode.
They're not all like that, obviously. They have very smart and very competent people there. But the general low quality of their code, the lack of polish in their products, it clearly shows the consequences of hiring people based on how fast they can dump code on a whiteboard.
Nod, I understand. At the risk of adding just a little more noise, a quick note: I initially ignored the comment, but then while reading other comments I started seeing the upvotes piling up, and frankly, it bothered me. I can't downvote, I can only comment, so that's what I did.
It's mind-boggling what some people consider worthy of an upvote around here... didn't read the article, guesses what it says, then pats self in the back for such a good job at commenting. Subsequent upvotes tell other people that this comment is somehow meaningful for the discussion. Cute!
Edit: and of course I'm downvoted. Thanks!
Edit2: I'm no longer downvoted. Even though this might be relevant to a discussion of the voting system, I don't want to intrude on the discussion of the article itself, so no need to vote anymore on this. Thanks for the upvotes, everyone. Nothing to see here, move along... :)
It's definitely something to do with the one of the points the article mentions: the fact that women don't even consider it as a career, unless someone introduces them to flying (relative, friend, whatever) at some point in life. It's an interesting thought, and I wonder how much of that also applies to women and technology, particularly CS and open source.
That's funny, I'm always trying to create a Google profile but I can't, because my main account is on appdomains and they don't do profiles for appdomains. Which means I can't check into places on latitude from my android, for instance. You'd think they'd be a bit more worried about the potential user base they're shutting out of their platform, rather than worrying about deleting private profiles. Oh well.