In December I wrote about growing my coding abilities by reading.
Well I have found something even better and more enjoyable for me: learning from Pluralsight.
I am especially inspired by the growth shown by Kevin O’Shaughnessy who completed over 400 Pluralsight courses!
I feel like solving code challenges plus learning and building with Pluralsight will really accelerate my growth as a software engineer.
You can get 3 free months of Pluralsight by signing up for the free Visual Studio Dev Essentials.
I think life and coding comes oftentimes comes down to my simple formula:
So does this mean that the working developer has gone through more trial and error than the aspiring developer, that the senior developer has gained more experience and learned from them than the junior developer?
Also how much experience can be gained indirectly vs. must be gained directly?
I don’t know the answer to any of these questions so I just focus on 2 things with coding–right action and fun:
- Doing the right actions that bring me closer to my goals, that improve my coding knowledge and skills
- Having fun as much as I can with my coding journey 🙂
I will never “arrive” as a coder, so I can only enjoy programming as much as possible and as often as possible. So far so good 🙂
I have actually only read a few coding books, most notably a few of the awesome Head First books, the detailed Rails Tutorial, and a couple of books on data structures and algorithms.
After a couple of articles on how beneficial reading can be to my growth and career, I have decided to start reading coding books regularly.
In no particular order, here is a list of books I want to get through. There is no guarantee that I will get through these, and this list will shrink, expand, and change, but I think this will keep me busy for awhile…
Here’s a great article on how to apply for jobs effectively and efficiently, improve at interviews, and get a great job:
I spent 3 months applying to jobs after a coding bootcamp. Here’s what I learned.
Here are some additional resources for data structures and algorithms practice:
- Firecode.io I have only used this for a few days but it is amazing! It has a very user-friendly interface and it is also designed to provide spaced-repetition of problems to enhance learning and memorization.
- Pramp was introduced to me by Infinitely Finite and is also highly recommended in Mohsin Ali’s guide. Pramp provides free interview practice with other developers. Pramp has helped me improve at solving problems, explaining my thinking process, and teaching and helping others improve their algorithmic coding.
- Geeks for Geeks Practice is great because problems can be sorted by company, topic, and difficulty. There are countless problems and there are plenty of explanations as well. I have fun solving problems here and improving my ranking 🙂
- Tushar Roy‘s video explanations are very organized and easy to understand. He breaks down concepts step-by-step and also draws out every step, and then shows how to implement the concepts as code.
- Hacker Rank has problems from Cracking the Coding Interview along with superb video explanations by author Gayle Laakmann Mcdowell.
- A2 Online Judge has an endless supply of practice problems organized by category.
Here is a post I found with some great suggestions to improve your coding skills: Improve your programming skills
I think this post has a great balance between code kata-like sessions and time/thinking intensive sessions. In other words, a nice balance between coding sprints and coding marathons. It also has some great ideas on how to slowly and surely expand your coding skills. Check it out: Improve your programming skills.
Here’s a great article on learning: Learn Smart, Not Hard: Applying Learning Research to Learning Programming
Nice explanations on how to learn actively and effectively.
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.
At work I was paired with the new intern. He asked about what the point of $scope.city or some AngularJS variable was.
It feels great that I understand the code base now and I can even explain how things work. A few months ago I would not have been able to understand the previous paragraph, much less write it or say it.
With the code base at work, I feel more like a lifeguard now :), where as before I felt like a drowning swimmer 😦