Guide To Becoming A Self-Taught Software Developer 2020
In this Blog i'll go through my 9 suggested steps for becoming a software developer of any type without going to college or bootcmp.
1.FIGURE OUT YOUR END GOAL
- Work for a big company,startup, freelance?
- Web development(frontend/backend), gaming, data science, moblie apps?
- What are you naturally good at?
-Check pay scales,job security ect for different types of dev jobs.
If you start your self work first you check your all requriment of your goal. check investment requirements, how much profit in future. This is very important for every projects. Because project totally defend in money investment.
2. CHOOSE A PROGRAMMING LANGUAGE
- Figure out which language you should learn for what you want to do
- fundamentals first!(Save frameworks, etc for later)
- Chose a text editor/IDE and get comfortable with it
- You can always switch or learn another language
The general advice is to find a project you want to do first and then use the language that best accomplishes the task at hand. I didn’t have a project in mind though (yet), so this wasn’t working for me.
3. FIND RESOURCES & BUILD A CURRICULUM
Whether you’re just starting out, you’ve done a bootcamp, or you’re somewhere in between, there will be no shortage of people recommending resources to you. Information overload is evil — don’t let it creep in on you.
Quite a few people also recommended things to me like Codecademy and Project Euler. For whatever reason, those resources didn’t resonate with me. I felt like I was offending people if I didn’t take them up on their recommendations. I got over this quickly. There’s too much to learn to waste time on things that don’t “click” with your learning style.
Since I was focused on web development, I built my entire learning plan around vanilla JS, Node, and React, and studying algorithms and data structures.
- Books Great for learning language fundamentals
- Documentation: Best used for reference
- Resource Wesites: W3Schools,MDN Web Docs
- Videos courses: youtube,Udemy,Pluralsight,Lynda,Coursers,etc
- Online Bootcamps: Freecodecamp,Codeacademy,Team Treehouse
- Challenge Websites: Codewars
4.FIND A COMMUNITY
- Having people to talk to and learn from is very beneficial
- Find a mentor if possible
- Join an online community
- Go to meetups
5. CREATE YOUR OWN PROJECTS
- Following along with courses in only half the battle
- This is where most get stuck ans many quit
- Your projects do NOT have to be from scratch
- Add new features,use the docs are as a supplement to figure new stuff out
- Look at other people's code that is similar to what you want to achieve
- Eventually you won't need to use other projects as a starting point
6. CREATE YOUR PORTFOLIO
- Create an attractive but simple portfolio
- Showcase a live version(if possible) and your source code
- Self taught developers NEED a great portfolio with work example
7. CONTRIBUTE TO OPEN SOURCE
- Given you exprience with real-life projects
- Collaborate with other developers
- Something for your resume
- Learn how to use Github
One of the major reasons companies shy away from hiring junior developers is lack of practical experience. Proving that you can effectively collaborate on an engineering team is a critical component to your marketability. Hackathons are a great start, and finding open-source projects to contribute to is even better.
If you’re just getting started with open-source, you can look for projects that use the “First Timers Welcome” label on open issues. You can also look at the companies you want to work for and see if they have any open-source projects. If so, doing a pull request or two is a great way to get their attention!
I eventually used the knowledge I’d accumulated to build an app I published for Google Assistant, CryptoPrices. The app turned out to be a great success — I learned a ton about building conversational interfaces and Google even acknowledged my user growth with a “Gaining Traction” award. I also started contributing to open-source projects and built my personal website in vanilla JS.
8. CREATE AN ONLINE PRESENCE
- Also extremely important for self-taught devs with no degree
- Have an up to date Linkedin and professional Twitter
- Upload all of your work to Github and keep it well documented
- Write articles,tutorials,videos,etc
- The more you visible on the web,the better
Once you feel ready to start interviewing, don’t waste your time by applying to every job blindly. Your highest chance of success lies in reaching out to people you’re connected to first. Reach out to your connections on LinkedIn or talk to engineer friends and see if they can refer you to their companies. Most tech companies offer nice referral bonuses, so they might be happy to submit your name!
Groups like TechLadies or HireClub are great places to cultivate your connections. TechLadies is a community and job aggregator that “connects women with the best jobs and opportunities in tech.” Their Facebook group is a fantastic resource. Through HireClub, I met an engineering manager for a FAANG company. He posted a role in the Facebook group for a React-focused front-end engineer, so I replied. I ended up interviewing for the position and got an offer! The likelihood that this would’ve happened if I just went to the company website and applied is virtually zero.
9. PREPARE & APPLY TO JOBS
- All other boxes should be checked
- Prepare for interviews,practic algorithms,create a resume,cover letter etc
-Search for jobs in your area that are looking for things you know
- Apply even if it says degree required
As you’re making connections and applying to jobs, set a goal for this process too. Try to get at least 15 job applications submitted each week, with a stretch goal of 20. Use tools like Trello or Jobtrack, or just keep the status of your applications up-to-date in a spreadsheet.
Make sure to copy and save the job descriptions of the roles you apply to. I had an experience where a company took down their posting as soon as they started the interview process with me. I’m glad I had a back-up. There are lots of other things to consider when writing your resume, interviewing, and negotiating job offers.
Hiring managers will always want senior candidates to apply, even if they are open to junior or mid-level candidates. Senior-level candidates rarely apply to job postings that aren’t senior, because they don’t want to risk leveling down. In order to bring in the best pool of candidates, it makes sense to post roles at a senior level. In the end, if the team likes you, they’ll bring you on and place you in the level where you best fit.