Welcome to part 3 of my blog series! :D
Welcome! By now you should have learned a lot of stuff regarding actual programming and have made some personal projects.
Now comes the other side of working as a developer. Most of the time when people think "Programmer" they think we sit
behind computers all day. That's about 90% true, but so do lawyers, doctors, accountants and most people working today.
What we all have in common in the working world is communication.
You can have all the knowledge in the world about computers, but if you can't communicate that knowledge to people who
don't have your level of understanding then you aren't as effective as you might think. In this part we are covering topics
such as soft skills, making yourself known in the employment world, resumes and that dreaded word... interview.
Disclamer: I live in the EU. More specifically Slovenia. We have tech companies large and small here. The market is pretty good
for programmers here. That said I can't speak for people outside of this country, but I will give you some advice where to find
people who know about your market and economy. What I'm trying to say is take the advice in this part and adapt it to your situation.
What are soft skills?.
Get some soft skills. Seriously. Talking to people as a new developer can be very difficult. You don't really know the terminology
just yet + just the general anxiety of talking to people is crippling a lot of the times. In part 1 I linked an article that
talks about how to properly ask programming questions. Same applies for real life. You are going to be talking to other developers,
business managers and people who aren't neither. Learn how to talk to all. Context switch in your head and communicate clearly.
If you want a fun podcast that is all about soft skills in the software engineering world listen to Soft Skill Engineering.
At the end of the day, soft skills can only be learned if you constantly talk to people. Go to meetups, events and ask developers out for coffee.
The biggest thing you can do is be humble when talking to more senior people. You don't know everything, they don't either, but they have
way more experience than you. Talk, talk, talk. Maybe take a drama class? Improv? Standup? Oh and one more thing about communication: don't be a dick.
You want people to find you online. In part 1 we talked about you setting up a GitHub account and having your projects hosted there. This is one of
the many entities of your online presence as a developer.
Another very important one still is having a LinkedIn profile. You don't have to be active all the time, just log on every week or so.
What you should do is pimp out your profile with skills, experience and education. LinkedIn serves as an online CV so treat it as such. It also serves
as a recruitment tool. Set your status to actively searching and you should be getting some recruiter email or messages. If you want you can look
at my personal LinkedIn profile and get an idea how stuff should look like.
Some other ideas are an active Twitter accound, StackOverflow page or personal blog.
Why are these important? An active GitHub profile with projects shows you are willing to show your projects to people for criticism, a blog can be
for ideas and tutorials, Twitter could be a shorter version of a blog. Make yourself seen online. Use your real name or some other identifier that
shows that a certain entity is you online. If you don't want to share your info online I completely understand. However companies won't. Just keep that in mind.
Resumes are a tricky thing. Each company looks at them differently. Some want a picture, some want a cover letter etc. I was nervous about this untill I found
this article. I has everything explained that you need for a developer resume so I won't echo what the original author already wrote. Don't take his advice as gospel, just take what you need and what seems fair and logical to yourself.
Another tricky subject since it extremely depends on the company you are interviewing at. From my experience you will usually get an offer for an interview
through email. The first interview is probably going to be focused on general questions about yourself, your knowledge and your experiences. Just be truthful
with what you say, if you don't know something or are unsure, ask for a better explanation or simply just say "I don't know". Nobody is going to be mad or
think less of you if you don't know something.
After the "general" interview, you might be asked to wait so a software enginner can come in the room and maybe ask you some more technical questions. If you
are applying for a junior/entry level position saying you don't know something is again completely fine. This part would also include you solving some simple
problems on a whiteboard or on a PC, but these are reserved for maybe the second round of interviews.
The "general" interview is over now. Probably the same day or the next day you will get another email with a task to solve at home (again this is just from
my experiences). This problem doesn't have to be perfect, nothing is. You are applying for junior role so if you don't know how to use an API key from Google
Maps just yet, explain to them that you didn't know how to do that, but you tried your best to still make something. Aim for about 70% completion on the project,
write notes where you had trouble and how you approached the challenge.
You will most likely be called back to talk about the challenge etc. They might email you back saying "We would like to offer you a position" or "Sorry no can do".
If it's the later, that's ok, apply to another company and repeat the process untill you get a job. You will have experiences talking to managers and will eventually
lang something that makes you happy.
Thank you for reading!