Ask HN: what was your first programming gig, and how much did you actually know?
35 comments
My first programming "real" job was at a technology incubator in Japan. I got hired on as a translator. At the time my Japanese skills were not exactly stunning, but technical translators do not exactly grow on trees in Gifu. (Try finding a bilingual Japanese/English CS major in Kansas. It is about that hard.)
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?"
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?"
For some reason this comment read like a longer more elaborate blog post with some pizzazz powder sprinkled all about it. Well done sir.
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.
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.
A few of us were sitting around in the Computer Club office, and Steve comes in and asks us if we want jobs for the summer. So Tony, Jim, and I ended up working that summer on a weird research experiment, hooking computers up together. Part of what I did was writing test programs to make sure the computer could talk to this smaller computer, that knew how to talk to others of its kind.
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.
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.
Now that can't be bad for the CV: 'Helped design the internet'
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' ;)
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' ;)
I got hired straight out of college by a company that made software for banks. They were just starting on a windows version of their consumer lending product (banks move slow. very slow), to be written in c++.
The 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.
The 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.
Some guy I knew asked me if i could write him a programme to help manage his clients' investment portfolios.
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.
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.
I took a very normal College career path: Go to internship/career fair -> Get an internship at a big company -> Get hired.
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.
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 guess I will probably be one of the "weird" ones here.
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.
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.
"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.
Are you hiring programmers or used car salesmen? I simply don't buy that confidence is more key in programming than in other fields.
I am not talking about hiring people who have no grasp of a concept. I am saying that not unlike many other fields programming has a good bit to do with what you believe you are capable of.
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.
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.
Depends on the environment - in a customer facing/consulting role it is probably the key success factor. What clients often want is certainly - even if the reality is usually "it depends".
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.
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.
What's your blog's address?
lots of people have asked me that as of late presumably from looking at my profil, so I just added it there
I have never been employed, never even interviewed for a job. On my first contracts I was woefully underqualified. There were hardly any boxes I could tick. But I was very good at communicating my enthusiasm and interest in computing, not just in the sense of getting things done quick and dirty but in terms of theoretical interest as well.
I just kept throwing the stuff I was interested in at anyone who would listen and I kept asking questions about what they did, applying ideas I had to their problems. I did that on every occasion and it stuck. But what stuck were not the particular skills that could be inferred from what I said. What stuck was that there is someone who will really get involved in the project, shape things, make it his own project and see it through.
There is a small minority of people everywhere that suffers from the 9 to 5 attitude of the majority. You need to make sure that these people recognise you as one of them. That's the most important lesson I have learned, not just in the beginning, but also later when it came to taking on interesting tasks I wasn't necessarily qualified or experienced enough to do.
I just kept throwing the stuff I was interested in at anyone who would listen and I kept asking questions about what they did, applying ideas I had to their problems. I did that on every occasion and it stuck. But what stuck were not the particular skills that could be inferred from what I said. What stuck was that there is someone who will really get involved in the project, shape things, make it his own project and see it through.
There is a small minority of people everywhere that suffers from the 9 to 5 attitude of the majority. You need to make sure that these people recognise you as one of them. That's the most important lesson I have learned, not just in the beginning, but also later when it came to taking on interesting tasks I wasn't necessarily qualified or experienced enough to do.
Perhaps rather stupidly I paid little attention to trying to get a job during the final year of my CS degree - the one company I did interview for (an early hypertext pioneer) I mucked up the interview by having a glass of wine at the buffet lunch which appeared to react with medications I was on for an infection which made me a bit too talkative during the chat with the companies founder....
I ended up taking a job at a wee company doing what were effectively small ERP systems running on Cromemco/Xenix servers. Which was a hell of a learning experience - fixing broken Unix servers at all hours and all the joy of dealing with sales guys on one side and customers on the other. I left that job after about 9 months to back and do research in the department I graduated from.
Interestingly enough, the chap whose company I failed the interview with in '88 became the first angel investor in the startup I co-founded in '95 and went on to be our chairman through multiple rounds of VC investment, an IPO and an eventual acquisition.
I never did have the nerve to ask him if he remembered the interview I mucked up...
I ended up taking a job at a wee company doing what were effectively small ERP systems running on Cromemco/Xenix servers. Which was a hell of a learning experience - fixing broken Unix servers at all hours and all the joy of dealing with sales guys on one side and customers on the other. I left that job after about 9 months to back and do research in the department I graduated from.
Interestingly enough, the chap whose company I failed the interview with in '88 became the first angel investor in the startup I co-founded in '95 and went on to be our chairman through multiple rounds of VC investment, an IPO and an eventual acquisition.
I never did have the nerve to ask him if he remembered the interview I mucked up...
My first gig was a FoxPro contract to find a bug in a very messy report generator, written by a recently divorced, overweight diva in her late 40s. That, my friends, is as close to an immersive reality check as it gets. I was on 3rd year in the Uni and had fluent Pascal, working knowledge of C, could solve Hanoi towers by hand and tell the baud of the modem whistle by ear. Quit in one week, earned $40, didn't manage to make a single change to the code, and acquired a life-long dislike to anything database :)
I'm getting divorced at the moment. Curious why you think its relevant
You will clearly write buggy code.
Divorce causes psychological trauma.
Gig: Hackin' Lisp.
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.
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.
Very interesting. All those nested clauses in philosophical texts, I guess they're good for something!
My degree has a year of work experience stuck in the middle. I responded to a posting and got into http://www.squiz.net/ (small-medium CMS development company of about 80 people). During the three years I was there, I fell in with a crazy Russian developer who taught me half of what I know, met @DmitryBaranovsk, and worked under a fellow who, though a bit abrasive, ran a really tight ship (unit tests and automated build, for example).
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.
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.
Don't worry about it. In my experience, a lot of the criteria listed in these job postings were done by non-developers and have little to do with the actual job. Also, when in doubt, just apply. Interviewing is a skill like any other. It requires practice. Even if you feel you're not qualified, the interview might surprise you, and if it doesn't, it's still good experience.
When i was in grade 12, I taught myself PHP/HTML/SQL and some JavaScript. I set up a forum (Which was a modified Simple Machines Forum) to stuff around in at school because i always managed to finish projects and tasks in computer studies early.
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.
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.
I started in a very small web dev shop when I was still in college. I had some programming experience but when I started I quickly realized my experience was irrelevant. The place was a good starting point because I was able to experiment with different technologies, talk to clients, do front and backend stuff and manage 2 small apache servers. During this time I also learned what I like and don't like doing.
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.
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.
When I was feeling homesick in Thailand, I basically ended up hiding in my hostel for three days learning Qt. I came back (4 months later) and interviewed for a student IT job. The guy who was interviewing me saw Qt on my resume and said he knew someone in another department who was looking for students who know Qt. The interview with my current boss was actually kinda funny. He briefly mentioned that he had seen the stuff I had on Github, and then we talked about Asia for half an hour. Then I was hired. Lesson: homesickness can be a good thing.
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...
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...
I'm only on my 2nd programming job. I was at my last job for right around 4 years and had about 8 months of unemployment before I took the current one.
The last (1st) programming job was at a market reasearch company doing ASP, SQL Server 2000 and some MsAccess. I hadn't touched any of those technologies. I had/have no college degree or any college credits for that matter. I didn't even take programming courses in High School.
What I did have, however, was a small handful of personal websites I had done in PHP and MySql, most using E107 (a PHP CMS). I couldn't code a PHP site from scratch, nor properly setup a MySql install. Heck, I could barely write queries. But I was fortunate enough that the company didn't have a proper CTO, so I interview with the IT/IS team directly. A couple of those guys had gotten there start the same way, so they gave me a go and things worked out really well. I came in severaly under qualified, on a probabtionary 90 day $10/hr wage. I left, after 4 years, as the Director of IT. I don't think I was necessarily qualified for that position either, but attained it more through attrition and ability to work well with the rest of the department and company.
I guess the point is, there is always someone who will give you a shot regardless of qualifications. If you show that you have a technical mind, are motivtated and a quick learner, you have the base you need and some people will looking past the inexperience. The tricky part is finding them. Until then, just keep working at it.
The last (1st) programming job was at a market reasearch company doing ASP, SQL Server 2000 and some MsAccess. I hadn't touched any of those technologies. I had/have no college degree or any college credits for that matter. I didn't even take programming courses in High School.
What I did have, however, was a small handful of personal websites I had done in PHP and MySql, most using E107 (a PHP CMS). I couldn't code a PHP site from scratch, nor properly setup a MySql install. Heck, I could barely write queries. But I was fortunate enough that the company didn't have a proper CTO, so I interview with the IT/IS team directly. A couple of those guys had gotten there start the same way, so they gave me a go and things worked out really well. I came in severaly under qualified, on a probabtionary 90 day $10/hr wage. I left, after 4 years, as the Director of IT. I don't think I was necessarily qualified for that position either, but attained it more through attrition and ability to work well with the rest of the department and company.
I guess the point is, there is always someone who will give you a shot regardless of qualifications. If you show that you have a technical mind, are motivtated and a quick learner, you have the base you need and some people will looking past the inexperience. The tricky part is finding them. Until then, just keep working at it.
My first job was at a national laboratory where I wrote an application to extract data from text files using FORTRAN. I started when I was 17 - it was a school program where I went to class in the morning and went to work in the afternoon.
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.
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.
I did 5 years in the Navy as a UNIX server admin, and the extent of my programming experience (aside from two community college classes in QBasic and Visual Basic) was making some small changes to a PHP-based trouble ticket system.
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.
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.
I've been programming ever since I was a kind in the 80's with the Commodore64. In high school I was all about BASIC and C++. Then in college I got into Java & PHP.
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.
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.
I got hired midway senior year in college by a startup that had just filed for an ipo. They were 100% a java shop and at the time I only knew c, c++, php, mysql and absolutely no java. Throughout college, I did programming jobs for small businesses and my university, making hardly any money. I studied my ass off on java, ended up being able to handle any of the simple java questions they asked and sold them on all of my experience that I put into working fulltime programming meanwhile pulling in great grades in college.
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.
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.
My first programming job was ASP (back when it first came out) - I was ok with HTML, but knew nothing about ASP, having spent most of my time using things like dBase and Pascal.
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.
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.
I got baited and switched. I thought I was interviewing for a network/desktop support position, but once I started I was quickly moved to maintaining an MS Access db.
I had no idea what I was doing. I didn't understand what a relational db was or, really even understand how Access was different from Excel. But I had done some little toy programming projects before, and I had the existing code in front of me to work as examples. Turned out I liked programming better than network support. Most of the time, anyway.
I don't fake my skill set, and I don't really recommend it, but I am an uptight nerd. It does work for some people. Another guy said communicate your enthusiasm, and if you can get face to face with someone that can work very well. I think one of the things that got me the job above was my saying, "I like working with computers and tech. Go ahead and give me the loose ends and yucky jobs around here that no one else wants to do, I'll be happy to do them."
I had no idea what I was doing. I didn't understand what a relational db was or, really even understand how Access was different from Excel. But I had done some little toy programming projects before, and I had the existing code in front of me to work as examples. Turned out I liked programming better than network support. Most of the time, anyway.
I don't fake my skill set, and I don't really recommend it, but I am an uptight nerd. It does work for some people. Another guy said communicate your enthusiasm, and if you can get face to face with someone that can work very well. I think one of the things that got me the job above was my saying, "I like working with computers and tech. Go ahead and give me the loose ends and yucky jobs around here that no one else wants to do, I'll be happy to do them."
Generally in the UK a lot of companies specifically hire students straight out of university with the understanding that they'll still be a little green behind the ears.
If you've got a decent academics and a fundamental grasp of programming you shouldn't have too much trouble getting a job. What can be key is that you have something on your CV to make you stand-out, this can be an interesting final year project, open source contributions, an internship, etc.
The biggest mistake I see people make is restricting themselves to only apply to jobs local to them. You might be able to get away with this if you live near a major tech hub, but if you don't then you're majorly restricting yourself.
If you've got a decent academics and a fundamental grasp of programming you shouldn't have too much trouble getting a job. What can be key is that you have something on your CV to make you stand-out, this can be an interesting final year project, open source contributions, an internship, etc.
The biggest mistake I see people make is restricting themselves to only apply to jobs local to them. You might be able to get away with this if you live near a major tech hub, but if you don't then you're majorly restricting yourself.
I started out as a tester/functional designer at a job ( did some network / helpdesk stuff before that) since they didn't have a lot of developers and none that could program in a modern languages (MUMPS programers) I took 2 weeks off and learned Python after that c#. I went back to school in the evenings where I learn't some Java/SQL etc. and when't to a Cache course
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! ;)
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! ;)
I was given a task to finish a webshop with online payments and hotel room reservations for a spa in 1996ish. It was started in perl, though I moved it to PHP a bit later.
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 :)
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 :)
The first job I had was programming Motorola 6809 based Alarm monitoring systems in assembler. It was a painful process having to write everything to an EPROM for every change and debugging tools were non existent.
It was a steep learning curve when i first started but it's always been an area of programming i enjoy. Programming embedded systems was my first job and after working for many years developing on a wide range of systems and platforms i again find myself back working on embedded system again.
It was a steep learning curve when i first started but it's always been an area of programming i enjoy. Programming embedded systems was my first job and after working for many years developing on a wide range of systems and platforms i again find myself back working on embedded system again.
I did freelance work for a webdesigner friend of mine, after warning him about my experience level. (I had lots of personal projects, but nothing professional yet.)
It actually turned out really well, and I got paid what I thought was a good price at the time. Unfortunately, my friend didn't get paid for his portion, and the site never launched.
It actually turned out really well, and I got paid what I thought was a good price at the time. Unfortunately, my friend didn't get paid for his portion, and the site never launched.
There are many jobs we take on thinking we fully understand until the bigger picture of the problem we are trying to solve starts unfolding : we will always be inadequate, and even forget what we once knew, that is why we keep learning to remain hackers.
Dropped out of university, 3 months ago after bumping into someone at university who needed a Rails and iPhone programmer. Had no knowledge of rails and only a little bit of iPhone experience. App was accepted last week!
Microsoft, as an intern right after my first year of college. I thought I was hot shit. Got schooled a few times by those more wiser. Pretty humbling, but I learned a lot and grew a lot.
I was hired during my senior year in high school as a part-time grunt worker at $10/hour, primarily doing HTML work. I didn't know very much, and more importantly, didn't know what I didn't know.
I had the good fortune of working under some brilliant developers, who did a tremendous amount to teach me not just how to write code, but how to write code well, how to think like a developer, and how to approach a software project at a whole.
I had the good fortune of working under some brilliant developers, who did a tremendous amount to teach me not just how to write code, but how to write code well, how to think like a developer, and how to approach a software project at a whole.
Not technically a programming gig, but I accidentally wrote the Enterprise knowledge base for a Fortune 50 company while I as working overnight as a help desk technician.
It was a good system, that later fared very well against other COTS packages from vendors like Microsoft, CA, Oracle, etc.
As for how much I knew, the answer is VERY little. I wrote the app to teach myself programming, and the majority of it was in PHP & Perl (because those were the best documented languages at the time) -- and the system ran on RedHat with MySQL, on a spare desktop computer that previously belonged to the other night shift guy that had been fired.
Eventually, all of IT adopted using the program, and I ended up on the team developing new features and performing maintenance of it, while integrating it with other core products within the company, like the incident tracking system.
It was a good system, that later fared very well against other COTS packages from vendors like Microsoft, CA, Oracle, etc.
As for how much I knew, the answer is VERY little. I wrote the app to teach myself programming, and the majority of it was in PHP & Perl (because those were the best documented languages at the time) -- and the system ran on RedHat with MySQL, on a spare desktop computer that previously belonged to the other night shift guy that had been fired.
Eventually, all of IT adopted using the program, and I ended up on the team developing new features and performing maintenance of it, while integrating it with other core products within the company, like the incident tracking system.
I wrote a VHS take tracking system in Basic for a guy that rented out pirate VHS tapes from the back of a van around his council estate. I was about 11 (so about 1982), my dad used to rent tapes from him. - I'd never used whatever computer he had, just the Research Machines 380Z at school.
The next was a clone of some artillery game (a bit like Gorillas.bas) on to another of dad's friend's TRS-80. I'd never used a TRS-80.
Then a stock control program for my dad's pub (which got me an F in my computer studies class but saved at least $50k [I still got an A via the exam which means I scored 90%+]). I did know quite a bit about that system, being my own and all.
Then one day at my local computer shop, I was watching them struggle with their pricing. Only one guy knew the prices of stuff and had employees standing in line so they could price their builds. I was friendly with him so asked if I could take his spreadsheet and make it a bit better. Come Monday morning I'd discovered Access and made a computer building form that worked over the LAN. So they gave me a job making it better. By the end it did the purchasing, retail pricing, BOM production, quote tracking, faxing, barcode printing (which we built by hand as a TTF font in Corel Draw), barcode reading (each fax had a barcode, customers arrived with them and a quick scan later the shop floor people could find their details), sales team target tracking and quite a bit more (this is all pre-internet). The Microsoft rep called the best in-house project he'd ever seen!
Then I taught myself C++ to do image processing for the music video I was commissioned to make by Creation Records (a division of Sony) on the strength of the work we showed while doing video projection at raves.
Knowing vbscript meant I was well placed for IIS web development but realising it was a shit platform I started looking at PHP. I got a phone call from the previously mentioned retailer asking if I knew anyone that could do PHP. I said "yeah me" and got a 5 year job building a recruitment site.
In the process of doing that I taught myself Postgres and FreeBSD system administration.
Now I work in an independent cinema / media centre doing all sorts of sys admin with a digital video strand, DVD authoring & duplication (this pays best!), camera assisting etc. including a 5 machine video distribution and exhibition network on mac minis using Gentoo that can double as a a video wall a la Liquid Galaxy (same code in fact - a patched mplayer which syncs via upd).
tl;dr I knew almost nothing about any of the systems I have done my best work with and learned most of it on the job but got the job because I knew loads of other loosely related things.
The next was a clone of some artillery game (a bit like Gorillas.bas) on to another of dad's friend's TRS-80. I'd never used a TRS-80.
Then a stock control program for my dad's pub (which got me an F in my computer studies class but saved at least $50k [I still got an A via the exam which means I scored 90%+]). I did know quite a bit about that system, being my own and all.
Then one day at my local computer shop, I was watching them struggle with their pricing. Only one guy knew the prices of stuff and had employees standing in line so they could price their builds. I was friendly with him so asked if I could take his spreadsheet and make it a bit better. Come Monday morning I'd discovered Access and made a computer building form that worked over the LAN. So they gave me a job making it better. By the end it did the purchasing, retail pricing, BOM production, quote tracking, faxing, barcode printing (which we built by hand as a TTF font in Corel Draw), barcode reading (each fax had a barcode, customers arrived with them and a quick scan later the shop floor people could find their details), sales team target tracking and quite a bit more (this is all pre-internet). The Microsoft rep called the best in-house project he'd ever seen!
Then I taught myself C++ to do image processing for the music video I was commissioned to make by Creation Records (a division of Sony) on the strength of the work we showed while doing video projection at raves.
Knowing vbscript meant I was well placed for IIS web development but realising it was a shit platform I started looking at PHP. I got a phone call from the previously mentioned retailer asking if I knew anyone that could do PHP. I said "yeah me" and got a 5 year job building a recruitment site.
In the process of doing that I taught myself Postgres and FreeBSD system administration.
Now I work in an independent cinema / media centre doing all sorts of sys admin with a digital video strand, DVD authoring & duplication (this pays best!), camera assisting etc. including a 5 machine video distribution and exhibition network on mac minis using Gentoo that can double as a a video wall a la Liquid Galaxy (same code in fact - a patched mplayer which syncs via upd).
tl;dr I knew almost nothing about any of the systems I have done my best work with and learned most of it on the job but got the job because I knew loads of other loosely related things.
[deleted]
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.