[[
wikihub
]]
Search
⌘K
Explore
People
For Agents
Sign in
Explore
People
For Agents
Sign in
@jeremynixon / Thinking / silicon-valley-job-skilling-amp-acquisition-guide.md
Suggest edit
Cancel
Submit suggestion
Title
Name
Note
--- title: "Silicon Valley Job Skilling & Acquisition Guide" visibility: public --- # Silicon Valley Job Skilling & Acquisition Guide Category: [[productivity|Productivity]] [Read the original document](https://docs.google.com/document/d/199uZ8VZqhB9BQ5gY2nZqyyX1FVi2kogyvkFhrDls140/edit?usp=drivesdk&sa=D&ust=1596495076602000&usg=AOvVaw0A0UOnl8qGZpiLS_z5uU5_) <!-- gdoc-inlined --> --- Concrete Goal Determination 1 Technical Skills and How to Learn Them 1 Resources & Curriculum Design 1 Topics List 2 Interview Opportunities and How to Access Them 5 Portfolio Construction 5 Passing Technical Interviews 6 Passing Non-Technical Interviews 6 Crafting a Story 6 Negotiating Offers 6 FAQ 7 Concrete Goal Determination This makes decision making decisive and narrows the curriculum and social outreach. You can tell people who may refer you to worthwhile positions exactly what you’re looking for, and you can build skills for that position much more efficiently. Technical Skills and How to Learn Them Resources & Curriculum Design This will cover the path of a traditional data scientist. Curriculum by topic: 1. Python Programming 2. Data Structures and Algorithms 3. Basic Machine Learning & Statistics 4. Machine Learning Library Creation Curriculum by resource: 1. Learn Python the Hard Way 1. Incredibly Incremental Approach to Learning Python for the Beginning Programmer 2. Python for Data Analysis 3. Interactive Python (Problem Solving With Data Structures and Algorithms Using Python) 1. Data Structures Practice 4. Cracking the Coding Interview 1. Solve all the problems. 5. Some of Introduction to Algorithms (CLRS) 6. Hackerrank / Leetcode 1. > 100 problems. 7. Applied Predictive Modeling 1. Accessible High Level Data Analysis / Machine Learning Textbook 8. Elements of Statistical Learning 9. Deep Learning Textbook Topics List 1. Data Structures 1. Hash Table 2. Linked List 3. Graphs 1. Adjacency List 2. Adjacency Matrix 3. Pointers and Objects 4. Heap 1. Fibonacci Heaps 2. Priority Queue 5. Binary Tree 6. Binary Search Tree 1. Balanced Binary Search Tree 1. Red Black Trees 2. AVL Trees 7. Queue 8. Stack 9. Dequeue 10. Arrays 11. Disjoint Set 2. Algorithms (Non-ML) 1. Graph Algorithms 1. Shortest Path 1. Dijkstra 2. Floyd-Warshall 3. Bellman-Ford 4. A* 2. Search 1. BFS 2. DFS 1. Topological Sort 2. Strongly Connected Components 3. Minimum spanning Tree 1. Kruskal 2. Prim 4. Min-Cut / Max-Flow 1. Ford-Fulkerson 2. Maximum bipartite matching 2. Recursion 1. Fibonacci 3. Dynamic Programming / Recursion 1. Knapsack 2. Traveling Salesman Problem 3. Longest Common Subsequence 4. Rod Cutting 5. Matrix-chain multiplication 6. Optimal Binary Search Trees 4. Divide and Conquer 1. Maximum-subarray 2. Strassen's Algorithm 5. Greedy 1. Huffman Codes 2. Matroids 1. Task-scheduling 6. Sorting 1. O(n log(n)) 1. MergeSort 2. Quicksort 3. Heapsort 2. O(n) 1. Radix Sort 2. Bucket Sort 3. O(n2) 1. Insertion Sort 2. Selection Sort 3. Bubble Sort 4. Shell Sort 7. Multithreaded 1. Multithreaded Matrix Multiplication 2. Multithreaded MergeSort 8. Linear Programming 1. Simplex 2. Branch, Bound and Cut 9. Fast Fourier Transform 10. String Matching 1. Rabin-Karp 2. Knuth-Morris-Pratt 11. NP Completeness 3. Testing 4. Programming Languages 1. Functions 1. Passing arguments by value / reference 2. Main: Handling command-line options 3. Return types and the return statement 4. Overloading (Differences in the input parameters determine the function called) 5. Polymorphism (Different behavior depending on class / type) 6. Default Arguments 2. Types 3. Variables 1. Val vs. Var 4. Expressions 1. Order of Evaluation 2. Logical and Relational Operators 3. Assignment 4. Increment / Decrement Operators 5. Conditionals 6. Type Conversions 7. Implicit / Explicit Conversions 5. Scope 6. Constants 7. Pointers, Arrays, References 8. Compilation 9. Namespaces 10. Error Handling 11. Regular Expressions 12. Iterators 13. Predicates 14. Resource Management 15. Garbage Collection vs. Reference Counting 5. Concurrency 1. Tasks and Threads 2. Passing Arguments 3. Sharing Data 4. Waiting for Events 5. Communication Tasks 6. Object Oriented Programming 1. Classes (c++) 1. Concrete Types 2. Abstract Types 3. Virtual Functions (Polymorphism) 4. Class Hierarchies 5. Copy and Move 6. Constructor 2. Objects (Instances of classes, determining their type) 3. Mixins 4. Inheritance 5. Data structure framing of programming rather than logic / action based framing 6. Immutable State 7. Distributed Computing 1. Map-Reduce 2. In-Memory Compute 3. How to parallelize algorithms 8. Memory Workings & Optimization 1. Pointers 2. Bits 1. Bit Manipulation 9. System Design 10. Data Access & Management 1. SQL Interview Opportunities and How to Access Them Portfolio Construction Passing Technical Interviews Typical Interview Set: * Recruiter Screen * Programming Phone Screen * Take-home assignment (Occational) Onsite: * Programming Interview * Data Structures & Algorithms Interview Position Specific: * Machine Learning Interview * Statistics Interview * System Design Interview * Database and Querying Interview Passing Non-Technical Interviews Crafting a Story Take your pathway, and ask how it demonstrates: 1. Collaboration 1. The people you worked with and how you worked together. 2. Persistence / Determination 1. Describe the challenges that you faced and how you overcame them. 3. Focus This is an opportunity to demonstrate clarity of thought & presentation as well as quality decision making. Mostly, this doesn’t matter. But have a stock story (<2m) to tell. FAQ 1. Representing a background with little software experience? --- *Source: [Original Google Doc](https://docs.google.com/document/d/199uZ8VZqhB9BQ5gY2nZqyyX1FVi2kogyvkFhrDls140/edit?usp=drivesdk&sa=D&ust=1596495076602000&usg=AOvVaw0A0UOnl8qGZpiLS_z5uU5_)*