7 Tips for Starting a Career in Software Development
I graduated from Virginia Tech in December 2018 with a bachelor’s degree in Computer Engineering. In January 2019, I started my career as a full-time software developer. During my tenure at Virginia Tech, I learned how to make mobile applications, build robots, and write software as a team. I felt very prepared for the professional world after graduating. Yet, there are a few things I wish I had known to be more prepared for my full-time position. I compiled a list of 7 tips that would have helped me as an entry-level software developer. You can enjoy these tips as I would have as a new graduate.
2. Project Management
Project management is something that everyone learns through experience. Although this may be the best way to learn, it surprised me that not one of my courses talked about agile, development stages, CI/CD solutions, or anything else that falls under this category. I had a general understanding of the topic going into my full-time job, but I still believe it would be beneficial to have it integrated into the college curriculum. I encourage any current college student to implement it into group projects, as it would restrict a lot of communicational pain points associated with tracking progress. It is a digestible way to divide large projects into individual tasks that can be assigned to team members. This point alone makes it worth looking into before starting full time.
When I mention finances in this blog post, I am speaking about how the money from your paycheck moves around. This encapsulates taxes, insurance, 401k, and any other benefits your company might provide. When starting your first job, seeing percentages of your paycheck being ferried away to accounts and organizations you don’t understand is confusing. With this in mind, I advise recent graduates to diligently research their state’s tax policies, 401k’s, and employee benefit options. A foundational understanding of these is a key factor in reducing stress while going through your benefits. As for students still in college, see if your school or university offers a crash course or lecture on this subject. Ideally, colleges would offer something like an online, one-credit course to cover this topic. But if not, it will come down to research it on your own, which will pay off down the road.
4. Take advantage of what the surrounding community offers
This is something that you probably heard a lot while at school, I know I did. Take advantage of the things your school has to offer. Colleges and universities constantly have club meetings, guest lecturers, networking events, and much more throughout the semester. I took for granted how much some of these events impacted me and wished I went to more of them while at school. They are the most efficient way to find like-minded people with similar interests as you. Through them, you can meet amazing people and expand your social group. Out of college, this doesn’t change either, especially when moving to a new city to start your career.
I encourage people who just graduated to move to urban areas where there are many other young professionals. This makes it easier to meet people in your demographic who live very close. Just like colleges, cities host a variety of events and meet-ups throughout the year where you can meet incredible people which only improves your quality of life outside of work.
5. There is a learning curve that everyone has to get through
Getting dropped into any new environment can intimidate, especially when coming from a previously comfortable one, such as the routine of college. That being said, I think everyone somewhat knows that the first week of their new job will be very confusing. You’re expected to immediately catch up to speed with many processes, people and their positions, and even learn where the water fountains are.
However, what recent graduates might not know of is that the feeling of being the “new guy” can take a few weeks or even a few months to wear off. The good news is that eventually everyone sinks into their role and that feeling slowly tapers off. The key is to remain patient and focus on improving. All the other employees were once the “new-guy,” and know how it feels.
6. Refresh Development Fundamentals
Something that I believe is incredibly helpful for new hire developers is to review some fundamentals before starting. Many topics fall under the fundamental category, but the most important ones are git, the command line, and project architecture. Being a wizard on the command line can significantly increase your efficiency, and you can flex your cool tips and tricks to other developers around you.
Refreshing your knowledge of gut is never a bad idea. Make sure you have a solid understanding of committing, pushing, pulling, cloning, forking, merging, making pull requests, and navigating git before your first day. This way that learning curve won’t bog you down while on the job. Last, project architecture is something I felt they didn’t teach much at university. Understanding the structure that the projects you will work on use are essential to working efficiently in a code base. Examples of this are MVC, clean architecture, containerization architectures, and many more.
Having a strong understanding of various architectures will help you be able to understand the code base faster and spot things that could be more efficient.
7. Keep in mind process improvement
All companies have a process for getting code into production, scheduling meetings, on-boarding new employees, and everything else they do. As an employee, observe these processes and look for areas they can improve. Not everything is perfect or necessarily the best way to do something. If you see how something could improve, speak to someone in charge. Improving processes makes everyone’s life at the company easier and managers and executives value your input.
Feeling more prepared for the real world? Check out our open positions! We might be just what you’re looking for.
Wes Hirsheimer is an Android Mobile Application Developer and Software Developer. Wes has a Bachelor of Science in Computer Engineering from Virginia Tech, and his primary focus is Android and Python development. In his free time, he works on IoT projects for his house, and enjoys playing guitar in a band with his friends. Wes is driven, self-motivated, and embraces new technology. He is passionate about working with cutting edge technologies, and strives to better himself as a developer, and the development community as a whole.