Don't confuse this post with the awesome and timeless Programming Sucks, which you should most definitely read. But like that post, mine also makes the point: you don't want to be a programmer. I will leave the biggest reason for later, and it is a very big reason.
I've been programming a long, long time. When I got into programming it was fun, I like coding. But as every year went by being a programmer meant a little less about writing code and a little more about working with other people's software and code - which is not fun at all. The fun part of coding is the creating part, but every day I get to do less of that. It's probably why I started blogging and working on software projects at home, so I could still be creative.
And let's face it, programming is just not fun for most people. Do you really want to be chained to a computer all day? It used to pay well, and a few places still do, but the average programmer does not make that much anymore. Of course the reason until now has been open-source software, which greatly degrades the value of programmers. Open source means we need less code, and needing less code means we need fewer programmers (and thus we get paid less). Oh before I forget to mention one little detail: programmers are famous for being arrogant dicks who think they are smarter (and more special) than they actually are. Some are nice, but others you're gonna wanna smack.
But it gets much, much worse. Check out this code Claude.ai wrote for me:
private static byte[] EncryptECIES(byte[] plainText, ECPublicKeyParameters recipientPublicKey, ECPrivateKeyParameters senderPrivateKey)
{
// Perform ECDH key agreement
var agreement = new ECDHBasicAgreement();
agreement.Init(senderPrivateKey);
BigInteger sharedSecret = agreement.CalculateAgreement(recipientPublicKey);
// Derive key using HKDF
byte[] salt = new byte[32];
_random.NextBytes(salt);
byte[] info = Encoding.UTF8.GetBytes("ECIES");
byte[] key = HKDF(sharedSecret.ToByteArrayUnsigned(), salt, info, 32);
byte[] iv = new byte[12];
_random.NextBytes(iv);
// Encrypt using AES-GCM
var cipher = new GcmBlockCipher(new AesEngine());
var keyParam = new KeyParameter(key);
var parameters = new AeadParameters(keyParam, 128, iv, null);
cipher.Init(true, parameters);
byte[] output = new byte[cipher.GetOutputSize(plainText.Length)];
int length = cipher.ProcessBytes(plainText, 0, plainText.Length, output, 0);
length += cipher.DoFinal(output, length);
// Combine salt, IV, and cipher text
byte[] result = new byte[salt.Length + iv.Length + length];
Array.Copy(salt, 0, result, 0, salt.Length);
Array.Copy(iv, 0, result, salt.Length, iv.Length);
Array.Copy(output, 0, result, salt.Length + iv.Length, length);
return result;
}
AI has only become wildly available recently and will only get better. AI will absolutely decimate programming jobs. We will need much fewer programmers and they will get paid much less. Soon anyone will be able to build complex software systems with minimal training. NVIDIA is already claiming we won't need programmers AT ALL. I don't necessarily believe NVIDIA but I do believe a terrible winter in the field of programming is coming.
Here is a list of the things AI can do extremely well right now:
- write complex software
- make one programmer as productive as two or three programmers
- make our shitty documentation much more accessible, AI can explain things better than 99% of people
- actually at can explain everything better than most people, not just programming
- turn our shitty notes into useful documentation
- summarize bloated emails into something actually useful and readable
- make system administration much easier and more reliable
- help trouble shoot problems of all types
- make recommendations, for example which software to use to solve a specific problem
- create images, create marketing, create movies
- perform all customer service functions
- manage people
AI perfect? No. Better than most people at most things software related? Yes.
As if the picture was not bleak enough, AI will accelerate the trend of managers expecting shorter and shorter development times. Content on the Internet, open source and frameworks have contributed to shorter and shorter schedules. AI will mean schedules will become ridiculous.
Check out my other work at GerrysApps.com and Gerrys Investing on X