Why should I know concurrent programming?@AndresF. Please tell me where you work so that I can be sure to never take a job there. Infrastructure does not magically make concurrency go away, any more than garbage collection makes it unnecessary to know anything about memory management.

Nov2

comment

Why should I know concurrent programming?@greyfade GPUs are highly concurrent, but if you aren't a game developer or working on extreme high performance computing, you probably shouldn't be talking directly to the hardware.

Why do some programmers think there is a contrast between theory and practice?I see some similarities between our answers, but your ideas are obviously original and there are some differences. I don't agree that understanding P/NP isn't useful. You don't have to study Complexity Theory deeply, but a working software engineer should be able to estimate the O(n) of any given piece of code and say intelligent things about the cost of alternative solutions. A point that you almost made, but didn't, is that theory is often encapsulated in libraries. That is a good one to consider.

Why do some programmers think there is a contrast between theory and practice?You need to find a balance point appropriate for your project. Junior developers are typically more gung-ho about throwing crap together to see what will stick. If they came from a very theoretical background, they may even have more crazy and excessively complex ideas. Managing junior developers effectively often involves helping them take a step back and analyzing their work. On the other hand, senior developers can be too focused on long term design issues to the point where they have trouble focusing on immediate needs.

Why should I know concurrent programming?The dangerous thing about @acidzombie24's answer is that acid clearly knows enough about concurrency to avoid the common pitfalls, but is suggesting that it isn't necessary to know about concurrent programming. Everyone should know the basics, it is your own loss if you don't want to learn how to use concurrency to your advantage :)

Oct22

comment

Why should I know concurrent programming?The way I read it, there is a kernel of similarity to what we are both saying, @acidzombie24. I'm saying that a developer should know how to deal with concurrency because it will be everywhere. You are saying that you don't have to be good at concurrent programming as long as you ... avoid the pitfalls of concurrent systems :)

Oct21

comment

How well will a C++ app communicating through Apache handle traffic? 500-1000 transactions per second might be reasonable, but it really depends on what your "dual-core" server actually is. Unlikely on an Atom 330. More likely on an i7. What is a fairly simple transaction? You and I might have very different definitions. Your best bet is to build out a minimal server and a test client and start benchmarking your code.

Why should I know concurrent programming?ok - that's a bit of an exaggeration, but new hardware tends overwhelmingly to be multi-core. I don't see that going away. So if you are a student today thinking about the work you will be doing professionally in the future it is safe to assume that you will be working on multicore systems.