Hacker News new | ask | show | jobs
by zaphar 4840 days ago
I've been where you are right now. Only I was married with 4 kids and one on the way. No job, No home, No degree, and what looked like No future.

I don't know what your exact circumstances are but here is how I went from there to working for Google.

1. I got exposure. I hung out online with open source developers and participated. I did stuff in perl and blogged about it.

2. I did whatever I needed to to survive and support my family while doing the above. For awhile I worked as temp manual labor for Labor Ready. It was first come first served but if you did a good job companies would request you and you would have a job any time you stepped in the door.

3. I eventually managed to get contract work and continued to hone my skills and ability as a coder.

4. Finally I got noticed and was recruited by a company in chicago that later got bought by Google. I survived the transition and have been working at Google ever since.

You're path might not be exactly the same as mine but there are two key parts of my experience that you can learn from. Fisrt OpenSource gives you Exposure and Skill building that you can leverage. Second that menial jobs are a sometimes a necessary stepping stone but that they can be temporary.

Good Luck and don't give up.

6 comments

Wow. I didn't know about the stuff before your numbered list (except that you had a family), but I remember finding your blog when you were at #1 and still doing Perl. I was motivated to get involved with FOSS because of it. Really inspiring. I don't know if I've ever said that to you but it's true.
THIS is what I want to read here. Thanks mate, and best to you and your family. OP: I wish you good luck. You will find your way.
That is an awesome story, good job Zaphar! You make it sound easy and it can be. Just keep taking the next step, keep learning, moving forward and getting feedback and almost anyone can take themselves somewhere.

What is you blog BTW? It's not listed on your profile or twitter.

I should say it was anything but easy. It took a lot of hard work and there was a lot of stress along the way.
Sorry, poor wording on my part. I wasn't trying to make your struggles look easy. I actually found it heart wrenching to read about them. And was trying to point out that change can be easy when done in small steps systematically. Although it almost never is ;)
I don't update it as much anymore but it's at http://jeremy.marzhillstudios.com/
I was also in your situation and my experience was just like zaphar. I was a high school dropout (I mostly completed 9th grade. But, not 10th.) in "no place" Florida. I wound up a sysadmin at MIT by:

1. Hanging out in tech channels on IRC

2. Teaching myself to program C with the GNU toolchain

3. Getting a 2nd job doing 1st level remote tech support (my first tech job) in addition to a full time job driving a forklift to save money for books/computer equipment while I lived with family/friends and slept on couches.

4. Joining open source programming projects and reading tons of other people's code.

5. Going to a programming job interview and beating all the other more experienced and formally educated candidates by walking into the interview with a working demo I wrote in the weeks before of what they wanted to hire a programmer to build running on my laptop.

6. Realizing a lot of programming was going to be outsourced and teaching myself sysadmin work so I could pivot.

7. Working as a sales engineer for an IBM BP to get corporate formal sysadmin "education" (certifications).

8. Applying for an MIT sysadmin job based on my IBM certifications. And, getting the job because I was better educated than the other applicants.

Obviously, a lot of that took years and there were other jobs (construction, concrete, moving furniture, factory work, etc) and stuff in between and countless set backs. That included tons of people that wouldn't even talk to me because I was a drop out. I did eventually get a GED and an AA degree from a community college (night school). But, the points listed really were the important events.

You need to treat your career like a start-up or any big goal. Decide what you want your life to be like and think of every possible way to get to that point. Then go. Be aggressive and relentless in getting there. There's going to be tons of failures and setbacks. Don't look at them as something that stops you or traps you. Look at them as pivots, as steps in the iteration that will get you where you want to be.

I wanted to be a part of MIT since I was a kid (because that's where the GNU software that gave me a chance came from). Here I am. There are plenty of people here that followed an ideal path to get to their current place in life (best wealthy families, best private schools, scholarships, mentoring programs, best research groups, etc). But, there are also plenty of people like me that can look back on the same kind of crazy path of "anything and everything necessary".

Like zaphar said, don't give up. Be dedicated, aggressive, and relentless in discovering the path to what you want to accomplish. That's the most important thing.

How does one find an (appropriate) open source project to contribute to, especially as a C#, Asp.Net or Java developer?
Your lack of ability to google or search on your own is a bit worrisome, but I spent a few minutes doing your work for you. =)

There 18k+ open source repos on github for c#: https://github.com/search?l=C%23&q=c&type=Repositori...

There are 44k+ open source repos on github for java: https://github.com/search?l=Java&q=c&type=Repositori...

I'm not even gonna bother for Asp.Net.

Now, for some real advice. 'Open Source' and microsoft don't exactly go together like peanut butter and jelly. Yes, there are some open source projects for the MS ecosystem but it's just not in the culture.

If you don't want to transfer your current skills to the Linux world, you should find a large, open source c# project and just run with it.

Good luck.

I think: By saying "appropriate" he wasn't really asking how to find open source projects in his language of choice, but how to know which ones will eventually get him noticed, or how to pick the open source project that seems to have meaning to other people, etc.

It appears that the op may have had a stroke of good luck by picking the perfect OS projects. It would be a bummer to extend yourself in an area that nobody cares about if the whole purpose were to get noticed.

If using Open Source as a self-promotion tool, it's important to choose wisely.

What's important is getting noticed by whoever you collaborate with. That helps you form a network. It doesn't have to be a high profile project it just has to help you form a network of friends who know you and can vouch for your work.
Yes! Exactly. Thank you for understanding what I meant.

I want to hear about the decision process behind how or why Zaphar chose the open source project he did, and how others here choose their open source projects?

Just a little advice, so that I too (and others reading), can (wisely) choose our first open source project to contribute to.

I just chose what I liked and had fun with. Hung out with people working on Blender. Hung out in the perl IRC channel on freenode. Hung out with a group doing an Open Source game called Planeshift which wasn't high profile in any way but it gave me experience. And put me in contact with people who had connections.
Hah I really like the IRC idea (especially since I don't know anyone like you do). Just joined the Ruby channel as a test at: http://irc.lc/freenode/ruby-lang
As an example of an excellent C# program that's pretty widely accepted in Linux/Gnome, why not take a look at Tomboy Notes? http://projects.gnome.org/tomboy/

There are lots of opportunities for addons/etc, and it's reasonably extensible. Could be a great first project.

Thank you.
Here are 97 popular (>200 stars) projects on GitHub in C#, sorted by popularity. Just switch language to see the same in Java. https://github.com/search?q=stars%3A%3E200&type=Reposito...
I was never really that into the Microsoft world but others have mentioned places to look for OpenSource projects for those platforms.

There is no reason you can't move platforms or languages though. If you know C# or Asp.Net you know enough to get started in ruby, python, perl, or any other language. You don't have to limit yourself in this industry.

That is true. Funny you mention Ruby as I have just completed Code School's Try Ruby course this weekend!

However, how could I make any particularly meaningful contribution in a language I am just learning? I feel that any issues or new features in an open source project probably require some fairly advanced knowledge, no?

A lot of my blogging at that time was about what I was learning. In fact those posts were the most instrumental in getting me the job in Chicago. My blog showed up for a lot of howto searches for perl. Which got me noticed by a company needing perl programmers.

Blog about what you are learning. Your contribution will be helping others learn from your experiences.

Thank you Zaphar! I have created my first post in dedication of your reply! (See the "P.S.")

http://paulsantana.wordpress.com/2013/03/30/the-effects-of-a...

Thank you. That is a really excellent idea.
You'd be surprised what you can tackle even when learning a new language. A lot of the bugs in an open source project aren't unfixed because they are tricky but because no has had time to work on them.

You're most valuable contribution will be time and willingness to tackle something.

Interesting. I would have figured easy bugs were squashed in seconds by expert developers. Shows how new I am to this eh? Thanks for all the advice.
You are my hero, Zaphar. Great job.