The Crazy Truth About My First Job in Software Development
For most, landing a first job in software development fresh out of college is a frustrating and difficult task. I will tell you a story of how I got my first job, and give you actionable advice on how you can make the experience even better.
If you’re currently studying to become a software developer and haven’t had a job in the field yet, I hope that my experience can help you have a great first job that you like and enjoy. 💃
As with most things in life, preparation is the key. 🗝 You cannot do anything great overnight. You need time and effort. So if you’re currently studying, you have the time. Trust me. If you think you don’t, you will realise that you did the second you start working. While I studied and took exams, two things frustrated me. First, that I had to study a lot of things I didn’t enjoy but little of what I wanted. And second, a lack of practical application of knowledge.
Preparation often takes place in dodgy cafés when you’re a student
Studying what you don’t like 🙇
I understood that the faculty programme was made to be general in scope. It has to cover a wide range of subjects and prepare you for any field you decide to specialise in. But I hated almost every moment of it. I think I enjoyed less than 30% of the subjects. I was annoyed that I had to learn assembly and computer architecture and computer networks. My interests were Web development and Software architecture. So I spent many hours of my spare time pursuing those interests. (I will admit though, that knowing all these things helps me being a better programmer today. On the other hand, if I had more time to specialise in what I liked best, I could have been an expert by now. But that’s a discussion for another time).
Be prepared to learn by yourself. Take your studying into your own hands.
This process is the key. Don’t just assume that the classes will prepare you for the world and give you the best knowledge.
Lack of practical knowledge 😵
Lack of applying what you learn is somewhat common across universities. You can get some projects to complete for your exams, but they focus on theoretical knowledge. The projects you do get to work on are nothing to prepare you for the actual work you’ll be doing once you get a job. We all knew that, but most didn’t take it seriously. Most students just assumed that they will pick it up as they go when they get a job. But I wanted to be able to create real things sooner. From an idea to a product. So I started learning practical Web development in my spare time. I enjoy creating things, so at all times I had a personal project that I was working on. A vast majority of those projects failed. I didn’t finish them, but the knowledge and experience gained from those endeavours proved most valuable.
Take time to find what you’re passionate about, and then set out to learn to create those things. Find a field you’re passionate about and exercise that passion freely.
Be like a dandelion seed. Break free from the norm and let the wind of creativity carry you.
Software Development unique benefits ⚡
Find blogs and courses on the topic you’re passionate about, and devour them. Make something with it. It is important to try that technology yourself. As software developers we have a beautiful opportunity to pick up a tool and create something with it. Our tools are virtual - programming languages, compilers, IDEs. All we need is a computer that has access to the Internet, something that almost everybody owns. On the other hand there is an example of automation engineers, or even architects. They need expensive and large hardware and tools to bring their ideas into being. Sure, they can use programs that simulate the work, but it’s not enough. Software developers can use the same tools at home that they will use in their future job. How awesome is that? You can work from home, which is hard or impossible for most fields. But more importantly, you can learn and get good at doing your job even before you get one.
Do appreciate the freedom and great power that we as software developers have. We are enabled by technology to create better technology.
Heck, we could work from this boat if we wanted. Not for too long though, at least until we get better laptop batteries!
Ok, so you are a software developer in the making, and you like some of my advice from above (learning things and creating personal projects in your spare time). Now you need a portfolio to showcase that effort. You will put up your personal projects there, so that anyone can see them. If you are adventurous you can add a blog too. Write about your experiences with learning different technologies or creating your projects. This is one of the best ways to market yourself to your future employers.
The thing about a portfolio is this - when you create it, you might not have a lot of things to put up there. But that’s okay, as you’re still a student. As time passes you’ll gain more knowledge and create cooler projects. Your portfolio will grow. It will not happen overnight.
How long will building a decent portfolio take? For me it was about a year. In that time I’ve done 4 personal projects that I put online. I put only the ones I thought were good enough to show to the world.
It’s important to take a first step. Put yourself online with a portfolio website. It will take some time, but if you keep at it, you will have an amazing weapon in your arsenal of personal marketing.
Wanna learn more about creating a great portfolio? I wrote about that.
This cat doesn’t need a portfolio. Everyone knows that it’s cool and awesome and fluffy. You, on the other hand…
How I got my first job offer
I was often browsing Dribbble for new project ideas, and I came across an app design that I liked. I and wanted to use it to create an app. So I did. The app wasn’t perfect, but I had something to show, and I wanted to put it on my portfolio. So I sent a message to the guy who created the design for the app, asking him if he’d mind if I put the app online, since it was his design. Couple of days later, he responded and he said sure, no problem. But he also said that he told his colleagues about me. He showed them what I have created, and they liked how I took initiative in creating something. They said that they would like to interview me for a job. Turns out he was working for a cool company, Infinum.
I agreed to an interview. I was nervous and excited, as I’ve never done an interview before. 😱 I didn’t know what working in a company looked like. I wasn’t even looking for a job. I was still studying. But I manned up, and we had a nice technical interview over Skype. I got asked about my experience with various Web technologies. As I learned a lot in my spare time, I had experience with all of them.
And before I knew it, I had my first job without even looking for one. It was a junior level job, and I worked remotely. It felt great! 🎉
Be proactive and seek out opportunities. You can always find what you need, you just have to look in innovative ways.
Don’t just sit around. Go and explore the real world! No matter if you fall a few times. Get up!
The takeaway here is this: if you create a portfolio and connect with people, great opportunities will open to you. I did this unintentionally and stumbled onto a great technique. If you want to promote yourself, a great way that gives excellent results is to get out there and contact people directly. It’s not effective to just put your portfolio online and wait for people to find it. And you certainly don’t want to pay Facebook or Google ads to promote yourself. 😂👎
You need to be proactive. And that can be fun! What I did is simple but rarely anyone does this. Pepole are afraid that they will look stupid. Screw that! Find something that someone working at a company you like created in their spare time, and contribute to it. It may be a design of an app or a website that you recreate, or maybe an open source library to which you can contribute. Or it maybe a blog post where you can post useful comments. There are a lot of options. Don’t be afraid of the world and take the first step.
The world is yours. Just need to be a bit brave. Do what others are afraid of.
Don’t let your first job be remote
For me at my first job, everything was going great in the beginning. But as time passed, I started to notice it was hard to keep up and deliver work of the requested quality. The problem was that I was working remotely, since the company wasn’t near where I lived. I was spending time working alone, solving most problems I had alone, etc. I thought I knew a lot, but it turns out that no matter how much you learn and how many personal project you do, it can’t fully prepare you for the responsibilities you’ll face at your first job. You still need a mentor. I was ways ahead of my peers at college at that time, but that tricked me into thinking that I knew more than I did. For a junior this is very bad. After some time, you can’t learn by yourself. You need to have other, more experienced people show you the right way. And the only true way to do that is in person. Skype chats are not the same as the real thing. What I needed was mentorship.
So while I don’t regret the decision to take the job, and while I learned a great deal in Infinum, it wasn’t a smooth ride. I’d strongly advise you that your first job isn’t a remote position.
Having a portfolio and doing small projects on the side is a great way to launch you into a successful career in Software Development. And getting in contact with people really works! But you still need to be aware that coding for a real job is different from coding for your side projects, and be open to learning.
🔥 Keep your passion for software development burning 🔥