1. Understanding Software Development and Web Technologies Flashcards
Style of coding where functions are passed around as arguments and used to compose new functions
its’s focused on the evaluation of functions and expressions rather than on the statement of algorithms
Functional Programming
A sequence of instructions, each step telling the computer what to do
usually in sequential order thus breaking down the problem into smaller tasks and organizing the order of execution.
Procedural Programming
Organizes programs around objects that communicate with each other.
Objects are organized into classes that contain both data and the methods that manipulate that data.
Focused on creating reusable objects that can be used in other programs.
Object Oriented Code.
Software tool that translates a program’s source code into an equivalent executable form BEFORE it can be executed
Compiler
Software program that executes source code directly without prior compiling
Interpreter
Precompiled collections containing pre-written code that solves common programming tasks thus allowing devies to leverage EXISTING functionality rather than starting from scratch
Software Libraries
Tools such as Git enable developers to track and manage changes to their code and collaborate effectively with others.
Tracks changes made to files over time
Version Control System (VCS)
Assessing the quality, functionality and performance of a software app in order to identify defects, errors or vulnerabilities in the software to ensure its reliability, correctness and compliance with specified requirements
Software Testing.
Ensures that previously working functionality remains unnaffected after modification or bug fies and involves retesting existing test cases to verify that any changes did not introduce new defects or impact existing functionality.
Regression Testing
Employing specialized tools or frameworks to automate the execution of test cases thus improving efficiency, accuracy and repeatability of tests.
Suitable for repeitive or complex scenarios
Test Automation
Testing activities throughout the SDLC that involve automated testing, frequent feedback loops and early detection of issues thus enabling faster and more reliable software delivery
Continuous Testing
Procedural programming language know for its efficiency, low-level system acess and flexibility
suitable for system-level programming and embedded systems
C
An extension of the C programming language that introduces OOP features.
Combines low-level C control with additional features like classes, inheritance, polymorphism and templates
System Development
Game Development
Performance Critical apps
C++
Modern OOP developed by Microsoft that is designed for building wide range of apps on MS .NET framework including Windows desktop apps, web apps and games.
Incorporates features from
C++
Java
Strong integration with .NET platform
C# aka C sharp
Widely used general purpose OOP know for its platform independence and robustness.
Write Once - Run Anywhere: Java runs anywhere that has the Java Virtual Machine (Java Virtual Machine) installed.
Enterprise level applications
Android Apps
Web Applications
Java
Scripting language primarily used for front-end web development.
Enables interactive and dynamic behavior on web pages.
Runs on browsers and allows devies to manipulate web page elements, handle events, perform client side validations and interact with web APIs.
Javascript
High-level, versatile OOP known for simplicity, readability and ease of use.
Emphasizes code readability and offers extensive libraries
Web development
Data analysis
Scientific computing
AI
Automation
For code readability and productivity not known for performance
Python
Server-side scripting language widely used for web development and it is embedded within HTML code and executed on the server to generate dynamic web content.
Integrates well with databases and often used for building websites, content management systems and e-commerce platforms
PHP Hypertext Preprocessor
Tools like vim, nano, notepad++, Gedit on linux
Source code editors
Complex side of code editors that permit much deeper integration with debugging, versioning and collaboration tools
Intellij
VS
Eclipse
IDE - Integrated Development Environment
One of the most important standards for creating websites
HTTP - Hypertext Transfer Protocol
Designed to send coded requests to servers listening at remote addresses and then translate the data that comes back in response.
May encrypt data to protect us from malware and snooping.
Browser
A service that accepts requests from API clients much the same way that a website listens to browsers but the data is only accessible programatically.
Multiple computers to connect and exchange data at code level.
API - Application Programming Interface
API that uses standard HTTP methods like GET and POST to perform operations on resources identified by URL (Uniform Resource Locators)
REST - Representational State Transfer
REST APIs requests from a client to the server needs to contain all the necessary information to process that request.
The concept of STATELESS