Hopefully Im not rehashing a bunch of the information people have already tried to give you here, but I happen to be a self-educated programmer with zero college, now going on two years experience, and my third opportunity at promotion (read: third new job) in that timeframe(never been fired). This time, it's for a highly successful software engineering company, so I like to think I'm making the right choices.<p>Step one is getting grounded, for me, that was understanding the basics of web development, how web pages work, and how to get them onto the web. Full stack development even with static sites can be very valuable: know how to bootstrap a brand new project, add it to version control, set up a production stack(e.g. Apache/passenger), have a basic workflow set up for yourself, do diverse things and solve stupid problems you're having for yourself. Got freelance clients? Give an invoicing app or client portal a go, it won't hurt for people to see you fix problems and don't dally with newnew technologies for now.<p>Try to stand out, for me, a lot of developers I meet don't grok photoshop and basic UI/UX, so I made it a months long focus to be able to design static mocks and live sites from scratch, and trying to make them as elegant and experience friendly as possible. Knowing HTML and CSS extremely well also has helped, for every programmer I meet who is a DOM wizard with JS, they don't understand modern HTML standards or how to write elegant CSS. I also understand photoshop as well as most graduates from Ringling(I know, I'm marrying one) and took serious time to grow my tool set(like using bash and vim effectively). Make yourself stand out, grok shit engineers aren't interested in or don't have the desire to fully learn(JavaScript is a fair example) you'll be thankful for it come interview time.<p>Finally, be modest. Once you have a professional looking online presence, you've done all you really can to make a good first impression. The rest is all desire to make shit work, to do something you've never, ever done before. Don't act like you can be put in over your head, know that the nights and weekends for many young people in technology are when you catch up to senoir peers.<p>I tend to agree somewhat with the 'get Into the community' observations people have made, but am employer has never asked me 'which meetups do you enjoy?' or 'what kind of open source things have you contributed?' - they honestly largely do not care in my experience, it can help you get a strong recommendation from someone inside the company, but this is unusual so don't lean on it, look at it as a badge or ribbon to accent your developer coat.<p>Which leads me to my last point, my best opportunities so far have come from very strong software engineers who appreciate my attitude, attention, and willingness to ask
Smart questions while trying to explain what I do understand. They go to bat for me when they have an opening in the company, and that's huge for me. Something insane like 80% of professionals received a recommendation from family or a friend to land their position; in fact just a few weeks ago there was a forrst post from a UK kid who needed a rails job, he had a so-so online presence, but a bunch of people went to bat for him, saying that he showed real competience and that someone should really give him a chance; within the same day as the original post, he was employed( p.s. he had a compsci degree).<p>The market is starving for competent developers, I must get 5-10 hits every month from recruiters for all kinds of positions in San Fran and NY, so there's hundreds of people looking for new talent. Ask yourself why they haven't called you for an interview yet, and take example from the people you admire who are getting those calls.<p>Addendum: Just for the sake of clarity; these tips aren't necessarily the way to get into an entrepreneurial company, or one that's particularly very small. A lot of those opportunities, in my experience, come from open source visibility. Engine yard really nailed it here(<a href="http://www.engineyard.com/blog/2011/the-number-one-trait-of-a-great-developer/" rel="nofollow">http://www.engineyard.com/blog/2011/the-number-one-trait-of-...</a>) -- but some companies _want_ a Jack; decide which one fits you better, though, because it's difficult(impossible?) to be both.