I worked as a software developer for years before I finished my bachelor’s degree. I had some college education early on, but life and career kept moving, and I didn’t complete my B.S. in Information Technology until 2017. By that point I’d already been building software professionally for a long time.
I mention this because alot of career guides I’ve read makes it sound like the degree comes first and the career follows. Mine didn’t work that way. And I’ve hired and mentored developers whose paths looked nothing like mine, either. The honest answer to “how do I become a developer?” is more complicated than any single path.
Here’s what I’d actually tell someone considering this career in 2023.
You Don’t Need a Degree to Start (But It’s Worth Finishing)
I’m living proof that you can build a career in software development without a completed degree. I did it for years. But I’m also glad I went back and finished. Completing my B.S. in Information Technology gave me structured knowledge that filled gaps I’d been working around, and it opened the door to my PhD, which deepened my understanding of the field in ways I didn’t expect.
If I’m being honest, not having a degree earlier in my career did close some doors. Recruiters filtered me out. Certain companies wouldn’t consider me. That bothered me, but it also motivated me to finish.
Some of the strongest developers I’ve worked with came through bootcamps, self-study, or career changes from fields like teaching and finance. What they shared wasn’t a diploma. It was discipline and curiosity.
If you’re weighing your options:
- A degree in CS, IT, or software engineering gives you structured foundations. You’ll study concepts like data structures, algorithms, and systems design that are hard to pick up piecemeal on the job. It also opens doors at companies that still filter on education. If you can do it, I’d encourage it, but don’t let the absence of a degree stop you from starting your career.
- A coding bootcamp (12 to 16 weeks, full-time) gets you building real projects fast. The good ones teach you to learn, not just to code. Research placement rates and talk to graduates before committing.
- Self-teaching is absolutely viable, but it requires more self-discipline than most people expect. You need to build projects, not just watch tutorials. The Odin Project and freeCodeCamp are two well-regarded free paths.
Whichever path you pick, you have to build things. Nobody learns to code by reading about coding.
Pick a Language and Stick With It (For Now)
New developers spend too much time debating which language to learn first. I get it. The options are overwhelming.
My advice: pick one that lets you build something you can see working, and go deep enough to feel comfortable before branching out. If you’re interested in web development, JavaScript or TypeScript is the practical choice because it runs on both the front end and back end. If you’re drawn to data or automation, Python has a low barrier to entry and a massive community. If you want to work in enterprise software, C# with .NET gives you a professional ecosystem and strong tooling.
The specific language matters less than the habits you build while learning it. Can you read error messages without panicking? Can you break a problem into smaller problems? Can you search for answers effectively? Those skills transfer to any language.
What the Day-to-Day Actually Looks Like
Career guides tend to describe software development as “designing, building, testing, and maintaining software.” That’s technically accurate and completely unhelpful for someone trying to picture the work.
Here’s what a more typical day looks like in my experience:
You spend the morning in a stand-up meeting, then reviewing a pull request from a teammate. You notice a potential bug, leave a comment, and move on to your own work. You spend two hours trying to reproduce an issue a customer reported, realize the problem is in how the data is formatted before it reaches your code, and write a fix that takes twenty minutes. After lunch, you pair with a junior developer on a feature, explaining your thought process as you go. You end the day updating the team on your progress and planning tomorrow’s work.
Notice how much of that is reading, communicating, and investigating rather than writing new code from scratch. The job is problem-solving with code as your tool, not typing code all day.
The Skills That Actually Matter Early On
When I’m hiring junior developers, I look for a few things beyond technical ability:
The ability to learn in public. Can you ask a question without being embarrassed that you don’t know the answer? Can you say “I don’t understand” in a code review? The developers who grow fastest are the ones who are comfortable being wrong. I wrote more about this in my post on growth mindset.
Communication skills. You will spend more time explaining your work than writing it. To stakeholders, to teammates, to your future self in commit messages and documentation. Many new developers underestimate this. I’ve dedicated a whole post to the soft skills that make the difference.
Persistence through frustration. You will be stuck regularly. That’s not a sign you’re bad at this. It’s what the job is. The developers who succeed are the ones who stay curious when something breaks instead of shutting down.
The AI Question
I’d be dishonest if I wrote a career guide in 2023 and didn’t address AI tools like GitHub Copilot and ChatGPT.
My take: these tools are changing how developers work, but they aren’t replacing developers. They’re shifting the job toward higher-level problem definition, code review, and system design. That actually makes the fundamentals more important, not less. You need to understand what correct code looks like to evaluate what an AI generates. You need to understand architecture to know where a suggested solution fits or doesn’t.
Learn to use AI tools. But learn the fundamentals first, or you won’t be able to tell when the tools are wrong.
Where to Start
If I were starting over today, here’s the path I’d follow:
- Pick one language and one free curriculum. Commit to finishing it, not just starting it. Build the projects it assigns even when they feel tedious. That’s where the learning happens.
- Build something you actually care about. A tool for your hobby, a simple app that solves a personal annoyance, anything where you have real motivation to finish.
- Get your code in front of other people. Put projects on GitHub. Contribute to open source, even if it’s just fixing typos in documentation. The goal is getting comfortable with feedback.
- Find a community. Local meetups, Discord servers, Reddit communities like r/learnprogramming. Isolation is the biggest risk for self-taught developers.
- Apply before you feel ready. You will never feel ready. Apply anyway.
Resources
- The Odin Project (free, full-stack web development curriculum)
- freeCodeCamp (free, project-based courses with certifications)
- CS50 from Harvard (free, outstanding intro to computer science)
- What is the difference between Computer Science and Software Engineering? (my earlier post on this question)
- The Pragmatic Programmer by Hunt and Thomas (a career-long reference book)
- Apprenticeship Patterns by Hoover and Oshineye (specifically about growing as a new developer)


Leave a Reply