<p>This is kind of a strange question but I'm basically asking how many classes it takes before I'm "fluent" in programming in at least one language (I took two VB classes and one C++ class in HS) and I'm now taking a java class at NCSU. I feel like I have a strong understanding of the basics of programming, but haven't hit advanced topics. How many classes does it usually take before people are creating most things that come to their mind? I've heard once you learn C++ or languages like it other languages come easily.</p>
<p>Probably not until you have worked on some projects in the working industry for a few years.</p>
<p>By then, you would have picked up “tidbits” from other experienced developers, discussed new solutions with “user groups” that you have joined and have used methods from the technical books on the subject…which will DIFFER GREATLY from the academic books you are using now.</p>
<p>@GLOBALTRAVELER, really!? how are academic and real world SE that different? I am doing CS now and can not wait to get industry experience.</p>
<p>As soon as you’ve spent hundreds and hundreds of hours writing code. Until then its all theory.</p>
<p>
</p>
<p>Well, you will working with folks who have developed systems in the past. The professors are not doing this everyday. While a college course’s goal is to make sure you understand the CONCEPTS, the day-to-day SE will be concerned more with performance, speed, and interaction with whatever platform the customer is using.</p>
<p>They say it takes 10,000 hours of doing something to become an expert at it.</p>
<p>I’ve taken a year of component-based software design (which was filled with the user of pointers, trees, searches, sorts, recursion, etc.), an introductory C++ course, an introductory assembly course, and I spent a Summer making software for a lab in a graphical programming language. And I’m currently taking my second discrete math class.</p>
<p>But I still feel like I’m just getting my feet wet with programming. Partly because apart from that Summer I never worked on a program that was bigger than a single lab, and partly because I’ve never really made software for me. I’m taking a class in the fall where you make your own 2D videogame, it’s supposed to increase your programming maturity.</p>
<p>But the reality is that it’s an on-going process. If having a BS in computer science made you an expert, nobody would ever get a Masters, and yet they do. Really, knowing how a language works is just one part of it. Even if you knew a lot about C++, how to make your own functions, classes, how to debug, how to write good test scripts, etc., and then I said “okay, now make a word processor,” you would still have a lot of learning to do. Even if you mastered making word processors, and I said “okay, now make a 3D first-person shooter,” you’d have a lot of learning to do.</p>
<p>Professional programmers continue to learn their whole lives.</p>
<p>I’m saying all of this to encourage you, don’t be discouraged by how little you seem to know now, or how incapable you are. After a few years in college taking classes and working on projects, you’ll be amazed at how far you came when you think back to this moment now.</p>
<p>You’ll help yourself out by taking more discrete math classes, btw. And by getting involved in programming projects.</p>
<p>At least 5 or 6 years.</p>
<p>michaelalex3, what kind of software do you write in your spare time?</p>