The tooling for programming is software that people use to create, debug, process and optimize some steps of the work. Those are the main ones:
Operational System – System that makes the communication between the hardware, managing and distributing its resources and other software, creating a common platform for all the software used.
Example: Windows, Ubuntu, macOS.
Terminal – It’s an interface of the command line; a way of people writing and sending commands to the computer.
Text Editor – A text editor is an app for editing text files.
Compiler– Transforms the code of a programming language to a machine code (or some of a lower level, closer to the binary that the hardware is able to process) that is read by the processor.
Machine Code – The language of the lower level of comprehension for the human being, and the only one understood for the processor (CPU).
Interpreter – Software that reads a source code of a code language interpreted, that is, converted in binary a line at a time instead of big blocks of the line and converts them in an executable code.
Browser – Software developed to allow browsing through the web and visualize pages.
Plugin – A code extension that can be added to a code you are working on. A plugin is an intrinsical extension to the context, for example, a plugin of a browser would not work in another. A plugin works by consuming the code or APIs of the main application.
Git – Versioning Control System (VCS) distributed, meaning that it’s shared for multiple contributors on a team, tracking the changes in the files and folders of an application.
GitHub – Plataform to host the source code of an application with the versioning control using Git.
Directory – A kind of folder that can have other directories and files inside of it.
Branch – It’s a ramification of the code of the versioning control. An altered version of the main code.
Index – Works as an area of the Git where the files can be sent to GitHub. Just like a departure lounge for code.
Actions on Git
Git fork – The command that creates a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project.
Git clone – The git clone command is used to create a copy of a specific repository or branch within a repository.
Git merge – The “merge” command is used to integrate changes from another branch.
Git fetch – Fetch from either a single named repository or URL, or from several repositories at once if <group> is given and there is a remotes.
Git pull – Fetch from and integrate with another repository or a local branch. git pull = git merge + git fetch.
Git add – The git add command adds a file to the Git staging area. This area contains a list of all the files you have recently changed.
Git commit – Creates a commit, which is like a snapshot of your repository. These commits are snapshots of your entire repository at specific times.
Git push – Updates the remote branch with local commits. It is one of the four commands in Git that prompts interaction with the remote repository
Git branch – List, create, or delete branches
Git checkout – The “checkout” command can switch the currently active branch – but it can also be used to restore files.
Pull Request – Pull requests let you tell others about changes you’ve pushed to a branch in a repository on GitHub.
Merge Pull Request – Inserts the alterations at the Pull Request in the targeted branch.
Algorithm – A programming algorithm is a procedure or formula used for solving a problem.
Language – It’s a formal language comprising a set of strings that produce various kinds of machine code output.
Code – Group of words and symbols with instructions for the computer.
Source Code – Source code is generally understood to mean programming statements that are created by a programmer with a text editor or a visual programming tool and then saved in a file.
Binary Code – A binary code represents text, computer processor instructions, or any other data using a two-symbol system.
Bug – A bug is a coding error in a computer program
Refactoring – Refactoring is the controllable process of systematically improving your code without writing new functionality.
Frameworks – A framework is a structure that you can build software on. It serves as a foundation, so you’re not starting entirely from scratch.
Queries – a query means a request for information retrieved from a database
Front-End – The front-end is what a user sees and interacts with (user interface).
Back-end – The back-end is part of the application that is hidden from the user (what some would call, under the hood). This part is responsible for data processing, storing the data, and mathematical operations.
Full-stack – Both front-end and back-end.
SSL (Secure Sockets Layer) – is a standard security technology for establishing an encrypted link between a server and a client
SOLID stands for:
- S – Single-responsiblity Principle
- O – Open-closed Principle
- L – Liskov Substitution Principle
- I – Interface Segregation Principle
- D – Dependency Inversion Principle
Library – Libraries are collections of prewritten code that users can use to optimize tasks.
HTML (Linguagem de Marcação de Hipertexto) – The HyperText Markup Language, or HTML is the standard markup language for documents designed to be displayed in a web browser.
CSS (Cascading Style Sheets) – It’s a style sheet language used for describing the presentation of a document written in a markup language such as HTML.
Bootstrap – Framework CSS.
UI Design – User interface (UI) design is the process designers use to build interfaces in software or computerized devices, focusing on looks or style.
UX Design – It’s the process design teams use to create products that provide meaningful and relevant experiences to users.
Responsive design – Responsive web design is about creating web pages that look good on all devices! A responsive web design will automatically adjust for different screen sizes
Adaptive design – Refers to graphical user interface (GUI) design that adapts to different screen sizes.
Fluid Design – In fluid web design, the widths of page elements are set proportional to the width of the screen or browser window.
Server – A server is a computer program or device that provides a service to another computer program and its user, also known as the client.
NPM (Node Package Manager) – Stems from when npm first was created as a package manager for Node. js. All npm packages are defined in files called packages.
Middleware – Middleware is software that lies between an operating system and the applications running on it.
Express.js – It’s a back-end web application framework for Node. js, released as free and open-source software under the MIT License. It is designed for building web applications and APIs.
Database – A database is an organized collection of data stored and accessed electronically.
Relational Database (SQL) – in the full structured query language, a computer language designed for eliciting information from databases.
NoSQL – Refers to any non-relational database. Some say the term “NoSQL” stands for “non SQL” while others say it stands for “not only SQL.”
DBMS – It’s essentially nothing more than a computerized data-keeping system. Users of the system are given facilities to perform several kinds of operations on such a system for either manipulation of the data in the database or the management of the database structure itself.
MySQL – It’s a relational database management system (RDBMS) developed by Oracle that is based on structured query language (SQL). A database is a structured collection of data. It may be anything from a simple shopping list to a picture gallery or a place to hold the vast amounts of information in a corporate network.
API (Application Programming Interface) – Application programming interfaces, or APIs, simplify software development and innovation by enabling applications to exchange data and functionality easily and securely.
Web Service – A Web service is a method of communication between two electronic devices over a network. It is a software function provided at a network address over the Web
Webhook – A webhook is a lightweight API that powers one-way data sharing triggered by events.
HTTP (HyperText Transfer Protocol) – The Hypertext Transfer Protocol is an application protocol for distributed, collaborative, hypermedia information systems that allows users to communicate data on the World Wide Web.
REST (REpresentational State Transfer) – It’s a software architectural style that was created to guide the design and development of the architecture for the World Wide Web
Restful – It’s an web application that realizes the implementation of the REST pattern.
CRUD (Create, Read, Update and Delete) – is an acronym for ways one can operate on stored data. It is a mnemonic for the four basic functions of persistent storage.
Deploy of web applications
Web Applications – A Web application (Web app) is an application program that is stored on a remote server and delivered over the Internet through a browser interface.
Deploy – Deployment, in the context of network administration, refers to the process of setting up a new computer or system to the point where it is ready for productive work in a live environment.
QA (Quality Assurance) – It’s any systematic process of determining whether a product or service meets specified requirements.
Evaluate code and logic
Code Climate (CC) – Code Climate is a web-hosted software which provides organizations and corporations the ability to take charge of their code quality by incorporating fully configurable test coverage as well as data maintainability throughout the workflow development.
Cognitive Complexity – It’s a measure of how difficult a unit of code is to intuitively understand.
Cyclomatic Complexity – It’s the quantitative measure of the number of linearly independent paths in it.
Linter – It’s a static code analysis tool used to flag programming errors, bugs, stylistic errors and suspicious constructs.
Code Smell – A code smell is a surface indication that usually corresponds to a deeper problem in the system. The term was first coined by Kent Beck while helping me with my Refactoring book.
Continuous Integration (CI) – Its a development practice where developers integrate code into a shared repository frequently, preferably several times a day.
Continuous Delivery (CD) – It’s an approach for software delivery in which development teams produce and test code in short but continuous cycles, usually with high degrees of automation, to improve software quality.
Automated Tests – It’s the application of software tools to automate a human-driven manual process of reviewing and validating a software product.
Code Review (CR) – It’s a systematic examination of software source code, intended to find bugs and to estimate the code quality.
Test-Driven Development (TDD) – It’s a programming practice that instructs developers to write new code only if an automated test has failed.
Unit Test – is an automated piece of code that invokes a unit of work in the system and then checks a single assumption about the behavior of that unit of work.
Mock – Mocking means creating a fake version of an external or internal service that can stand in for the real one, helping your tests run more quickly and more reliably.
Hardskills – Hard skills are specific abilities, or capabilities, that an individual can possess and demonstrate in a measured way.
Softskills – Are character traits and interpersonal skills that characterize a person’s relationships with other people.
Pair programming – It’s an agile software development technique in which two programmers work together at one workstation or together in a video call when working remotely.
Sprint – A sprint is a set period of time during which specific work has to be completed and made ready for review.
Kanban – The Kanban Method is a means to design, manage, and improve flow systems for knowledge work.
Agile – It’s a set of methods and practices where solutions evolve through collaboration between self-organizing, cross-functional teams.
Scrum – Scrum is an agile development methodology used in the development of Software based on an iterative and incremental processes.
MVP – Minimum Viable Product or MVP is a development technique in which a new product is introduced in the market with basic features, but enough to get the attention of the consumers.
Product Owner (PO) – It’s a member of the Agile Team responsible for defining Stories and prioritizing the Team Backlog to streamline the execution of program priorities while maintaining the conceptual and technical integrity of the Features or components for the team.
Business Rules – Are abstractions of the policies and practices of a business organization. In computer software development, the business rules approach is a development methodology where rules are in a form that is used by, but does not have to be embedded in, business process management systems.
Scrum Master – It’s a facilitator for an Agile development team. They are responsible for managing the exchange of information between team members.
Dev. Team – It’s the development team of the project
The ceremonies are rituals, meetings, and events that happen at a workplace. Usually, tech companies have structures for their ceremonies with the reasons for them to happen. Here are some more usual examples:
Daily Meeting (DM) – Teams use the daily meeting, one of the most common Agile techniques, to get together on a regular basis to coordinate their activities. Usually takes between 10 to 15 minutes with each team member.
Grooming – Grooming is an open discussion between the development team and product owner. The user stories are discussed to help the team gain a better understanding of the functionality that is needed to fulfill a story.
Planning – It’s the meeting where the activities are described and the priorities set for the next sprint.
1:1 – Meeting with the manager and a person of the team.
Product Backlog – The tasks that must be done in the product.