views:

758

answers:

13

Hope this thread won't be closed as fast as the other one, because I'm interested about your opinions about what school contribute when it comes to learn programming. I plan to do a thesis in that area of programming in school-context, and would appreciate your opinions.

Please tell me your experience of learning programming in school context.

+7  A: 

College serves as an excellent tool for earning a degree in Computer Science, a prerequisite for many programming jobs. It seems most people take this route, so they may learn to program after obtaining a job.

Frank Crook
+2  A: 

I had the chance of learning a bit of programming on high school, kind of qbasic, pascal, and basic stuff...

This, of course, itched my curiosity into knowing how to make more advanced programs, and it was like an academic incentive to verifying my path of learning on the future, i think that it has been very important for me to learn basic algorithmia since then, so i could get my hands dirtier later on more specific problems.

Jhonny D. Cano -Leftware-
+2  A: 

I started programming in school, and it's got me into this career really.

We had a regular computer science class which taught us the basics of computing. We did really basic programming to draw shapes (I can't remember the program.) we did this on apple II's.

After that we were taught pascal for 3 years, and added to our knowledge, learning procedural based programming, we completed relatively simple assignments ending in a project in our final year. (No databases, object orientation, or anything like that. That came later.).

Bravax
+3  A: 

Read the blog of Scott Hanselman and also read comments on his blog

It is really a nice post from Scott..

Syed Tayyab Ali
+2  A: 

It totally depends on yourself.

Some people graduate in computer science without any relevant programming skills. But others use their time to learn as much as possible.

But the real programming experience start at your first programming job. No better learning experience than a 9000 lines C function without any useful comment.

Gamecat
You are correct, only syntax can be learned but real project help in actual learning process.
Syed Tayyab Ali
A: 

This is a very interesting subject. First of all, your profile does not list your location, but if you happen to be Dutch, consider attending the Dutch Informatics Education Conference on April 7 and 8. Some talks will be about programming education.

Myself, I started programming in elementary school. I don't believe that the informatics education on my high school helped me in the least, because it was rather basic. However, when I went to university for a BSc in Computer Science, I quickly learned that what I had taught myself was (a) only the tip of the ice berg and (b) in some cases wrong (esp. w.r.t. programming style).

To give a better answer to your question I must ask a counter-question: by "school", which level of education do you mean? 15-18 year olds? 18+?

Myself I have been a TA for undergraduates (Java and C) and currently I TA at a high school where students learn a bit of HTML, CSS, PHP and SQL. If you have any specific questions about that, please ask!

Stephan202
+5  A: 

As someone who have taken and taught many undergraduate courses, here are my 2c:

What you will learn in school is a variety of topics that you may not learn as a programmer, some background in math and the like, and a lot of theory and CS fundamentals. In some schools you will also gain better algorithmic thinking and the ability to write proofs.

What you will not learn is how to join a real life project, learn to read existing code, etc. this is actually something super critical. You will also not learn the newest languages and technologies.

Going to college for a CS degree is critical because: - It is necessary for many jobs with major companies. - It is necessary to get the good internships that later get you into major companies.

Uri
I don't understand your last point. "Going to college for a CS degree is critical because: It is necessary for many jobs with major companies." Could you elaborate on the value of the knowledge you gain from earning a CS degree? Or is the diploma nothing more than a ticket to a decent job?
Cybis
Think of the CS degree as a baseline. I also started programming very young, and recently graduated from University with a BS in Computer Science. I've been programming professionally for about 3 years. Getting a CS degree isn't just about learning technical stuff. It also shows a prospective employer that you have what it takes to stick through something for four (or five) years. Also, why would someone hire you without a degree, when there are plenty of people out there with degrees?
Casey
+2  A: 

In my experience, the best programmers are the ones that are self-taught, starting at a young age (10-12 years old). Assuming they actually spend time programming on their own (and I've never met someone who started that young that wasn't intensely pursuing their hobby projects), they have upwards of 10 years experience by the time they hit the workforce. They say 10 years is the minimum to get truly proficient at something...

The very best programmers have a degree in CS in addition to this experience, but I don't notice very much practical difference between those who have the CS degree and those who have no degree at all; the difference is mostly in their theoretical knowledge.

A person with only a CS degree and no other (extracurricular) programming experience is nearly invariably terrible -- they're capable of writing code, and in many cases can even solve programming problems, but they have no idea at all what's good practice and what's bad practice. They haven't made the mistakes. They haven't felt the need for proper abstraction. To them, these concepts are just things they memorized in school, so they have no instincts relating to their use in the real world.

rmeador
A: 

My question is also about whether school can give the feeling of the concepts developed in the programming community. It's hard to appreciate the concepts if you don't use them in a suitable context. Then it's hard to learn ...

A: 

I can remember learning some programming stuff in high school and university and some of it was rather useful like what is needed at a very high level, e.g. thinking abstractly and stating algorithms, and going through the motions of using various tools in programming languages. Where it got bad was in group projects where some groups would lose people or have apathetic members that caused headaches on getting things done. It was also neat to learn about Boolean Algebra in school although most of my first programming experiences were outside of the classroom as it was something I initially got into for fun.

JB King
A: 

I am on college. Computer science college to be precise. So what bothers this kind of colleges is that these colleges are tehnical. So to be engineer you need to learn lot of things. So first two years of college you learn basics of programming in c/c++, algorithms and structures, basics of oop and thats it. And than when you choose coputer science it is getting tricky. Becouse you didnt learn almost anything about coding. We all have good theoretic base in coputer science but to learn coding in college you need to take classes that are not primary. So i am taking classes of JAVA and it really helps me. Not, just to know JAVA but to learn how to write a good code.

And for others that are not takeing similiar classses i think that they have good basics in computer science, such as understanding of automata, compilers...So what is left for them is to learn coding.

And here i am distincting programing and coding. For me these things are different. I knew progremming before i learn coding.

Thats my opinion.

shake
A: 

I started programming at the age of 13 and I know quite a few professional software engineers. I can say that pretty much all of them started programming on their own already in high school. When you start young then it helps to develop a special kind of algorithmic thinking. If your thinking processes have already fully developed and they don't involve any algorithmic thinking then it is harder for you to grasp programming ideas.

I know many good programmers who write beautiful code, but have no college education at all. When I ask them why they didn't go to college, they say that everything you are interested in - you can teach yourself and getting a degree means just doing things that you are not interested in (I suppose the main problems for them would be dry calculus, physics etc.) and grinding through everything you already know (programming, databases etc.)

OTOH, I know guys who have gone to college to get a CS informatics degree, but have approached me to "help" (read: write it for them) them with their programming course exercises. And that's not because it's too difficult - they just can't be bothered. They don't care about coding. They just want the result, no matter how dirty, incorrect and inefficient the code is.

Only having a CS degree doesn't mean you are a good programmer. It means that you have most probably heard something about programming languages etc. But it certainly doesn't mean that you care about it enough to write clean, manageable and efficient code.

Gert
+1  A: 

"information" is available in books ,if you are enough motivated for self learning you can get the knowledge that the college gives you.

for practical experience you need real world projects ... does participation in open source projects cut it ?

docesam