Obviously your mileage may vary, and it seems that it's perfectly possible to get onto software development grad schemes without having any prior experience, as long as you demonstrate an ability to learn, and an aptitude for the kind of problem solving that is required.
In my interviews I was able to talk about my experience using multiple different types of programming languages, from C/C++/Java, Python, and even some functional programming languages like Scala and Haskell. I couldn't claim to be an expert in any of these, but I at least had the ability to talk about the different language features, i.e. compiled vs interpreted, Object Oriented vs Procedural vs Functional, weakly typed vs strongly typed etc. If you claim more than basic familiarity with a certain language then you can be expected to demonstrate your ability with the language syntax and features.
In programming interviews, it is quite common to be asked to write small complete programs, or functions, i.e. "Write a program that prints the first N prime numbers", "write a function that reverses each word in a string". If you cannot accomplish tasks like this in your language of choice, or struggle with remembering syntax, then you will be at a disadvantage. Not that an inability to do this will be an automatic barrier, as long as you can demonstrate an ability to think logically and solve problems.
These questions often lead on to discussions about efficiency, and choice of data structures or algorithms. Computer Science courses spend a lot of time covering these concepts. As an example, imagine trying to sort a shuffled deck of cards, one approach is to look through the pack for the smallest element, place it at the front, and then look through the rest of the pack for the second smallest element, repeating until sorted, this is a simple
algorithm, but not a particularly efficient one. You may be asked about more efficient approaches to solving this problem. The problem of
sorting data is a very deep and very complex topic, and the choice of an appropiate algorithm for your particular problem is very important.
Choice of data-structures is another important aspect of programming, and can be the difference between solving a problem efficiently or not at all. It would certainly help to at least be familiar with some of the more fundamental concepts, like linked lists, trees, etc. I can highly recommend Sedgewick's Algorithms textbook as a guide to this, it is the accompaniment to the course I listed above
https://www.coursera.org/course/algs4partI.
All of the above topics can be discussed rather abstractly, however in every case running a computer program involves moving patterns of bits around in memory and on the CPU, and performing operations on them. Having at least a basic knowledge of how the computer physically works can be very important in understanding why certain programs behave the way they do.
I think to sum up all my advice in a few words, it would be that to overcome a lack of any formal qualifications you will need to demonstrate an interest in the field, and the ability and willingness to learn. The more you can do this, either via programming you have done for work or pleasure, or books you have read and online courses you have taken, the better.