A programming technique used to handle conditions and errors early in a function or block of code, by checking for invalid conditions and returning early.
"Guard clauses help improve readability and reduce the nesting level of code by handling edge cases at the start of functions."
A command-line utility for searching plain-text data sets for lines that match a regular expression.
"Grep is widely used in Unix-like operating systems to search for specific patterns within files."
A project that lacks any constraints imposed by prior work, often referring to software development where a project is started from scratch.
"Greenfield projects offer the opportunity to innovate without the need to accommodate existing systems or technologies."
A hacker who may sometimes violate laws or typical ethical standards, but does not have the malicious intent typical of a black hat hacker.
"Gray hat hackers often identify security weaknesses and report them to the owners, sometimes without permission to probe the system."
The study of graphs, mathematical structures used to model pairwise relations between objects from a certain collection.
"Graph theory is a field of mathematics and computer science, providing tools to analyze network structures in various domains."
A collection of nodes (or vertices) and edges that connect pairs of nodes, used in computer science to represent networks of relationships.
"Graphs are used to model various structures, such as social networks, transportation networks, and dependency trees in software projects."
An optimization algorithm used to minimize some function by iteratively moving in the direction of steepest descent, as defined by the negative of the gradient.
"Gradient descent is widely used in machine learning to find the parameters that minimize a loss function."
A cognitive bias that involves an over-reliance on a familiar tool or method, ignoring or underestimating alternative approaches.
"When you have a golden hammer, everything looks like a nail, which can lead to suboptimal solutions if the tool isn't appropriate for the task."
A class in object-oriented programming that knows too much or does too much, often seen as a sign of poor design since it violates the single responsibility principle.
"Refactoring a god class involves breaking it down into smaller, more focused classes that each handle a specific part of the functionality."
The process of using glob patterns to match file names or other strings according to specified rules.
"Globbing is often used in shell commands and scripts to select groups of files based on pattern matching."
The process of designing and developing applications that can be adapted to various languages and regions without engineering changes.
"Globalization involves internationalization and localization to ensure software can be used worldwide."
A pattern-matching syntax used in Unix-like operating systems for file names that allows for simple wildcard matches.
"Using glob patterns, you can easily specify groups of filenames with wildcard characters, like *.txt for all text files."
A short-lived fault in a system, such as a transient fault that corrects itself, making it difficult to troubleshoot.
"A glitch in the software caused it to freeze momentarily, but it resumed normal operation without any intervention."
A command in Git that shows what revision and author last modified each line of a file.
"Using git blame can help identify who made a particular change to the source code and why."
A method that gets the value of a property.
"In object-oriented programming, a getter allows controlled access to the private properties of a class."
A search heuristic that mimics the process of natural selection to generate useful solutions to optimization and search problems.
"Genetic algorithms are used in computing to find approximate solutions to complex problems through evolutionary techniques."
A style of computer programming in which algorithms are written in terms of types to-be-specified-later that are then instantiated when needed for specific types provided as parameters.
"Generic programming allows for the creation of software components that can work with any data type, increasing code reuse and flexibility."
A function that can be used to control the iteration behaviour of a loop.
"Generators in Python are used to create iterators with a sequence of values."
A type of garbage collection algorithm that categorizes objects by their age and treats them differently based on the assumption that most objects die young.
"Generational garbage collection improves efficiency by focusing on younger objects, which are more likely to be garbage."
GCC stands for GNU Compiler Collection. It is a suite of programming language compilers, including C, C++, and other languages, widely used in software development.
"You can use GCC to compile your C program into an executable file."
An automatic memory management feature of many modern programming languages, where the system automatically reclaims memory allocated to objects that are no longer in use.
"Garbage collection helps prevent memory leaks by freeing up space that is no longer being used by the program."
A toolkit for automating painful or time-consuming tasks in your development workflow, so you can stop messing around and build something.
"Gulp is used to streamline and enhance the web development process, automating tasks like CSS pre-processing and JavaScript transpilation."
An open-source set of common libraries for Java, mainly developed by Google, that includes collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, and so forth.
"Guava provides utility methods for collections, such as immutable collections and collection filtering, which simplify Java development."
A JavaScript task runner, a tool used to automatically perform frequent tasks such as minification, compilation, unit testing, and linting.
"Grunt automates the build process for JavaScript projects, making development workflows more efficient."
A powerful, optionally typed and dynamic language, with static-typing and static compilation capabilities, for the Java platform aimed at improving developer productivity.
"Groovy's syntax is similar to Java's, making it easy for Java developers to learn, while adding powerful features like closures and dynamic typing."
An open-source build automation system that builds upon the concepts of Apache Ant and Apache Maven and introduces a Groovy-based domain-specific language (DSL) for declaring project configurations.
"Gradle is used in Android development to automate the process of building, testing, and deploying applications."
A lightweight thread managed by the Go runtime, allowing Go programs to execute concurrent operations.
"Goroutines are a core feature of Go, enabling efficient parallel execution of functions with simple syntax."
A distributed document search and retrieval network protocol designed for the Internet before the World Wide Web became popular.
"Gopher servers presented hierarchical, menu-driven interfaces to users, allowing for easy access to various types of documents and services."
Google Dorking is a technique used by hackers or security researchers to find sensitive information by using advanced search operators on Google. It involves crafting specific search queries to uncover hidden or unprotected data on the internet.
"I stumbled upon some confidential company documents online through Google Dorking, which was quite concerning."
A web browser developed by Google, known for its speed, simplicity, and efficiency.
"Google Chrome is one of the most popular browsers, offering a wide range of extensions and developer tools."
A cloud-based scripting language for light-weight application development in the G Suite platform.
"Google Apps Script allows you to automate tasks across Google products, such as creating custom spreadsheet functions or automating email responses."
A web analytics service offered by Google that tracks and reports website traffic, providing insights into website performance and user behavior.
"Google Analytics is widely used by webmasters to understand how visitors interact with their sites and to improve user experience."
An open-source game engine for building 2D and 3D games that can be exported to multiple platforms.
"Godot provides a comprehensive set of tools for game developers, including a visual editor, scripting support, and a flexible scene system."
A statically typed, compiled programming language designed at Google by Robert Griesemer, Rob Pike, and Ken Thompson.
"Go is known for its simplicity, efficiency, and strong support for concurrent programming, making it popular for building web servers, data pipelines, and scalable network services."
A web-based hosting service for version control using Git, offering distributed version control and source code management functionality of Git, plus its own features.
"GitHub is a popular platform for software development projects, providing tools for collaboration, issue tracking, and code review."
GitHub is a cloud interface for Git, offering all the version control functionality of Git, plus its own features.
"GitHub facilitates collaboration by providing tools for tracking issues, conducting code reviews, and managing projects."
A distributed version-control system for tracking changes in source code during software development.
"Git allows multiple developers to work on the same project simultaneously, managing changes and merging code efficiently."
A version control system that automatically updates our file or project when we commit it.
"Git allows multiple developers to work on the same project without interfering with each other's changes."
Ghidra is a software reverse engineering framework developed by the National Security Agency (NSA) to analyze binary code. It's used for analyzing and understanding the functionality of software binaries and malware.
"Security analysts often rely on Ghidra to dissect and analyze suspicious software binaries for potential vulnerabilities or malicious behavior."
A system designed to capture, store, manipulate, analyze, manage, and present spatial or geographic data.
"GIS technology is used for mapping and analyzing earth and human societies to help solve complex problems around planning, management, and decision making."
A regulation in EU law on data protection and privacy in the European Union and the European Economic Area.
"GDPR aims to give control to individuals over their personal data and to simplify the regulatory environment for international business."
A package of Ruby application or library code, distributed through RubyGems, the Ruby package manager.
"Ruby developers can install gems to add functionality to their applications or to use existing code libraries."
A type of user interface that allows users to interact with electronic devices through graphical icons and visual indicators.
"GUIs make it easier for non-technical users to interact with computer programs and devices."
A term used to acknowledge the contributions of both the GNU project and the Linux kernel to the free operating system commonly just called Linux.
"GNU/Linux distributions include thousands of programs and utilities developed by the GNU project and the wider open-source community."
A Unix-like operating system and an extensive collection of computer software that respects the freedom of users and developers.
"GNU software is free software, meaning users are free to distribute, modify, and use the software as they wish."
Globalization; the process of designing products or services so that they can easily be adapted to specific local languages and cultures, a combination of internationalization and localization.
"G11n involves ensuring that a software application can be used and understood in many regions around the world."