While I was interested in computers since I was young (at about 3) - my interests started with gaming and "hacking".
Over time, I wanted to be a "hacker" and I started to look into actual software development. But till about Grade 8 - computers for me were a form of entertainment. I took CS classes but in all honesty, most teachers treated it as an extra-curricular activity (we were told to use MS paint, or play around in MS office etc.)
Over time, my interests grew and I wanted to make websites so I started off with some HTML. I got a basic hang of it and I wanted everything to be pretty - so I did some basic CSS and then I got in JS. (All of this was done in Notepad - I was not even aware about auto-complete and tab indentation till I got to university and started using Visual Studio and Eclipse)
I got into Software Engineering in university because I was passionate about computers - not "programming" in general. But the course of my education, I got into everything from web and mobile dev, to creating file systems (it was extremely basic) - and now, I'm extremely passionate about programming.
All that said...from personal experience, I would say that if you combine game dev, CS and SE - more than 80% of the incoming class came in with no prior experience in programming.
In my specific class, out of the graduating students (in Software Engineering)- at max 2 of the 15 are what I would consider "good/skilled" programmers. The rest got in because of various reasons (thought it was easy, thought they'd get a huge salary after leaving etc.) and don't really give a damn about programming/tech and their code/skills display that - but in the end, it does not even matter because companies like TCS/FDM hire such students, have a "intense" training program (read: basic Java/C# skills) and then pass on these "trained" students to enterprise (banks, hospitals etc.) and pay them extremely low (min. wage during training period, 30 - 40k CAD for the next 2 years - which these students will accept because they are aware of their deficiencies and this sets a bad precedence for even skilled workers)
It's not TCS/FDM's problem, managers/enterprises don't care either as long as you have that many hours/day and work gets done (quality and ownership does not really matter) and your co-workers generally have a similar skillset and play hot potato when it comes to getting actual work done. All the workload finally falls on that one skilled guy / team who basically does everything (who'll keep getting more and more frustrated and finally quit)- rinse & repeat. And worst of all - co-workers will have the audacity to make fun of the skilled worker for having an interest in programming/work (because having a passion for what you do is somehow a bad thing /s) all while offloading as much work as possible.
I have seen quite a lot of friends (skilled and mediocre) basically fall into the above cycle and in the end - the skilled are the ones who finally give up and stop giving a damn about their work/skills (which then sets a bad example - I have heard this as an example in uni - "why bother studying this framework/tech?, just find the guy who knows it and offload it to em") while mediocre workers basically get skilled at just that - not getting work done while not getting fired - which is considered a perfect 9 - 5 life.
BTW the above are my experiences and incidents I heard from friends/co-workers etc.