We tend to use the word 'binary' in an odd way when talking about the content of computer storage. Fundamentally, storage is always binary: zeroes and ones. But we talk about 'text files' when we mean files in which the zeroes and ones are supposed to be interpreted as making up characters which have meaning to humans (can be printed, etc.), and then files that are not text files get called 'binary' files, even though they're all binary really.
Likewise, the holes in cards can mean 'binary' or 'text', though again it's all fundamentally hole or not-hole. But the way the information is arranged is somewhat different between the two modes of operation.
Binary data on punch cards
How binaries are generated using Punched cards?
From the 30,000 foot level, the principle is pretty much the same regardless of input device. There are some 'marks' on a storage medium. A special device (and its controller) knows how to convert those marks -- whether they're patterns of magnetization on a rotating disc, or charges in very small capacitors, or holes in paper -- into signal levels which represent ones and zeroes to a computer, and then to use those signal levels to write the ones and zeroes into memory.
For a card, you typically end up with 80 columns x 12 rows of ones and zeroes stored in memory. What those ones and zeroes "mean" is system-dependent. There are probably two "modes" in which cards may be interpreted: "text" mode in which each column is considered to be a character in some arbitrary encoding (usually one, two, or three holes per column), and "binary" mode, in which there's some defined more-or-less direct mapping between the holes in the card and words in memory.
Consider the case of a 36-bit computer. One possible arrangement for binary card files is to say that one card row, from columns 1 to 72, will hold two words of memory. Thus one card (12 columns) can hold 24 machine words, and there will be a convention that the controller and/or computer implements for transferring those words to memory. Maybe top row, cols 1 to 36 to word N, top row cols 37 to 72 to word N+1, next row, cols 1 to 36 to word N+2, ...
The IBM 709/7090/7094 systems used this sort of arrangement. Binary decks would be punched by compilers and loaders, and read in for exexcution.
This Wikipedia article on the IBM 711 card reader describes the read-by-rows arrangement, two words per row. 'Row 9' is the bottom row of the card (from the top to the bottom, the rows are numbered 11, 12, 0, 1, … 9).
Can I feed the binaries to the computer directly?
Yes in general, though the details depend on what you're exactly arguing.
You may be able to boot the computer from cards, as part of the general mechanism of selecting an input device and executing the computer-specific boot procedure.
The IBM 701 (~1950s era) allowed this. See for example this article about the 701, on the page numbered 1273 -- it's a journal extract, not that big!
A boot deck would have to be punched precisely according to the hardware requirements. One card might well be enough for the bootstrap.
Could you run a binary program from cards under an operating system?
Depends on the OS, of course. In general, yes. It's just bits, and it likely doesn't matter where the bits came from. The only requirement is that the loader can handle sequential file input, since there's no going backwards and forwards on a card reader. Offhand, I can't think I've ever tried this -- but I have known (now forgotten) of systems that supported punching out a program image, which is pretty pointless if you can't then run them.
Text data on punch cards
I also noticed that there are always 2 holes per column on a punched card. Such things have confused me.
Cards with 'fewer' holes are likely cards that are to be considered as text. There is one character punched per column, with each character encoded as 0 to 3 holes. No holes is a space. Roughly speaking, the code space is laid out like this: the digits are encoded as one hole, in rows 0 to 9 with the obvious meaning. Letters are encoded as two holes, one of which is in row 11, 12, or 0, and the other in 1 through 9. Other 'special' characters need 3 holes. You can see the encoding on this page a little way down.