In Oxford dictionary, "divide" means to separate or make something separate into parts, while "separate" means to divide things into different parts. The dictionary does not describe the specific difference between the verb "divide" and "separate", so I need your help. If you give a detailed description of them, I will be appreciated a lot!
In reflection on how I tend to use those words, I'd say it has to do with the conditions/criteria used to determine what gets separated/divided into which groups.
Separate implies that the things in question are being separated by some property of those things. For example, I might separate my white shirts from the rest of my clothes and wash them separately with bleach, or I might separate the power cords and data cords when reorganizing the tangled mess of wires under my desk (which happens with regrettable frequency, but I digress).
Divide implies that the things in question are being divided into certain quantities. For example, I might divide my laundry into baskets/loads, or I might divide my pizza into equal portions for everyone in the room (which usually results in me having a whole pizza, but I - again - digress...). This is consistent with the mathematical concept of division.
Another perspective here might be etymology. Divide and separate both come from Latin (dīvidō "divide; distribute; distinguish" and sēparō "divide; distinguish; separate", respectively). From here, dividere is a combination of dīs- ("two, twice, half") and vidō ("separate", from a PIE root for - you guessed it - "separate"), while separare is a combination of sē- ("apart") and parō ("prepare", from a PIE root for "produce, procure, bring forth").
I think this lends credence to the idea of divide being based on more of a mathematical condition (distributing equally/proportionally, for example) and separate being based more on a categorical or more manual / human-driven condition (separating by some trait, for example). On the other hand, Peter's answer makes sense in this context, too ("separating in half" v. "bringing forth" something that's already "apart"). Hard to say, really; asking a similar question to a Latin-speaker ("what's the difference between dīvidō and sēparō?") might be enlightening, though.
Practically-speaking, hardly anyone - even a fluent English-speaker - will likely care one way or the other, especially since they are indeed used interchangeably.
Divide and separate have the same meaning in that both create smaller parts from a greater whole, but the full context of how they are used and their needs to be understood to get the full meaning.
Often means there is intent in making the disaggregation.
The food was divided amoung the campers.
On the other hand
Usually means to take apart / keep apart
Separate the wheat from the chaff.
But they can often be used interchangeably
The children were separated into groups by school year.
The children were divided into groups by school years.
She separated the laundry into color categories.
She divided the laundry into color categories.
Usage usually dictates which to use in what situation.