Being a developer is a fantastic opportunity. Not only do get to know about how the digital world operates and how stuff is made, how apps get deployed, how your Instagram feed is generated and how Amazon gets your orders, but you also exhibit the skills to work from absolutely anywhere and at anytime — on your terms, as you please.
A friend of mine has a child starting a computer science
degree at a lesser-known university and wanted some tips on what they
should do to get a good software engineering position when they graduate. Here
are a few of the tips I gave them.
- Expect
to work harder to get noticed. You're not going to a "name
brand" computer science or software engineering school like Waterloo,
Stanford or Carnegie Mellon. It's an unfortunate fact, so be prepared for
it. The good news is that remote interviews are commonplace now, so
companies don't have to spend money to fly you out and they'll be more
willing to take a chance on you once you do get noticed.
- Get
and keep high marks -- it's important when you don't have a lot of
experience. When you're just starting out, companies don't have a
lot to go on and marks is one of the things they look at. High marks won't
necessarily open doors, but low marks can certainly close them. You want
good marks in general, but you especially want high marks in computer
science and mathematics courses.
- Engage
in CS-related extracurricular activities. Think about joining any
computer-related clubs, participating in programming contests and
hackathons, working on projects for profs. Again, things that can help get
you noticed.
- Get
programming jobs. If your university doesn't have a co-operative
education program, it'll be up to you to find your own summer jobs. Make
sure they're programming jobs. The experience you'll get on those jobs is
invaluable. Don't plant trees for the summer, no matter how noble that is.
- Learn
the programming languages that the companies you want to work for use. For
Google that would be Java or C++. Yes, you can interview in Python for a
job at Google, but the reality is that most teams at Google don't use
Python and your prospects will be limited. For other companies it will be
different. Do you research and make sure you have real experience
in one or more of the preferred languages.
- Start
preparing for programming interviews. Whether or not you like it,
a lot of software companies use 45-to-60 minute programming interviews
where an engineer will present you with a programming problem and see how
well you can solve it. You need to prepare yourself for this kind of
interview format. It's not fun, the interviews are stressful and not
realistic, but it's what companies use. There are plenty of books and
websites that will help you get ready, take the time to prepare so that
you can ace those interviews.
The reality is that all the things you do to get noticed by recruiters is what you need to get your foot in the door, but it's the interviews that will get you the job. Start your career journey in first year and by the time you reach fourth year you'll be in a great position to find an appealing software engineering position.