top | item 3198628

Best approach for self-taught developer looking for job?

112 points| stc | 14 years ago | reply

I have a degree in social sciences and after several years of unfullfilling employment at various jobs I started learning some programming and found I really enjoyed it. I taught myself some basic python and django and have been getting some freelance work to pay the bills however I would much rather get a full time programmer job. I have been applying but have not been having any success. I have a github account and developed a site however I do not seem to be gaining any traction. What technologies/skillset should I focus on to get an entry level job? What is the best way to demonstrate proficiency in a technology? Any help would be much appreciated.

59 comments

order
[+] grayrest|14 years ago|reply
Pulled up your github account. Aside from you accidentally adding your home directory, you're making good progress. If you're looking to get a job quickly, I'd encourage you to focus on one area and I think your shortest path is the front end technologies. Pretty much every firm I know of in NYC is hiring front end developers and the main limitation is finding people who actually know javascript.

If you know (not just read, know):

http://bonsaiden.github.com/JavaScript-Garden/

http://eloquentjavascript.net/

And you can demonstrate it by sticking something on github (fix a ticket on stylus/express/some other node.js project, write a jquery plugin, help out with the django admin) then go to some meetups in SF and talk to people who say "we're hiring frontend developers" which is pretty much everybody. Being able to design entire applications isn't generally required since what people are usually looking for is someone they can say "go make this new dialog" and you go do it using their established design patterns. It is crucially important, however, that you can demonstrate knowledge since I have yet to meet a developer who doesn't "know" javascript.

If you do this and want to work in NYC, shoot me an email. I'll at least give you feedback and probably give you a referral for contract to hire. Nobody cares about your education/work background as long as you can get the job done.

This assumes, of course, that you actually like front end development since quite a few people don't.

[+] stc|14 years ago|reply
Thanks for the insight, you really hit upon several things I have been thinking about, namely my shortest path which I also think is javascript/frontend. Been looking into javascript alot more and am developing some couchapps as they let me use javascript/html/css. I am also building some bookmarklets for which I need to use plain javascript as opposed to jquery. I am also interested in mapping/gis so have been putting effort in learning that. Do you think that can be useful or should I focus on javascript right now?
[+] areyouhuman11|14 years ago|reply
I'd be interested in shooting you an email (similar situation).
[+] AlexMcP|14 years ago|reply
I was in the same boat. I graduated from a liberal arts college with a degree that no one has ever asked about. After lots of non-profit work after school I was tasked with 'updating the website' one day. Cut to 3 years and $100+ in library fines later and I've been the lead developer on Fortune 50 websites and now work for for a 'rent a Rails shop' company. Here's the advice:

Learn how to interview well. Knowing what github is, having actually launched a site, and wrangling some freelance work together puts you ahead of 90% of the people I worked with at my Big Co. job, you just need to be able to prove it and convince people of it. The competition for most positions consists of bored CS grads from Java schools who never learned how to use version control and for whom programming is just a job. You have passion it appears, and that can't be overrated.

I was willing to be aggressive with my first interview, noting that I would be able to accept a lower-than-market rate if they would do a salary review shortly after I started. Not everyone is in the position to do so, but I took a 'whatever it takes' attitude to get started, with the confidence in myself that once people saw how effective I could be, things would get better. Programming is as close to a meritocratic profession as exists, so get in a position to prove yourself.

[+] stc|14 years ago|reply
Thanks for the reply, always nice to hear about liberal arts majors that have walked the road ahead of me. I think I need to improve on the confidence as I feel less sure of myself now than I did six months ago, something of a more you learn less you know scenario. I do have a ton of confidence in my abilities to get a job done however so maybe I should tap that part of my psyche during interviews.
[+] andrew_k|14 years ago|reply
Assuming that this project on GitHub is yours https://github.com/cirsteve/courseslate and you show it to potential employers, I would recommend you to learn pip/virtualenv, read about django best practices, (http://lincolnloop.com/django-best-practices/) Also I would recommend to cleanup your repository from files that are not completely necessary (varios .tar.gz files, .ssh folder, .bash_history, etc.) Those things give you away as a beginner.
[+] stc|14 years ago|reply
Thanks Andrew, virtualenv is next on my list as my system is starting to get mucked up with different packages and you are absolutely right that I need to clean everything up. Thanks for the input.
[+] llimllib|14 years ago|reply
Go to conferences and meet people! Make a network in your city/closest metro area and use it.

Having a github is a great start, that's one thing I want to see before I bring you in for an interview. andrew_k has good advice as well.

[+] devs1010|14 years ago|reply
You'll probably need to start with a small company, bigger companies usually aren't willing to give someone their first "big break". I started out just doing my own projects and then did some work for relatives, etc, then, finally I was able to find someone who was willing to hire me a few hours a week to do remote development. From there I just kept incrementally jumping to the next better opportunity I could find. Its not necessarily the smoothest path but you can progress quickly if you keep pushing yourself. Basically, don't think of anything as being beneath you as long as its related to development, take the first job you can find with a company that will even give you half-time to where you can go into an office each day and work. A lot of companies are weary of letting people "short on years" work on development so its an uphill battle, but even working in a QA position could lead to a solid developer job as you usually can expose yourself to the application's code (some QA guys do and want to become developers, some don't). If you're a QA guy who reads code and finds bugs then... to the next job you apply to you can say you were a junior developer, and so on
[+] mark_story|14 years ago|reply
I come from a similar situation. I graduated with a degree in commercial art and illustration. After slinging coffee for a year, and trying to get freelance work started unsuccessfully, I threw in the towel.

I went into programming, as it was a good fit for me. Since I too had no formal experience, I got involved with open source as a way to gain experience and learn from people who were more experienced and knowledgable. Getting involved in open source, was probably the single best move for my career that I ever made. It opened opportunities I would have probably never had, allowed me to talk to really brilliant people, and gave me visible experience that has helped me land all of my employment. I highly recommend contributing to an open source project as a way to get experience and exposure.

[+] stc|14 years ago|reply
Thats a great idea. I am a big believer in/user of open source technologies and would love to contribute.
[+] thegorgon|14 years ago|reply
I'm a self taught developer as well.

I started with the front end because I had a decent design sense and attention to detail. If you can care about pixel perfection, I think it's a good route. JavaScript, HTML, and CSS aren't the most difficult technologies to start with, and you get a little more leeway to make mistakes or write sloppy code in the beginning, learning as you go.

It's a good time to be doing this. There is need for developers enough that if you can prove that you're smart, a mid-sized or smaller startup may take a risk with you.

Try putting up a personal website. Set up your own server if you can, write your own code, and get something up showing what you can do.

At this point, do whatever you can to show that you've taught yourself a decent amount. You want to prove that you can learn, not so much that you're already a pro.

[+] TheRevoltingX|14 years ago|reply
Well, I've been working as a full time dev for 3 years now and never went to college.

What I did was start low as a jr. system admin for linux systems. I'm not very social so I never made 'connections' so I hade to improve my skills. So from jr I went to sr, and within a couple of years got my first job as a jr. dev for a small company.

It's at these kinds of jobs that you will learn the essentials:

MVC Databases HTML/CSS/Javascript Message Queues

From here, it's up to you to keep improving your skills and building projects. Managers don't like github profiles, so I highly recommend you have your own app (not just a website.)

From there you can move on to things like: Mobile Apps Function Languages Socket Servers Low Latency Systems

Of course, always make sure you study and learn the basics. Such as basic sorting algorithms, working with bits/bytes, etc.

And so on.

[+] phektus|14 years ago|reply
Try http://www.djangogigs.com, I get contacted frequently through that site. Also you may want to post you resume online, like http://www.cvstash.com.

The best way to demonstrate your python and django expertise is to create a web app using that stack. Find some cheap hosting and you're set. Who knows, your app might even be a hit and you can skip the job seeking routine altogether.

[+] FuzzyDunlop|14 years ago|reply
Another self taught developer here who found work just after I started to take it really seriously and let my ambition take hold.

You say you have been getting freelance work. Put all that on your CV if you haven't already. And work on building a proper online portfolio using your current skillset. The benefits of doing this are thus:

1. Professionalism. You're a bona-fide freelancer ostensibly running a business under your own name. Taking advantage of this shows you mean business.

2. Publicity. Potential employers can find your website (after pimping it out everywhere and making it known wherever you can) and have all the information they need to consider you as a candidate right there. It also helps for contracts until you find full-time employment.

Speaking of your site/portfolio, it's dreadful. Setting a proper site up for yourself and identifying what makes a good portfolio would be a good thing to do.

Finally, and being totally honest, the last thing I would do when looking to hire a developer is trawl through a potential candidate's github account, finding out what sort of contributions were made to the JS flavours of the month. I'm not interested in seeing code samples right off the bat, I'm more interested in seeing how you sell yourself - how your website and portfolio and demonstrable skills* paint a picture of the sort of person you are - and how enthusiastic you are about getting a job.

I'm interested in you, the person, and the specifics of your work (eg. the code samples) and other contributions would come up later in interview.

I don't mean to be overly harsh but your online presence and how you present yourself/your work are, in my opinion, key to better finding the work you want.

*demonstrable skills not as in bug fixes on github but as in the work put into your website.

[+] stc|14 years ago|reply
Thanks for the feedback but perhaps you can give me more insight into what is dreadful about my site/portfolio. When you say site/portfolio, which are you referring to? Is it the design, usability you find dreadful or did it crash on you? Developing a web application requires many different skills and this is where I am trying to get some feedback on. I appreciate your feedback that it is dreadful but perhaps a bit more insight into what would make it less dreadful beyond improve it.
[+] jeromegn|14 years ago|reply
Don't focus on the end goal, focus on the journey. I'm a self-taught web developer (used to be a self-taught designer) and I learned my way through development by simply building stuff. I've had stable jobs for over 5 years now.

Once you've built some useful projects (I built Backbone Todos amongst other things), people are going to find you through them and contact you with opportunities all the time.

You've already started putting your work out there on Github, now you just need to market yourself a little better. a Github account isn't enough. Blog about your experience, build a Twitter following and other promotion techniques.

Maybe extract some smaller bits out of your bigger projects. Those are usually more useful and get more popular quickly. Abstract some of that application-specific code and release it. It's both an exercise in programming and marketing.

[+] SeoxyS|14 years ago|reply
Why don't you come interview, we're hiring smart motivated people in San Francisco. http://chartboost.com/jobs

As far as general advice, I'd say if your skills are not good enough to get you a full developer's job right now, try to get hired as an intern, or as a community manager or something that doesn't require coding, at a startup. Suck up the bitch work for a while, try to automate a lot of your work using scripts, learn as you go and make it clear your end goal is to move to development—if you're smart, you'll be promoted in no time. I have some friends who've come in knowing nothing about development, and been promoted to junior developer within 6 months.

[+] stc|14 years ago|reply
That is definitely the type of role and organization I would like to join. I am in NY right but will be back in the bay area soon and would be interested in an interview. I am certainly open to an internship, do you know if internship opportunities are paid?
[+] teamgrep|14 years ago|reply
Awesome! I think you're on the right track.

I'm a big believer in public portfolios. When I've been on the hiring side of things that's the first place I look. Now it's just a question of improving the both the quality and quantity of projects you're showing off.

How about getting a mentor to review your project(s)? You're not in an organization yet, but you can pretend you are--request a code review from a programmer you look up to.

Teaching others has helped me learn myself in the past. You didn't mention activity on stack overflow--answering questions there can improve your skills and visibility since SO is integrated with SO Careers as well.

Great luck to you!

[+] angelbob|14 years ago|reply
The github account is nice, but it requires effort to explore, and you're trying for an entry-level position. You may need a better presentation of your skills.

That probably means an online portfolio with tools, summaries and screenshots. It's not hard to put one together, but here's a really simple "step-by-step" one that you can push to Heroku within about 15 minutes: https://github.com/noahgibbs/bobfolio

ETA: My own portfolio is here, for comparison: http://angelbob.com/portfolio

[+] zeratul|14 years ago|reply
I was in similar situation. I've learned most things on the job but it's good to know some basics about hardware, operating systems, and the network.

You might work as a programmer and do only that but software development is much more than just programming. There are framework, libraries, and architectures. Not just fancy words but ways to do more in less time. And of course: testing, debugging, and rewriting. The last three make good programmer great.

I come for humanities and I can say that programming is not much different than writing a book: read a lot and write a lot ... I think Stephen King said that.

[+] cypherpunks01|14 years ago|reply
Help us build the Permabank project for #occupywallstreet! https://github.com/FLOSolutions/permabank

It's a Django gifting platform that will be pretty well-trafficked once we launch it in a couple weeks, that we hope to turn into a full-blown alternative economy platform one day soon. We could use dev help and have lots of people down here who could offer pointers for dev job opportunities to good coders. We're on irc.freenode.net #nycga-iwg. Best of luck!

[+] algorithms|14 years ago|reply
Same here. I'm really trying hard to get into freelancing but since I'm not really good in networking I haven't come around to get a decent project yet. My current plan is building a strong online portfolio, which is hard to do without find any gigs.

If anyone is looking for a jr. front-end Dev., Wordpress Dev. or beginning Rails Dev. drop me a line. I'd appreciate it :) Languages: JS, Python, Ruby, PHP

[+] nickpyett|14 years ago|reply
Learning front end languages is essential as an employer wants to know that you can get a site live when the hits the fan. If you can't slice up a PSD and build a basic site there MIGHT come a point when you're useless to them.

I'm self-taught and found learning HTML, CSS, JS and a bit of PHP and MySQL was more than enough to get a job in the UK.

Build some sites, get some experience.

[+] SeanNieuwoudt|14 years ago|reply
In a previous experience, I found that companies hired me without even glancing at my CV or portfolio after I started my development company.

There was some level of pre-created trust purely because I had a business operating in the field.

It's not hard to put a nice looking website together, choose a business name and start operating on the side.

It might make it easier for you too.

Goodluck!