Earlier quoted context omitted.
Engineer: Someone qualified with a B Eng or equivalent. In some countries this requires a masters level as well. Programmer: A person who writes computer programs. I would personally also imply that the programs are typically not deployment of other programs, but this is my own view and not a standard definition. (Actually all of these are not standard definitions. At least, not anymore.) Developer: A web developer;…
"hacker"/"cracker" are terms only used/understood with nuance in the tech community. For the non-tech community: hacker = person committing computer crimes (black hat) cracker = a tasty snack (or, if you are in the American South, a contemptuous term for a white person) tinkerer = someone who tinkers around with stuff (what tech community traditionally called hacker as in hacker news)
The concrete definitions are:
Hacker: A programmer; someone who embodies the spirit of the programmer's way of thinking
Cracker: A programmer that commits crimes by illegally breaking in to systems.