I’ve seen a lot of questions here about how to go about finding a job after completing a course, I wanted to share some thoughts based on my experience.
Why am I writing this? Because:
- I’ve been where you’ve been, and I wish I knew this several years ago
- I interview people and decide if they join my team (I’m a Software Engineering Manager), so this is what I look for in candidates
Let’s get the most common question out of the way. Can I get a job after completing a Codecademy course? The answer is very simple. No, you can’t. Why?
- You don’t have enough experience
- There are a lot of other things you need to learn that the course most likely doesn’t cover
You can get an internship, and maybe you’ll get paid a little. If you’re very very lucky, you might be able to get an entry-level job but the biggest factor is that the company has to be willing to teach you, groom you into a decent developer. Not a lot of companies are willing to do that because it’s expensive and it takes time. In case you didn’t know this already, all companies are under tight deadlines. All the time. So if they hire someone, they need that person to be productive immediately otherise they’re losing money. Nobody likes to lose money, so you need to be productive from day 1.
Bottom line, don’t count on finding a job after completing a course. So what do you do? You need experience with the following:
- Installing software
Yup, you need to know how to install software. Sounds dumb? Maybe, but how many of you know that after installing a specific piece of software you need to update your PATH before you can use it?? Exactly. Do you want examples of that? Install Python or the latest JDK (If you took the Python course, you might already know this. If you didn’t, surprise!). Why do I bring this up? Because I just went through this with a new hire last week. She told me she couldn’t get the app to run, after troubleshooting her laptop turns out she didn’t update the PATH. Updated the PATH, problem solved. Do I want to deal with this as your supervisor? Absolutely not, I expect you to know these things.
While we’re at it, keep your OS up to date. The last thing I want a new hire to do is spend a whole day updating their OS so they’re able to install the latest version of something.
- Command line or Terminal
You need to be proficient, if not master the command line or terminal. A lot of what you’ll be doing will happen here.
- navigation
- file management
- permission management
- software\package management
- resource management
- Software dependencies
I provide all new employees with a step by step guide of what they need to install to run the project. Most companies don’t do that, so if they want you to pull the repo and run the project, you need to know what your dependencies are.
No, this does not mean that you have to memorize things or take notes, but you have to be able to figure it out. You can’t run an Express API without Node, and you can’t start a container without Docker. Most of the time error messages are very descriptive, other times you have to google it and use a solution someone else has found. You need to be resourceful as you’ll be spending a bit of time trying to figure out why something doesn’t work.
- Version control
You need to know how to use git, how to manage branches, and adapt to different environments. The courses are very useful and simple for beginners but after that, you need to move on quickly. Whether you’re working at a company or working on your own, you need to know how to use git and have a good branch strategy. You also need to be able to manage different environments: dev, test, stage, load, prod. What code goes where, how to identify what version is in what environment. Create a hotfix branch and deploy to prod.
- CSS
You need to know how to make things look pretty (unless you’re a backend developer), this includes:
- adjusting colors
- alignment for text, elements, pictures
- responsive design
- animations
- working with third-party libraries
- use master CSS classes (makes the code more efficient)
- Professional development
During an interview, I always ask what they do to stay up to date. As I’ve said in several posts, you never stop learning so what are you actively doing to stay up to date? Listening to podcasts? Which ones? Follow blogs? Which ones? RSS feeds? Which ones? Webinars, conferences, more courses?
If you’re not actively expanding your knowledge, it’s a red flag for me. And don’t just blurt out something just to provide an answer, be honest.
- Docker
Learn how to use Docker, it’s popular because it’s extremely useful. Don’t know what it is? Go find out. I’m not giving you any links on purpose because you need to be resourceful.
More than anything you need experience writing code. How do you get experience?
- Join a local meetup, put yourself out there. Most likely you won’t get paid, but what you need is to write code.
- Reach out to non-profits and offer your services for free. Non-profits are more likely to take on a beginner provided they don’t have to pay. You’ll gain experience, and it’ll look good on your resume.
- Most likely there is a site out there that has projects you can do or join. Can’t find one? Then make one! Do yourself a favor and make a site that provides projects for people to learn, it’s a good way to network.
- Get a Raspberry Pi. These units are very cheap, there are a lot of cool projects out there that you can replicate or just use your imagination and come up with your own. Add them to the site you created in the previous point while you’re at it.
- Don’t have a lot of imagination? Find Project Euler, that’ll keep you busy for a while.