Thursday, June 23, 2016

what's full-stack developer?

[update on 2016-6-26] I just learned that Udacity already offer this course since 2016-1. It cost 200 hours in total and $200 per month. I think it's pretty worth it.

Accidentally, I saw a full-stack program offered by codeup.com that costs $17.5k /4 months and promise you to get a job within 6 months. The syllabus is mainly on HTML, CSS, JavaScript, Laravel, jQuery, which can serve as a study plan.

I actually first heard of the term "full-stack developer" only a few days ago, when I was reading Xiaolai's blog due to his fascinating book "make friends with the time". He just announced his training plan of 2 months, and had caused a lot of controversy in internet. Nevertheless, I highly recommend his book and blog because he is really teaching the very essence of knowledge.

I didn't know what's full-stack developer until today when I looked into Zhihu. This concept can be best illustrated by the following graph. So full-stack developer is a full-fledge web developer who can take over the whole process of IT development. This person will be the most demanded one for a start-up or a small company.




I also found this genius guy, Phodal, who learned to code even before college. He selfless shared his knowledge on How to be a full-stack developer: https://github.com/phodal/growth-ebook. I spend several hours reading this book. Although I can't understand the technical part of web-development, I found some how-to-learn strategy really useful. For example, the best way to learn is to teach others. The second best way is to practice.

He also explained why he wants to be a full-stack developer:

  1. The world is full of mysteries, but I only want to tackle what interests me most
  2. no exploration, no true love. How do you know it’s your favorite part if you haven’t fully explored the world?
He also has a good point here:  People don’t lack of willpower to learn, they just don’t know what to learn. 

There are some interesting and informative graphs: 2 learning styles and 2 learning curves:



I also love the idea of MVP: minimum viable product. Just get it started! Don't need to be perfect.


The popularity of programming languages:

This makes me really like to be a full-stack developer. So much to learn, so exciting!


To be a programmer, seriously; learning plan



In a TEDxNYU talk by Ashley Gavin, she showed a startling difference (above) between the available job positions and college majors. It doesn't mean that all students should learn computer science. But if your goal is to get a job, you should be serious to acquire these skills.

This article is not for the talent people who are pursuing their passions in other majors and other industries. I love the world with various levels of diversity. This article is for the people who want to learn CS but didn't get a chance to really learn CS due to various reasons (the talk by Gavin well explained this point).

The simple study plan for the transferring majors was provided by Warald, Founder of 1point3acres, on Feb.14,2013. The original link is here. I summarize it below.

recommend 2 free online course website: udacity.com and coursera.org

level 1:
udacity CS101. (use python)

level 2:

  1. Java. 
  • books: "head first Java", "Data Structure and algorithms in Java"
  • videos: UC Berkely Jonathon (course material, youtube link),  or Princeton Robert (coursera link)
  • homework and practice is a must!
  • further study: Thinking in Java, Programming Interview Exposed
2. SQL. "A first course in database systems" by Jeffrey D. Ullman

level 3:
  • career cup
  • leetcode
  • continue online learning on  machine learning and artificial intelligence
  • other courses depending on your interests (data management/mobile/web front-end
a blogger on leetcode http://fisherlei.blogspot.com/