The key difference is that:
When doing high level development, you are mainly dealing with how to solve a real world problem. Your "problem domain" is a real world situation, your entities are real world entities, and your logic is application logic. (The term "real world" is somewhat flexible, here, since for example you may be developing an MMORPG, like World of Warcraft, in which case the world is anything but real, but still, within that context, that's the world you are treating as real.)
When doing low level development, you are mainly dealing with how to get the machine to perform a specific task as efficiently as possible. The entities that you are dealing with are most of the time highly technical in nature, like memory blocks, block chains, hash values, etc. and your logic has nothing to do with the real world, and everything to do with the machine. You are often dealing with concepts that are completely machine-specific, like the endianness of machine words, or the I/O ports through which you can communicate with a specific device, and the sequences of byes that you have to send to it to get it to do its job.
As a matter of fact, when interfacing between high level code and low level code, it is often beneficial to transform the high-level entities into low-level entities (or simply view the former as the latter, without a need for an actual transformation) so that the high level code never needs to deal with machine concerns, and the low level code never needs to deal with application concerns.
So, in your application you may have a collection of, say, customers, and be doing things with it of the kind that we do with customers, like charging them for goods purchased, or sending them newsletters, without caring about the internal representation of the collection. In your low level code, however, you will be seeing the collection as a fixed length array of pointers to objects, and you may know nothing about these objects other than, perhaps, that they can be invoked to compare themselves to each other or to compute their own hash values. You are not supposed to know that they are customers, and you are not supposed to send newsletters to them in low-level code.
So, if you find yourself using a low-level language like C, and having to deal with application entities like "customers", you are doing it wrong. You have been asked to use the wrong language for the job.