From a42d48f6ffc0d82a10d52feedab81b681fe1b8ae Mon Sep 17 00:00:00 2001 From: John Washam Date: Mon, 27 Feb 2017 12:17:55 -0800 Subject: [PATCH] Finalized rename. --- README.md | 238 +++++------ extras/future-googler-preview.png | Bin 14374 -> 0 bytes extras/future-googler.pdf | 669 ------------------------------ 3 files changed, 103 insertions(+), 804 deletions(-) delete mode 100644 extras/future-googler-preview.png delete mode 100644 extras/future-googler.pdf diff --git a/README.md b/README.md index 8cc6066..11f134b 100644 --- a/README.md +++ b/README.md @@ -1,28 +1,29 @@ -# Google Interview University +# Coding Interview University ->**I originally created this as a short to-do list of study topics, but it grew to the large list you see today. Working at -Google was the original motivator, hence the name. [I didn't get an interview at Google](https://googleyasheck.com/i-didnt-get-hired-heres-why/), -but the repo name lives on, and it would mess up a lot of folks to change it now. The items listed here will prepare you -for a career at just about any software company, including the giants: Amazon, Microsoft, Google, and Facebook.** +>**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. +The items listed here will prepare you well for in an interview at just about any software company, including the giants: Amazon, Facebook, Google or Microsoft.** > > *Best of luck to you!* Translations: - [中文版本](translations/README-cn.md) - translations in progress: - - [Español](https://github.com/jwasham/google-interview-university/issues/80) - - [हिन्दी](https://github.com/jwasham/google-interview-university/issues/81) - - [עברית](https://github.com/jwasham/google-interview-university/issues/82) - - [Bahasa Indonesia](https://github.com/jwasham/google-interview-university/issues/101) - - [Arabic](https://github.com/jwasham/google-interview-university/issues/98) - - [Vietnamese](https://github.com/jwasham/google-interview-university/issues/92) - - [Turkish](https://github.com/jwasham/google-interview-university/issues/90) - - [French](https://github.com/jwasham/google-interview-university/issues/89) - - [Russian](https://github.com/jwasham/google-interview-university/issues/87) - - [Ukrainian](https://github.com/jwasham/google-interview-university/issues/106) - - [Brazilian Portuguese](https://github.com/jwasham/google-interview-university/issues/113) - - [Korean](https://github.com/jwasham/google-interview-university/issues/118) - - [Polish](https://github.com/jwasham/google-interview-university/issues/122) + - [Español](https://github.com/jwasham/coding-interview-university/issues/80) + - [हिन्दी](https://github.com/jwasham/coding-interview-university/issues/81) + - [עברית](https://github.com/jwasham/coding-interview-university/issues/82) + - [Bahasa Indonesia](https://github.com/jwasham/coding-interview-university/issues/101) + - [Arabic](https://github.com/jwasham/coding-interview-university/issues/98) + - [Vietnamese](https://github.com/jwasham/coding-interview-university/issues/92) + - [Turkish](https://github.com/jwasham/coding-interview-university/issues/90) + - [French](https://github.com/jwasham/coding-interview-university/issues/89) + - [Russian](https://github.com/jwasham/coding-interview-university/issues/87) + - [Ukrainian](https://github.com/jwasham/coding-interview-university/issues/106) + - [Brazilian Portuguese](https://github.com/jwasham/coding-interview-university/issues/113) + - [Korean](https://github.com/jwasham/coding-interview-university/issues/118) + - [Telugu](https://github.com/jwasham/coding-interview-university/issues/117) + - [Polish](https://github.com/jwasham/coding-interview-university/issues/122) + - [German](https://github.com/jwasham/coding-interview-university/issues/135) + - [Urdu](https://github.com/jwasham/coding-interview-university/issues/140) ## What is it? @@ -30,21 +31,12 @@ This is my multi-month study plan for going from web developer (self-taught, no ![Coding at the whiteboard - from HBO's Silicon Valley](https://dng5l3qzreal6.cloudfront.net/2016/Aug/coding_board_small-1470866369118.jpg) -You'll see a lot of Google-related items, but I've tried to generalize the list to make it useful for everyone. - -This list was extracted and expanded from Google's coaching notes, so these are the things you need to know. -There are extra items I added at the bottom that may come up in the interview or be helpful in solving a problem. Many items are from -Steve Yegge's "[Get that job at Google](http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html)" and are reflected -sometimes word-for-word in Google's coaching notes. - -I've pared down what you need to know from what Yegge recommends. I've altered Yegge's requirements -from information received from a contact at Google. This is meant for **new software engineers** or those switching from +This is meant for **new software engineers** or those switching from software/web development to software engineering (where computer science knowledge is required). If you have many years of experience and are claiming many years of software engineering experience, expect a harder interview. -[Read more here](https://googleyasheck.com/what-you-need-to-know-for-your-google-interview-and-what-you-dont/). If you have many years of software/web development experience, note that large software companies like Google, Amazon, -Facebook and Microsoft software engineering as different from software/web development, and they require computer science knowledge. +Facebook and Microsoft view software engineering as different from software/web development, and they require computer science knowledge. If you want to be a reliability engineer or systems engineer, study more from the optional list (networking, security). @@ -106,6 +98,11 @@ If you want to be a reliability engineer or systems engineer, study more from th - [Scheduling](#scheduling) - [Implement system routines](#implement-system-routines) - [String searching & manipulations](#string-searching--manipulations) + - [Tries](#tries) + - [Floating Point Numbers](#floating-point-numbers) + - [Unicode](#unicode) + - [Endianness](#endianness) +- [Networking](#networking) - [System Design, Scalability, Data Handling](#system-design-scalability-data-handling) (if you have 4+ years experience) - [Final Review](#final-review) - [Coding Question Practice](#coding-question-practice) @@ -121,9 +118,6 @@ If you want to be a reliability engineer or systems engineer, study more from th - [Additional Books](#additional-books) - [Additional Learning](#additional-learning) - [Compilers](#compilers) - - [Floating Point Numbers](#floating-point-numbers) - - [Unicode](#unicode) - - [Endianness](#endianness) - [Emacs and vi(m)](#emacs-and-vim) - [Unix command line tools](#unix-command-line-tools) - [Information theory](#information-theory) @@ -131,18 +125,17 @@ If you want to be a reliability engineer or systems engineer, study more from th - [Entropy](#entropy) - [Cryptography](#cryptography) - [Compression](#compression) - - [Networking](#networking) (if you have networking experience or want to be a systems engineer, expect questions) - [Computer Security](#computer-security) - [Garbage collection](#garbage-collection) - [Parallel Programming](#parallel-programming) - [Messaging, Serialization, and Queueing Systems](#messaging-serialization-and-queueing-systems) + - [A*](#a) - [Fast Fourier Transform](#fast-fourier-transform) - [Bloom Filter](#bloom-filter) - [HyperLogLog](#hyperloglog) - [Locality-Sensitive Hashing](#locality-sensitive-hashing) - [van Emde Boas Trees](#van-emde-boas-trees) - [Augmented Data Structures](#augmented-data-structures) - - [Tries](#tries) - [N-ary (K-ary, M-ary) trees](#n-ary-k-ary-m-ary-trees) - [Balanced search trees](#balanced-search-trees) - AVL trees @@ -162,7 +155,6 @@ If you want to be a reliability engineer or systems engineer, study more from th - [Geometry, Convex hull](#geometry-convex-hull) - [Discrete math](#discrete-math) - [Machine Learning](#machine-learning) - - [Go](#go) - [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) - [Video Series](#video-series) - [Computer Science Courses](#computer-science-courses) @@ -193,7 +185,7 @@ I'm using Github's special markdown flavor, including tasks lists to check progr `git checkout -b progress` -`git remote add jwasham https://github.com/jwasham/google-interview-university` +`git remote add jwasham https://github.com/jwasham/coding-interview-university` `git fetch --all` @@ -232,7 +224,7 @@ Sometimes the classes are not in session so you have to wait a couple of months, - [ ] [Gayle L McDowell - Cracking The Coding Interview (video)](https://www.youtube.com/watch?v=rEJzOhC5ZtQ) - [ ] [Cracking the Coding Interview with Author Gayle Laakmann McDowell (video)](https://www.youtube.com/watch?v=aClxtDcdpsQ) - [ ] How to Get a Job at the Big 4: - - [ ] ['How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft' (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8) + - [ ] [How to Get a Job at the Big 4 - Amazon, Facebook, Google & Microsoft (video)](https://www.youtube.com/watch?v=YJZCUhxNCv8) - [ ] Prep Course: - [ ] [Software Engineer Interview Unleashed (paid course)](https://www.udemy.com/software-engineer-interview-unleashed): @@ -269,18 +261,15 @@ This is a shorter list than what I used. This is abbreviated to save you time. - [ ] [Programming Interviews Exposed: Secrets to Landing Your Next Job, 2nd Edition](http://www.wiley.com/WileyCDA/WileyTitle/productCd-047012167X.html) - answers in C++ and Java - - recommended in Google candidate coaching - this is a good warm-up for Cracking the Coding Interview - not too difficult, most problems may be easier than what you'll see in an interview (from what I've read) - [ ] [Cracking the Coding Interview, 6th Edition](http://www.amazon.com/Cracking-Coding-Interview-6th-Programming/dp/0984782850/) - answers in Java - - recommended on the [Google Careers site](https://www.google.com/about/careers/how-we-hire/interview/) If you have tons of extra time: -- [ ] [Elements of Programming Interviews](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836) - - all code is in C++, very good if you're looking to use C++ in your interview - - a good book on problem solving in general. +- [ ] [Elements of Programming Interviews (C++ version)](https://www.amazon.com/Elements-Programming-Interviews-Insiders-Guide/dp/1479274836) +- [ ] [Elements of Programming Interviews (Java version)](https://www.amazon.com/Elements-Programming-Interviews-Java-Insiders/dp/1517435803/) ### Computer Architecture @@ -366,12 +355,6 @@ OR: - algorithm catalog: - this is the real reason you buy this book. - about to get to this part. Will update here once I've made my way through it. - - To quote Yegge: "More than any other book it helped me understand just how astonishingly commonplace - (and important) graph problems are – they should be part of every working programmer's toolkit. The book also - covers basic data structures and sorting algorithms, which is a nice bonus. But the gold mine is the second half - of the book, which is a sort of encyclopedia of 1-pagers on zillions of useful problems and various ways to solve - them, without too much detail. Almost every 1-pager has a simple picture, making it easy to remember. This is a - great way to learn how to identify hundreds of problem types." - Can rent it on kindle - Half.com is a great resource for textbooks at good prices. - Answers: @@ -381,7 +364,6 @@ OR: - [ ] [Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844) - **Important:** Reading this book will only have limited value. This book is a great review of algorithms and data structures, but won't teach you how to write good code. You have to be able to code a decent solution efficiently. - - To quote Yegge: "But if you want to come into your interviews *prepped*, then consider deferring your application until you've made your way through that book." - Half.com is a great resource for textbooks at good prices. - aka CLR, sometimes CLRS, because Stein was late to the game @@ -407,7 +389,7 @@ through my notes and making flashcards so I could review. Read please so you won't make my mistakes: -[Retaining Computer Science Knowledge](https://googleyasheck.com/retaining-computer-science-knowledge/) +[Retaining Computer Science Knowledge](https://startupnextdoor.com/retaining-computer-science-knowledge/) ### 2. Use Flashcards @@ -445,8 +427,7 @@ There are a lot of distractions that can take up valuable time. Focus and concen ## What you won't see covered -This big list all started as a personal to-do list made from Google interview coaching notes. These are prevalent -technologies but were not mentioned in those notes: +These are prevalent technologies but not part of this study plan: - SQL - Javascript @@ -656,7 +637,7 @@ Write code on a whiteboard or paper, not a computer. Test with some sample input - binary search using recursion - ### Bitwise operations - - [ ] [Bits cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32) + - [ ] [Bits cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/bits-cheat-cheet.pdf) - you should know many of the powers of 2 from (2^1 to 2^16 and 2^32) - [ ] Get a really good understanding of manipulating bits with: &, |, ^, ~, >>, << - [ ] [words](https://en.wikipedia.org/wiki/Word_(computer_architecture)) - [ ] Good intro: @@ -843,11 +824,12 @@ If you need more detail on this subject, see "Sorting" section in [Additional De Graphs can be used to represent many problems in computer science, so this section is long, like trees and sorting were. -- Notes from Yegge: - - There are three basic ways to represent a graph in memory: +- Notes: + - There are 4 basic ways to represent a graph in memory: - objects and pointers - - matrix + - adjacency matrix - adjacency list + - adjacency map - Familiarize yourself with each representation and its pros & cons - BFS and DFS - know their computational complexity, their tradeoffs, and how to implement them in real code - When asked a question, look for a graph-based solution first, then move on if none. @@ -878,13 +860,6 @@ Graphs can be used to represent many problems in computer science, so this secti - Full Coursera Course: - [ ] [Algorithms on Graphs (video)](https://www.coursera.org/learn/algorithms-on-graphs/home/welcome) -- Yegge: If you get a chance, try to study up on fancier algorithms: - - [ ] Dijkstra's algorithm - see above - 6.006 - - [ ] A* - - [ ] [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm) - - [ ] [A* Pathfinding Tutorial (video)](https://www.youtube.com/watch?v=KNXfSOx4eEE) - - [ ] [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE) - - I'll implement: - [ ] DFS with adjacency list (recursive) - [ ] DFS with adjacency list (iterative with stack) @@ -917,7 +892,6 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [Tail Recursion (video)](https://www.youtube.com/watch?v=L1jjXGfxozc) - ### Dynamic Programming - - **NOTE:** DP is a valuable technique, but it is not mentioned on any of the prep material Google provides. But you could get a problem where DP provides an optimal solution. So I'm including it. - This subject can be pretty difficult, as each DP soluble problem must be defined as a recursion relation, and coming up with it can be tricky. - I suggest looking at many examples of DP problems until you have a solid understanding of the pattern involved. - [ ] Videos: @@ -1069,11 +1043,10 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [Mutex in Python](https://www.youtube.com/watch?v=0zaPs8OtyKY) - ### Papers - - These are Google papers and well-known papers. - Reading all from end to end with full comprehension will likely take more time than you have. I recommend being selective on papers and their sections. + - [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/) - [ ] [1978: Communicating Sequential Processes](http://spinroot.com/courses/summer/Papers/hoare_1978.pdf) - [implemented in Go](https://godoc.org/github.com/thomas11/csp) - - [Love classic papers?](https://www.cs.cmu.edu/~crary/819-f09/) - [ ] [2003: The Google File System](http://static.googleusercontent.com/media/research.google.com/en//archive/gfs-sosp2003.pdf) - replaced by Colossus in 2012 - [ ] [2004: MapReduce: Simplified Data Processing on Large Clusters]( http://static.googleusercontent.com/media/research.google.com/en//archive/mapreduce-osdi04.pdf) @@ -1081,7 +1054,9 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - [ ] [2006: Bigtable: A Distributed Storage System for Structured Data](https://static.googleusercontent.com/media/research.google.com/en//archive/bigtable-osdi06.pdf) - [An Inside Look at Google BigQuery](https://cloud.google.com/files/BigQueryTechnicalWP.pdf) - [ ] [2006: The Chubby Lock Service for Loosely-Coupled Distributed Systems](https://research.google.com/archive/chubby-osdi06.pdf) - - [ ] [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](https://www.akkadia.org/drepper/cpumemory.pdf) + - [ ] [2007: Dynamo: Amazon’s Highly Available Key-value Store](https://www.akkadia.org/drepper/cpumemory.pdf) + - The Dynamo paper kicked off the NoSQL revolution + - [ ] [2007: What Every Programmer Should Know About Memory (very long, and the author encourages skipping of some sections)](http://s3.amazonaws.com/AllThingsDistributed/sosp/amazon-dynamo-sosp2007.pdf) - [ ] [2010: Dapper, a Large-Scale Distributed Systems Tracing Infrastructure](https://research.google.com/pubs/archive/36356.pdf) - [ ] [2010: Dremel: Interactive Analysis of Web-Scale Datasets](https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/36632.pdf) - [ ] [2012: Google's Colossus](https://www.wired.com/2012/07/google-colossus/) @@ -1138,14 +1113,62 @@ You'll get more graph practice in Skiena's book (see Books section below) and th If you need more detail on this subject, see "String Matching" section in [Additional Detail on Some Subjects](#additional-detail-on-some-subjects) ---- +- ### Tries + - Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits + to track the path. + - I read through code, but will not implement. + - [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) + - [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) + - [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) + - [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1) + - [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries) + - [ ] Short course videos: + - [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries) + - [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries) + - [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie) + - [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure) + - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/) + - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU) + - [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) + +- ### Floating Point Numbers + - [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU) + - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec) + +- ### Unicode + - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html) + - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/) + +- ### Endianness + - [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html) + - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo) + - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0) + - Very technical talk for kernel devs. Don't worry if most is over your head. + - The first half is enough. + +- ### Networking + - **if you have networking experience or want to be a systems engineer, expect questions** + - otherwise, this is just good to know + - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro) + - [ ] [UDP and TCP: Comparison of Transport Protocols](https://www.youtube.com/watch?v=Vdc8TCESIg8) + - [ ] [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0) + - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial.](https://www.youtube.com/watch?v=nomyRJehhnM) + - [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As) + - [ ] [SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0) + - [ ] [SSL/TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM) + - [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8) + - [ ] [Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j) + - [ ] [Subnetting Demystified - Part 5 CIDR Notation](https://www.youtube.com/watch?v=t5xYI0jzOf4) + - [ ] Sockets: + - [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s) + - [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ) ## System Design, Scalability, Data Handling - **You can expect system design questions if you have 4+ years of experience.** - Scalability and System Design are very large topics with many topics and resources, since there is a lot to consider when designing a software/hardware system that can scale. Expect to spend quite a bit of time on this. -- Considerations from Yegge: +- Considerations: - scalability - Distill large data sets to single values - Transform one data set to another @@ -1234,7 +1257,7 @@ You'll get more graph practice in Skiena's book (see Books section below) and th - For even more, see "Mining Massive Datasets" video series in the Video Series section. - [ ] Practicing the system design process: Here are some ideas to try working through on paper, each with some documentation on how it was handled in the real world: - review: [System Design from HiredInTech](http://www.hiredintech.com/system-design/) - - [cheat sheet](https://github.com/jwasham/google-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf) + - [cheat sheet](https://github.com/jwasham/coding-interview-university/blob/master/extras/cheat%20sheets/system-design.pdf) - flow: 1. Understand the problem and scope: - define the use cases, with interviewer's help @@ -1322,8 +1345,6 @@ There is a great intro for methodical, communicative problem solving in an inter interview books, too, but I found this outstanding: [Algorithm design canvas](http://www.hiredintech.com/algorithm-design/) -[My Process for Coding Interview (Book) Exercises](https://googleyasheck.com/my-process-for-coding-interview-exercises/) - No whiteboard at home? That makes sense. I'm a weirdo and have a big whiteboard. Instead of a whiteboard, pick up a large drawing pad from an art store. You can sit on the couch and practice. This is my "sofa whiteboard". I added the pen in the photo for scale. If you use a pen, you'll wish you could erase. Gets messy quick. @@ -1383,7 +1404,6 @@ Mock Interviews: ## Your Resume -- [Ten Tips for a (Slightly) Less Awful Resume](http://steve-yegge.blogspot.co.uk/2007_09_01_archive.html) - See Resume prep items in Cracking The Coding Interview and back of Programming Interviews Exposed @@ -1457,29 +1477,17 @@ You're never really done. ## Additional Learning +These topics will likely not come up in an interview, but I added them to help you become a well-rounded +software engineer, and to be aware of certain technologies and algorithms, so you'll have a bigger toolbox. + - ### Compilers - [ ] [How a Compiler Works in ~1 minute (video)](https://www.youtube.com/watch?v=IhC7sdYe-Jg) - [ ] [Harvard CS50 - Compilers (video)](https://www.youtube.com/watch?v=CSZLNYF4Klo) - [ ] [C++ (video)](https://www.youtube.com/watch?v=twodd1KFfGk) - [ ] [Understanding Compiler Optimization (C++) (video)](https://www.youtube.com/watch?v=FnGCDLhaxKU) -- ### Floating Point Numbers - - [ ] simple 8-bit: [Representation of Floating Point Numbers - 1 (video - there is an error in calculations - see video description)](https://www.youtube.com/watch?v=ji3SfClm8TU) - - [ ] 32 bit: [IEEE754 32-bit floating point binary (video)](https://www.youtube.com/watch?v=50ZYcZebIec) - -- ### Unicode - - [ ] [The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets]( http://www.joelonsoftware.com/articles/Unicode.html) - - [ ] [What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text](http://kunststube.net/encoding/) - -- ### Endianness - - [ ] [Big And Little Endian](https://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Data/endian.html) - - [ ] [Big Endian Vs Little Endian (video)](https://www.youtube.com/watch?v=JrNF0KRAlyo) - - [ ] [Big And Little Endian Inside/Out (video)](https://www.youtube.com/watch?v=oBSuXP-1Tc0) - - Very technical talk for kernel devs. Don't worry if most is over your head. - - The first half is enough. - - ### Emacs and vi(m) - - suggested by Yegge, from an old Amazon recruiting post: Familiarize yourself with a unix-based code editor + - Familiarize yourself with a unix-based code editor - vi(m): - [Editing With vim 01 - Installation, Setup, and The Modes (video)](https://www.youtube.com/watch?v=5givLEMcINQ&index=1&list=PL13bz4SHGmRxlZVmWQ9DvXo1fEg4UdGkr) - [VIM Adventures](http://vim-adventures.com/) @@ -1500,7 +1508,7 @@ You're never really done. - [(maybe) Org Mode In Depth: Managing Structure (video)](https://www.youtube.com/watch?v=nsGYet02bEk) - ### Unix command line tools - - suggested by Yegge, from an old Amazon recruiting post. I filled in the list below from good tools. + - I filled in the list below from good tools. - [ ] bash - [ ] cat - [ ] grep @@ -1553,23 +1561,6 @@ You're never really done. - [ ] [Compressor Head videos](https://www.youtube.com/playlist?list=PLOU2XLYxmsIJGErt5rrCqaSGTMyyqNt2H) - [ ] [(optional) Google Developers Live: GZIP is not enough!](https://www.youtube.com/watch?v=whGwm0Lky2s) -- ### Networking - - **if you have networking experience or want to be a systems engineer, expect questions** - - otherwise, this is just good to know - - [ ] [Khan Academy](https://www.khanacademy.org/computing/computer-science/internet-intro) - - [ ] [UDP and TCP: Comparison of Transport Protocols](https://www.youtube.com/watch?v=Vdc8TCESIg8) - - [ ] [TCP/IP and the OSI Model Explained!](https://www.youtube.com/watch?v=e5DEVa9eSN0) - - [ ] [Packet Transmission across the Internet. Networking & TCP/IP tutorial.](https://www.youtube.com/watch?v=nomyRJehhnM) - - [ ] [HTTP](https://www.youtube.com/watch?v=WGJrLqtX7As) - - [ ] [SSL and HTTPS](https://www.youtube.com/watch?v=S2iBR2ZlZf0) - - [ ] [SSL/TLS](https://www.youtube.com/watch?v=Rp3iZUvXWlM) - - [ ] [HTTP 2.0](https://www.youtube.com/watch?v=E9FxNzv1Tr8) - - [ ] [Video Series (21 videos)](https://www.youtube.com/playlist?list=PLEbnTDJUr_IegfoqO4iPnPYQui46QqT0j) - - [ ] [Subnetting Demystified - Part 5 CIDR Notation](https://www.youtube.com/watch?v=t5xYI0jzOf4) - - [ ] Sockets: - - [ ] [Java - Sockets - Introduction (video)](https://www.youtube.com/watch?v=6G_W54zuadg&t=6s) - - [ ] [Socket Programming (video)](https://www.youtube.com/watch?v=G75vN2mnJeQ) - - ### Computer Security - [MIT (23 videos)](https://www.youtube.com/playlist?list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) - [ ] [Introduction, Threat Models](https://www.youtube.com/watch?v=GqmQg-cszw4&index=1&list=PLUl4u3cNGP62K2DjQLRxDNRi0z2IRWnNh) @@ -1618,6 +1609,11 @@ You're never really done. - [ ] [MessagePack](http://msgpack.org/index.html) - [ ] [Avro](https://avro.apache.org/) +- ### A* + - [ ] [A Search Algorithm](https://en.wikipedia.org/wiki/A*_search_algorithm) + - [ ] [A* Pathfinding Tutorial (video)](https://www.youtube.com/watch?v=KNXfSOx4eEE) + - [ ] [A* Pathfinding (E01: algorithm explanation) (video)](https://www.youtube.com/watch?v=-L-WgKMFuhE) + - ### Fast Fourier Transform - [ ] [An Interactive Guide To The Fourier Transform](https://betterexplained.com/articles/an-interactive-guide-to-the-fourier-transform/) - [ ] [What is a Fourier transform? What is it used for?](http://www.askamathematician.com/2012/09/q-what-is-a-fourier-transform-what-is-it-used-for/) @@ -1647,24 +1643,6 @@ You're never really done. - ### Augmented Data Structures - [ ] [CS 61B Lecture 39: Augmenting Data Structures](https://youtu.be/zksIj9O8_jc?list=PL4BBB74C7D2A1049C&t=950) -- ### Tries - - Note there are different kinds of tries. Some have prefixes, some don't, and some use string instead of bits - to track the path. - - I read through code, but will not implement. - - [ ] [Sedgewick - Tries (3 videos)](https://www.youtube.com/playlist?list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) - - [ ] [1. R Way Tries](https://www.youtube.com/watch?v=buq2bn8x3Vo&index=3&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) - - [ ] [2. Ternary Search Tries](https://www.youtube.com/watch?v=LelV-kkYMIg&index=2&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ) - - [ ] [3. Character Based Operations](https://www.youtube.com/watch?v=00YaFPcC65g&list=PLe-ggMe31CTe9IyG9MB8vt5xUJeYgOYRQ&index=1) - - [ ] [Notes on Data Structures and Programming Techniques](http://www.cs.yale.edu/homes/aspnes/classes/223/notes.html#Tries) - - [ ] Short course videos: - - [ ] [Introduction To Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/08Xyf/core-introduction-to-tries) - - [ ] [Performance Of Tries (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/PvlZW/core-performance-of-tries) - - [ ] [Implementing A Trie (video)](https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/DFvd3/core-implementing-a-trie) - - [ ] [The Trie: A Neglected Data Structure](https://www.toptal.com/java/the-trie-a-neglected-data-structure) - - [ ] [TopCoder - Using Tries](https://www.topcoder.com/community/data-science/data-science-tutorials/using-tries/) - - [ ] [Stanford Lecture (real world use case) (video)](https://www.youtube.com/watch?v=TJ8SkcUSdbU) - - [ ] [MIT, Advanced Data Structures, Strings (can get pretty obscure about halfway through)](https://www.youtube.com/watch?v=NinWEPPrkDQ&index=16&list=PLUl4u3cNGP61hsJNdULdudlRL493b-XZf) - - ### Balanced search trees - Know least one type of balanced binary tree (and know how it's implemented): - "Among balanced search trees, AVL and 2/3 trees are now passé, and red-black trees seem to be more popular. @@ -1827,16 +1805,6 @@ You're never really done. - [Machine Learning for Software Engineers](https://github.com/ZuzooVn/machine-learning-for-software-engineers) - Data School: http://www.dataschool.io/ -- ### Go - - [ ] Videos: - - [ ] [Why Learn Go?](https://www.youtube.com/watch?v=FTl0tl9BGdc) - - [ ] [Go Programming](https://www.youtube.com/watch?v=CF9S4QZuV30) - - [ ] [A Tour of Go](https://www.youtube.com/watch?v=ytEkHepK08c) - - [ ] Books: - - [ ] [An Introduction to Programming in Go (read free online)](https://www.golang-book.com/books/intro) - - [ ] [The Go Programming Language (Donovan & Kernighan)](https://www.amazon.com/Programming-Language-Addison-Wesley-Professional-Computing/dp/0134190440) - - [ ] [Bootcamp](https://www.golang-book.com/guides/bootcamp) - -- ## Additional Detail on Some Subjects diff --git a/extras/future-googler-preview.png b/extras/future-googler-preview.png deleted file mode 100644 index d587ccdbb4acb63787b63d1eb16da95854128a63..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14374 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 diff --git a/extras/future-googler.pdf b/extras/future-googler.pdf deleted file mode 100644 index 99f0ba7..0000000 --- a/extras/future-googler.pdf +++ /dev/null @@ -1,669 +0,0 @@ -%PDF-1.5 % -1 0 obj <> endobj 2 0 obj <>stream - - - - - application/pdf - - - Future Googler - - - 2016-06-06T11:14:29-07:00 - 2016-06-06T11:14:29-07:00 - 2016-06-06T11:14:29-07:00 - Adobe Illustrator CC 2015 (Macintosh) - - - - 256 - 156 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgAnAEAAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8A9U4q7FXYq7FVssscMTyy sEjjUu7noFUVJOKCaFl87edPzH1zzFfyQ2s0ltpQbjbWkRKlxWgaTjuzN4dB+OYspkvBa/tbLnmR AkQ6Adff+pBW/kHzyjW88el3UPqOojlCkMhYgBmC/Gg33JGDhPc0w7L1QqQjIefd+kPpO0t/q1rD b82k9GNY/UclnbiAOTE7kmm+ZQD6FCPCAO5VwsnYq7FXYqsmmjhheaU8Y41Lu25oqipO2JKCaFsc 078yvJWpX0NjZaj6t1cNwhj9GdeTeFWjCj6TkBkDr8Pa2nySEIyuR8j+pk2Tdi7FXYq7FXYq7FXY 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 - - - - uuid:ec7847ef-0657-c74f-8754-72daac11107d - xmp.did:1072163a-a6a5-40da-835f-9139dc824a65 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - uuid:24934e1f-6fc9-ed44-93c1-24c693ab60d5 - xmp.did:d7c14dfe-eafd-4816-a359-f7ff292944c8 - uuid:5D20892493BFDB11914A8590D31508C8 - proof:pdf - - - - - saved - xmp.iid:d7c14dfe-eafd-4816-a359-f7ff292944c8 - 2016-06-06T11:01:40-07:00 - Adobe Illustrator CC 2015 (Macintosh) - / - - - saved - xmp.iid:1072163a-a6a5-40da-835f-9139dc824a65 - 2016-06-06T11:14:23-07:00 - Adobe Illustrator CC 2015 (Macintosh) - / - - - - Print - False - False - 1 - - 66.000000 - 51.000000 - Picas - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - White - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 0.000000 - - - Black - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - CMYK Red - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - CMYK Yellow - CMYK - PROCESS - 0.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Green - CMYK - PROCESS - 100.000000 - 0.000000 - 100.000000 - 0.000000 - - - CMYK Cyan - CMYK - PROCESS - 100.000000 - 0.000000 - 0.000000 - 0.000000 - - - CMYK Blue - CMYK - PROCESS - 100.000000 - 100.000000 - 0.000000 - 0.000000 - - - CMYK Magenta - CMYK - PROCESS - 0.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=15 M=100 Y=90 K=10 - CMYK - PROCESS - 15.000000 - 100.000000 - 90.000000 - 10.000000 - - - C=0 M=90 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 90.000000 - 85.000000 - 0.000000 - - - C=0 M=80 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 80.000000 - 95.000000 - 0.000000 - - - C=0 M=50 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 50.000000 - 100.000000 - 0.000000 - - - C=0 M=35 Y=85 K=0 - CMYK - PROCESS - 0.000000 - 35.000000 - 85.000000 - 0.000000 - - - C=5 M=0 Y=90 K=0 - CMYK - PROCESS - 5.000000 - 0.000000 - 90.000000 - 0.000000 - - - C=20 M=0 Y=100 K=0 - CMYK - PROCESS - 20.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=50 M=0 Y=100 K=0 - CMYK - PROCESS - 50.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=75 M=0 Y=100 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 100.000000 - 0.000000 - - - C=85 M=10 Y=100 K=10 - CMYK - PROCESS - 85.000000 - 10.000000 - 100.000000 - 10.000000 - - - C=90 M=30 Y=95 K=30 - CMYK - PROCESS - 90.000000 - 30.000000 - 95.000000 - 30.000000 - - - C=75 M=0 Y=75 K=0 - CMYK - PROCESS - 75.000000 - 0.000000 - 75.000000 - 0.000000 - - - C=80 M=10 Y=45 K=0 - CMYK - PROCESS - 80.000000 - 10.000000 - 45.000000 - 0.000000 - - - C=70 M=15 Y=0 K=0 - CMYK - PROCESS - 70.000000 - 15.000000 - 0.000000 - 0.000000 - - - C=85 M=50 Y=0 K=0 - CMYK - PROCESS - 85.000000 - 50.000000 - 0.000000 - 0.000000 - - - C=100 M=95 Y=5 K=0 - CMYK - PROCESS - 100.000000 - 95.000000 - 5.000000 - 0.000000 - - - C=100 M=100 Y=25 K=25 - CMYK - PROCESS - 100.000000 - 100.000000 - 25.000000 - 25.000000 - - - C=75 M=100 Y=0 K=0 - CMYK - PROCESS - 75.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=50 M=100 Y=0 K=0 - CMYK - PROCESS - 50.000000 - 100.000000 - 0.000000 - 0.000000 - - - C=35 M=100 Y=35 K=10 - CMYK - PROCESS - 35.000000 - 100.000000 - 35.000000 - 10.000000 - - - C=10 M=100 Y=50 K=0 - CMYK - PROCESS - 10.000000 - 100.000000 - 50.000000 - 0.000000 - - - C=0 M=95 Y=20 K=0 - CMYK - PROCESS - 0.000000 - 95.000000 - 20.000000 - 0.000000 - - - C=25 M=25 Y=40 K=0 - CMYK - PROCESS - 25.000000 - 25.000000 - 40.000000 - 0.000000 - - - C=40 M=45 Y=50 K=5 - CMYK - PROCESS - 40.000000 - 45.000000 - 50.000000 - 5.000000 - - - C=50 M=50 Y=60 K=25 - CMYK - PROCESS - 50.000000 - 50.000000 - 60.000000 - 25.000000 - - - C=55 M=60 Y=65 K=40 - CMYK - PROCESS - 55.000000 - 60.000000 - 65.000000 - 40.000000 - - - C=25 M=40 Y=65 K=0 - CMYK - PROCESS - 25.000000 - 40.000000 - 65.000000 - 0.000000 - - - C=30 M=50 Y=75 K=10 - CMYK - PROCESS - 30.000000 - 50.000000 - 75.000000 - 10.000000 - - - C=35 M=60 Y=80 K=25 - CMYK - PROCESS - 35.000000 - 60.000000 - 80.000000 - 25.000000 - - - C=40 M=65 Y=90 K=35 - CMYK - PROCESS - 40.000000 - 65.000000 - 90.000000 - 35.000000 - - - C=40 M=70 Y=100 K=50 - CMYK - PROCESS - 40.000000 - 70.000000 - 100.000000 - 50.000000 - - - C=50 M=70 Y=80 K=70 - CMYK - PROCESS - 50.000000 - 70.000000 - 80.000000 - 70.000000 - - - - - - Grays - 1 - - - - C=0 M=0 Y=0 K=100 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 100.000000 - - - C=0 M=0 Y=0 K=90 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 89.999400 - - - C=0 M=0 Y=0 K=80 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 79.998800 - - - C=0 M=0 Y=0 K=70 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 69.999700 - - - C=0 M=0 Y=0 K=60 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 59.999100 - - - C=0 M=0 Y=0 K=50 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 50.000000 - - - C=0 M=0 Y=0 K=40 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 39.999400 - - - C=0 M=0 Y=0 K=30 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 29.998800 - - - C=0 M=0 Y=0 K=20 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 19.999700 - - - C=0 M=0 Y=0 K=10 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 9.999100 - - - C=0 M=0 Y=0 K=5 - CMYK - PROCESS - 0.000000 - 0.000000 - 0.000000 - 4.998800 - - - - - - Brights - 1 - - - - C=0 M=100 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 100.000000 - 100.000000 - 0.000000 - - - C=0 M=75 Y=100 K=0 - CMYK - PROCESS - 0.000000 - 75.000000 - 100.000000 - 0.000000 - - - C=0 M=10 Y=95 K=0 - CMYK - PROCESS - 0.000000 - 10.000000 - 95.000000 - 0.000000 - - - C=85 M=10 Y=100 K=0 - CMYK - PROCESS - 85.000000 - 10.000000 - 100.000000 - 0.000000 - - - C=100 M=90 Y=0 K=0 - CMYK - PROCESS - 100.000000 - 90.000000 - 0.000000 - 0.000000 - - - C=60 M=90 Y=0 K=0 - CMYK - PROCESS - 60.000000 - 90.000000 - 0.003100 - 0.003100 - - - - - - - Adobe PDF library 15.00 - - - - - - - - - - - - - - - - - - - - - - - - - endstream endobj 3 0 obj <> endobj 5 0 obj <>/Properties<>>>/TrimBox[0.0 0.0 792.0 612.0]/Type/Page>> endobj 6 0 obj <>stream -Hˎ$IE-kj@V={DfUH#$QIaǵkf~}~w<~|ģ|S?}y#CLю~xퟏtDґYePcmãMb\Z=ar|~9L-G Oʦ&Uj??N V%-9|^R0ZC,%j/ uڱ h>ʵdR-R*"ܷ߻~{西l"'eBd,)=& G0GǗ[%BnuHD}n)4־!rPVlz,G k -k­M8Le%sPD׌Z柢;;LK{⣫9V[4;/_/<6GoY-ZYpZWT,kC]4%=_5{Aq+i_t͊%v+V4>1M H/23- - -~7ڠazjY_aD`si멳z!Ox1 -TkW/_[ cGyZQb"CE]PEiQt -"B--)(y*ұ+o;.b3lA:_x9APHi թ˷lWH0-#ѱQ|; #ϟpHNq?)_M!Q~ɱM񅰟vGrOGl $ss&2IN{@f v׎ @yVY-K4DJ ۨ+D -M8< JUU쪚ۥP P7LLZAn"y iI5k!#*@l3Z 2ڔC*_M퀌任a4&F8!K,Eqc\R?$9v%Fѐ^8&]I³tJqrvr8UJpD`ѡC)9cO;|R ʐ \JvU F;:QV5kQfy:cXLѩY)Mψ[j>ZDѲyѱTf#oS0qլl\xWK^d:>S(E:G1ζmkU(|u%챪L O&Z'8L6v/ Yhas7" ֜A)n'ొ>%( S %FtóuPŲ DA 9YbbH pEY ޱ/QH-,y_!0B\/爾FxߩFzʿi9#lKoZ1rԥ&mĖTa'e kd9dOHD{ Ic@lyi>{oSr (E(Fe+ iFTኸ"~O{f3u9][zڥRkIbX3G -'Hwno{4zSM|givIqyD/>{G~5$չ_)>Eo$ 7o >]KtmdD-B|yT7Y\jz\/%oˢ:坏dSy=ek:mNɜX۲ }}NJPLĥ`6UhGԎ 쇇nwÐe]l,M5TœL D 1mT%mJ̦iuE[X-+^O{|p @Z5E&q֘P[ n1"Ko KËLNɈ9ln Ѫ<c̗a7EjĤ{ y5*'GsoXa;_/@M8;; ;TK> -Hkd6 24|[[j`8nxU8PL6uu iZXgK,bzF\k;.U8ȮRar9wni'РenfeO"y[ΚlHa<h)$SzsȹM/FK5"8 igT)+w-M> endobj 7 0 obj <> endobj 9 0 obj <> endobj xref 0 10 0000000000 65535 f -0000000016 00000 n -0000000076 00000 n -0000055729 00000 n -0000000000 00000 f -0000055780 00000 n -0000056030 00000 n -0000059257 00000 n -0000059131 00000 n -0000059369 00000 n -trailer <<38C68F7129E04A38946532D6AB8ACB85>]>> startxref 59565 %%EOF \ No newline at end of file