I've always wanted to sit down and write down my whole journey of how I transitioned into tech and landed a web developer role without a college degree or bootcamp experience. I strictly used free or low cost online resources.
My particular journey contains so many mistakes and failures along the way that I ultimately feel like was essential to my growth.
I hope you find value in this super long but necessary article and if there's any questions you may have, feel free to leave them down below.
My Background
Without diving too deep into my background, I am 23 years old and was born and raised in Southern California. I'm the first in my family to graduate high school. I dropped out of college my freshman year and ended up without direction or a sense of purpose. I started working as a cashier at places like Macys and Kohls. I felt like an embarrassment, not because I was working retail but because people around me had set expectations for me to be an overachieving college student. I didn't have a passion for years.
Falling First Before Learning How to Fly
The origins of how I discovered coding is a mystery now because I've forgotten. I do remember being inspired by the story of Aaron Swartz, a self taught engineer who co founded Reddit.
February 2017 was when I first tried learning how to code via Codecademy's free Python course. But I was put off by the simplistic syntax and instantly felt like I wasn't learning. I was thinking, "What was the purpose of arrays? Functions are hard to understand. I can't do this." It was my first exposure to computer science. I never even messed with HTML and CSS on Myspace or other social network sites when I was a kid like others. I was completely brand new. So I gave up. I quit. I didn't have the strongest support system outside of my mom and one friend. Most just assumed I was not technical enough given that math was never my strong suit and only holding positions in customer service.
What motivated me to pursue tech was the loss of my father July 18, 2017. He encouraged me to keep going with tech actually. He knew nothing about software development (neither did I at the time really), but he often encouraged me to have my own career and take charge in my life. Whenever I learned something, he would cheer me on.
I revisited coding when I discovered web development in fall of 2017. That's when I bought Colt Steele's web development course on sale for $10. That is precisely when everything clicked for me. I realized frontend development was for me. I started building landing pages and genuinely liking it.
I made a pledge (the first of several) to #100DaysOfCode challenge which is where you make a commitment to set aside time every day to learn and code. I often "failed" because I would lose track or have to take breaks due to working full time and having imposter syndrome but the key to my success was that I kept going. Even if I took a break and didn't code for a day or a week, I still resumed my studies.
Why Did I Not Go To A Bootcamp or Back To College?
I was broke lol. I was working full-time making ends meet at places like Walmart and Boston Market. I didn't have the resources to attend bootcamp or college full or part time. I was way too in debt and poor to do either of those options. I strongly advise anyone considering bootcamp to read the income sharing agreements in depth. Understand the legalities of the situation before you choose.
Self directed learning means you have to sift through tons of resources in order to build your own curriculum but it's the least costly option out of the three and that's why I chose it. Anything you learn at a bootcamp or in a CS program you can find online. There's a plethora of quality online resources, you just have to have that willingness to find what you're looking for.
You can build a network and find community support through a plethora of slack and discord communities, Twitter (follow #100DaysOfCode, #CodeNewbie, #DevDiscuss hashtags to find your people). I'm not saying that this is guaranteed but it's definitely not impossible. Also FreeCodeCamp has Facebook groups for people in different locations around the world and you can host or attend meetups there.
My advice to you is to know and explore your options. Weigh the pros and cons of each. Everyone has their own priorities and responsibilities so do you.
First Interview, First Disappointment
My first interview was for a mid-level React Native developer role in March of 2018. I can honestly tell you I was not qualified for the role in the slightest. I had built a few projects in React but my knowledge of JavaScript wasn't on par for the job.
The first interview with them was a cultural screening which usually consists of them asking about your background and goals. It is their way of assessing your personality and to see if you what you want aligns with what they want out.
The technical portion is where they see if you're what they need from a technical standpoint. Usually technical interviews are a collaborative effort between you and the interviewer where you attempt to solve a problem. They always say they don't expect you to find the answer and that they're more focused on how you communicate your thought process. I failed miserably in this portion. I was often in my own head which led to me being silent the whole time. I was essentially blocking out the interviewer.
The Unpaid Internship: The Raw Truth
Full disclaimer, I don't support unpaid internships. Unpaid labor is unethical in nature, there is no way around that. But at the same time, I needed that experience on my resume. I completely understand those of us who do take on unpaid work. It really is what it is. We're all trying to reach that final destination where we have salaried jobs complete with quality healthcare and the ability to provide for ourselves. So I'll never shame anyone for contributing to open source or working for free. Just understand that your skills have value. I see it as a stepping stone but I'll never recommend it to anyone else because technically it is unethical. To omit this part of my journey would not be transparent and true to the story.
I recommend to those looking to gain experience, build sites for those around you. You can start freelancing asap. Learning Wordpress or Shopify can increase your chances of gaining clients. It takes a certain type of mindset but the key is to start building stuff for real people. That in itself is experience that you can put down on your resume.
Back to the unpaid internship. It was located in a business building in downtown Orlando, Florida. I had a really cool friend who was also learning how to code (more backend focused on NodeJS) and he helped me get an internship along with him. I started in the summer of 2018. We were building a site for a jazz musician. The gig only lasted a month or so for me due to reasons you'll find out soon.
More Interviews, More Opportunities to Grow
Summer of 2018 was amazing. I was finally landing more interviews. There were 2 I was focused on: one for a Angular position at a tech company in downtown Orlando and then the other one was at an agency in Seattle.
The Angular role had an intense interview process but the stage I was at was to essentially build a CRUD (a simple application that allows users to create, view, update/modify and delete. Example is a todos app). They wanted me to use Angular 1.5. I only had experience using React so this forced me to learn something new and it was a challenge to say the least.
The other interview at the agency in Seattle was more straightforward. I had to meet the team on Skype, go in depth about an existing project I have and then you'll get an offer or rejection afterwards. I learned from other interviews that you're interviewing them more than they are interviewing you. I inquired the CEO about work life balance, goals and expectations of the role within 3/6/12 months, asked the lead engineer about their communication style, thoughts on mentorship and onboarding, etc.
Tools and Resources
These are the resources I actually used in my coding journey. Most of these resources are free. The main caveat of self directed learning is building your own curriculum with little to no guidance. It took me trying so many different resources for months before I found the content that sticks. I had to find my learning style and that involved messing up and trying a mixture of video tutorials, courses and written guides.
Udemy
- Web Developer BootCamp by Colt Steele- Colt set the standard on teaching for me. His instructor style and ability to condense technical topics in a way others can understand is what helped me understand the fundamentals of web development
- JavaScript: Understanding the Weird Parts- A strong recommendation for anyone who is seeking a role in web development. I can't stress this course enough. You'll learn the inner workings of Javascript and build your own library to solidify your understanding of core concepts. This course actually helps you understand frameworks and libraries like React more and will prepare you for technical questions on interviews for sure.
YouTube
- Traversy Media- The whole channel is everything. Brad Traversy has a whole free course on PHP basics. You can find tutorials on so many topics in web development and I strongly urge you to subscribe.
- FreeCodeCamp- The self taught developer's best friend. The YouTube channel is where you can find so many great courses on topics ranging from network/app pentesting (for those interested in cyber security), AI/machine learning, Python, JavaScript and more.
- Kevin Powell- If you seek to better your understanding of CSS. His channel is full of gems and a must for frontend developers.
- Coding Phase- You'll find value in both his YouTube channel and courses because he adds a refreshing, relatable feel in everything he produces. His projects are also really original and different from the rest.
- Hamza Mirza- He has really good tutorials on React. If you've already learned the basics of React or just getting started with the library and you're looking for project ideas as a way to solidify your understanding, his channel has some good direction for you.
The Big Offer
July 18, 2018 was a monumental day for so many reasons. It was the one year anniversary of my father's passing. It was also the day I knew I was going to find out if I got the job or not at this company called Mercutio. I was an abundance of nerves as you might imagine. I was curled up in a ball soaking in a deathly hot bathtub listening to music to calm down. I remember the visual vividly. I was so so committed to making this dream happen. I had become so accustomed to quitting and failing so much in my life and learning how to code was the first habit I ever stuck to. While these thoughts are running through my mind, the phone rings. Seattle area code. I took a deep breath and answered.
The CEO first started off by telling me all of the great feedback he received from the team. I wish I could remember but I can't, my heart was racing. Then he paused for a brief second and said, "I would like to offer you-". I'm pretty sure I muted the phone and screamed violently lmao I had got the offer I had been working so hard for. I was crying in silence while he told me all of the benefits without skipping a beat. Good salary, Full healthcare coverage (dental, vision, etc), a relocation package to Seattle and a new start. I thanked him profusely and I just couldn't believe it. I would be starting by the end of the month. I wasn't even worried about moving across the country on my own to a city I've never visited, that has never mattered to me. I was all about chasing that opportunity and seeing where life takes me.
My First Day
Walking into my first day as a professional front end developer was everything. Your first day will most likely consist of setting up your environment and making sure you have everything you need to start. Thorough onboarding is key for everyone but especially junior engineers.
Daily tasks as a junior engineer involved bug fixes and pair programming on more challenging tasks. I did get to maintain a huge project on my own once I showed I was capable.
Minor Setback For A Major Comeback
So unfortunately due to budget cuts, I was laid off from my first job by the winter. I was like oh no lol I'm in this whole new city away from family. But thankfully I was smart in that I saved most of my checks so I had enough to pay rent for 3 or 4 months while I prepared for the next step. Quitting the industry wasn't a viable option. I was like "You have professional experience now and you're in one of the best cities for tech, you didn't come this far to succumb to another obstacle". I sat down and thought about what I truly wanted in my next role.
What Do I Do Now?
I've learned how to code, I landed a professional job, relocated to a whole new city, and got laid off. What do I do now?
I work from home contracting for 2 companies at the moment as a frontend engineer. I currently reside in Georgia and am relocating to Atlanta. I'm also traveling as a conference speaker. I've also made the commitment to really hone my content creation skills. I'm happy
I'm starting a Patreon so I can focus my efforts on continuing to create resources for the community like #AnAlgorithmADay challenge which is a daily commitment to improving as an engineer by studying data structures and algorithms. I'll be writing and sharing videos on topics ranging from Big O Notation, recursion and stacks and queues to even dynamic programming. My biggest fear when it came to tech was technical interviews and while I still see the process as flawed and limiting, I want to always use my platform to help others improve and grow with me. I also want to host frequent Q&A sessions and online workshops via Patreon as well.
So freelancing by day and creating technical content by night is the dream I'm working towards. I'm about 3/4 of the way there haha lol.
Reflections: Things I Wish I Had Done In My Coding Journey
- Accessibility is a priority, not an afterthought: Commit to writing accessible code as early as you can in your career. Make it a habit. Bookmark resources on semantic markup.
- Take AND Finish Harvard's Free Computer Science course: This is an optional tip but I think I would've taken this course in the beginning of my journey because it introduces you to computer science concepts and the reviews are phenomenal. Plus it's free lol it's on edx.org. Enroll anytime and great for those who don't even have programming experience.
- Focused way more on vanilla JavaScript: Technical interviews most often test your knowledge of raw Javascript, without frameworks or libraries. I strongly urge to check out Sarah Drasner's Object Explorer and Array Explorer. Experiment with different object and array methods on a consistent basis. That's honestly, in my humble opinion, more beneficial for your growth as a programmer than learning all the frameworks.
- Created a GitHub Repo To Document My Daily Learnings: I recommend this for a plethora of reasons but mainly because 1) Increases GitHub activity which is looked upon favorably by employers and 2) Helps solidify your understanding of creating branches and making commits on Git which is what you'll often do on a daily basis as a developer on the job.
- Started Blogging: Write down what you've learned. You don't have to be an expert to start sharing knowledge. Just be open to feedback and always seek to improve. You can always revise and edit your posts along the way. Feel free to reference my post on learning Python. Publish your notes, write little tutorials, etc. I say it can have an exponential impact on your growth as an engineer because it helps increase both your technical and social communication skills. The better you are at explaining what you're doing, the better of an asset you'll be to any team you join.
- More Breaks, Less Burnout and Anxiety: Bad time management led to burnout. I was working long shifts by day and then coming home and coding for hours endlessly. Consuming so much knowledge at once is not recommended. Had I set more flexible goals and allowed myself more rest, I would've accomplished more.
- Never compared my journey to others: This was why I was overworking myself and burning out. I saw others landing six figure salaries and I was like why not me? If you get to that point, log off and take a break from social media. I try to remind myself that everyone has their own season. I wish I had taken time to just appreciate my own progress so please don't forget to congratulate yourself. You're taking powerful steps and creating your own lane in this world.
I hope you enjoyed this long story lol. I hope you found value.
Feel free to follow me on Twitter , read my other posts on here, and please consider contributing to my Patreon so I can produce a lot of content for everyone for 2020 and of course share this story.
My reason for telling my story is to show that anyone is capable of finding their own way in the world and that you can overcome setbacks.