Ask HN: Graduated at a poor time,suck at interviews but want to be a programmer
I ended up going into systems administration (linux) because that's something I could do well and do enjoy. I genuinely like my job and think I am pretty good at it. The only issue is it leaves a lot to be desired in the technical sense. I feel underutilized and can do most of my job on autopilot.
I've done a few programming interviews but they always tend to be so technical and into CS fundamentals that I used to know at one time. They are always filled with esoteric questions that I am sure people in the specific domain know but I don't because I can only do so much on my own. There's always logic puzzles which I suck at. I am not a bad programmer. I have a github with a few nice projects I have created. I have asked peers in the python community to rate my code and programs and they always say it's pretty good. I really enjoy CS and programming but I can't really seem to find a way in. In school one of my favorite topics was functional programming and I still play with ML, CL and scheme at times. Everybody just seems to see operations on my resume and well I must be a idiot so that's that. I can't leave 4 years blank on my resume either. Does anybody have any advice?
7 comments
[ 4.1 ms ] story [ 32.6 ms ] threadI can tell you what the bias might be - people with other backgrounds might treat software engineering and programming as equals, and thus have very vague idea of things like system reliability, scalability, failover tactics, deployments, etc., jumping at the quickest dirtiest obvious solution. Steer the conversation in a way where people become cognizant of your knowledge of application architecture and system-level design.
Is that really true? If anything in my experience it's most programmers who look at jumping at the quickest dirtiest obvious solution. We have to fight as sysadmins to get them to do things right. But that's just my experience where I work. Things could certainly be very different at a tech company or something.
Most importantly, there are ALWAYS jobs out there. So get out there and make it happen. Go to Meetup groups, network, and be as intelligent about your job hunt as you will be on the job.
Basically, there is no excuse for your lack of success in getting the job you want. If you need more technical chops, figure out what you need to know and learn it. Make some projects on your own time, build a Github repository. And eventually all these things will combine to get you the job you want. There's a ton of demand out there, you just have to find it.
* Take some time to learn how to interview. Learn the logic puzzles, how to chit chat about linked lists and binary trees. Learn how to white board, how to handle the 30ish standard programming questions in short time on a white board. Typically, if you're looking for a high-level language job (Ruby and Javascript in my experience), a lot of the time people will ask you to solve low level problems ignoring the abstractions such languages provide, so learn how to write C++ solutions in Python. Reading books like Cracking The Interview Code will get you most of the way through this, but I'd also advise to read up on internet fundamentals (http, etc.)
* Apply to a bunch of places. Embrace being repeatedly told that you don't seem good enough for the people you want to associate with, for a variety of unfair seeming reasons. Look forward to the day when that feeling is transformed to a dull sense of belonging based on your economic utility.
* Put yourself into experiences that come closer to typical software work experience. Work with other people, work under a time pressure, work to meet existing customer needs, work for payment. You could try hackathons, freelance work, contributing to open source, working with other people on their projects.
* Meet more developers. Ask for their opinions on how to best develop themselves, inside scoop on jobs available, etc.
* If possible, broaden your search beyond a single city. I'm assuming you're in SF. SF may have a lot of software jobs, but it has a lot of developers too, and the fact that they have to pay people a large enough salary to offset the costs of living there make it a bit more competitive than somewhere without absurdly high costs of living.
Since most contracts are 3-6 month gigs, these companies need to hire someone fast and get a butt in the seat and start building what they need. It's also a sort of trial on both of your parts. You want to see if you like working there and the stuff they have you doing, and the company will see if what you're doing is good and you interact with the project managers well and hit their deadlines.
I've had 3 month contracts go on for years, others you might want to just get out as soon as the projects done - which I've also had. Either way, you get some really valuable time in doing what you want - which is to program. It also gives you some decent references you can use to leverage to get a full-time gig somewhere. The weight of a good recommendation can never be underestimated.
Also, the only way to get better at interviewing is to keep interviewing. If you have a recruiter, always ask them what to expect. Do I need to dust off my edition of "Pro Javascript Design Patterns" or can I go in cold knowing that the questions will be limited to tools and experience? Is the company looking for a hardcore MVC Spring guy, or do they just need someone who knows Struts? Just knowing what to expect in the interview is half the battle.