<p>Do most freshman who decide to major in CS have previous computer programming experience?</p>
<p>Most departments will state that you don't need previous programming experience but in my estimation, it helps. In some schools, so many people have experience that it puts you at somewhat of a disadvantage.</p>
<p>The OP is implying to me he wants to major in CS but states he doesn't have programming experience. Given how ridiculously easy it is to pick up a language and go (I started programming when I was about 10 off the help files in quickbasic that came with my windows 3.1 computer, for example), I have to ask why haven't you tried to learn to program before if your interest is strong enough to potentially major in it in college?</p>
<p>I doubt you will find the content of a CS degree inaccessible, but I have to question your passion for the subject.</p>
<p>I know several people who didn't know how to program and are doing excellent in CS programs here.</p>
<p>I know several people who did know how to program who, in my opinion, are not doing nearly as well.</p>
<p>I knew how to, and I'm doing great. As long as you like math, like figuring stuff out, and don't mind learning a language or two along the way, you're gold. Learning the stuff for the first time might be a little rougher, but those are the easy courses anyway.</p>
<p>I find that people who are self-taught on programming / hardware (in general) are not as great at the math and abstract thinking as those who didn't. Programming on your own tends to turn you into a code monkey - a hacker, not a Comp. Scientist. I've actually had to work a bit to overcome my tendency to jump right into programming, which is what playing around with it for years before learning what you're doing will tend to instill in you.</p>
<p>I signed up for a C++ Programing class this year, but the class was dropped because not enough students signed up and never had the time nor want to teach myself how to program</p>
<p>
[quote]
I find that people who are self-taught on programming / hardware (in general) are not as great at the math and abstract thinking as those who didn't.
[/quote]
My experience is about half and half. Yes there were a few people who thought they were too awesome to pay attention in AP CS due to prior experience and did poorly, but I see absolutely <em>no</em> correlation between prior experience and ability in math.</p>
<p>
[quote]
Programming on your own tends to turn you into a code monkey - a hacker, not a Comp. Scientist.
[/quote]
Well how many people in CS get jobs as computer scientists? "Code monkey" could describe most entry level jobs CS graduates get.</p>
<p>
[quote]
I've actually had to work a bit to overcome my tendency to jump right into programming, which is what playing around with it for years before learning what you're doing will tend to instill in you.
[/quote]
I completely disagree with what you're trying to communicate here. Some of my biggest learning moments involved me making horribly inefficient programs and then finding out it can be done with one function or done much more quickly with a bit of cleverness. True story: The first program I ever made was entirely if-then-else blocks that handled every possible value of someone's "life" in a game because I didn't know what loops or variables were. Within about a day or two of thinking "this looks horribly wrong", I found out that you didn't have to hard code every possibility and could simply use a variable to store values as they were realized, and that a loop could handle every "turn" in the game.</p>
<p>Ultimately, it was my realization that I was doing something inefficient which lead me to find a better way, so based on experiences like these I feel that the journey is more important than the end. If I had simply taken a class, I wouldn't have made such an egregious error as the above, but I also wouldn't have grasped why loops were so important as quickly as I did. I'm not saying you should go blind into everything and books are for chumps, but I also think that you should think really hard on your own first before attempting something.</p>
<p>I don't know if this will help you at all, but here is my approach to CS. I have an undergraduate degree in Information Systems, which is a hybrid degree of Business and technology/ w a 16 credit concentration in CS required for the major. I enjoy programming, but I am not a math genius and only took through Applied Calculus. I am now pursuing a Masters in Software Engineering. An SE masters is like the applied side of CS. I do some math but most of my work is on how to professionally program for a business or organization. I don't do a whole lot with theory or straight up math. We cover everything from programming to cost efficiency and budget to project management. Consider it if your a code master of sorts. Not sure if this helps at all.</p>
<p>There are a lot of routes to computer science, software engineering and being a good programmer. One guy I know got his Phd in English and became a software engineer. He has multiple patents and is working on some pretty interesting math research to eventually get into a commercial product.</p>
<p>I know lots of traditional CS engineers and those that came from a variety of backgrounds including electrician.</p>
<p>Depends on what your school has for pre-reqs. At my school you could do fine without any previous programming experience but many people do poorly because they have little or no experience.</p>