Josh Carvel (@josh_carvel on Twitter) inspired me to write a little on what I had and had not done when I got my first developer job.
My first professional developer job was front-end development at LendingTree. Check out their website if you like. The website basically IS the company. If you go through the forms there to apply for a loan of some kind, then you land on the “offers” page, the page that actually shows you offers from lenders. I was hired onto the team that makes and maintains that “offers” page. Our team did not handle the form you go through to get there, among other things. There was a whole other team dedicated to the form. Also my entire team (like 10 – 13 people) was front end. They had various separate other teams for backend work.
Who I Was When I Got the Job
I was a career changer. All of my education was in mathematics. I had (still have) a PhD in math, and I had been teaching math at universities for like 10 years or so. That hasn’t helped me nearly as much as you might imagine. People look at that and think, “Oh, this guy must be smart. But can he code?”
I had started teaching myself programming not because I was planning to change careers but just because I wanted software that didn’t exist yet. Web development suited my needs well. By the time I got my first professional job, I had about 6 years experience in making full-scale, sophisticated web apps with MySQL and PHP on the backend. My first frontend work pre-dated really nice platforms like Angular. So actually I started with form submissions. Later I made the transition over to AJAX and jQuery. Later I learned some AngularJS.
At one point I even wrote something using Ruby on Rails. I did not like Ruby on Rails. To me it feels like piloting a starship. I’m much more comfortable with simplicity.
When I got my first job, I was not familiar with the techniques of writing modular JS. I had literally never used any sort of bundler, never used import/export, had no idea what Node was. No idea what Webpack was. No idea what Browserify was. I definitely had never used any of the new ECMAScript 6 syntax. Even now I think I’m doing just fine without most of that (but I do know that stuff now).
As it turned out, my job at LendingTree would require me to work every day with the Vue platform. I had literally never even heard of Vue. (Bear in mind this was a few years ago.) I had an excellent team lead. I don’t think he would mind if I give him a shout out. His name was/is Amit Gandhi, and it was a pleasure to work with him every day. He taught me so much. I am a much, much better developer today because of what he taught me.
Here’s an assorted list of things I had or had NOT done before I got my first job.
- Had very little content on GitHub, and it really wasn’t worth looking at: maybe like 5-7 things, but it was not well maintained, very little I would be proud of today.
- I don’t really remember if I had any kind of portfolio at all. If anything, I think I had a collection of links to 2-3 previous web projects, but it was not well organized, not polished and maintained like the one I have today.
- No computer science degree or certificate program or anything like that from an actual University. However, I had taken 3 semesters of computer science at University: just 3 classes.
- No internships of any kind.
- No online bootcamp or online certificates of any kind.
- I DID get Oracle certified in Java. I studied for months, paid them over a hundred dollars, took the first-level Java exam from Oracle, officially, and now it’s one line on my resume. I honestly think nobody has ever cared even a little bit, but I mention it in interviews and people don’t care.
- I was pretty good with Linux and comfortable with the command line. It didn’t come up on the interview, but just generally speaking I was comfortable as an advanced computer user.
- I had no experience ever working on a team with other programmers. I had only ever worked alone. So that definitely means I had NO Agile experience.
- Addendum to the previous: I had never been a part of any sort of community for developers. I had only ever worked alone, like I said.
- On my resume, I included that I had some MySQL experience and general database experience. That is a highly valued skill, but in retrospect I did not have that. I mean: I wasn’t lying. I HAD built web projects that used a database on the backend, but I just hacked my way through and really didn’t know what I was doing. Since then I have removed that from my resume until some future date when I learn it for real.
- I had not worked with ANY of the big three modern frameworks: Angular, Vue, React. I had AngularJS experience, but that was already quite outdated.
- I DID have a pretty solid grasp of what a web app is and how it works, back to front. Even if I didn’t know all of the latest technologies, I had a solid grasp of the history of the industry and I understood some important design patterns like Model-View-Controller. These were things I could casually speak about from experience.
- I had a tiny bit of PHP experience. Not much. Even not I don’t know much of it. But I can hack together a backend web API in PHP if I have to. Nowadays I would much rather use Node.
I did not get an offer from the first place I interviewed. It took me like 6 months of applications, probably at least 50 applications, and like a dozen interviews with different companies before I got an offer. And I didn’t do anything very different on the interview where I actually got an offer. I recall I wore a full suit to the interview, but in retrospect that was super-duper overkill. They didn’t hire me because of the suit. I don’t think there’s any way to game the interview process. Sometimes they just won’t like you, and it’s a very unpredictable, human thing.
When I did get an offer, LendingTree offered me decent pay, as compared with all jobs in general. For example, it was more money than I had made when I taught math. But for a software developer job it was still pretty low. I took the job, of course. And to you, personally, I’d recommend the same. Experience is gold. So even if they offer you a relatively small salary, they are also paying you in experience, and that’s worth money. A typical salary for a software developer NOT living in a super-expensive city like New York or San Francisco is about 80 thousand US dollars. It’s a very comfortable salary. You might not get there on your first job. Who knows: some crazy company might even offer you more. What I’m saying is that you can probably expect to get paid about that much after you have 2 years of experience, but if the first job low-balls you a little, take it anyway.
If you have any specific questions or comments, please feel free to contact me on Twitter. I am @adamfgcross. I don’t encourage or follow comments here on my blog. Good luck!