Learning from Pluralsight

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.

Advertisement

On reading…

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…

 

 

LeetCode Update

This is an update of this earlier post.

First of all using data structures and applying algorithms has been fun and enjoyable. It is much more fun solving problems just to complete a challenge than it is because I have to pass a test for school.

Second of all, I was completely wrong about only needing 3 rounds to get good. I might need 5 rounds, 10 rounds, 21 rounds. As long as it is enjoyable and keeps improving my coding skills, I am going to keep on keeping on.

I am going to need many rounds of trying, failing, learning, and improving. But every time I fail and read and understand a solution, I get better and more independent. My competence, confidence, and enjoyment are steadily growing.

On helping others

At work I was paired with the new intern. He asked about what the point of $scope.city or some AngularJS variable was.

I told him to set the breakpoints from the JavaScript to the controller to the business class (stored procedures) and all the way back to the JSON. He then saw how AngularJS uses 2-way binding to automatically update & show information.

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 😦

Sedona Method Part II

In August 2015 I was in the middle of building a website every day and blogging about each website . On August 30th I built this simple website: Sedona Method. Even though this website is very basic, I find myself using it every month or so to relax and relieve stress.

A few days ago I was sitting at a coffee shop with my laptop and I decided to make another one of these basic websites: Sedona Method Part II. Hopefully this basic website will also help me relax and let go of stress…

On improving as a developer…

In So You Want to Become a Better Programmer? John Sonmez recommends using code challenges to improve as a developer.

I would like to enter competitive programming contests but I am very rusty with my algorithms. I completed classes in data structures and algorithms, as well as assembly programming, in 2014.

I plan to improve at solving coding challenges by using LeetCode Online Judge. I will relearn and review the concepts by using these learning principles:
Making Badass Developers – Kathy Sierra
Chicken Sexers, Plane Spotters, and the Elegance of TAGteaching

My plan is to first go through all of the easy and medium questions quickly and just read and understand the solutions. This first round will simply be about relearning and reviewing the concepts. I will probably solve close to 0% of the problems 🙂

The second round I should be able to solve a third of the problems.

By the time I go through the questions for the third time, I should be able to solve two thirds of the problems or more.

Will this system work? Time will tell. But so far I am having fun and learning much with little stress from this first round. So far so good 🙂

On Data Structures and Algorithms…

I have started doing coding challenges at LeetCode. Even though I took a year-long Data Structures and Algorithms course in 2014, I am extremely rusty and cannot solve very many problems.

I was feeling overwhelmed until I saw this video: Watch Flavian solve three Rubik’s Cubes…BLINDFOLDED!

I read more about how he solved Rubik’s cubes while being blindfolded here: SpeedCubing win 2015 edition of Romania’s Got Talent with quick Rubik’s Cube solving.

This part stood out to me:

The group, called SpeedCubing, went on stage and solved Rubik’s cubes, blindfolded. This representation, for which they have memorized no less than 4,000 algorithms, got them the big prize of EUR 120,000.

I now feel much more confident about my goal to be able to solve problems by applying only a dozen or so algorithms–without a blindfold and without millions of people watching 🙂

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 🙂

 

 

Client-server model

This will be a simplified and Twitter-like introduction.

First the definitions:

Client – sends requests, i.e. a client can be a Chrome Browser sending a request to a Web Server.

Server – responds to requests, i.e. a Web Server responding to Chrome Browser request by serving HTML.

 

For detailed information and walkthroughs:

Client and Server Model – Fast Tech Skills

How the Internet Works for Developers – Pt 1 – Overview & Frontend

How the Internet Works for Developers – Pt 2 – Servers & Scaling

How the Web Works: A Primer for Newcomers to Web Development (or anyone, really)

Client–server model

Structure of the Internet: Client server model

What are the differences between server-side and client-side programming?

Lesson 2 Anatomy of a Web Application

Client-Side vs. Server-Side Code: What’s the Difference?

 

Special thanks to Anna for simplifying this for me

Reflections

I began my learning, building, and sharing because of this inspiration.

However, I failed to build 100 sites in 100 days and my sites were far less impressive than Jennifer’s and Thuongvu’s.

But I did get to learn and play with many different technologies including Ruby on Rails, JavaScript, JQuery, Angular, APIs, Bootstrap, etc. I also started to enjoy coding challenges for the first time.

Most importantly, I learned how to learn and build effectively. For learning the front end including Bootstrap I found that the best way was to follow along with tutorials and clone sites using Google Inspect. This process led me to see the patterns common to the layouts and designs. In contrast, I found that to learn how to build sites the best way was to come up with a simple idea and just try to build it. Basically start small, Google and Stack Overflow, and get help as needed.

Overall this was a success because I built 88 sites in 88 days. The best part is that I got hired as a Junior Web Developer so my learning, building, and sharing has just begun 🙂

Where do I plan to go from here?

I plan to post a blog entry once a week or so to reinforce and keep sharing what I learn. I also will keep doing a coding challenge every day to sharpen my skills. Most importantly I will continue to enjoy this journey and have fun coding as much as possible.

Onward and upward…