Students often confuse assignment statements and comparison statements in Python. (= verses ==). They often get variables and constants mixed up especially in languages that rely on convention to declare constants. Variables themselves can be a challenge! (Although there has been some work on developing analogies for variables.) Boolean data types also present a conceptual challenge, especially when statements such as while True: are used.
In Mathematics there are entire bodies of literature on identification and resolving math misconceptions.
I want a book like this but related to programming. Alternatively, as a starter a list of common misconceptions in text based programming languages would be very helpful.