← Back to Wiki
Programming
Full Stack Development
Core concepts for building modern web and mobile applications. Full stack means
working on both the frontend (what users see) and backend (servers, databases, logic).
Architecture Basics
- Frontend — What users see and interact with. Runs in the browser. HTML, CSS, JavaScript, React. Makes things look good and respond to clicks.
- Backend — The server side. Stores data, handles business logic, talks to databases. Users never see this code directly. Node.js, .NET, Python, databases.
- Full Stack — You do both. Build the UI and the server logic. Handle the entire flow from user click to database and back.
- API (Application Programming Interface) — A way for two pieces of software to talk to each other. Like a waiter taking your order to the kitchen and bringing back food. You don't need to know how the kitchen works.
REST vs GraphQL
Two different ways to ask for data from a server.
- REST — Each URL (endpoint) does one thing.
GET /users returns all users. GET /users/5 returns user #5. Simple but sometimes gives you more data than you need.
- GraphQL — One endpoint, you ask for exactly what you need. More modern and specific. You get back exactly what you requested, nothing more.
When to use which: REST is simpler for basic CRUD apps. GraphQL shines when you have complex data relationships or need to reduce over-fetching.
SQL vs NoSQL
Two different ways to store data. Both run on servers.
- SQL (PostgreSQL, MySQL, SQL Server) — Data in tables with rows and columns, like spreadsheets. Fixed structure defined upfront. Great for data with clear relationships (users have projects, projects have tasks).
- NoSQL (MongoDB, Firebase) — Data stored as documents (like JSON objects). Flexible structure. Good for unstructured or rapidly changing data.
When to use which: SQL for structured business data with relationships (banking, e-commerce, construction projects). NoSQL for flexible data, social feeds, real-time apps.
React Concepts
The most popular JavaScript library for building user interfaces.
- Components — Building blocks of UI. A button, a header, a card. You compose small components into bigger ones.
- Props — Data passed down from parent to child component. Read-only, like handing someone a note. The child displays it but can't change it.
- State — Data that lives inside a component and can change over time. Like a counter or form input. When state changes, the component re-renders.
- Hooks — Functions that let you use state and other React features.
useState, useEffect, useContext are common ones.
Simple rule: Props flow down (parent to child). State lives where it can change. If multiple components need the same state, lift it up to a common parent.
Authentication
How apps know who you are after you log in.
- JWT (JSON Web Token) — A token the server gives you after login. You send it with every request to prove who you are. Like a wristband at a concert - show it once, wear it all night.
- OAuth 2.0 — Framework for "Login with Google/Microsoft/Facebook". Lets users grant apps limited access without sharing passwords.
- RBAC (Role-Based Access Control) — Permissions based on roles. Admin can do everything, Manager can edit, Viewer can only read.
- ABAC (Attribute-Based Access Control) — More granular. Access based on user attributes, resource attributes, and environment (time, location).
Git and Version Control
How teams collaborate on code without overwriting each other's work.
- Git — Version control tool that runs locally. Tracks changes to code over time. Every developer has it on their machine.
- GitHub/GitLab — Hosting platforms for Git repos. Where teams share code, review changes, and collaborate. Git is the tool, GitHub is a website.
- Branch — A separate line of development. Work on your feature without affecting the main code.
- Commit — A snapshot of your code at a point in time. Like a save point in a game.
- Pull Request (PR) — "I made changes on my branch. Please review my code and merge it into the main branch." A review checkpoint before code goes live.
- Merge — Combine one branch into another. After a PR is approved, your changes become part of main.
Cloud Infrastructure
Outsourcing your servers to data centers run by big companies.
- Azure — Microsoft's cloud platform. Virtual machines, databases, storage, serverless functions. Competes with AWS and Google Cloud.
- AWS (Amazon Web Services) — Amazon's cloud platform. The largest cloud provider. S3 for storage, EC2 for servers, Lambda for serverless.
- Scalability — Need more servers? Click a button. Don't need them? Turn them off and stop paying. No hardware sitting idle.
Why cloud: Someone else handles security, backups, and hardware. You pay for what you use. Scale up and down on demand.
Testing
Automated checks that your code works correctly.
- Jest — JavaScript testing framework. Write tests that check if your functions return the right values. Runs in your terminal, not the browser. Green = passing, red = broken.
- Unit Tests — Test individual functions in isolation. Does
add(1, 2) return 3?
- Integration Tests — Test how pieces work together. Does the API correctly save to the database?
- CI/CD — Continuous Integration / Continuous Deployment. Automatically run tests when code is pushed. If tests pass, deploy to production.
Code Quality Tools
- ESLint — Finds problems in JavaScript code. Catches errors, enforces coding style, prevents bugs before runtime.
- Prettier — Opinionated code formatter. Press save, it reformats your code to consistent style. No debates about tabs vs spaces.
- TypeScript — JavaScript with types. Catches errors at compile time instead of runtime. Makes large codebases safer.
Mobile Development
- React Native — Use React to build native mobile apps. JavaScript codebase, compiles to real iOS/Android components. Write once, deploy to both stores.
- Swift — Apple's language for iOS development. Native, fast, type-safe. What the App Store apps are built with.
- Native vs Cross-Platform — Native (Swift/Kotlin) = best performance, platform-specific. Cross-platform (React Native/Flutter) = one codebase, both platforms.
Hardware Basics
- RAM (Random Access Memory) — Your computer's short-term memory. Holds data for currently running programs. More RAM = more apps open at once without slowing down.
- CPU — The brain. Executes instructions. More cores = can do more things in parallel.
- SSD/Hard Drive — Long-term storage. Keeps files when power is off. SSD is faster than traditional hard drives.
Analogy: RAM is your desk (fast access to current work). Hard drive is your filing cabinet (long-term storage). CPU is your brain (processes everything).
Common Integrations
- Salesforce — CRM (Customer Relationship Management). Tracks customers, sales pipelines, support tickets. Most companies integrate their apps with Salesforce data.
- SAP — Enterprise Resource Planning. Manages finance, HR, supply chain, projects. Complex but critical for large companies.
- Stripe — Payment processing. Accept credit cards, manage subscriptions. Developer-friendly API.
Related Pages