How Successful Developers Started Their Careers

There is no roadmap to being a software developer. Everyone has their own unique path.

Some people went to college. Some went to bootcamps. Some didn't do either.

Some people loved programming at first sight. Some people gave up on it only to pick it up again years later.

Some people started young. Some people started in adulthood.

Below are a collection of stories of how real life developers started their successful careers. Many have provided contact info if you wish to reach out with questions.

Hopefully their stories will help you understand that there's no mold you have to fit in to have a successful career as a software developer. All you need is to want to be a developer.

Beekey Cheung

I kind of fell into development. I took a couple CS courses in high school, hated them, and barely passed. To be honest I probably shouldn't have passed, but my teachers didn't like failing students.

I applied to seven different colleges for seven different majors, but decided to go to the one I was accepted to for programming. I feel like I just threw darts and the dart that hit was programming.

I almost failed out of CS 101 because I still didn't understand anything being taught.

2 weeks before finals, I got together with a friend who was also failing and we just studied together for 3 hours. In those 3 hours, somehow everything clicked. I finally understood data types. I finally understood references. I finally understood the call stack. Aced the final and managed to squeak out a B instead of failing the class.

I'd like to say that changed everything, but I stagnated again soon after. It took 2 more programming courses, but I had another moment where everything clicked and I understood design patterns and how to analyze when a pattern was useful vs when it was harmful.

A year later, I spent an internship fixing race conditions for months (other people's race conditions). That was another period of not knowing what I was doing until something clicked and I got good at it.

Three years into my career in my second job, I struggled learning how to get systems to scale. Things clicked again and I design and built a system that could handle going from 0 to 1 million users overnight (we had an IP license to help get that growth).

I've come to accept that learning in this field isn't a smooth slope. It's a series of plateaus and banging your head against the wall until something clicks. I've lost count of how many of those plateaus I've had to overcome over my career. It's been a great time despite some of the hiccups and I have a long list of accomplishments I'm proud of. I went from growing up poor and always worrying about money to not really worrying about ever getting laid off (I was recently laid off and had an offer in 4 days).

I'm glad I decided to be stubborn and overcome the early hurdles rather than just give up. I couldn't ask for a better career.
You can reach me at: Personal Website LinkedIn Twitter Polywork

Aaron Smittle

When I was getting ready to start my freshman year of high school, there was a meeting to talk about the various electives we could take. The one that caught my eye was Game Programming. The teacher was the baseball coach, who I already knew, so I figured that would be a fun class for me. In order to take Game Programming, I had to start with Intro to C++. I hadn’t really had much interest in computers, but by the end of that one semester I was hooked. I ended up taking several more classes through high school.

As I got ready for college, I made the decision pretty early that I wanted to make software a career. I ended up applying to just one school, a state school with an engineering focus, with computer science as my major. For the first two years of college, I pretty much just coasted on what I’d learned in high school, and honestly it was pretty boring. 

Then halfway through college I got an internship, and really got my first taste of what working in software could be like. I spent that summer learning a ton and building out a data analysis toolchain that had the potential to influence multimillion dollar decisions. Getting back to school after that I had a renewed energy and was ready to get through the year and start working again. The next year I spent the entire summer writing automated tests for code someone else wrote with no understanding of what it was even supposed to do. 

At the start of my final year of college, I got a call from the company I’d interned with twice telling me that they did not intend to offer me a position after I graduated. I went into the career fair that year looking for any job at all just to have something lined up for after graduation. I ended up taking the first offer I got and stayed at that job for 4 years.

Eventually I left for another job, then left that one after a few months, because I realized the thing that I really enjoyed wasn’t being good at writing code, it was learning new skills and applying them to build something new. Looking back on my two internships, I loved every minute of that first summer, learning a new language and using it to create something useful, and I was miserable the second summer when I only wrote tests for code other people had written. 

And I think software is one of those careers where that constant learning is just a given. I’m always going to have to keep learning new things and applying them. It’s a lot of work, but it beats doing the same thing every day and being bored.
You can reach me at: LinkedIn

Michael Camden

From an early age I enjoyed spending my time playing games on the family computer. Some of my earliest memories are of playing Commander Keen, Curse of Monkey Island and other Lucas Arts games with my Grandma. 

When I was in middle school I started getting into RPGs, like Final Fantasy 3, and Chrono Trigger on the SNES. Eventually I found RPG Maker, which was a game engine that let you build SNES-like RPGs in. It was pretty neat, it had predefined sprites, tile triggers, dialog windows... everything you would need to build a game. I built a few short games, and eventually started looking around the web for games using the same engine. 

That search actually led me to a forum where folks were sharing games they built using QBasic. The community had an unwritten rule to post both the compiled game, as well as the source code. This was an incredible treasure to me, being able to see the code made me feel like I was viewing the secrets of the universe. You have to understand this was the mid 1990s, before Github, before open source had really taken off as a standard practice. To be able to see the raw source code, and to learn from it was a rare find. QBasic was a great language to start off from, it let you do just enough stuff to be interesting without forcing you to do lots of memory management. For example, you could render some pixels in various colors on the screen, print text to the terminal, and even open up a COM port to talk to your dial-up modem. Even now I remember that `SCREEN 13` was my favorite, because it had 256 colors accessible from the palette! I built several small games, and contributed to a bunch of libraries the community shared. 

As the "web" started growing in popularity I started building websites for myself, I learned by doing and by reading the source code of websites I liked. When I turned 15, I had a summer job at my local ISP doing phone support and small repairs. One day a customer came in to drop off their computer and asked me if I built websites, he was looking for someone to build a website to market his business. That contract led me to other small businesses in the area, and nearly two decades later I'm still building websites.
You can reach me at: LinkedIn

Alfonsina Lizardo

My name is Alfonsina Lizardo, I’m a physician who decided to change careers to software development. I’m Venezuelan but I live in Chile right now and I currently have 3+ years of experience as a frontend web developer.

Ever since I was a child I wanted to be a doctor, I don’t really remember the reason behind that though, but I also always loved technology, in the end I decided to study medicine, at the time everyone told me that it was a difficult career because I was going to have to study all my life given the rapid advancements in medical technology, I didn’t really mind about studying, I love to study so that didn’t seem like a good reason not to go into medicine.

I had no issue studying the theory but when it came to the practice, once I finished my career, I realized that I didn’t like my choice so much, the weight of the responsibility that people’s lives depended on me crashed onto me, that along with the long working hours, sometimes more than 24 hours straight, made me feel anxious and stressed all the time. That’s when I decided I needed a change.

At first, I didn’t know where to start, I felt that medicine wasn’t for me, I didn’t want to be anxious and stressed for the rest of my life. Since I’ve always liked technology, I started looking at programming as a possibility, I started reading a book in my free time that supposedly taught you the basics, but I didn’t understand anything, I think the book was about C++. After a few weeks I gave up on the book, and since I didn’t understand anything, I thought that maybe programming wasn’t for me.

Some months passed and I met a guy, who is now my husband, he was studying to become a computer technician and they were teaching him some web development in the process, which he wasn’t so good at, so I told him that I could help him study, even though I didn’t know anything about programming but I saw this as an opportunity to give it another chance. I started researching HTML and CSS to help him, so I studied it myself and then explained it to him, just the basics of course, but that was enough for him to pass, and it was the start of a renewed interest for me.

I started to look for free courses on the internet, I was still in Venezuela and due to the complicated economic situation there I really didn’t have the money to pay for a course, but I was lucky to grab a free one on Udemy about HTML, CSS and JavaScript. I understood HTML and CSS and after studying that part of the course I was able to build a really simple site from scratch, kind of a portfolio, I was over the moon with it! Then I started studying JavaScript and that’s when I hit a wall again, I understood the basics, variables, conditionals, loops, but I didn’t understand how to use that on a site, and I didn’t know anyone to whom I could ask about it, my now husband doesn’t like programming so much, he likes the hardware part better.

Some time passed, I had to put a pause on my learning because my husband (boyfriend at the time) and I, decided to leave Venezuela, due to the difficult situation there, and we decided to come to Chile since I had some family here. After a few months, when we were a little more economically stable, I faced a choice, either pay to do the exam that allowed me to work as a doctor here or pay the same amount for a coding bootcamp and start doing what I liked, I chose the latest.

The bootcamp that I could afford at the time taught me HTML, CSS, some JS and jQuery and PHP for WordPress development; it wasn’t the ideal bootcamp, but it was a start. It was great, I was finally learning at a constant pace and the most important part, at least for me, is that I met a lot of people to whom I could ask questions If I didn’t understand something. Right before finishing that bootcamp, I applied to a job offer that was posted on the slack group of the academy where I was doing the bootcamp, I didn’t have much hope, but my husband motivated me to apply, in the end, the worst that could happen was that I didn’t get the job. I went to the interview and I got the job! I was so excited! The payment was not the best at first, I was even making less than in my previous job, but I didn’t care, finally I was going to work doing something that I loved!

Later I learned that having a career, even though it didn’t have anything to do with development, turned out to be an advantage, some employers will see that you had the discipline to finish a career and now you’re having the discipline to study something else, and they’ll probably think, if you have the skills they’re seeking of course, that this will make you a good addition to the team.

My development journey didn’t stop there though, I finished the bootcamp, and since I didn’t learn as much JS as I wanted there, then I started studying it on my own with a course on Udemy, and putting it into practice every time I could on my job. Now I knew people to whom I could ask my doubts, for example my work colleagues and some other people I met by joining a developer Facebook group in Chile. After feeling confident enough with JS, I started looking for my next step and I read about JS frameworks: React, Angular and Vue, to be specific. After some research I decided I wanted to learn React, mainly because I read that it was the most difficult one to learn, so I thought, if I learn the most difficult one first then if I want to learn the other 2 later, it will be easier for me (and it was, I later tried learning the basics of Vue and it was easy to understand for me).

To learn React I decided to pay for a mini bootcamp again, only 2 months, because I felt that bootcamps forced me to focus, since I had to deliver homework and projects. After those 2 months I was able to build simple applications with React. By that time (2020) the pandemic was at its peak, and it was hitting our economy at home, since I already had a year of experience, I started looking for another job, also because I wanted to start getting experience working with React and I wasn’t going to get that where I was. Again, I applied to a job opening that was posted on the slack group of the academy where I did my first bootcamp, for the first time I faced some technical tests and a technical interview, I was super nervous! But I was able to answer enough things correctly and I got a great offer! Twice what I made at my previous job and with better benefits, I was so excited!

I’ve been working at that same company for the last 2 years, but I haven’t stopped studying. After feeling confident enough with building frontend applications, I then wanted to learn backend development, so I paid for yet another bootcamp to learn backend development with Node and Express, this was a longer bootcamp, 6 months, but I learned A LOT, I can now build full stack web applications using MERN. Recently, I’ve been studying some cloud development using GCP, since I would love to get the Cloud Developer certification in the future, and I’m also studying game development with Unreal Engine as a hobby in my free time (I love videogames!).

And that’s my story so far, I’ve met a lot of great developers, some of them have become friends, and I’ve never felt happier with my decision in changing careers, I love my job now, and feel happy with what I do. Medicine was definitely not for me but I don’t regret studying it either, I also met great friends there and having that career has also helped me advance with my new career. I plan to keep on studying of course and improving my skills since I’d love to find a job abroad in the future and move again to another country.

If you’re currently in a similar situation of wanting to change careers and my story resonated with you, feel free to contact me if you think I can help you with anything 😊
You can reach me at: Personal Website LinkedIn

Dayne Stevens

It feels like a long story sometimes.
I went to school for graphic design actually. 
I formed and interest in programming after an Adobe Flash class I had in 2014 shortly after failing my first Web Design class due to stretching myself incredibly thin.
The interactivity of what I was able to make in flash got me hooked. So then I tried to learn more, specifically JavaScript but for nearly 3 years of on and off teaching myself I didn't maintain the motivation or feel like I was getting anywhere. I was really overwhelmed by the JS ecosystem even back then. It was a lot to keep track of. But then I started a job in tech support for an international education company. I ended up becoming a team lead with a lot of repetitive tasks.
At that time I decided to give it another go, making small desktop apps with Java and small tools with vanilla JS that helped me in my day to day. That started to help me really retain the info I was learning. Eventually I expressed to my boss I was interested in front end dev work, I was put in contact with the director of IT, he was a little confused on what I wanted to do as I was asking to job shadow a front end dev after I had shown him some of my small projects so that I could get a feel if I actually wanted to do that for a living. A few months later after hearing nothing more about it he reached out, said they had an open Junior Back End dev position using C# .Net. So I applied and then gave myself a month long crash course in it, remaking my small projects to learn more. I ended up needing to do a take-home aptitude test, and I ended up passing it so they gave me an interview. I was brutality honest about everything I didn't know but always assured them I could learn anything I needed to, and they decided to give me the position.
I actually left development for about 6 months due to burnout but ended up coming back to it after realizing it was the workplace that burned me out, not development. 
Over all I think I decided to do this because I love making things, I'm an artist, but I also like numbers and making tasks easier. 
You can reach me at: Polywork LinkedIn

Rob La Rocca

In junior year of high school, I was able to take a math elective and chose intro to C++. I was always interested in the hardware side of things, never really knew what programming was until I took that class. After that class, I instantly found a love for programming. At the time, I was playing CS 1.6, and wanted to build a website for my clan. I purchased a PHP/MySQL For Dummies book. From there I built a very, very feature rich website that I loved. Players could post their play schedules, sign up for scrimmages, make full profiles, etc.. It looked awful and I'm sure the code was the worst thing imaginable but it worked and I loved it. 

Next was college. I got into RIT, Steven's, RPI, and SUNY Alfred. Alfred was only there because my dad dragged me to a college fair to apply to at least one more school. At the time I was interested in infosec because that is what all the media was talking about. Alfred was the first college in alphabetical order that offered an infosec major. So I applied there and went back home to play WoW. When choosing between the 4 schools, my father told me he could pay out-of-pocket for Alfred since it was state, but the others I would need loans, so I went to Alfred. Alfred couldn't compare to RIT, Steven's, or RPI right? True, but not really, I have worked at the same level with graduates from all 3 schools. 

The big thing that helped me at Alfred was when I talked to my professor to try to test out of an Intro to IT course where they were teaching students Microsoft office and HTML. When I proved I had knowledge of PHP/MySQL, he actually already had two students working on a special project because they were in a similar situation. This is where I met Brett Langdon, who would actually go on to get me my first job out of college. Brett knew a lot more than me and started teaching me higher level concepts such as frameworks and APIs. I think the big ones back then were Codeigniter and CakePHP. After working on random small projects but learning so much about programming in that class, I changed my major to software development. 

I always was a step or two ahead of my classes. So I was always looking for personal projects to work on. I put together a couple of websites for fun, made some mods for minecraft for my friends and I to use (one actually had over 100k downloads, still probably the coolest I've felt in my life), learned how to make an android app and used my friends phone to test because I didn't have a smartphone, learned how to make video games with unity and made a bunch of stupid games, eventually formed the video game dev club with some 3d modelers where we tried to build a game together and I actually taught other students how to program in Unity. Not trying to gloat about my college years, it's just I think the moral of my story is that yes an education is important, but you're not going to learn everything in the classroom. Whatever curriculum you learn is going to provide you with your basic tools and concepts, but the best way to learn is to just mess around. Some say to jump into open source work, and they're right, but the open source world can be very intimidating if you are new. I think before that, the best way to start while you are in class is to just come up with some idea for a project and build it, no matter how dumb. Along the way of building it, you'll run into issues that your professors would never know to prepare you for. Yes you can ask your professor for help, but hopefully they just direct you to documentation or stack overflow to solve your problem. I find that is the best way to learn.  Challenge yourself too, tell yourself "I hear people talking about Go all the time, I'm going to write my wild new video game review website idea in Go just to get an idea what it's about." I have built so many stupid ideas I've had that went nowhere, especially dumb game ideas in Unity. But now when I have a new stupid idea for a Unity game, the knowledge I gained from solving problems for those other stupid ideas makes me be able to put something together a lot better and quicker. Learning the PHP/MySQL for dummies got me into that special project. That special project got me ahead of my other programming classes. Being ahead in those other classes gave me free time to mess around with Unity and other tools. Just have fun with it and you'll learn a lot 
You can reach me at: LinkedIn

Aaron Meriwether

I had an interest in programming since I was young. My uncle showed me GW-BASIC when I was 6 or 7. I failed to find any actual CS classes in elementary and high school (with the notable exception of a Logo class in 4th grade at the international school in Panama). 

I had originally hoped to go to MIT after high school, but became frustrated by the public school system in Southern California, so instead of doing the homework to graduate, I concentrated on learning for personal enrichment only, and took the GED. My Latin teacher happened to have a connection with a tech entrepreneur who was looking to hire an intern, and he referred me. I started working at $10/hr at 18 in 2000. The senior engineer dropped the Perl Black Book on my desk and said, “study this”. I worked my way up from there.

Oh, probably also important to mention the even though I couldn’t find any CS classes at school, I scoured the library and CompuServe for information to teach myself. By the time I applied for that internship, I already had a good grasp of BASIC, and a rudimentary grasp of Assembly and JavaScript.
You can reach me at: LinkedIn

Anonymous

I was breaking computers in school, along the way WI spun up a program for HS students to have additional classes/training for computer shit
think of it as the IT version of "go work in a car garage and call it training"; the person running the program basically spun it up so her kid could do it
got A+ out of it (useless), but it also helped get me my first computer gig when I was in HS; I worked for the university.

The 'real' job that folks would give a shit about is when I went to intel; that was me applying for any/all jobs I could find while I was stuck in MKE and borderline homeless (I believe I mentioned my finances got wiped by friends? Yeah, that mess)

Either way, that gig was me being labor supplied to intel via a third party; folks said yes because I was doing a shitload of FOSS at that point. I'd been doing gentoo since around '01, and they needed people who understood linux build processes, which I did. That gig was pure fucking luck and I'd been trying to find something that wasn't shit (someone to hire me) for probably 10 months by that point.
After I had intel on the resume, the lack of a degree kind of became a no-burger; that and the level of FOSS I'd built up just coding since I had fuck all else I could do 

Chaoyue Zhao

In a previous life, I planned B2B events for living. Late 2018, after being in the industry for 3.5 years, I was extremely burnt out. The industry in general is extremely underappreciated financially.

A friend of mine dragged me to this part time web development classes on Saturdays. In true Hollywood audition story fashion, she dropped out after a few weeks and 4 years later, I am still here. I think one of the biggest reasons I did decide to go was I always thought this was something I can't do. I have always been the arty person and had this misconception of folks like me can't code. Obviously that's far from the truth. 

The bootcamp I did, right after that part time class is well known here locally. I am based in Toronto, Canada. I didn't do much researches on alternatives as I had fun in the web development and just went with the flow. This is something I recommend folks to do now as these programs are a big investment and a personal choice. 

One part I got lucky was the first job search. The bootcamp alumni community was amazing. So here locally, being a grad from that bootcamp then does come with brand value. The small agency I ended up working right after bootcamp hired grads from that exact bootcamp before and had a good experience. 

It only took me a few weeks to start my development job. I am purposely leaving out the how here as that experience was many years ago, pre-pandemic and local. But what I shared with bootcamp grads who are job searching now are always 1) highlight the experience folks have pre bootcamp. working in a completely different industries shouldn't be something we need to "hide" on our resume. It's about reframing transferable skills. 2) show curiosity.  I've been involved in hiring for years now and if someone can show me they can learn within a technical interview session, that person is almost an instant yes. 3) network. I came from an industry where it's all about network and I believe that's still very true in tech. 
You can reach me at: Polywork LinkedIn

John Iwasz

I was on my own by 19. My father had passed away and I was caring for my mother who was had been diagnosed as bipolar with schizoaffective disorder. Although I had gotten grants and partial scholarships, I couldn’t complete the process without my parents’ tax returns and my mother was uncooperative.

I had few options and paid my open way through Community College of Philadelphia with a plan to matriculate to a four year university. By the time I graduated from CCP, the $17k I got from my father’s employer’s life insurance ran out and I needed something more lucrative than a minimum wage position at the CCP computer lab. 

Rather than using CCP resources, I went to the University of Pennsylvania job boards and targeted small businesses. I had assumed they wouldn’t require a four year degree and I was right.

I landed at Microsoft from a consulting assignment a Rohm & Haas (now Dupont) in Philadelphia. It was 1999 and I was delivering the company's first internal site that used Windows integrated authentication. A few Microsoft consultant were there deploying Active Directory and used my site as a test to validate the deployment.

This was around the time of the dot com bubble. Further R&H had a new CIO and she was limiting contracts to large firms, like Arthur Anderson, PwC, Accenture, etc. and I was there as an independent contractor. I survived a few waves of contract renewals as I had a good reputation. I was consulting there for a few years and developed a history of delivery. When one project ended, another started, but it wasn't going to last. Between that and the dot com bubble, I wanted a safer harbor -- and there was Microsoft.

I landed a position as a consultant in their MCS (Microsoft Consulting Services) and completed my 4 year degree with tuition reimbursement.
You can reach me at: Polywork LinkedIn

Brett Gleason

I'd like to start by acknowledging some advantages I had that made breaking into software development easier than it would be for the average person:
 - I was interested in programming as a kid and had some basic familiarity with several programming languages
 - I have an electrical engineering degree. As well as having several programming-related classes, this usually checks the same box in HR systems that "has a CS degree" does

After graduating college I got a job in the power transmission and distribution industry doing substation design. There were a lot of interesting things about that job but after a while it felt like the primary challenge was meeting project schedules. I wanted to be doing something with more technical challenges, where I could be solving a wider variety of problems. I was about two years into the substation job when I knew it wasn't for me long term. Since I knew I had always been interested in programming, I figured software development would be a good option.

It took me two years of self teaching to make the transition from electrical engineering to software engineering. This included lots of starts and stops. There were plenty of times in this period where I didn't think I wanted to do software either. One of the things that makes self teaching difficult is the huge number of resources available. Without someone to provide recommendations, it's easy to bounce around from tutorial to tutorial without making real progress.

The absolute best resource I used was the Harvard CS50 class. It's Harvard's intro to computer science course, the lectures and assignments are available for free. This course does a great job of both introducing programming concepts as well as computer science concepts that will come up in interviews. The final assignment has you build a capstone project that would be an excellent portfolio project for your resume. I only made it about 3/4ths of the way through this course but it gave me a very solid foundation to build on.

The biggest mistake I made was doing (most of) a Udacity nanodegree. At the time they were launching a robotics nanodegree, and I thought this would be a great fit given my electrical engineering degree. I was never under any illusion that the nanodegree certificate itself would be useful, but Udacity marketed this program as if they had connections with companies that were looking to hire students directly from the program. In reality the only actual corporate partnership they had was with a robotics consulting company that was helping them develop the curriculum. This company went bankrupt in the second semester. Udacity didn't have a clear idea of what they wanted this course to be and the whole thing was a mess. That's five months and $900 I'll never get back, and I'm embarrassed to admit I fell for it.

My next biggest mistake was waiting too long to start applying for jobs. I thought I had to be able to check every box on a job posting to have a chance of getting hired. This wasn't true, and I learned so much more about software at that first job than I ever did self-teaching. In the end I got fed up, built the simplest possible portfolio project, and applied to ~40 jobs. The project was a C program that calculated the area of triangles given the lengths of their sides. What it had going for it was:
 - It worked
 - It had tests
 - It had a README with instructions detailing how to install and run it, and how to run the tests

Most of the jobs I applied for I found through Indeed. I didn't hear back about most of these applications. I tried to figure out strategies for finding job openings that weren't widely posted and the same ones that everyone else was applying for. I started looking through my linkedin connections to see if I knew anyone who was working at a company that sounded interesting. A former classmate of mine was working at a local medical device software company that I had never heard of. I applied to a job posting on their website, got a chance to interview, and ended up getting hired. Later on they told me that my application stood out because they got very few applications through their website.

Another thing I want to mention is that most of my self-teaching was focused on embedded development. I thought that would be the easiest way to break into software since it was most closely related to my degree. I was most comfortable programming in C with a tiny bit of python. This job was mainly working in C# with some C++. I checked nearly as few boxes on the job posting requirements as possible.
You can reach me at: LinkedIn