What do I need to do to become a software developer?
I'm a high school junior who has been passionate about technology in general, not just coding, since I was around the age of 6 or 7 years old. Unfortunately, my school doesn't offer any career-related classes but a short intro to computer science, so I'm not sure what steps I need to take to become a software developer or get started in the tech field. What kind of degree or training is required to enter the tech field, and what are some alternative ways to gain the skills and knowledge necessary to succeed? What are the different paths to becoming a software developer, and what kind of roles and/or responsibilities can I expect in this field? Any advice from professionals or other enthusiasts would be greatly appreciated.
8 answers
Derek’s Answer
1) Embrace self-study: Online resources and tutorials abound, making it easier than ever to learn coding and various tech skills at your own pace - and many of them are totally free! The wealth of knowledge at your fingertips is truly empowering.
2) Consider bootcamps: Intensive training programs like coding bootcamps can help you gain the skills needed to kickstart a career in tech. These immersive, fast-paced programs are designed to teach you valuable skills quickly, so you can apply them in the workforce in no time.
3) Engage in hands-on projects: Working on your own projects, or participating in open-source communities, is a fantastic way to build your portfolio and showcase your skillset. Plus, it demonstrates to future employers that you're proactive, passionate, and always seeking out ways to put your abilities to good use.
So regardless of your academic background, there's a place for you in the tech industry. With dedication and resourcefulness, you can forge your own path to success in this exciting and limitless field.
Stuart’s Answer
I understand that as a new graduate, you might not have loads of practical experience yet (perhaps an internship or two, but let's be real, most school assignments only help us grasp the concepts without much real-world application). Don't worry, that's totally fine when you're applying for a job!
If you don't have a computer science degree, all you need to do is showcase your computer knowledge, meaning you should be able to discuss any practical applications you've worked on. Luckily, there are plenty of online courses, training classes, and videos that can help you figure out your preferred focus. Dive into network videos, hands-on coding, cloud, iOS, and so on. Remember, computer science is a super broad field with tons of exciting career paths waiting for you. 😊
Hope this helps! Good luck!
Benjamin’s Answer
My high school, like yours, had few formal computer science opportunities (none, to be exact). The internet was young at the time, so I spent a lot of time with books. I also sought out mentors—asking programming questions of neighbors and family friends. During high school I worked on many hobby projects for fun. Through these projects I learned an intuition for programming and a bias for action that served me well when I got to university.
Software development is an industry with many onramps, some formal and some informal. The best formula from what I've seen is a combination of a formal degree and passionate personal pursuit of hobby projects. Today, opportunities abound for learning via videos and blog articles. It can be hard to learn complex computer science concepts this way, but these options work great for learning how to do your own hands-on projects. Getting comfortable rolling up your sleeves and figuring out how to make cool things will put you in a position to leverage the advanced knowledge you learn in class.
It was at university that I was able to dig deeply into computer science. I strongly suggest doing whatever it takes to get into a good program at a university that is affordable for you. Many of my most successful peers studied at public universities and junior colleges. I know senior directors and VPs at top tech companies with degrees from very ordinary schools. In your selection process, try to find out what each school does to support internships, as these are very valuable for gaining on-the-job experience and networking.
Wishing you the very best in your studies and personal projects, Josue!
Doug’s Answer
Looking back at what would have helped me in my information technology education, I wish I had taken the time to get a better grasp of programming fundamentals. In addition to an understanding of data types, conditionals and loops, get an understanding of data structures, algorithms, SQL, and object-oriented programming. Some of this understanding can come from sampling different computer languages and seeing how the syntax differs to address the same concepts.
You also asked about expected roles and responsibilities in the field of software development. I can give you a perspective from corporate IT departments. In addition to evidence of technical aptitude, companies are also looking for the ability to learn and adapt to new technologies, the ability to work in a team, and communication skills. I’ve done a lot of interviewing and hiring of developers and other technical resources in corporate settings, and I am frequently surprised by the number of job applicants who discounted teamwork and communication skills and assumed their deep technical experience was all they needed. There are some niches and specialized roles in IT infrastructure and security that don’t require as much working in a team setting. But the vast majority of developers, DBAs, Network Admins, analysts, etc. work as part of a team. The success of any team depends on everyone working together.
Marty’s Answer
Higher Education courses (University, Community College, etc):
- Any courses that provide access to learning programming languages or tech concepts are extremely useful. Even if the course material is vague or narrow, it will give you a good framework for how to learn skills that are relevant to a career in tech.
- CS degrees have an obvious connection to the tech industry, but are not required to start your career in tech. I personally have a degree in Geology and know other software engineers that have degrees in English, Print setting, and History and several people that have started successful careers without a college degree!
Alternative paths:
- Coding bootcamps! After deciding that I wanted to start a career in tech, I did research on some local and national coding bootcamps to see what worked best for me. I think these programs are an amazing way to break into the tech scene as it doesn't require a multi-year investment and is much cheaper than a 4 year degree. Additionally all of your bootcamp coursework will be focused on creating software instead of learning CS theory which is harder to apply to your everyday work as an engineer.
- Udemy: Online coding courses are always on sale through Udemy. This is a great and affordable way to start learning a new language or skill that will be helpful for entering the tech industry. Many of the courses will encourage you to create projects that look great on your resume/portfolio.
- Coding challenges: CodeWars and LeetCode are 2 sites that provide many different coding challenges that help you train up and show off your skills. Generally they will provide solutions once you have answered a problem, so you can learn how other people approached the same problem!
Reed’s Answer
My school didn't have many courses or career paths when I began coding in middle school. But I've found a lot of success in this career through my own passionate explorations outside of school.
In my experience, what it takes to become a software developer is writing software! My best advice is to find a project that resonates with you. Something you'd like to see in the world, or something you personally would love to be skilled at creating. Then, try to make that project a reality. When you do that, you will realize you're missing knowledge and skills. But your question at that point will be more specific. Instead of "how do I make an app that sings people to sleep?" your question will be more specific, like "how do I get started making an app for an Android phone?"
When you have a more specific question, you can reach out to more specific resources. You can find an internet forum for people who are working on exactly that. You can search your question online for tutorials which are specific steps to get over just that hump. Or you might find a course at a local college which teaches exactly that! Of course you will run into road blocks, but you can always frame those road blocks as specific questions, like "How do I fix this kind of bug in my project?" Repeat the cycle of asking questions, getting answers, and applying what you learn to your project.
But I think you're trying to connect the dots about the relationship between a real-life career and solo project work, solo study online, or courses in more formal education like college or bootcamps.
You can apply for a job right now (or you might need to wait a few years to be of legal working age!). And when you apply for that job, you will supply a resume. On that resume, you can talk about any technology or software projects you've worked on as well as any formal education. If you get an interview, you can show them the work you've done, and talk about the challenges you've had to overcome (see road blocks above).
Interviewers are looking to answer the question, "what problems can this person solve for our team?" Everyone interviewing for a job at any level should have an answer to that question. For example, I build web applications. I have evidence of web applications I've built. When the interviewer asks me questions about web applications, I have really good answers because of my experience doing real-world jobs as well as solo projects.
The answer to "what do I need to get into this career" is simple: You need to apply to jobs, get an interview, and have good answers for the interviewer. In my view personal projects are a great way to get there, but there are many paths!
Pan’s Answer
It's great to hear that you've already found your passion for technology at such a young age.
To become a software developer, a degree in computer science isn't always necessary, but it definitely helps. There are other ways to get there, such as attending coding bootcamps, taking online courses and tutorials, and building a strong portfolio of personal projects. My advice would be to start by learning the basics of programming, such as data structures and algorithms. You can try practicing your coding skills by building small projects on your own or working with others. Attending local meetups is also a great way to get to know other developers, and you might want to consider finding a mentor who can guide you through the learning process. Most importantly, stay curious and passionate about tech, and never stop learning.
Best of luck on your journey!