

Messaging, Serialization, and Queueing Systems.Everything below this point is optional - Additional Resources Be thinking of for when the interview comes.System Design, Scalability, Data Handling (if you have 4+ years experience).NP, NP-Complete and Approximation Algorithms.Combinatorics (n choose k) & Probability.traversals: preorder, inorder, postorder, BFS, DFS.balanced search trees (general concept, not details).Algorithmic complexity / Big-O / Asymptotic analysis.Interview Process & General Interview Prep.If you want to be a reliability engineer or operations engineer, study more from the optional list (networking, security). If you have many years of software/web development experience, note that large software companies like Google, Amazon,Facebook and Microsoft view software engineering as different from software/web development, and they require computer science knowledge. If you havemany years of experience and are claiming many years of software engineering experience, expect a harder interview. This is meant for new software engineers or those switching fromsoftware/web development to software engineering (where computer science knowledge is required). This is my multi-month study plan for going from web developer (self-taught, no CS degree) to software engineer for a large company. The items listed here will prepare you well for a technical interview at just about any software company, including the giants: Amazon, Facebook, Google, and Microsoft. This is my story: Why I studied full-time for 8 months for a Google interview

I studied about 8-12 hours a day, for several months.

After going through this study plan, I got hired as a Software Development Engineer at Amazon! You probably won't have to study as much as I did. I originally created this as a short to-do list of study topics for becoming a software engineer, but it grew to the large list you see today. A complete computer science study plan to become a software engineer.
