Launching Your Developer Career While Still in School
How you can accelerate your learning and your career as a software developer
This story was posted to my blog at https://brockheriondev.com/launching-your-developer-career-while-still-in-school/
I consider myself very lucky to be in the position that I am in. When I graduate school, I will be graduating with not only a Bachelor in Computer Science and minor in Mathematics, but with my developer career in full swing.
Now, you might be thinking to yourself that I am some kind of prodigy programmer. The truth is, I’m really just an okay developer. I wasn’t writing websites at ten years old. Nor am I some superhuman who can learn things in an instant. I’m an A/B student in school. I barely got by my first computer science course with a B and I managed to skate by the A.P. exam with a three. I am not outstanding in school by any stretch of the imagination.
But here’s the thing; You don’t need to be in order to be a successful software developer. Computer science is still a baby in the world of academia. There is so much we are still figuring out and learning. Unfortunately, this means school courses and curriculums become outdated very quickly. As technology continues to advance at a breakneck pace, its college gets left behind. Those that this rapid advancement hurts the most are the students, as they are now entering a workforce with little to no practical experience.
With all that out of the way, I would like to share how to get out of this predicament and start working with real, hands-on experience. I’m not going to tell you how to get a job, but rather, tell you the process that will set you up for success.
By the time you are in college, you probably think have a good idea of how to learn. You show up, the teacher talks, you do a lab or take notes, and you go home. There are all these fancy notetaking techniques you can use. You can make flashcards to learn help you memorize things. This is almost useless to you as a developer.
You need to learn how to be curious. As developers, we are so lucky to have access to the tools and resources we do. We have a world of information at our fingertips. We have websites like StackOverflow for finding help on programming problems. There are countless blogs and forums for learning how to implement a design pattern or optimize code or deploy an app. It’s important that you know that you don’t need to know everything.
What do you think will take you further, Cornell notes on how to reverse a Linked List or being able to navigate a StackOverflow post? Learn how to use what’s available to you. Don’t be afraid to ask questions or ask for help if you don’t understand something. It is absolutely okay to look things up and to want to learn more. School tends to make learning a chore. It, to some extent, punishes wrong answers. In software development, being wrong is what leads to learning.
When you open yourself up and let yourself be curious, you will start loving learning. Being curious is absolutely crucial to your developer career.
Learn Something New
Once you hit the point where learning is fun again, the next thing you need to do is focus it on something. My recommendation is to pick a language or technology that is not taught in school. Find a Udemy course or up a book on it. School tends to push Java and C++ on you. If you like them, great! There’s nothing wrong with continuing on in those languages.
When I began this journey, I was initially trying to build games in Unity and building engines from scratch in Java. And after a year of trying, I simply didn’t enjoy that industry. Then I switched to web development and found I really enjoyed being full-stack. I learned the languages and tools needed for basic development and began learning the industry of my area. I figured out I needed to learn .NET and React, as well as Azure and AWS for where I am at.
You don’t need to force yourself to continue in something you dislike. Take this opportunity to learn what you enjoy coding.
Start Creating things
Now that you have found what you enjoy doing, you need to do something with it. Start build side projects for yourself and get comfortable in the tooling. Not only that, but learn how to finish a project. It doesn’t need to be perfect or follow every single best practice. Your code will be messy, it will have bugs, and that’s fine! Do not focus on making it perfect, focus on making it functional.
You also do not want to do projects like To-Do lists. Those are great for learning a language, but they really don’t teach process. You should instead build an app that will help master not only language but the process as well. You see, school is great for teaching syntax and building simple To-Do apps, but do you know how to connect to a SQL database and query it? How about using an ORM to map the relationships to your code. Have you had to implement a RESTful API with authentication and authorization?
It’s these things that will set you apart from the rest of the crowd. If you can show that you can link a backend to a database and a frontend to a backend, you are in great shape.
If you want to really go above and beyond, you can store your source code in GitHub or GitLab, or some kind of repository. Add unit tests to your app to run on push. Try to containerize your app. There are so, so many things that you can do that will set you apart from other students or new grads. This, again, is no fault to us the students. The failure lies with schools not being able to adapt to the constantly growing and changing landscape that is software development.
Take Your Knowledge and be Awesome
At this point, you’ve gone through a Udemy course and built a project or two. You are comfortable with source control and testing, and possibly even some cloud knowledge in something like AWS or Azure.
There are a ton of avenues for you now. You can start freelancing. That’s how I began my journey into the world of professional development. Freelancing teaches you a ton of skills that school and even some jobs drop the ball in teaching you. You learn how to take requirements and turn them into a usable product, and how to communicate with other people. It’s a fantastic way to learn a lot of soft skills that will help propel you even further in your career.
Another avenue you could take is going and applying for jobs. I personally did not do this until after I got comfortable with what I was doing as a freelancer, but it is certainly something you can do as well. If you’re concerned about time, internships are an option too. My one gripe with them is they will eventually end. Having a part-time role somewhere will teach you so much more and give you way more in the long run. The things that I learned while working I are things that I would not have been able to during the normal length of an internship.
The final, and arguably most difficult path, is to just build and launch your own product or service. While I do think it’s completely doable to be in school and work as a junior developer, this path might end up overwhelming you. Planning, building, deploying, and maintaining a product is no easy task, especially while you are trying to graduate. That being said, it is certainly not impossible. It just requires much more of a time commitment than working or freelancing.
Whatever path you choose, you are in a great position to begin your developer career!
I hope I was able to provide some guidance on how to get your career started in software development. Unfortunately, schools fall more and more behind in preparing us for work in this field. They teach theory and language, not how to build software products. The responsibility for our success falls more on our shoulders.
Don’t be afraid to try things and experiment with languages or frameworks. Be curious, step outside your comfort zone. Making mistakes is good for you and will only benefit you in the long term. Then, take what you have learned and what you know and create things with it. Build an app, take up freelancing. You can absolutely do these things as a student! Sure, it requires a time commitment, but the payoff is well worth it.
Now, I want you to go and be awesome!