Ask HN: what was your first programming gig, and how much did you actually know?
But as someone still in the education process, a lot of job postings I glance at and find myself caught in two minds. One half says 'They're looking for a lot of skills. You can't honestly say you're adept at the majority of those requirements. You need to put in a lot more hard work before they'll take you seriously.' But the other half says 'Hell, you don't know TechnologyX per se, but you could pick it up no problem. You've worked on harder problems than they're likely to throw at you. You'd be doing them a favour by applying.'
So I'm wondering what the professional developers here found in their first jobs. Were you under-qualified? Overqualified? Lucky to find one? Blagged the interview? Winged it? Needn't have worried? I'd like to hear the story.
55 comments
[ 4.3 ms ] story [ 105 ms ] threadThe regional VP at the company was kayaking buddies with the professor who was my advisor for my senior project. The VP asked the prof if he had any good graduating students for an entry level job, and I was recommended. From what I can tell, this is one of the better ways to get a job out of school.
My first assignment was helping a senior guy track down a bug in some multithreaded C communications code for handling ATM machines. Legacy stuff from the company that had been bought by a company that had been bought, etc., that no one completely understood any more. I had no idea what I was doing, at all, and it was a great situation to be in professionally.
Worked for that company for 5 years, then it got bought and I was laid off because I was still the newest member on the team. Very stable group, learned a huge amount from them.
I got lucky.
It's true companies often put a lot of requirements on the list but they are usually serious about few of them. I think what is important for a lot of them is if you can actually pick up things fast. If I were you I would choose something which excites you and try to get better at it every day. Use it to build something like a prototype or small project etc, and then look for companies with similar interest.
The smaller computer was called an "IMP". The main one was the Sigma 7 at UCLA, host #1 on the ARPAnet. Steve was Steve Crocker, and other folks on the project included Jon Postel, Vint Cerf, and Prof. Leonard Kleinrock.
Last year, I got to mention to Vint Cerf in person, that we had last worked together some 40 or so years ago.
So, to answer some of your questions, 1- definitely underqualified. I was 16. 2- Lucky? No kidding. Right place at the right time.
Or do you just put that down as 'experience of implementing robust, scalable, distributed computing solutions for both consumer and business clients in a challenging environment using diverse technologies, including SOAP and JSON' ;)
"Seventy percent of success in life is showing up." (attributed to Woody Allen)
Note: I am not a professional developer/programmer, although people pay me money to do software development
Nice site and portfolio, BTW
The thing to remember is that you're not going to be applying as a tech lead, you'll be applying as an entry level engineer. As an entry level engineer, you are not going to be expected to have a bunch of skills (in the X years of experience with J2EE sense). Companies know that it will take time for you to learn the skills you need. My last manager estimated this time period to be about 3 months for someone fresh out of college, which is why he hated getting summer interns.
What will be expected of you is to:
- Have a good GPA
- Be generally technically competent
- Be generally socially competent
- Be excited for work
- Want to work hard
I've recently moved on from my first post-college job, and my new job may expect me to do android and rails development, even though I've no experience with either. They knew this during my interview, but I was able to prove that I can and want to learn. That was enough for them to feel confident in me.
TL;DR: There are many jobs that don't expect you to know everything before hand, especially when you've just graduated.
I was 16 and was doing an actual summer job at the time (hard labour, 8-12 hours), so doing that was a good balancing thing. But the outcome wasn't very good, I had quite little concept of how to structure the program well. But I did finish it and the shop went into production.
I'm pretty sure, or at least sincerely hope they threw all of it away in the next iteration :)
Edit: I forgot about the underqualified part. Hoo boy. I've been working on Qt for 6 months now and I'm still digging deeper. The guys I'm working for are really, really skilled. Just watching them work reminds me how much more I have to learn...
After I got out, I found out through a friend that his mother-in-law's boss wanted to build a scheduling system specialized for TMJ doctors. I did a few hours of research on the Internet and put together a presentation proposing a PHP backend with AMFPHP connected to a Flash front-end. I didn't know how I was going to do it, but I knew that I could figure it out.
It probably took about twice as long to build as it should have (and knowing what I know now, the code was terrible and I would love to re-write it with Rails and SproutCore), but it worked and ended up costing the client a lot less than it would have cost him to have someone else build it (I only charged $30/hour).
That gig gave me the confidence to know that no matter how hard the problem is I can figure it out, and I was able to take on gigs that other people at my experience level would have balked at. I've been a professional programmer ever since, both as a freelancer and as a salaried employee.
Qualifications: Nietzsche, Wittgenstein, Hume, Sartre and others...
Honestly, they hired me as a technical writer and it turns out I write code, that writes code, that writes code, really well.
What the fuck I'm going to do for the rest of my career, I don't know.
Honestly, I don't really care given my meteoric rise from lowly philosopher to lisp-dev uber alles.
I have never actually applied for any job and began programming very simple video games for myself as a kid (about 12) instead of using flash cards etc because I thought it helped me remember things better.
When I was in college I played division I golf and was on a scholarship with school paid for and no real reason to leave
A guy who was a tour pro from the town I grew up in asked me to come look at the computers at a business he had bought. I went by mapped a few network drives explained file/printer sharing and on my way out made a passing comment about how they should check out a databasing system rather than just making copies (they were a copy company).
Next thing i know I was working 60 hours a week developing custom sharepoint systems for his customers on a contract basis. Eventually I dropped out of school "officially" started my first software related company and have never looked back.
As I said, I have never actually applied for a job, BUT it is VERY fair to say I was (and to some extent still am) very under-qualified for what i was doing, but I can think of no better learning experience than getting in over your head and knowing you have to meet a deadline.
I don't know that I will ever take a "real" job since I am constantly working on projects or creating my own companies, but at this point no matter what they are looking for I feel that i bring a great deal to the table and have an uncharacteristic ability to learn quickly.
Confidence is key in this field. I am more apt to hire someone with a good air about them then a guy who cant look you in the eyes but has a great resume.
Are you hiring programmers or used car salesmen? I simply don't buy that confidence is more key in programming than in other fields.
If someone has 5 years experience at Microsoft but does not believe in their work and/or are not confident in the product they put out but a guy fresh out of college has a great Github presence and a passion for programming I am certainly more apt to hire the latter.
However, for work on an in-house software team that same level of confidence can often lead to disasters as the borderline between confidence and plain pig headed arrogance is paper thin.
Now, here's the rub: they had five translators locked into generous long-term contracts and they only needed really one-fifth of a technical translator, plus some utility translation for ceremonies and the like. So I went mostly unused. After spending far too much time on the Internet (shades of things to come) and getting acclimated to working there, I started trying to make myself some more work.
Example: we had a website with brief bios of ~200 companies at the incubator. This was static HTML written in DreamWeaver, and got updated once every year in Japanese and English. This was an absolutely mammoth undertaking, primarily because the data was first compiled into a Word document, then translated, then laboriously massaged into HTML in DreamWeaver. I thought "Wait, this is just string processing... and I have gawk." I did not, in fact, actually have gawk, but my university terminal account was still open, so I wrote some scripts and shaved two man-months off the schedule. The bosses were happy.
Later, after getting a little more political capital, I started getting the R&D group I was attached to to use me for their grunt work R&D. For example, I made GUIs which called their command line tools for robot vision work, begged off implementing fast fourier transforms in C ("I'm a Java programmer! Egads!"), did some grid computing and spam filters, and the like. My work product was atrocious. Demos I pronounced "done" functioned maybe one time in three. We didn't use source control, which is probably for the best, because if we had someone might be able to still see the code I wrote. However, my bosses chalked all of it up to "Hey, we get the budget for a translator whether we want it or not, might as well get some work out of him."
There were two projects of note in those three years. One was a massive translation of CAD training software manuals for a company affiliated with the incubator. It was 3,000 Powerpoint slides. I got it done right before any further mention of torque would have caused my internal springs to snap. The guy who requested it made it clear that he owed me one. When my contract expired, I sent him an email saying that I wanted to stay in the area a while longer and wondered if he could perhaps ask around to see if anyone needed an engineer. He called up a large company in Nagoya and informed the division chief, who owed him a favor, that there was a bilingual American engineer the company should hire. So they shook on it, and that was that. (We later had a job interview -- with my patron in the room and doing most of the talking -- which was mostly a formality. The line which sticks with me is "Oh, you're white. Not that there is anything wrong with that." Nobody had thought to tell my new bosses my name prior to the interview -- it wasn't really relevant to the transaction.)
The other significant project is a long story. It starts with an email from a teacher in the prefecture asking "Is there a good way to make bingo cards?"
Actually... I think the way you finished with a cliffhanger (even though I already know the story) is what won me over. The perils of being a cliffhanger junkie I guess.
They knew I was under qualified from a java dev aspect, but was hired because of the dedication I showed from working throughout college. At the start I was definitely under qualified and I'd say truly knew nothing of how tech businesses run. However, with lot of dedication (and late nights) I learned a ton and quickly was tech lead of a major part of their business.
That was 5 years ago and have since left for more exciting opportunities. FWIW, Now I can't stand doing java dev, nor the people associated with it, but that experience opened up tons of doors and am grateful for the opportunity.
Because I was too young to know I was in way over my head, I was able to complete the task and do it well. Pretty proud of it, actually; 16 bit windows (3.1) and the code was rock solid. I figured out on screen graphing, good db design, reporting (I wrote all the reporting and printing libraries, incl basic graphs (pie, line and bar)) etc etc. Now-a-days that sort of thing's a lot easier, but back then there was very little. oh, and no internet either, just the local bookshop.
A few months before I finished year 12 I was having real trouble actually learning any more in the field of web development, because I had nothing to code. I walked into a web design place with a resume and some code samples of what i already did and they said they may have something for me to do, and a few days later i was given a job submitting links to websites to up the page rank of a site.
When I left school, I was asked if I wanted to say there full time and do some web development. I agreed.
That was about 4 years ago now. I'm 21, and I'm still in the same job. Id say i was quite under qualified for my current position, but I'm really glad I was given a chance.
Given it was a student position, the entry requirements weren't terribly strict (PHP, HTML, CSS, ideally some JS). I knew some PHP4 (enough to put up http://insanitymanga.net ), but only some OO, and definitely no PHP5 (this is all back in 2004).
I thought I blew the interview; I was nervous, and the lead dev spent a good five minutes in silence looking through the coding example I brought with me on my laptop, but I got through (with a couple of other students).
In any case, I'm not sure there's much to lose but your pride by going for a position you're underqualified for. If you think you can pick it up, then do some prep beforehand to at least get a basic handle on it, and see if they're willing to give you the time of day and have a chat.
While I enjoyed it, I never really thought of programming as a career until after I completed college when the web finally started getting fun (2004'ish).
In the fall of '04, having been fired from my job in computer sales (I was horrible), I went for any programming job I could find. I got in with a Voice over IP startup. I made so many mistakes, but learned from every single one of them.
Over lunch one day, one of the secretaries randomly told me how much $ she made, which was a few thousand more than me / year. Here I was, with a university degree, and she was still in school at a community college. While I knew I wasn't making much, that really showed how much this company was taking advantage of me. But I knew I was desperate when I came in, so I thanked them, and moved on.
Next up was an ad agency, then lead developer at another startup, and now currently working at as an engineer & developer evangelist. It's been a fun ride, and I owe it all to that first programming job.
now I work at a different company programming Flex RIA's and learning Clojure.
So when I started I didn't have experience or formal training but I was some kind of a computer geek BBS/FidoNet FTW! ;)
The company that eventually hired me gave me an asp book and a week's wages and asked me to build a sample app as a kind of extended "interview". I got the job. We wrote some great code back there.
Of course, knowing what I know now, the fact that I was using FORTRAN for data mining is rather embarrassing, but I was young and stupid, and my boss gave me a bunch of functions to help out, so that's what I did.