Blog post
So, you’ve been studying at a university or college for some time now and want to become a developer. A lot of questions are probably popping up: “What should I do? Which technology should I learn? Where should I look for an internship and/or a full-time job?” I’m here to help you out.
The number of questions can be overwhelming. What’s even more overwhelming are the results you get when you Google all of them.
Looking back now, as a professional web developer for the past 5 years, I decided to give my younger self the answers to all of those questions.
The first lesson is - grab a coffee. You’re gonna need it as a dev. Now we can talk.
So, tell me what’s bothering you, young padawan.
1. What should I learn to become a developer?
You probably feel there are so many options and are not sure where to start. And you wonder if you can really learn everything you need in a 60-hour course.
The short answer - no, you can’t.
It’s a painful path. You’ll be going back and forth and facing frustrations and mistakes. However, it’s also very rewarding. You’re a problem solver. You’re doing this because you love identifying problems and finding solutions for them.
If you don’t know where to start, try the first thing you come across. Imagine you’re Alice in Wonderland (making me the Cat):
“Would you tell me, please, which way I ought to go from here?”
“That depends a good deal on where you want to get to,” said the Cat.
“I don’t much care where—” said Alice.
“Then it doesn’t matter which way you go,” said the Cat.
“—so long as I get somewhere,” Alice added as an explanation.
“Oh, you’re sure to do that,” said the Cat, “if you only walk long enough.”
My point here is that you don’t have experience, and you won’t get any if you remain idle. Try whatever seems interesting, and if you keep trying for long enough, you’re sure to find something that will get your attention more than anything else. You will most likely end up with 30-40 project directories with “Hello World” examples. It may feel like you’re wasting your time because:
- You didn’t finish a single project.
- You’re not fluent in any of the technologies you tried.
Don’t let that bother you. Every single one of those directories is one step closer to finding your niche. My own experience is a case in point.
I started with Python in high school. At the time, I had been pretty sure I would become a Python developer. In college, we learned C and C++ but it was never something that really caught my attention.
Then I discovered frontend development and I was like, ‘Yeah, this is it! I get to move pixels around with code.’
I had a ton of unfinished projects (vanilla JavaScript, jQuery, Angular, React - you name it). One of the ideas I really abused when trying out a new technology was recreating my holiday rental website - I think I have at least 10 unfinished projects on that one. It’s okay to have a well-defined idea about what you want to make, but don’t let yourself get stuck on a single one.
It felt like even though I was exploring all those technologies, I couldn’t make a single working product. That was true, but I kept going; I continued playing around, making this and that, rewriting the same project in the 6th library/framework from scratch.
Remember that your curiosity will get you further than any formal education ever will.
2. How do I find the time to learn new coding languages and technologies?
Another problem you might come across is allocating learning time on top of your college/university obligations. Without some kind of time management, you will have days flying by without you writing a single line of code or reading up on any kind of tech news and documentation. The sooner you tackle this issue the better.
What worked best for me when I was in college was an early morning routine. Every morning I’d get up around 6 AM, have breakfast and get ready as soon as possible, and head straight to college. We had a nice little open space where you could sit, grab a coffee, open your laptop, and start cracking code. It didn’t really matter what I was coding that day or reading, as long as I’m there. The most important thing was to show up every day and establish that morning routine.
If mornings don’t work for you, try afternoons or evenings. Find an environment where you feel comfortable and productive. Write down your routine on a piece of paper and do your best to stick to it. Don’t worry if you miss a day or move it around. In time, you’ll figure out what works best for you.
3. Where do I meet other devs and hear about their experience?
There are plenty of opportunities to meet developers and learn about their experience and how they got where they are. If you live in a larger city or near one, look for meetups and conferences. If not, there are lots of virtual meetups you can attend. You’re likely to find events covering different fields of development and maybe even other topics that could help you decide which direction to take.
You might feel like there’s no point in going to one of those events as an inexperienced student, but I’ve been there, and it’s okay to feel that way.
My first meetup ever was the OpenCoffee Split. I decided to go with a friend, she’s also in IT and we were both blank slates, i.e. zero experience in the industry. When we arrived at the coffee place where the meetup was, we were immediately approached by the organizer. He introduced himself and guided us to the table with the attendees. After giving us a quick intro to the meetup he told us to relax, grab a coffee/beer, and just chat with whoever we wanted to.
“What do you mean just chat with whoever we want to?” my inner introvert kicked in. After a few minutes, people started approaching us randomly. What surprised us was that, even though we were inexperienced, there were all these people willing to help us and tell us their stories. They were actually impressed that we came to the meetup as students because it was really rare.
You can learn a lot at a meetup, but the best thing is the connections you make. Networking is a really important part of your path to becoming a developer. Every connection you make is a new door that might open up for you in the near future.
Besides meetups, you’ve also got conferences, events offering a wide range of industry knowledge. Many companies participate in these conferences with their speakers and booths where you can meet their employees. Among my favorites in Croatia are Dump Days and Shift. The first one targets primarily students and the other one professionals from all over the world. It’s a great opportunity to connect with industry specialists and exchange knowledge and ideas. A lot of companies are also hiring at conferences, so you might catch an internship before you even finish college and that’s a Pokemon you shouldn’t miss.
4. Should I apply for a dev job if I don’t have any experience?
You’d like to apply for a job but are convinced they won’t hire you because you have zero experience. The only true part of that sentence is that you don’t have experience. Companies understand that and they are aware of the time (and money) required for you to grow into a fully-fledged developer.
There are companies out there offering internships and other forms of education. One of the best places to be on the lookout is LinkedIn. Follow companies’ profiles and news, join technology-specific groups and use relevant hashtags (e.g. #php). An internship can be a great experience. You can learn a lot in a short period of time. No one expects you to stay or work there your whole life and you won’t owe anything to anyone if you do your best. Let me tell you my story.
It’s 2018, I'm a 3rd year computer science student and we just finished Object-Oriented Programming in the 2nd year. I loved it and was one of the top students in that class so I got an opportunity to become a student helper for the laboratory classes of that course. I love knowledge sharing so I applied for the position immediately.
There I met my first boss (neither of us knew he was gonna be my boss at the time). He was a student assistant teaching OOP. With every lecture we worked through, I loosened up and we started talking randomly about games, work, who’s doing what, etc. I explained that I have zero experience in the industry but I like to explore different technologies and that I’m currently studying frontend. He tells me that his company has an internal development team and that he’s actually the CTO there.
Wait… What?
As I showed my interest, we came to the conclusion that we should go for a coffee sometime so I can get a clearer picture of what they were doing and what I would be doing as a developer in the future. The best thing is, he was ready to prepare me for any company I wanted, but my mind was pretty much already set on working at his company. I asked for an internship and to my surprise, he agreed. That was in January, and my internship would start in July. Great! So I had 6 months to prepare. He gave me all the necessary learning materials and occasionally we would meet and go through the code I wrote.
Thinking back now, that code was a horror show, but regardless, it got me where I am today. Even though I’m not working there anymore, I’ll always be grateful for the guidance and mentorship I got.
Opportunities like this are always around the corner, as long as you keep hustling.
5. Should I add my unfinished projects to a dev job application?
Send it; it doesn’t have to be good, and most likely isn’t. But it shows your work ethics and interest in the field and companies appreciate that. As Linus Torvalds says: “Show me the code.” There’s no grade in college that will define your skills and capabilities as a developer later on, only the quality of the code you can produce.
As I mentioned before, the code I wrote at the beginning of my career was horrible. But remember, stick to writing it on your own, just reading other people’s code and copy-pasting is pretty much like taking out a loan. Sure, you got the cash now, but there’s a debt there and you’re gonna have to pay it sooner or later.
Development is an iterative process with its ups and downs. The ups are cool, but the downs are the key. The downs build your expertise. A wise man once told me the definition of an expert - a person who has made more mistakes than anyone else. In my case, my expertise came from all those times I crashed the production website when I was starting out. You can’t say you “really lived” until you see a blank page after your code has been deployed.
TL; DR: no code is perfect and there will always be (human) errors. It’s important to keep going, write code, sharpen your skills, and expand your knowledge. Send that application and include your code in there via GitHub, make it all public (unless you plan on monetizing it but you probably wouldn’t be reading this then), and share it when applying. Even if you don’t get that job, you will show proactivity and you might just get feedback on how to improve your code.
6. Sooo, what should I do next to become a developer?
It depends on where you’re at now.
If you’re not sure what field or technology you wanna work in, play around. Create whatever crazy number of projects necessary to play around with various technologies. Something will pop out, and you’re going to feel as if you’re in a state of flow when you’re working on it. It’s the best sign you’re on the right track.
If you know what you want to do but you’re not sure where to find it, it sounds like you’re in need of a meetup or a conference. Look up events in your area. Or find companies that could provide the type of work you’d like to do. Send an application and eat that frog.
Have doubts about that code you wrote? You don’t have to, no one expects you to be an expert at this point and it’s better to have any code than none. When you start a new game, you start at level 1, not 50.
Keep that in mind.
That’s all the time I have for today, young padawan. I hope I answered your questions. As our master Yoda would say, “Pass on what you have learned.”