views:

369

answers:

4

I would like to know if there's any deep difference in how programming is taught in different schools.

I don't mean "They taught me how to write a Gaussian Elimination in C++", I'm more interested in the differing styles of teaching - what did you find effective, what did you see as harmful or a waste of time?

I'm also interested in opinions about whether differing styles of education make a student better suited for employment in different roles or industries, and if so, what are the actual differences of educational style that count?

+1  A: 

This is almost impossible to answer, since the vast majority of people were taught programming in only one country. I can't (for example) comment on whether my education was better than I would have got in Germany; I was never educated in Germany.

Maybe you need to be a bit more specific about what you're asking.

DannySmurf
I do not agree, I think that a skilled Manager of proved experience have seen in his career much people coming from abroad and seen pros and cons of different countries universities..
luiss
Possibly, but only in the case where he has a significant enough sample from each region/country/whatever to know for sure that any programmer's skill (or lack thereof) is due to the quality/style of education, rather than some other factor (cultural quirks, an idiot programmer... whatever).
DannySmurf
This is why i asked here, so we can have replies from much of them and take a decision on the objectiveness of the replies :D
luiss
@luiss: i think there is a misconception WRT how polling can produce a consensus... An open question with optional participation will tend to attract only those who feel strongly on the topic, and an open-ended question will collect diverse replies rather than contribution to a consistent answer.
Shog9
Thank you, I didn't tougth of it...
luiss
+3  A: 

Any university in any country can do just this much. Most of the great programmers I personally know have attained their level of greatness by being naturally smart AND doing a lot of reading and coding.

So, no point to compare universities in my opinion.

z-boss
+1  A: 

I have two ways that it is taught at my university, depending on which intro course you take.

The first method involves teaching some things in class, then presenting the student with a completely blank text file and asking them to write you a program that does something. This leads to them trying to 'hack something out,' which leads to bad practices and all the other things that come as a result. Admittedly, I am somewhat partial to this method as that's pretty much how I learned to code.

The other method involves teaching some things in class, then presenting them with a stencil with everything filled in except the meat of the important functions. Then they can inspect the code, understand how it works, and fill in the functions themselves, hopefully less hackishly.

One course is also taught with only Java, while the other first starts with Scheme and then segways into Java in the second semester.

Which method is better? I'm leaning towards the second, although I don't really know for certain as I'm sure I'm already a biased observer.

Claudiu
+1  A: 

Switzerland has an apprenticeship for applikation developers, system engineer, and office supporters. After school (in this case finished with 16), the apprentice works for a company and parttime goes to school. This can be done two ways:

  • have a special first year with only school to build a basis and additional 3 years with 1 day of school a week and some block courses of a week or two.
  • starting at the company from the beginning, having more block courses spread over the full 4 years

School has wide spread subjects like English, Math, gym, and computer basics. The block courses are more specific: Java basics, DB, data analysis, OO, project management basics, ...

If they take an additional half day of further schooling a week, they are entitled to visit technical college after the apprenticeship.

During the apprenticeship they earn some money (going up from maybe 1/6 to 1/4 of a normal salary), have 5 weeks of vacation like normal workers, and are at least towards the end integrated into normal development in the company. So usually, for hte company, what they get back in productivity covers the cost.

At the end of the apprenticeship, they have to make a small project of 10 days including documentation, and later present the solution in front of some state experts. This counts towards their grad by 1/3, the computer courses count 1/3, and normal school the last 1/3, roughly.

Alternatively there of course are university courses, similar models as most.

Teaching is mostly very conservative up front, as the hands on part is done in the company. There they have a business person (mostly HR) and another developer to manage them. It usually takes up about 10-20% of the developers time being more of a mentor and guide then a teacher.

Ralph Rickenbach