Did I go wrong somewhere?

<p>I'm a senior in HS right now. I plan on majoring in CS or Software Eng. I have been accepted to some good schools for this type of major. I have taken advanced science and math courses available in my school, and I have also taken advantage of the very minimal CS related courses at my school as well. Other than that, I don't have much experience with computer science. I know a bit of C from an intro class, but I'm not fluent at all. I'm now reading everywhere and hearing from others about various summer programs/internships people have had for CS already. I also hear how others know several programming languages and are already building programs, games, software, etc. This makes me slightly uneasy. Am I going enter this major at a major disadvantage for not being exposed to all this, or am I going into the wrong major all together?</p>

<p>Definitely not. First of all, a lot of people exaggerate how much they know about programming. There are a few exceptions, but some people have had a natural drive for it or had the resources to do so. For me, it just happened to be that my dad was a software developer and my uncle, who was in college at the time, was also studying programming in applications for neuroscience, so I had a computer to work with as well as the resources and help from my father and uncle from an early age. I simply got lucky to have had the opportunities and a good learning environment.</p>

<p>Now, none of that means that if I decided to major in CS, I would end up being a better programmer than you. I may have an easier time learning newer things, simply because I’ve already taken the time to understand how it all works before college. It’s not easy at all, so even people with lots of experience will still have trouble. Besides, most of CS isn’t even sitting around programming in C++ all day. The math and theoretical side is very important to the degree, so we would be in the same boat come maybe sophomore year.</p>

<p>Basically, don’t be freaked, because with hard work you can be successful as well. The only difference is that they probably will have a better understanding in the beginning. In the field of software and IT, you will always need to keep up to date on things happening in the industry, new software and languages, and learning how to implement them. That’s what will make you good at what you do.</p>

<p>Also, one thing I’d like to add is that for some kids, and I know because I was one of them, they learn things their own way and end up with a few bad habits. Not only that, but they may be misunderstanding things completely. For example, when I tried to learn object-oriented programming at age 13, I was baffled. I still attempted to fiddle with it, but it wasn’t until 2 or 3 years later when I really grasped how it all worked. Likewise, in high school some may not have the mental capacity yet to grasp a few concepts and in turn it may work against them. It’s a bit like trying to teach a 7 year old about algebra… they may understand the little tidbits to put it together, but they’ll never grasp the real concept until they’re older. Think of yourself as building a strong foundation at the right time with a clean slate and being taught it the right way.</p>

<p>No. You go to college to learn computer science. It’s normal if you don’t know computer science before enrolling.</p>

<p>Computer science is one of those fields where students typically know virtually nothing about what it involves when enrolling in college, so schools don’t really assume all that much. Don’t worry about it. It’s not like English or Math, where all of the students have written papers or taken algebra before.</p>

<p>You might want to engage in some recreational programming and reading in the field. That wouldn’t hurt, and hopefully you’d find it enjoyable.</p>

<p>Also…</p>

<p>Your Algorithms course (sometimes called Algorithms & Data Structures) will get you in the frame of mind on how to attack a programming problem independent of a language.</p>

<p>Your Discrete Structures course…and EVEN BETTER…a Logic course (possibly from the Philosophy department) will help you tune your logic skills.</p>

<p>Your Programming Language course will teach how in general all languages perform and how each language is unique.</p>

<p>Your Operating Systems course will teach how in general all operating systems perform and how each one is unique.</p>

<p>You will be fine.</p>

<p>Thanks for the replies everyone. I’m just psyching myself out. I guess it wouldn’t hurt to do a little CS stuff over the summer.</p>

<p>Don’t worry at all.</p>

<p>I came in to university without any programming experience and not a whole lot of math background either and I’m a few weeks away from my B.Sc. CS at this point.</p>

<p>Few students will come in with actual computer science background (eg. automata theory, run-time complexity analysis, algorithms, etc.). Some are “good with computers” which may or may not be an asset (i.e. being part of gamer / internet subculture, having built your own PC, stuff like that, it’s cool but largely irrelevant). A few come in with programming experience, however they are very unlikely to have done the types of things that will be required of them in a CS degree (how many people write their own sorting algorithms in their spare time?).</p>

<p>What will help you and is fun to learn on your own would be a programming language. C is a good start and you will undoubtedly see it in your Operating Systems course(s) but it’s tedious. </p>

<p>Look up the introductory courses at your university of choice and see what they teach, read a good book about it over the summer and try some exercises. Java was the language of choice for my university and is fairly easy to pick up. Being comfortable with the syntax and principles will make it much easier to concentrate on the actual science in computer science.</p>

<p>Best of luck!</p>

<p>The benefit of coming in with programming skills is if you go to a college with weeders in the first year. The weeders in math, science and computing can consume a lot of time and being more efficient in these three areas can give you more time to breathe.</p>

<p>that’s why you go to school.
some know what they need to know and don’t need the fluff of school. (as in, Jobs, Gates, and that guy who beat WallStreet, Michael Burry, The Big Short )</p>

<p>

</p>

<p>You can definitely get by without knowing anything coming in, but normal in most engineering programs isn’t exactly normal. There were many kids who breezed through my programming classes for one reason or another.</p>

<p>It sounds like you’ve had decent exposure to programming already. If you’re worried, just do some more over the Summer along with some other light reading. Some people who come in thinking they’re hot shot programmers end up being the worst CS majors… because they’re unteachable.</p>