Bugs And Programmers
Published: 2022-11-28 15:36:32

#Intro
##Bugs that develop a good developer
The idea of The Bugs that Develop a good software engineer was greatly inspired by the experiences all levels of programmers have encountered. Over time, you would come to understand how to build or write clean code with the existence of bugs. This is a fact that is very mostly verifiable by many developers, software engineers, and programmers who have experienced bugs during or after development. 
Be it a beginner, specialist, or expert. Many times,  you would have to encounter bugs that kept you stuck in a spot for hours, days, or weeks, as the case may be. During the learning phase or on a project for deliverables. Nevertheless, you’ve also found headway to resolve and continue either learning or developing the project to be delivered to the client. Then and there, it becomes a huge relief for every level of developer you know.
##Good Software Solution
A good software solution here is referred to a program that satisfies users' experience, scalability, performance, security, availability, adaptability, and economy that will perform time-consuming tasks. Built on clean architecture and takes different phases of debugging and testing. 
Upon this process of determining performance, you will surely come across annoying and frustrating multiple lines of error messages pointing at what the possible fix could be. As a developer, you shouldn’t be scared as this is no different from any successful developer you look up to today. This is an obvious reason you should know the different types of errors or bugs encountered during the development process.
_As a developer, you create bugs and fix them. Having to understand this, let's look into some common errors you face during development. With the very first._
 
**- Syntax Error:**
This kind of bug is generated when a programmer chooses not to follow the language rules of a computer programming language.
A simple example of this is the `print(“hello”)` 
in a python programming language, and then mistakenly didn’t add one of the quotes in the parenthesis or use a 
`Print(“hello”)` in Case sentence format. 
`<h3>MULTIPLY 1452 by 4 = {{1452*4}}</h3>` Angular data binding with just `{}` single curly brace. 
These simple mistakes would generate a bug on your code. Avoiding this type of error is to understand the grammatical rules of that language

**- Logic Error:**
This occurs when you’ve programmed the software to do the wrong thing. A technical mistake caused by an incorrect software program flow and having and not considering some other execution scenario.
**- Arithmetic Error:**
An arithmetics error is another type of logic error that involves mathematical expression. This type of bug returns incorrect values which could be a result of your software using the wrong algorithm to perform simple or complex mathematical calculations or calculations with data type mismatch.
`int NumA, int NumB, Rem,` `NumA/Rem `will return an error since the values of Rem are not declared with a data type to perform 
**- Functional Errors:**
This is a more extensive type of error that mostly occurred when intelligent software seemed not to behave as designed. Functional error is experienced when interacting between API calls. This bug is also created by you as any bugs experienced during development. You can see this play out when interacting with API endpoints. For example, you make a request to Send or Submit a form to the Store. On hitting the ‘Save Button’, as expected the result should be that the details be sent into the Store (Database). However, the information from your Form isn’t in the Database(400 Bad Requests). This is a typical example as experienced in most scenarios. Getting these excruciating biting bugs, you created, requires a proper and thorough inspection.
**- Runtime Error:**
This is a type of error that occurs during program execution or simply running of the program. An example of a runtime error comes in the form of assigning a value to an undeclared variable or a missing semicolon. these will cause a runtime error as the server would not recognize or interpret the code. Also, users get hold of the codes and run them on a different machine not used in developing it. This is another very annoying, frustrating, time-consuming bug caused by the developer due to not getting a complete setup, this causes a runtime error. You can check out more examples of errors on how to handle them.
 
##Debugging the Bug
As early stated, developers of all levels have experienced some form of bugs or errors in their codes during or after their development phase. You should as a developer endeavor to study line by line the output of these bugs and learn a lot from them. _Computer bugs are your best friend at the end of it all because bugs make you understand a whole lot in programming._
 

> if debugging is the process of removing bugs, then programming must be the process of putting them in
  Edsger W. Dijkstra
##Definition
Debugging is a technique used to find and remove errors or bugs in a program.
This involves a multi-step process in software development, which includes you Investigating to identify the bugs, finding their source, and fixing it to make the program error-free. This process of investigating and correcting errors in the code to have an error-free code. Is an integral process involved in the SDLC (software development life-cycle)
Debugging process is not only practiced in the software development process as it’s also an integral technique used in hardware development. In **hardware development,** the debugging process is practically investigating each hardware component to determine which parts are not installed or configured properly. This process of investigation could be done as soon as the process of installation begins. As in the case of debugging program source code, that starts out the moment you write your first line of program code.
 	
##Debugging tools
Debugging tool generally known as a debugger is a software tool that enables a developer to identify errors in different phases of the software development process.
The debugger is so efficient as to analyze each line of your code to identify which line stopped the program execution and also interpret each network passage when interacting with the API (application programming interface) call or request with dev tools.
There are lots of standalone debugging tools to look at but would limit this article to the power and uniqueness of the debugger most software developers uses in our IDEs. _Research further_

**- Visual Studio:** For .Net developers, it’s very powerful to detect errors and enable programmers with controls to set a breakpoint and analyze code to identify bugs.
**- Visual studio code:** The debugger integration in VScode is super intelligent to understand any developing programming language used in it. By just installing their extension. Most developers have welcomed the use of this general-purpose IDE, as you would also prefer to use it.  Simply because it's handy for C#, Python, C++, Php, Ruby, Typescript, JavaScript etc,
**- Browser debugging tool (DevTools):** The browser debugging tool is another handy and very powerful debugging tool every developer should get to understand its usage and make use of. For testing out performance in the browser. For example, there’s a functional error experienced. 

##Handling Bugs
They may be seen as boring and frustrating most time because in many cases they appear to be very common. handling bugs will require you to; 
- Investigate each line of code.
- Leverage the use of debugging tools 
- Study Each code block and console log
- Do research on [google](https://www.google.com
) and [Stackoverflow](https://stackoverflow.com)
- Take a rest. (You tend to resolve most challenges with a little moment of relaxation that clears the)
- Always expect bugs.  

##Conclusion: 
Bugs are mostly created and fixed by programmers and software engineers. It also helps your understanding of different programming languages in use. Learn alongside the bugs you encountered and document each experience encountered bugs for reference.