TopCoder

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.

 

How she landed a Google internship in 6 months

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.

Data structures and algorithms practice resources

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.
  • Code Wars is fun and great for learning a specific language and its features, i.e. JavaScript. But I did not find it as valuable for algorithms.
  • 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.

Limiting Beliefs

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.

Here are the lessons I learned from my daily sites:
Reflections
Curtains
Fireworks
Reflection

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.

How to give yourself a coding boot camp

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 😉

  1. 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.
  2. Learn for free and get free help.
  3. Get inspired. Read How to Get Inspired about Web Development and You can get a coding job!
  4. 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.

  5. 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.
  6. After 30 days of building, revamp your resume and start applying for jobs.
  7. Prepare for interviews by doing code challenges. Free Code Camp has fun problems as does Code Wars.
  8. Don’t give up. You can do it! Keep going until your dream job is your day job 🙂

Work reflections

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 🙂

 

 

How to apply for your first junior developer job

So you have been learning how to code, networking, and building a portfolio. But are you ready to start applying for jobs?

This article has the answer: How You’ll Know You’re Ready to Start Working as a Web Developer

And this video also has the answer: Question: How Do You Get Enough Experience to Apply for Programming Jobs?

Now how do you actually apply to jobs?

If you live in an area with lots of jobs like Southern California, New York, San Francisco, Seattle, etc. here’s how you can do it:

  1. Set up your resume and Linked In. Post your resume to every job site you can find.
  2. Register and use job sites that have one click applications. A few are Zip Recruiter, Dice, Monster, Career Builder, Indeed, Simply Hired.
  3. Every day apply to 15 jobs. This will only take a few minutes and will result in 100 applications a week.
  4. Focus on the process over the outcome. Think of interviews as lectures in disguise. Unfortunately you will possibly get rejected dozens or even hundreds of times. But as long as you learn and grow from each experience you will become an even better candidate.
    For instance if you get rejected 3-4 times because you have never used AngularJS, but you then start learning AngularJS and demonstrate this in your portfolio, you will become an even stronger applicant.
  5. Keep learning, building, and applying. You will find a great job because an employer will be impressed by your skills, determination, and knowledge. You can and you will get hired!

 

On blogging

I started to blog because I could not get a job because I lacked experience, and I did not have experience because I could not get a job. The classic Catch-22 🙂

Did blogging help me get hired? It definitely helped. Here are some examples:

  • When I was asked, “Are you a quick learner?” I would respond, “Have you read my blog? I have built a site every day since August 3rd, 2015 using numerous technologies including Ruby on Rails, JSON, AngularJS, JavaScript, JQuery, etc.”
  • I would lead with, “I only have a few hours of professional experience, but I have my blog and portfolio of sites I have built. This is like my own boot camp/internship.”
  • When asked, “Do you have experience with Bootstrap?” I replied, “Yes, my blog has examples of Bootstrap sites I built, and also the links and code that helped me build those sites.”

Blogging functioned as an interactive resume as well as a portfolio of my skills.

Now that I am happily working, has blogging continued to benefit me? The answer is also a Yes.

  • Writing my Model View Controller (MVC) Summary helped me really understand MVC because I had to read many articles, explanations, and examples to be able to understand enough to summarize the most important concepts.
  • Chrome Developer Tools Quick Tips helped because I was able to refer to this post a few times when I forgot how to use these tools.
  • Writing Dealing with Coding Insecurities helped me realize that the doubt and insecurities are very common for programmers, but I can win by having fun coding and by improving my abilities.

For more ideas on how blogging can help programmers check out:

Marketing Yourself: Why You Need a Blog

How to Get a Jump Start in Your Programming Career

6 Reasons why writing developer blogs should be practised by programmers

Why all programmers should have a blog?

Why every programmer should have a blog

Why Programmers Should Have a Blog

Why programmers should blog?

 

You can get a coding job!

I thought for my first post of 2016 I would share a few of the blogs that inspired me in 2015.

Here are the real life stories of people getting their first coding jobs:

New Country, New Career
“After 5 months, I went from code newbie to a software developer. No dev bootcamp. No tricks. No shortcuts. Just studying and coding everyday and not being afraid to apply to any junior dev internship I could find.”

New2Code
“In the last 6 months, I decided to learn to code and blog about learning to code. I was desperate to change my career without spending 4 years in college. In the last few months, I got an internship which turned into a job.”

How A Blacksmith Learned To Code
“Here’s the condensed version of how I went from zero experience writing code to getting hired 9 months later as a junior developer and how you can do the same.”

Junior Magento Developer
“I decided I was going to do what I loved, and I was not going to let anything stand in my way. What had started as a hobby, turned passion, finally turned profession. Here is how I did it.”

Everyday Utilitarian
“I’m getting paid to write code. It’s pretty neat. Most notably, I was not a Computer Science major in college, and I only took two CS classes. I got the job nearly entirely through about 700 hours of self study. Best of all, you can do it too!”

180 Websites in 180 days
“I learned to code by building 180 websites in 180 days”

100 Websites in 100 days
“I never thought I would love doing something so much.  Over the past 100 days, I covered: jQuery, Angular.js, d3.js, Node.js, and the full MEAN stack – more progress than I could’ve imagined!  My goal is to become a full stack web developer, and nothing short of a zombie apocalypse will stop me. ”

And here’s how I got started with my own “boot camp/internship”:
How to Get Inspired about Web Development

Maybe a year from now I can post a link to your blog… Yes I am talking to you 🙂