Software Intern Technical Prep

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/44

encourage image

There's no tags or description

Looks like no tags are added yet.

Last updated 1:38 AM on 10/5/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

45 Terms

1
New cards

Props vs. State (React)

Props are external data passed in from a parent and are read-only. State is internal data a component manages itself and can change, causing a re-render.

2
New cards

What is OOP?

A programming style that organizes code around objects. Built on 4 principles: Encapsulation, Inheritance, Polymorphism, Abstraction.

3
New cards

Class vs. Object

A class is a template/blueprint. An object is an actual instance created from that template.

4
New cards

Interface vs. Abstract Class

Abstract class: has implemented and unimplemented methods, can hold variables, one per class. Interface: only method signatures, no implementation, a class can implement multiple.


an interface defines a peripheral contract ("what" an object can do), while an abstract class defines an identity blueprint ("what" an object is)

5
New cards

Constructor

A special method that runs automatically when an object is created, used to initialize starting values.

6
New cards

let vs const vs var

var is function-scoped and outdated. let is block-scoped and reassignable. const is block-scoped and cannot be reassigned.

7
New cards

== vs ===

== compares values after converting types if different. === compares both value and type (preferred).

8
New cards

Callback function

A function passed as an argument into another function, to be executed later.

9
New cards

JavaScript vs. Java

Java: statically-typed, compiled, OOP language, mostly backend. JavaScript: dynamically-typed, interpreted, mostly frontend (also backend via Node.js).

10
New cards

id vs. class (CSS)

id is unique, targets one specific element. class can be reused across many elements for shared styling.

11
New cards

CSS Box Model

Content → Padding → Border → Margin (inside out).

12
New cards

Block vs. Inline elements

Block (div, p): full width, starts on new line. Inline (span, a): only as wide as content, sits alongside other elements.

13
New cards

Primary Key vs. Foreign Key

Primary key uniquely identifies each row in its own table. Foreign key is a column referencing a primary key in another table.

14
New cards

SQL JOIN

Combines related rows from two tables based on a shared column, usually a foreign key.

15
New cards

SQL vs. NoSQL

SQL: structured tables, fixed schemas, relationships. NoSQL: flexible, stores data as documents/pairs/graphs.

16
New cards

Why use a relational database instead of one big table?

Reduces duplication, keeps data consistent, more efficient to query/maintain as data grows (normalization).

17
New cards

React Component

A reusable, self-contained piece of UI in React, like a function that returns HTML.

18
New cards

What happens when you type a URL and hit enter?

Browser looks up the domain's IP address, opens a connection to the server, sends an HTTP request, server processes and sends back a response, browser renders the page.

19
New cards

Frontend vs. Backend

Frontend: everything the user directly sees/interacts with. Backend: server-side logic, database, and APIs the frontend communicates with.

20
New cards

What is an API?

A set of rules that allows different software applications to communicate and exchange data with one another, e.g. an app's frontend requesting data from an API and getting a structured response.

21
New cards

Stack vs. Queue

Stack: LIFO (Last In, First Out), like a stack of plates. Queue: FIFO (First In, First Out), like a line at a store.

22
New cards

Version Control

A system (e.g. Git) that tracks changes to code over time, enabling collaboration without overwriting work and the ability to revert mistakes.

23
New cards

Reverse a string (JavaScript)

str.split("").reverse().join("") — splits into characters, reverses the order, joins back into a string.

or general approach:

Place one pointer (left) at the start of the string (index 0) and another pointer (right) at the very end (length - 1). Swap the characters at these two pointers, then move left forward and right backward. Repeat until the pointers meet or cross in the middle.

24
New cards

Compiled vs. Interpreted languages

Compiled: translated to machine code before running (e.g. Java, C), errors caught at compile time. Interpreted: run line-by-line at runtime (e.g. JavaScript, Python).

25
New cards

How would you handle code that isn't working?

Check error messages/logs to isolate the issue, re-read the code carefully, check documentation, and ask a teammate for a second pair of eyes if still stuck.

26
New cards

HTTP GET vs. POST

GET: retrieves data, sent via URL, doesn't change anything on the server. POST: sends data to create/update something, sent via request body.

27
New cards

How would you optimize slow-running code?

Identify the actual bottleneck first (don't guess), look for repeated/unnecessary work (e.g. a DB call inside a loop), consider more efficient data structures or algorithms.

28
New cards

Responsive Design

Designing a site to look/function well across screen sizes, using flexible layouts (Flexbox/Grid), relative units, and media queries.

29
New cards
Hash Map vs. Array
Hash map gives fast lookup by key (~O(1) average). Array is better when order/index access matters. Use a hash map to check duplicates or count occurrences.
30
New cards
Big-O Notation
Describes how runtime grows with input size. E.g. binary search on a sorted array is O(log n); a linear scan of an unsorted array is O(n).
31
New cards
Recursion
A function that calls itself on a smaller version of the problem. Needs a base case, or it recurses forever and overflows the stack.
32
New cards
What is Inheritance?
A class can inherit attributes/methods from another class, allowing code reuse. E.g. a Dog class inherits from an Animal class.
33
New cards
What is Encapsulation?
Bundling data and the methods that operate on it together, and restricting direct access to some of an object's internals (e.g. private variables with public getters/setters).
34
New cards
What is Polymorphism?
Objects of different classes can be treated through a common interface, and the same method call behaves differently depending on the object (e.g. makeSound() differs for Dog vs. Cat).
35
New cards
What is Abstraction?
Hiding complex implementation details and exposing only what's necessary to use an object.
36
New cards
How would you find duplicates in an array?
Use a hash set: loop through the array, and for each element check if it's already in the set. If yes, it's a duplicate; if no, add it to the set. This runs in O(n) time instead of comparing every pair (O(n²)).
37
New cards
Array vs. Linked List
Array: fixed-size, contiguous memory, fast index access (O(1)), slow insert/delete in the middle. Linked list: nodes linked by pointers, slower access (O(n)) but fast insert/delete since you just update pointers.
38
New cards
When would you use a hash map/dictionary?
When you need fast lookups, insertions, or to count occurrences by a key — e.g. checking for duplicates, counting word frequency, or looking up a value by ID instead of searching an array.
39
New cards
GET vs. POST vs. PUT
GET: retrieves data, no changes. POST: creates a new resource. PUT: updates/replaces an existing resource (often at a known ID).
40
New cards
How to check if a string is a palindrome
Compare the string to its reverse (str === str.split("").reverse().join("")), or use two pointers starting at each end, moving inward and checking characters match.
41
New cards
Find the largest/smallest number in an array
  1. Check for Empty Array: Ensure the array contains at least one element to avoid errors.

  2. Initialize Trackers: Initialize two variables, largest and smallest. Set both of them equal to the first element of the array (array[0]).

    • Crucial Tip: Do not initialize them to 0. If your array contains only negative numbers, initialization to 0 will yield an incorrect result. [1, 2, 3]

  3. Loop Through the Array: Iterate through the rest of the array starting from the second element (index 1). [1, 2]

  4. Compare and Update: For every element in the loop:

    • If the current element is greater than largest, update largest to this element.

    • If the current element is less than smallest, update smallest to this element. [1] O(n) time.


42
New cards
Find the sum or average of an array
  1. Initialize Sum: Create a variable named sum and set it to 0.

  2. Get Count: Find the total number of elements in the array (length or size).

  3. Loop Through Array: Go through each item in the array one by one.

  4. Accumulate: Add each item's value to the sum variable.

  5. Calculate Average: Divide the final sum by the total count of elements.

  6. Check Empty Arrays: Make sure the array is not empty before dividing to prevent a crash or a NaN (Not a Number) result. O(n) time.


43
New cards
Sort an array

Use a built-in sort (e.g. .sort() in JS) for practical purposes. Conceptually, common algorithms include bubble sort (simple, O(n²)) and merge sort (efficient, O(n log n)).
|
BUBBLE: You iterate through the array and compare adjacent elements side by side. If they are in the wrong order, you swap them. This process causes the largest elements to "bubble up" to the end of the array with each pass

44
New cards
Time Complexity (Big-O)
Describes how runtime grows with input size. A single loop through an array is O(n); a nested loop (comparing every pair) is O(n²); binary search on sorted data is O(log n).
45
New cards
Client vs. Server
Client: the user-facing side (browser/app) that sends requests and displays results. Server: processes requests, runs logic, accesses the database, and sends back a response.