For someone who has never programmed before..

<p>Exactly how long did it take for the programming concepts to "click"?</p>

<p>I feel myself learning in programming, but it seems as if I don't learn it at a fast enough rate. So, basically, I would understand and grasp the concepts about 2 weeks after it's taught. Thus, I'm doing poorly in the intro to CSC, but I'm not ready to give up as I like the ideas of CSC. Most kids already have some experience in programming in my class and the kids that I ask who are extremely successful have done it for at least a few years.</p>

<p>I'm a computer engineering major, but I'm thinking of switching to strictly CSC. Since I'm basically starting cold in college, is it normal for me to be struggling this much in the beginning?</p>

<p>Yeah, don’t worry about struggling with the intro programming course. Just do your best to learn as much as you can, the fundamentals, and practice whenever appropriate. You can find a lot of neat, relatively quick, problems at Project Euler (google it) which can give you some extra motivation to do the coding.</p>

<p>CS isn’t about programming. The sooner you realize that, the better off you’ll be in CS. Programming digital computers is an accident, not the essence, of CS.</p>

<p>Just out of curiosity, what sorts of things are giving you trouble about picking up programming? It took me at least a couple of years to become proficient at it… of course, I started when I was 12, so it probable would have taken less time had I started in college… I would say, 2 semesters.</p>

<p>Learning to program is a lot like learning a foreign language. Would you feel comfortable speaking French after a single-semester course in it? Probably not. What about after two courses? Probably moreso, and if you have a knack for it and a genuine interest in it, maybe you’re ready.</p>

<p>I doubt anybody knows all the tricks of any programming language, just like nobody knows all there is to know about the English language. It’s a process.</p>

<p>it isn’t unusual. programming can be weird at first. i remember trying to learn it on my own and failed at it. it took a good introductory class where we learned a fair amount about what your code gets mapped down to before it gets run on your computer before i understood what was going on.</p>

<p>what are you doing in your class?</p>

<p>

</p>

<p>one thing i have found is that students like to exaggerate their proficiency in programming. it’s the nerd equivalent of lying about your handicap in golf or lying about how much you can bench press.</p>

<p>What language are you using?</p>

<p>A programming course gets you started in programming simple things. To get better at it, you learn a standard set of skills. There is a lot of additional stuff in the form of folklore: algorithms, tricks and then you get into theory and math and that further expands what you can do. I have at least a half-dozen books on algorithms in my basement bookcases that provide instructions on tackling various kinds of problems. I don’t go around memorizing algorithms but know where to go if I need something. If the books aren’t enough, then I can look on the web or ask engineers in the office.</p>

<p>The guys with previous experience have an advantage. Just like the guys that took calc 1, 2, 3, 4 and linear algebra before taking physics. It isn’t insurmountable though.</p>

<p>I’m learning C right now and would move onto Java next quarter, but since I’m in danger of not passing my intro, it looks like I’ll be re-learning C again.</p>

<p>(If it matters, I’m at Cal Poly SLO as well.)</p>

<p>Thanks guys for the positive encouragment.</p>

<p>Also, another question regarding career involvement: Is it better to be in CSC currently? I read an article on Yahoo about how computer science degrees are in high demand currently. Or, is the economy just so unpredictable that nobody really knows how it’ll be like in a few years?</p>

<p>Major in what you enjoy and are good at… money will follow.</p>

<p>From what I know, JAVA is hard but if you use the right book, you can learn it. You should also start with an “learning” language like Python or VB.</p>

<p>I started with VB… it’s nice because you can make some visual apps really quick. When you’re starting out, it’s really encouraging to be able to design GUIs and use them to test your apps. Rapid development, etc. It’s nice.</p>

<p>You should look into C#, and in particular, the Microsoft Visual Studio Express Edition IDE for it. It also allows for GUI design and rapid development, but on the inside it’s more similar to the big languages like C, C++, and Java.</p>

<p>I’m not a huge fan of Python. I’ll leave it at that. To each his own.</p>

<p>I agree that VB (or VBA) is an excellent starting language. It is very forgiving and you can see the results quickly. Once you learn one language, learning the next one is easier. Knowing some data structures helps a lot.</p>