The title of what you are doing right now does not determine what you will do in the future. Nowadays you can switch careers, especially to programming.
@SamTalksTesla A PhD is definitely not required. All that matters is a deep understanding of AI & ability to implement NNs in a way that is actually useful (latter point is whatโs truly hard). Donโt care if you even graduated high school.21:57 PM - 02 Feb 2020
The truth that everybody knows or heard that programming is not badly paid at all, it is very well paid. For example, senior-level software engineers can earn much more than the average professionals in other industries.
It also tends to be more accessible in terms of remote working, without degree requirements, but with freelance opportunities and lucrative job perks.
However, software development is a vast field, and programming requires a level of dedication and discipline.
On top of that, if you decide to switch to a programming career, you need to figure out which IT-career path you want to pursue and be an expert at.
Technology changes really fast, but not the domain.
Don't be afraid to start at the beginning. Arm yourself with:
๐ Do research first
Try to understand what do programmers work on? Does it sound interesting and intriguing to dedicate your time and effort into this field?
Next, read stories and blog posts about how others have switched their career to programming. So you will get useful takeaways from the experience of others.
Reach out to software developers and ask them your questions. Maybe, your friend is a programmer, someone from your family? Connect with them and ask them about their work.
๐ Browse free courses to learn basics
The fastest way to get a good understanding of programming for the switcher is to learn the computer science basics first.
The internet today is an absolute wealth of tutorials, MOOCs, and educational videos on just about anything you would ever need or want to know. The most famous online platforms with a bunch of CS courses are
Coursera, Udemy, edX
In my opinion, CS50x is one of the best online courses of learning out there, speaking from my experience. It's the highest quality free material I have come across. And definitely, I recommend it to any beginner or switcher to start with.
Moreover, there are many prestigious and well-known universities such as MIT, Harvard, Berkeley, etc. They work collectively to provide high-quality material (lectures, labs, assignments). Beyond that, each course gives open access to an exceptional community, which will be present at all times to guide you and answer your questions.
Remember, you cannot learn just by observing - you need to jump in and engage deeply with the content. Whatever platform or class you take, you will get out of it only what you put in.
๐ฉโ๐ป๐จโ๐ป Consider joining Bootcamp
Assuming you have no programming experience and that you have a full-time job. In this case, I would highly recommend you enter a coding bootcamp.
There are many types of them. Either online or offline, part-time or full-time; however, the main disadvantage is that most of them are paid and pricey.
Depending on your lifestyle and work-life balance, you can find the most suitable bootcamp options for you here.
Before signing in and jumping into expensive bootcamp, I would suggest doing in-depth research, collect as much as possible information about tech stack and perspectives after graduation:
The organizational study process, curriculum, number of projects
The technology stack that will be taught during the bootcamp term
Job employment guarantees by the partner companies after successful completion
Participant's preparation for future job interviews
Support and job interview arrangements with tech companies or startups, etc.
Make sure that you have an acknowledgment about the geographical place you are going to work afterward. So you can learn technologies related to what is needed in that area by checking sites like LinkedIn and Indeed.
๐ผ Work on your own projects
Unfortunately, since you are switching careers, you will meet a lot of skepticism. People will doubt your skills, and a certificate from bootcamp will not be enough.
And the best way to bootstrap your programming skills and gain practical experience is to start working on your own side projects and put everything on Github.
Fortunately, you can attach links to all your accomplished projects to showcase your ability to deliver the working implementation and emphasize what a great programmer you are!
If you are looking at getting a job in programming, especially at the big companies or corporations, this is the most important to have a portfolio. Otherwise, without a diploma or solid experience, it will not be enough to get a job there unless you have a CS degree. It will be easier to find a job when you have projects.
The first 10 must-have projects to improve your resume and learn to program
๐ฅ Contribute to open-source
Another opportunity is to contribute to open-source projects.
Most of them these days are written by teams of professional or highly experienced amateurs to create an open version of existing commercial or non-profit software/digital products.
Create your account on GitHub, start looking around. Fork a project you are interested in contributing written in a language you already learned or that you are studying. Compile it, understand it, then try to solve some of the issues. There are always hot ๐ฅ or not issues, some chores to fix.
These following resources will help you to discover and find a project to contribute to GitHub Explore, Open Source Friday, CodeTriage, Contributor-ninja, First Contributions
๐ค Increase professional network
Nowadays, tech recruiters can get in touch with many developer candidates for hiring from their database. And usually, they are "hunting" on mid- or senior-level professionals.
But how can a beginner-switcher get a job in another way? โ Through a professional network.
One of the advantages of it is an opportunity to find connections among developers and from there to get more referrals to get your first job as a software developer.
Besides that, creating a safety net will not allow you to ever struggle with a job search anymore.
If you are up to build your efficient and powerful professional network in tech and want to know how to do that, then this Ultimate Professional Networking Cheat Sheet is the best guide for you to make it easy and smoothly.
๐ฉโ๐ซ๐จโ๐ซ Find mentor
Usually, software developers spend around 70% of their working time in googling and reading.
Basically, if you have any related question to ask about programming, you go to stack overflow to find the answer. Still, it can be not enough to help you apply the gained "answer" to your project and make it work how you supposed it has to.
Hence, you need a person who can approach to help you with the occurred problem. It would be best if you had a mentor.
A mentor will not do your work for you. They will give direction and help if you get stuck after trying to solve the problem yourself first.
You can get a programming mentor by going to meet-ups, participating in hackathons, or similar events in your local area.
If thereโs nothing near you, try searching for developer Slack channels or forums for your city/state/country. Check out some online platforms like MentorCruise that connect mentors and mentees. It can be not only useful but free too.
Ilona's Hint: For example, you started working on an open-source project, looking after fixing its minor bugs, and then get confused about how to do that. It's fine. All beginners are. Just remember that you can always approach the project maintainer for the advice. Perhaps, in a while, during the collaborative work, you can build up some respect and form a relationship that can naturally turn into a mentorship.
๐ฌ Conclusion
All in all, computer programming requires a lot of time and mental effort to get into. There are a lot of concepts to grasp and the knowledge you have to learn, and time you have to invest learning about how different components work and various problems can be solved.
In addition, you have to put in lots of effort practicing for long periods to gain the necessary experience to become proficient and professional to find a job according to your new role.
Then on top of that, you have to be able to stay engaged and motivated enough not to give up coding and keep pushing yourself hard while solving real-world problems that might be presented in your new job.
Programming takes a certain personality and style not to hate it. It's daily work that is intense in thought, complex, repetitive, and creative all at once. Passion is key in programming, if you have it, you'll make it ๐ฏ
Code your best life,
Cheers, Ilona Codes
Top comments (4)
This is all awesome!
I will also mention that I've been a mentor here on dev.to and to other aspiring devs. Happy to talk through what that career switch looks like.
Passion is key in programming, if you have it, you'll make it
So fundamental! Amen!
AI/men
Thanks for this! This was encouraging to read this morning.