Best approach for self-taught developer looking for job?
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.
64 comments
[ 5.7 ms ] story [ 167 ms ] threadLearn 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.
But I agree with this thread -- keep pushing on JavaScript. CouchApps are a great way to learn front end while having the back end more or less taken care of for you, but most apps are gonna require an extra degree of freedom on the back end. You'll find that your JS skills travel well, especially now that node.js is viable.
If you haven't read this article yet, read it an grok it: http://javascript.crockford.com/remedial.html
If you know this stuff cold, then the only thing standing between you and a well paying developer gig is personal networking and a bigger open-source portfolio. Go to node.js and Couch meetups, they are vibrant welcoming communities that value beginning coders as much as veterans.
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.
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!
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.
I would recommend you either make a Bible app, or a Menstruation Calendar app. Those would both not require any server-side programming, and they are proven ways to make money.
I believe that anyone who works on an iPhone app in their spare time for a year, and who picks a known winner category (GPS tracking, bible app, free book downloader, offline city maps, etc.) can make a living.
Remember - most people who try at everything fail. Right now, the mobile market is red-hot, and it's a good way to make a living. It's got to be the easiest way to sell software and make money, with a much higher success rate than making a website or a Facebook app.
Moreover, you can command ridiculous rates as a contractor right now for iOS expertise - much better than for JavaScript programming on average.
This feeling — that releasing for the iPhone is a crapshoot and that anything I release would probably be crowded out by the absolute flood of junk in the App Store — is why I've never bothered with the iPhone, despite having done Cocoa development since the early days of OS X.
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
Make something good, keep learning. Then show you are doing both of these.
Hired.
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.
Now, the context in which you learn javascript and demonstrate it is up to you. If mapping/gis is your passion, then go with that. There are plenty of good mapping projects in the browser on github that could use help. If you would prefer a personal project you could, say, do some d3 visualizations using the geo facilities and have a great demo piece.
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!
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.
Feel free to send me a message with this info and I'm happy to give you feedback. Good luck to you!
The main problem I'm having is not even being able to land an interview. Where should I look for a dev job in Australia?
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.
You say you learned Python and Django and I think that's a great place to start. Add on to that with a solid font end knowledge and you're good to go until you get hired.
If you're in the Chicago area you should get in touch with me as I'm looking for help as we speak.
It's what I did and I never looked back.
Oh, and don't worry. If you go this route you will find a niche which will challenge you, stretch your skills, and so forth. I never knew when I started that I'd become the primary developer for an open source accounting package (LedgerSMB).
Happy hunting, and may fortune smile upon you!
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
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.
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.
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!