Having dual citizenship, IDK what the immigration authorities are like.
There are plenty of jobs around, the majority in JNB. Lots of SA tech professionals go overseas to earn big money (not realising they'll spend it all before they get back!).
There are lots of job sites. Try the local search engine http://www.ananzi.co.za to get started. You should find plenty of agencies that are willing to help you through the red tape.
Pay-wise, Jo'burg is best - you can probably earn 50% of an equivalent US salary (excluding the silly part like Silicon Valley). Tax is relatively high (higher than UK), but the cost of living is much lower for most things. I have much more spare cash here than I did in the UK.
Jo'burg is okay, if you like city life. Not much to do outside the city - the coast is about 6 hours drive away. I lived there for 10 years as a child, so when I came back I chose Cape Town, which is much nicer, more laid back, and you have all sorts of outdoor activities (mountains, sea, river) on your doorstep.
Oracle programming guru Steven Feuestein uses a lot of ethical & non-ethical examples in his books and classes - check out this article where he explains himself.
I was asked this question last time I was looking for a job. Since I wasn't really interested in that particular job (I'm more of an enterprise programmer, the job was smart-card programming!; only 15 working days leave? 10 of which MUST be taken at Christmas? Gotta be kidding...), my answer was written in C:
/* setup code */
qsort(...)
Would this pass the test? Yes, I know it's n.log(n), I know how to write one, but life's too short if someone's already done the hard work.
If I _have_ to write a custom sort, I'd haul out DDJ and Knuth and find the most appropriate algorithm. I don't walk around with the specs of dozens of sorting algorithms in my head.
I used to work for a company that had a product developed in VB. Having a small (around 200) client base, the developers knew the customers pretty well.
Quite often comments in the source code mentioned a specific customer. They could get quite disparaging, e.g.
REM Hack the tab order YET AGAIN for customer X. REM They really don't seem to have a clue.
One day a customer complained. Apparently early versions of VB actually COMPILED THE COMMENTS INTO THE BINARY. How lame is that? Someone had to go through and clean up the source. With so few customers we couldn't afford to upset them too much!
Strange as it may seem, an OS that is designed to be portable is likely to be more stable than a HW-specific OS. Linux is more stable than both Windoze and MacOS. Why? Because the portable OS programmers can't depend on specific hardware features being present. They are forced to avoid all those shortcuts that a platform-specific OS developer might use; often these shortcuts come back to haunt the OS as the hardware platform develops in unexpected ways. How often have Windoze and MacOS had arbitrary limitations based on archaic assumptions about the hardware available? How much code in the OS exists simply to provide backward compatibility and emulation? I expect it's less of a problem with Macs because Apple controls the hardware too, but that's definitely a road I don't want to go down.
Sure, you can add Java features to C++. You can also add C++ features to Java (like the template work that Sun is doing), but that misses the point.
I want to be able to write simple applications that work on a variety of operating systems. Stability, development speed and flexibility are more important to me than raw execution speed, so I'd rather develop in Java. Having a huge standard library is a great help, but it's not the only reason I choose Java over C++.
I moved to SA from the UK a year ago.
Having dual citizenship, IDK what the immigration authorities are like.
There are plenty of jobs around, the majority in JNB. Lots of SA tech professionals go overseas to earn big money (not realising they'll spend it all before they get back!).
There are lots of job sites. Try the local search engine http://www.ananzi.co.za to get started. You should find plenty of agencies that are willing to help you through the red tape.
Pay-wise, Jo'burg is best - you can probably earn 50% of an equivalent US salary (excluding the silly part like Silicon Valley). Tax is relatively high (higher than UK), but the cost of living is much lower for most things. I have much more spare cash here than I did in the UK.
Jo'burg is okay, if you like city life. Not much to do outside the city - the coast is about 6 hours drive away. I lived there for 10 years as a child, so when I came back I chose Cape Town, which is much nicer, more laid back, and you have all sorts of outdoor activities (mountains, sea, river) on your doorstep.
If you want more info mail me at
porlw at phred dot org dot uk
Oracle programming guru Steven Feuestein uses a lot of ethical & non-ethical examples in his books and classes - check out this article where he explains himself.
I was asked this question last time I was looking for a job. Since I wasn't really interested in that particular job (I'm more of an enterprise programmer, the job was smart-card programming!; only 15 working days leave? 10 of which MUST be taken at Christmas? Gotta be kidding...), my answer was written in C:
/* setup code */
qsort(...)
Would this pass the test? Yes, I know it's n.log(n), I know how to write one, but life's too short if someone's already done the hard work.
If I _have_ to write a custom sort, I'd haul out DDJ and Knuth and find the most appropriate algorithm. I don't walk around with the specs of dozens of sorting algorithms in my head.
I always thought of Apple as a Mickey Mouse operation.
I used to work for a company that had a product
developed in VB. Having a small (around 200)
client base, the developers knew the customers pretty well.
Quite often comments in the source code mentioned
a specific customer. They could get quite disparaging, e.g.
REM Hack the tab order YET AGAIN for customer X.
REM They really don't seem to have a clue.
One day a customer complained. Apparently early
versions of VB actually COMPILED THE COMMENTS INTO THE BINARY. How lame is that? Someone had to go through and clean up the source. With so few customers we couldn't afford to upset them too much!
Strange as it may seem, an OS that is designed to be portable is likely to be more stable than a HW-specific OS. Linux is more stable than both Windoze and MacOS. Why? Because the portable OS programmers can't depend on specific hardware features being present. They are forced to avoid all those shortcuts that a platform-specific OS developer might use; often these shortcuts come back to haunt the OS as the hardware platform develops in unexpected ways. How often have Windoze and MacOS had arbitrary limitations based on archaic assumptions about the hardware available? How much code in the OS exists simply to provide backward compatibility and emulation? I expect it's less of a problem with Macs because Apple controls the hardware too, but that's definitely a road I don't want to go down.
Sure, you can add Java features to C++. You can also add C++ features to Java (like the template work that Sun is doing), but that misses the point.
I want to be able to write simple applications that work on a variety of operating systems. Stability, development speed and flexibility are more important to me than raw execution speed, so I'd rather develop in Java. Having a huge standard library is a great help, but it's not the only reason I choose Java over C++.
...and Linux is being ported to it. Wasn't someone porting Doom to it as well?
At least I don't think so - IIRC they used interviews with real peoplem, and then designed the animal characters to suit.