Broken down in eight categories.
1. Algorithms and Data Structures
- Big O Notation
- Sorting Algorithms
- Big Data - Let’s assume you have a leak in a water pipe in your garden. You take a bucket and some sealing materials to fix the problem. After a while, you see that the leak is much bigger that you need a plumber to bring bigger tools. In the meanwhile, you are still using the bucket to drain the water. After a while, you notice that a massive underground stream has opened. You need to handle gallons of water every second. Buckets aren’t useful anymore. You need a completely new approach to solve the problem because the volume and velocity of water has grown. To prevent the town from flooding, you may need the government to build a massive dam that requires an enormous civil engineering expertise and an elaborate control system. Big data describes data sets so large and complex that is impossible to manage with conventional data processing tools.
2. Artificial Intelligence
- Greedy Algorithm - Imagine you are going for hiking. You already have the map before you start. However, there are thousands of possible paths shown on the map. You are too lazy and simply don’t have the time to evaluate each of them. Screw the map! You started hiking with a simple strategy – be greedy and short-sighted. Just take paths that slope upwards the most.. After the trip ended and your whole body is sore and tired, you look at the hiking map for the first time. Oh my god! There’s a muddy river that I should’ve crossed, instead of keep walking upwards. A greedy algorithm picks the best immediate choice and never reconsiders its choices.
- Hill Climbing
- Simulated Annealing
- Dynamic Programming
- Machine Learning - Pararth Shah wrote a brilliant analogy here, but it’s too long to be included.
- P vs NP Problem
3. Computer Architecture and Engineering
- Parallelism - Eventually, you can’t cope with your job because there’s too much data entry tasks. You complain to your boss and he happily hires a data entry clerk to handle your data entry tasks.
- Race Condition
- Mutual Exclusion (Mutex)
5. Computer Security
- Computer Hacking
- Brute-force Attack
- Social Engineering
- Security Exploit
- Distributed Denial-of-service Attack (DDoS)
6. Computer Network
7. Software Development Methodologies
- Waterfall Development
- Agile Development
8. Common Beginner’s Questions
- What is the difference between computer science and programming? - Computer scientist is like a physicist and programmer is like an engineer.
- What is programming?
- Why you shouldn’t interrupt a developer when he/she is in the zone?
- What is the difference between a framework and library?
- How many lines of code does an average software engineer write per day?
- What is object-oriented programming?
- What is an application program interface (API)? - At restaurants, you order food (call API) from the menu (APIs). Once your food is ready (API response is ready), the waiter will serve you the food. The basic idea is: you ask for what you want and the system returns you a response, without exposing what’s happening behind the scene.
- What is the difference between SQL and NoSQL database?
Click here to read all definitions and answers.
Follow us on Twitter: @DataScienceCtrl | @AnalyticBridge