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. 💃
Preparation ⏰
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.
Studying what you don’t like 🙇
I understood that the faculty program 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 specialize 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.
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.
Portfolio
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.
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.
The Takeaway
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.
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.
Conclusion
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 🔥
I enjoy your story, and become a motivation for me
Thanks, I'm really glad to hear that!
Interesting article. Still, for some people working remotely is the better option, due to there not being jobs in the places where they live, or ones that pay very little.
Yes, you are right. We need better process of online mentorship! But in the end, I guess it comes down to willingness of the company to spend resources to give you mentorship. That could be a good thing to ask for when negotiating a junior level job in a software company.
Great article, having just got my first job in the field while still at college I would say the things I have done outside of school are what got me the job. Focus on making connections and fostering what you already enjoy not a perfect GPA. Use class projects as an excuse to play with tools to make yourself valuable to employers and don't be afraid to go off script!
I have to admit this is really true. Passing through the same phase atm and I feel the worst thing that can happen is thinking you are very good because of bad your other college mates are.
Not until I recently interned at a company that I discovered how bad I was lol. But it's our life your know and exposure , interaction and determination is really key in the field of ours
Hey @thatdamiguy! Would you be interested in building up your portfolio with this idea I have for a course?
https://steemit.com/javascript/@petarjs/introducing-petar-js-learn-to-build-products-with-javascript
I'd love to hear your feedback on it! Not sure if people would be interested in this. Thanks!
I definitely would but am in the process of learning JS
You can hit me up on steemit.chat to talk about it
You will find my url on my page
Hey @thatdamiguy, thank you for the resteem of my post! :)
Welcome
I really liked your experience, I felt identified with a lot of things you said. I'm still a student with a freelancer job, and the truth is that working on a school project has nothing to do with working with real clients. The kind of problems you have to solve are completely different, you have no guidance, or a enunciate/statement/specification for what you have to do. I also liked your blog, I'm following you. I like to read/write about web development, maybe you can check my blog later.
Glad to hear that! It's interesting, working on freelance jobs while studying. What would you say as an advice to others in similar situation? How do you manage time and workload? Do you have a system for handling clients? Do you ever work on a freelance project while on a class? :D That could be a great blog post you could write :)
Thank you for your suggestion, I'll have it in mind :) The best part, I believe, is that working on projects that are not related to college is an amazing opportunity to learn some new skills that you won't be taught in classes, and then you can show off in your assignments, getting better grades, and finishing them faster.
And also you're building a portfolio like that, so you can show it to employers and on interviews, which gets you many bonus points with them :)
@originalworks
The @OriginalWorks bot has determined this post by @petarjs to be original material and upvoted it!
To call @OriginalWorks, simply reply to any post with @originalworks or !originalworks in your message!
To nominate this post for the daily RESTEEM contest, upvote this comment! The user with the most upvotes on their @OriginalWorks comment will win!
For more information, Click Here!
This is realy interesting expirience Thank you very much :D I am also computer vision programmer but I didn't yet took my first job
Nice! Are you interested in learning JavaScript?
Nice to meet you, @holl.boll
Wow, this is somehow a dream come true after all these years envisioning it coming to our everyday world.
I votes you post plase vote my post thank you
Thanks a lot for sharing, great job as always,
Congratulations @petarjs!
Your post was mentioned in the hit parade in the following category: