While you can use software and premade corpuses (whatever the latin declination would be?), I think that's a bit of a cop out. The first creators had no such tools at their disposal!
The first thing to do is to forget about trying to get the black cells in a pattern. I find it easiest to just start with a good long word or three and go from there, slowly weaving — horizontal, vertical, horizontal ... so the corner gets filled. It requires some sudoku-style trial-and-error, maybe talking to yourself aloud (to get more possible matches: jud-e, jud-f, jud-g[em], etc.) and backtracking, but it is quite doable and rewarding.
The choice of the starting word will depend on the language and its crossword making rules. In Slovenian for example, most words have a roughly even distribution of vowels and consonants, plus you'll never find two of the first together. So I know I have to pick the initial word, so that it has at most two together, otherwise I'll usually have problems in the grid later and will either have to use more black cells to get the problematic parts out as 2/3-letter simpletons or resort to foreign words and names.
English has less regularity, but you could start the same way.
If you can't get a 4x4 with what you've started with, try 5x3 or more in one of the favourable directions.
And if you still get stuck, going online for one word is still better than having most of the work done by a computer. There's always a 16th century Romanian poet, a Sudanese politician from 1922 or the wife of a Japanese olympian from 1984 to help you out.