Being a software engineer is another way of saying that you are a problem solver, maybe the opposite isn’t correct but, let’s not argue about that here. We, software engineers, are always developing our problem-solving skills along the way of our career. But, many may be solving problems just by applying techniques and algorithms to solve them, then it becomes more of a selection process from a pool of algorithms and techniques that you already have. This is not wrong, but this is not all about solving a problem. Solving a problem requires a much more diverse skillset, algorithm selection…

What if | The geeks version

The **halting problem** is the problem of determining, from a description of an arbitrary computer program and an input, whether the program will finish running, or continue to run forever.

In 1936, Alan Turing proved that a general algorithm to solve the halting problem for all possible program-input pairs cannot exist. For any program *f* that might determine if programs halt, a “pathological” program *g,* called with an input, can pass its own source and its input to *f* and then specifically do the opposite of what *f* predicts *g* will do. …