From Non-CS to Software Developer: How I Did it and You Can To

From Non-CS to Software Developer: How I Did it and You Can To

The above picture is a coding bootcamp I attended (can you spot me?) 

Are you a non-computer science graduate but have a passion for software development? Well, you're not alone. Many people who didn't study computer science in college/university have gone on to have successful careers in the tech industry. In this article, I'm going to share my personal journey of how I transitioned from a non-CS background to becoming a software developer. I'll also provide some tips and advice for anyone looking to make the same transition. So, whether you're just starting to explore the idea or are already on your way, this article is for you. Let's dive in!

Introduction

The topic of non-computer science graduates becoming software developers is an increasingly popular one, as more and more people are discovering the exciting and rewarding career opportunities available in the tech industry. The traditional path to a career in software development is to study computer science in college and then enter the field, but this is not the only way. Many people who did not study computer science in college have successfully transitioned into the tech industry and become software developers. 

The good news is that there are many resources and tools available to help non-computer science graduates learn the skills they need to become software developers. From online courses and coding bootcamps to self-study and mentorship opportunities, the path to becoming a software developer is open to anyone who is willing to put in the effort.

This article is about my personal journey transitioning from a non-computer science background to becoming a software developer. I'll share my challenges, resources, and advice to help others looking to make the same transition. It's a real and honest account, meant to give you a sense of what it takes and to inspire you to pursue your own career in software development.

Author Background 

My background is in medical science, I studied Biomedical science in university and worked in healthcare before discovering my interest in software development. I was always fascinated by technology and had dabbled in coding as a hobby, but it wasn't until I read about that I realised I wanted to make a career out of it. I knew that transitioning into the tech industry would not be easy, but I was determined to make it happen.

To learn software development and gain experience, I took a multi-pronged approach. First, I started by building a strong foundation in programming concepts. I used online resources such as freeCodeCamp and Udemy to learn the basics of programming languages such as Javascript, Ruby and Python.

I also read books such as The Complete Software Developer's Career GuideJavaScript – The Definitive Guide, 7e: Master the World's Most-Used Programming Language and Clean Code: A Handbook of Agile Software Craftsmanship on software development and programming best practices to deepen my understanding.

Once I had a solid grasp of the basics, I began working on personal projects to apply my new knowledge and gain hands-on experience. I built small projects which helped me to understand how to build real-world applications.

I also participated in coding challenges and hackathons like which helped me to improve my problem-solving skills and work on projects with a tight deadline. I also took on a support role which paid me a few dollars per year so I could practice my coding skills. Lastly, I sought out mentorship opportunities where I could learn from more experienced developers (by the way I'm happy to provide mentorship for motivated individuals, just reach out to me here).

As I transitioned into software development, I faced several challenges and obstacles along the way. One of the biggest challenges I faced was feeling overwhelmed by the sheer amount of information and resources available. It was difficult to know where to start and what to focus on.

Another obstacle I faced was the lack of hands-on experience in my resume. I struggled to land an entry-level position because I didn’t have the same level of experience as other candidates who had studied computer science.

I also faced imposter syndrome, feeling like I wasn't qualified or good enough to be in the field. This was a constant battle and it took me a while to build my confidence as a software developer.

Additionally, I found it challenging to balance learning and working on personal projects while still working full-time. It was tough to find the time and energy to consistently work on building my skills and experience.

Overall, I encountered several obstacles and challenges, but I didn't give up, I pushed through and now I am a software developer.

Tips and advice for others looking to make the transition

1) Learn the basics and building a strong foundation in programming concepts

Software development languages are always evolving and changing so it's important not too caught up focusing on learning specific coding syntax but rather ensuring you have a solid understanding in foundational programming concepts. This way you will always be able to adapt should you need to learn a new programming language (which is inevitable in a software developers career).

Foundational concepts in programming include data types, control flow, algorithms, variables and functions, and object-oriented programming. Understanding these concepts is crucial for writing efficient and well-structured code, building logic and decision-making in your code, designing and implementing algorithms, and developing robust and scalable applications.

2) Resources and tools for learning software development (e.g. online courses, coding bootcamps, self-study) 

There are many resources and tools available for learning software development, some of the most popular ones include:

  1. Online courses: Websites like Codecademy, Khan Academy, Coursera, and Udemy offer a wide range of programming courses for beginners to advanced level. These courses cover a variety of programming languages and technologies, and are a great way to learn at your own pace.

  2. Coding Bootcamps: Coding bootcamps are intensive, short-term programs designed to teach students the skills they need to become a software developer in a short period of time. They can be a great option for those looking to make a career change quickly.

  3. Self-study: Many developers learn through self-study, by reading books, working through tutorials and experimenting with code. This approach can be highly effective and requires a lot of motivation and discipline.

  4. Developer Communities: Joining developer communities such as GitHub, Stack Overflow, and Reddit is a great way to connect with other developers, get answers to your questions, and share your knowledge.

  5. Open-source projects: Participating in open-source projects is an excellent way to learn from other developers, build a portfolio of work and gain real-world experience.

Overall, the key to learning software development is to find the resources and tools that work best for you, and to stay motivated, consistent and focused on your goals.

3) Networking and seeking mentorship opportunities

Networking and seeking mentorship opportunities are important steps for anyone looking to make the transition into software development. Building a professional network allows you to connect with other developers, learn about job openings, and gain insights into the industry. This can be done through attending meetups, joining online communities, and participating in hackathons or coding challenges.

Mentorship can also be a valuable resource for learning and growing as a developer. A mentor can provide guidance, advice, and support, as well as offer valuable insights and connections. This can be done through finding a mentor within your organization, attending networking events, or reaching out to experienced developers in your community.

Networking and mentorship opportunities not only help you to learn and grow as a developer but also help you to build your professional reputation and open doors to new opportunities.

4) How to market oneself as a non-computer science graduate in the software development industry

Marketing oneself as a non-computer science graduate in the software development industry can be challenging, but there are several ways to showcase your skills and experiences to potential employers.

Firstly, it's important to build a strong online presence, such as creating a portfolio website, youtube channel or blog to showcase your projects and skills. This allows potential employers to see the type of work you are capable of and your level of expertise. I personally created a youtube channel with coding tutorials and found it helped with networking and finding job opportunities. Contributing to open source projects is also a great way to demonstrate your interest in the field to potential employers.

Another important step is to document your learning journey and the steps you took to become a software developer. This can be in the form of a LinkedIn profile or a personal blog, which will demonstrate your dedication and passion for the field.

Lastly, it's important to be open-minded and flexible when it comes to job opportunities, as many non-traditional paths can lead to a career in software development. Be ready to take on internships, support roles, contract work or entry-level positions and be open to learning new technologies and skills - I worked as a technical support advisor for 11 months before landing my first software developer role.

5) Check out my book Software Engineering as a Career: How to Land a Programming Job without a Computer Science Degree, Habits of Successful Self-Taught Coders and Avoiding Programmer Burnout 

Yes, this is a selfish plug but my book goes into more detail about my journey from starting at zero working in healthcare to a software developer as well as as more nuanced topics like common interview questions, the dark side of working as a software developer and climbing the career ladder. Support the book and give it a 5 star rating - it is much appreciated! 

Conclusion

Making the transition to a career in software development can be challenging, especially for non-computer science graduates. But it's important to remember that a computer science degree is not the only path to becoming a software developer. With dedication, hard work, and the right resources and opportunities, anyone can learn the skills needed to succeed in this field.

It's also important to keep in mind that the software development industry is constantly evolving and growing, and there is a high demand for skilled developers regardless of their educational background. So don't be discouraged if you don't have a computer science degree, it's not a barrier to becoming a software developer.

Take inspiration from others who have made the transition and don't be afraid to take risks and pursue your goals. Remember, it's never too late to learn new things and to start a new career. So don't let your educational background hold you back, instead, embrace the opportunities to learn and grow as a developer. With persistence and determination, you can achieve your dreams of becoming a software developer.

P.s. If you have any questions or just want to chat about your own experiences, feel free to contact me (free of charge).