An amazing and free path to learn web development:
How to get your first job:
Preparing for the technical interview:
I wrote these tips earlier: https://bryanttunbutr.wordpress.com/2016/04/04/how-to-apply-for-your-first-junior-developer-job/ and https://bryanttunbutr.wordpress.com/2015/08/12/how-to-build-an-amazing-resume-for-career-changers/
Here are some additional tips I have:
- Set your LinkedIn profile to open to new jobs and make this visible to everyone including recruiters
- Make your LinkedIn headline be something like Software Engineer Actively Seeking Opportunity
- Connect with technical recruiters every day. Reach the maximum every day. You must have at least 500 total connections. Add recruiters that have a headline of “We’re hiring.”
- Have your resume look nice with enough white space. Avoid typos, too many fonts, strange indentations and spacing. Have multiple people check and proofread. Make your hyperlinks blue to stand out.
- List technologies you used. If you completed a boot camp then list the technologies in the syllabus. Of course be prepared to answer questions and talk about the technologies as well as your role in the project
- Use live links. Recruiters are often non-technical so the live link demonstrates your coding ability. Make sure it looks good on mobile. Invest the money to not have the 30 second load time on Heroku.
- Have a section called “Programming Experience” in your resume.
- Always have an answer to, “What are you building now? What are you learning now?”
- Be proud and talk about any freelance work you have done for family and/or friends
- You can and should answer with “I don’t know.” However if you are asked about something similar you can answer that you have similar experience, i.e. “Do you have experience with the ASP.NET MVC framework?” “No but I do with Ruby on Rails which uses the MVC design pattern.”
- Remember that technology is important but the most important thing is solving a business problem. When describing a project try to think in terms of the business results/use cases, i.e. 1. increased profits, 2. decreased expenses, 3. improved user experience. If this is not possible, explain how your work can help business users i.e. “Created charts and graphs which makes data reports easy to understand and access.”
Here’s a great article on how to apply for jobs effectively and efficiently, improve at interviews, and get a great job:
I have recently begun to do code challenges from TopCoder.
I first heard of TopCoder from John Sonmez here: So You Want to Become a Better Programmer? (TopCoder).
I started by doing the archived problems here. The problems are sorted by the percent of competitors who were able to solve them–basically in order of difficulty.
The questions can be fun but a few of them are impossible for me to understand and the interface requires a very large monitor for me to see everything. But overall it has benefited me because I get to attempt to understand a requirement, pass tests, then look at successful and cleanly written code from past competitors.
Check out this great post by Joanna Chen: How I landed a Google internship in 6 months
She has has great advice on building, practicing coding problems (Pramp.com), meeting people, applying, etc.
Special thanks to Siddharth for being the first to introduce me to Pramp.com for free interview practice.
Here are the sites I have experience with and my thoughts
- LeetCode is excellent because there are many problems and explanations. Furthermore the problems without explanations have answers and commented solutions in the discussion boards. It is the best online judge in my (limited) experience.
- Cracking the Coding Interview has many questions and detailed answers in Java.
- Data Structures and Algorithms Made Easy in Java is excellent. Sure there are many, many, many typos. But it has so many code samples for each of the data structures, explanations from worse (brute force) to best (optimized) along with advantages and disadvantages of the many possible solutions.
An honorable mention goes to Free Code Camp. The first time I ever had fun solving code challenges was at Free Code Camp. They did an amazing job of starting off with relatively easy challenges, then they raised the bar. Before I knew it I was doing difficult challenges, yet the hours flew by.
Here are a few limiting beliefs I had and how I overcame them…
I need a degree to get a job
I learned that this belief is simply not true by reading these success stories: You can get a coding job!
I have to get the most out of my potential
I learned that this is not true by taking Calculus III and Linear Algebra classes. I hated these classes. These classes made me realize that the most important thing to me is doing fun and interesting things with code.
I cannot build unless I have a tutorial
I first started learning how to build without a tutorial here: How I built my carousel image slider.
I really learned how to use Google, documentation, others’ code starting with this post: How to Get Inspired about Web Development.
I have to build a single massive portfolio piece with many features
Many recruiters and technical people told me to put all of my learning and building into a single multifaceted website. But I ignored them because I had already started my daily sites and I was too stubborn to change course 🙂
I am glad I ignored them because I learned much more through repetition and daily building than I would have by building a single site. Special thanks to Omar for encouraging my daily site building.
I can’t do it. I can’t get hired, I can’t build a website, I can’t do this or that…
This belief is actually true. I cannot reach the outcome of many of my goals.
But I can take the next step and focus on the right actions. I can focus on the process and let the outcome take care of itself. This is liberating, to know that I only have to focus on the next step.
Here are the steps you can take to learn web development and get hired. This advice is based on my experiences so it is extremely biased 😉
- Save lots of money, ideally enough to cover 2 years of expenses. This would give you the option to quit your job and focus 100% on coding.
- Learn for free and get free help.
- Get inspired. Read How to Get Inspired about Web Development and You can get a coding job!
- If you have done steps 1-3, you can now begin your boot camp.
Commit to building a site every day and blogging about what you have learned and built. Remember Jennifer DeWalt’s advice:
Throughout the project a start small, keep going mantra was in my head. It is important to understand that you don’t necessarily need to understand to get things working. It is just as important to keep moving forward. The understanding will come eventually.
- Fully commit. Be willing to build 30 sites in 30 days, 100 sites in 100 days, 180 sites in 180 days, whatever it takes to get hired.
- After 30 days of building, revamp your resume and start applying for jobs.
- Prepare for interviews by doing code challenges. Free Code Camp has fun problems as does Code Wars.
- Don’t give up. You can do it! Keep going until your dream job is your day job 🙂
I have been working as a junior developer since early November 2015. Here are some of my reflections:
- I thought programming would be working solo. I thought there would be no help except for Stack Overflow and Google. But fortunately programming is a team effort because teammates and managers are there to teach and help.
- I felt inferior when I would compare myself to others who have 10 years of experience. Then I realized, duh, they are so much better than me because they have 10 years of experience. I realized that this is a great opportunity to learn from them and hopefully cut down on my learning curve.
- I thought the work environment would be like a library. Instead work is the opposite of quiet and calm. Headphones help a lot with concentration.
- I learned that going for a walk every couple of hours is extremely helpful. I try to just focus on my the feel of my footsteps touching the ground and to not think about coding. Sometimes my subconscious will give me solutions and ideas that I can try out when I get back to my computer.
- Reading and using existing code is a great way to learn how to write clean code and how to efficient solve problems.
Overall work is great because it is a continuation of the journey I started with How to Get Inspired about Web Development. Time flies and coding still just feels right to me. It is amazing that I now earn a living by learning, coding, and building projects 🙂