I've been given a $2K budget from my employer to spend on training, books and/or conferences. I currently do Web Development (mostly front-end) and was looking for suggestions on what to spend it on.
My long-term goal is to work for Microsoft or Google and wanted to learn more about the fundamentals of algorithms and data structures. But I wouldn't mind to learn more about whats coming around the corner in the world of front-end development since things are changing and advancing so fast.
Thanks in advance!
Data Science - Johns Hopkins https://www.coursera.org/specialization/jhudatascience/1
Data Mining - UIUC (edit: was Johns Hopkins - bad copy/paste) https://www.coursera.org/specialization/datamining/20
There are more specializations that you can get here: https://www.coursera.org/specializations
It's kind of a layer on top of the free courses. I've been pleased so far. They'll also look nice in the education section of your resume, if you care about that.
http://mitpress.mit.edu/books/introduction-algorithms
I don't know about the other $1.9K.
Also, don't worry too much about getting the latest edition -- for the core things, it won't have changed much.
It could be the Sophomore level Data structures + Basic Algo course or a senior level Algorithms, wherever your comfort level is. Since you mostly do front-end development, this could bring serious depth in your computing skills.
For most CS programs, the data structures and basic algorithms course (typically at sophomore level) forms the backbone for most of the curriculum. If you didn't go through a CS program, this is the most important component that you might miss on.
Analysis of algorithms can be a bit intense, and also hard to trudge through as it seemingly has little direct relevance to coding. I found it's better to be in a classroom of people you can work with together to get through it.
It's very much worth it though for the intuition you will take away from it.
If you want a deep dive on algorithms and data structures, it would make sense to me to take a university course.
I had a friend who used to do this. He'd go through the University course catalog, find some interesting CS courses and then buy the books, show up for class, even take notes and do the homework. Said it was the best way for him to learn and get really deep into subjects which really interested him. After a while, I think he finally enrolled and tool some classes.
Another way of looking at stuff changing really fast: wait until it settles down some until you jump on board, or you risk wasting your time. I remember in the 90ies when CORBA was going to be the "next big thing". Glad I didn't spend time learning that...
# HTTP: The Definitive Guide - O'Reilly Media
# Algorithms by Sedgewick
# Introduction to Algorithms by Cormen.
Check out some Machine Learning books:
# Pattern Recognition and Machine Learning
# Computer Networks (5th Edition)
I would look at the following book if you wanted more Q&A and interview questions:
# Cracking the Coding Interview: 150 Programming Questions ...
Tutorial memberships:
# I would buy a Tuts+ account, they have been very slow in releasing new content (too bad), however they have lots of great Web Development stuff.
I would read some other non-technical books:
# Hackers & Painters: Big Ideas from the Computer Age by Paul Graham
# The Hard Thing About Hard Things by Ben Horowitz
# The Innovator's Dilemma: The Revolutionary Book That Will Change The Way You Do Business by Clayton M. Christenen,
# Thinking, Fast and Slow by Daniel Kahneman
# How to Win Friends and Influence People by Dale Carnegie
If you wanted to understand some Cloud stuff, look into the Whitepapers from Amazon Web Services:
this is an excellent book! also i would have to recommend How Google Works. its fairly new.
"Look at how Joe spent the $2k we gave him for professional development: He spent $30 on books and the rest on a paid vacation."
Other than that it really depends on where you want to go and how much you already know. If you'd like to go work for Microsoft I can recommend events and books, but if you want to work for Google, people will recommend completely different stuff.
This former googler who's interviewed a lot agrees with me: "For instance, if you read Cracking the Coding Interview and were diligent about it (i.e., actually worked through the problems and practiced at them), you'd stand a good chance of doing really well during Google's interview process." http://piaw.blogspot.com/2014/10/gaming-coding-interview.htm...
If you have never studied any of these topics, keeping this book in mind as you study for your algorithms course will be definitely helpful for your grade and your future interviews!
Leverage your training budget to show your personal goals are aligned with your employers overall business goals.
It might be instructive to start surveying different company stake-holders, from their perspective what works well or what needs improvement? What are their challenges? That feedback is Gold.
Those assorted needs & wants might inform the sort of training you seek. For example, the marketing department might want next generation Big Data Analytics & SEO. While, the operations group might be concerned about Security & Fraud issues.
Imagine if you could show how your training interests are aligned with company priorities-- that might earn a bigger budget allocation. And makes you even more valuable to company.
As a front-end developer, knowing what's "around the corner" is helpful, but I wouldn't invest a lot of time in it. Browser support for many "around the corner" technologies and practices is so far off it's not (yet) worth the time investment.
So, conference if you can without blowing your whole budget, then online courses / books.
http://www.amazon.com/Programming-Pearls-2nd-Edition-Bentley...
It hasn't a lot of algorithms per se, but it has a lot of examples of how a different view on a problem can lead to an easier/more performant solution. It also does a good job at explaining tradeoffs. I think it's great for people that have had some basic introduction already.
[Ref link if anyone feels like it: http://amzn.to/1CnQUQ7]
McDowell's The Google Resume also has some useful tidbits in it.
codeschool.com and peepcode.com
That said, why don't you do a Nanodegree from Udacity? https://www.udacity.com/nanodegree
The founder is a Googler and they partner with allot of great companies for their courses.
Also great is https://frontendmasters.com/ for anything JavaScript
And then draft a comprehensive plan to make this happen. If you do this, then you will become truly irreplaceable for your organization.
The "drier" the subject matter the more I like to it to take place at an offsite location where that is all I will doing for several days.
Pluralsight certainly is a good resource if you are more diligent than myself at managing your own curriculum.