programming is not hard. translating from human desires into a real project is hard. anyone who has read a project “plan” know what i mean.
What did you read of the article? Of course programming can be hard. Some of the brightest engineers and academics in the world have spent years on problems.
Its not that hard. You read the project plan and start translating it into a list of todos. As you make the list, questions come up. Write those down. When you are done writing your todo list, you send your list of questions to the relevant person, then start working on the todo list where you don't have questions, or where you are decently sure what the answer will be. As you work through the implementation, you will come up with more questions for edge cases. Send these to the relevant person as well.
Ideally, these questions will be sent as an enumerated heirarchical list, and will be answered as such in turn. Every once in a while, it is more useful to jump on a call to figure something out quickly.
Except there are three relevant people and they all contradict themselves daily.
I mean it depends on the todo.
if to-do 1 is Determine all positive integers n such that the concatenation of n and n^2 in base b uses at most k distinct characters, for fixed b and k - you might be there a while
What OOP refers to is not "writing code" but "designing the code." Everyone can write a book. Even I can. It will be a fucking shitty book, because I don't know how to create suspense, give depth to characters, or any of that stuff. But it's still a book. Writing code is easy. Writing good code is hard. If you want a program to fetch the current outside temp from an API you could throw together random lines of code that vaguely does what you want that you found on stackoverflow and iterate until it works. Will it catch edge cases? No. Will it output in a pretty format? No. Will it be maintainable? No. Will it be the next Facebook? Hard no. But you did write code.
Writing code is easy. Writing good code is hard. And that is why we have door stoppers called "Clean Code" to help us on our way. You might notice that the "how to code" books aren't much thicker than a a pamphlet. But if it ever as much as touches on the topic of good code it will make for a door stopper worthy of a nuclear bunker's entrance.
One thing to know about Clean Code is that the author is a hard right MAGA dickhead now, so if that is important to you then seek a more modern source of advice. A lot of the things he advocates for about code obviously aren't dripping in right wing rhetoric, but if you look at his socials you might feel quite turned off.
Worth saying the comment I'm replying to is not wrong IMHO
I have been happy to recommend Sandi Metz books instead.
99 Bottles of OOP and POODR are excellent books and include many of the same ideas.
the advice still checks out though imho. dont treat it as dogma, but as useful guidelines.
maybe dont buy the book though
I don’t know how to create suspense
I must pretty good at that, since I never know if my code is gonna crash until the very end :D
My code has that special slow burn where I realize just how terrible it was when a help ticket pops up a few weeks later.
If coding is easy...
Think of it like DJ'ing.
The rock bottom level of being a DJ is putting a playlist together and playing it. Anyone could do that, you've already probably done it on your phone. Maybe even grouped songs by genre or year if you're feeling fancy.
But a good DJ does more than that. They arrange the songs to give a particular vibe, they play around with the transitions to keep people in the music, they may even remix songs or their entire playlist on the fly. They're artists in their own right, making more than the sum of what went in.
... And that's the same as a programmer. Anyone can bumble their way through to writing code - but is that code anywhere close to optimal, properly annotated, maintainable?
GenAI throwing out thousands of lines of shitty code that has to be bug-fixed multiple times over by a developer is a waste of time, energy, computer parts, and money.
@codeinabox When I say some variation of "writing code is not the hard part," what I mean is this: I can get a 9 year old to write a program that compiles and runs. A literal child can achieve "writing code" within an hour. That *specifically* is my bar for "writing code" because, by definition, that's what's happening. However, it's obvious there's a vast difference between what a 9 year old can do in an hour and what a professional software engineer does with 20+ years of experience.
@codeinabox My goal in saying "writing code is not the hard part" is to assure people that using a limited visual scripting alternative or "no-code" tool is not the magic bullet they think it is and in fact it will hold them back more than anything. It's not a statement of "it's not impressive to do this well" it's one of "do not be so afraid of this skill, because it's not as unapproachable as you think it is."
@codeinabox The problem with AI being trained on our code is not because the code has inherent value. In most cases, the code *is* being distributed for free, after all.
The *problem* is that it's a violation of licenses - an expression of an author's desire for how their work is used. If an author's work is an extension of themselves, then violating a license is a violation of their autonomy.
the problem is that licenses were always a scam, IP is nonsense. the problem is corporations tricked us into thinking it was real so they could make more money -- and now they can make more money by dispelling the myth.
If coding is easy, how come programmers were in high demand, and have demanded large salaries for years (even before ZIRP)?
Because programmers seemed magical, mythical, able to create insane amount of value by typing a few words onto a screen. You will see this if you just go and look at how any other industries work. Even just using basic shortcuts puts you into like the top 1% of computer users, that’s how inefficient most people are at working.
Why was there so much stress, overwork and burnout even before AI started churning out 5000-line PRs? Why did companies seek 10x ninja rockstar coders and subject them to leetcode interviews—surely, a junior fresh out of college could churn out something if it's so easy?
Because developers are asked to do more work than any other office job. The value you create as a developer is 10x what a product manager does. You can do a product manager’s job, they cannot do yours.
If coding is easy, why do we have doorstoppers like Clean Code and The Pragmatic Programmer?
Once again, because programmers are obsessed with efficiency and productivity. Having a book about something doesn’t mean jack though. There are books on how to walk better, that doesn’t mean walking is hard.
Why do we have bootcamps or even whole college degrees dedicated to it?
These are dumb questions, there are degrees for everything.
If coding is easy, why are people angry at AI (or anyone else) copying their code? Why do they act like they've poured their sweat, soul, and copious amounts of time into something so trivial?
People are angry that AI isn’t “following the rules” while simultaneously destroying the planet. People believe the bullshit that LLMs make up and then say “oh, your job was easy the whole time”. No, coding is easy. The rest of it wasn’t. Coding is meaningless without good architecture, good requirements, good UI/UX.
If coding is easy, why do many now feel like their identity and professional purpose are being stripped away from them?
… because the jobs are being taken away and distilled down into just “coding”. How is this hard to understand?
If coding is easy, why is software so damn buggy?
Because business doesn’t (didn’t) care about writing code, they cared about making money. Also the number of bugs has nothing to do with how easy something is. Walking is easy, that doesn’t mean you don’t ever roll your ankle.
If deciding what to build is the hard part, why do so many product managers seem clueless? Why aren't there rigorous 10-step interviews for them? Why aren't they getting paid more than the developers?
Yay! Good questions now! Yeah why do programmers have the only job where they’re quizzed over and over again? Huh, maybe it’s because every other industry thinks the hard part is coding (hence why this focus on coding)!
If deciding what to build is the hard part, why aren't market researchers, usability experts and—hell, customer success—considered rockstars in a software company?
The output of a programmer is directly visible, the output of pretty much every single other job in software development is not. What, are they going to start measuring how many tickets and meetings your scrum master makes?
If implementation is easy and finding demand is harder, why are programmers upset when the salespeople promise a new feature to a customer to close the sale? They've found a genuine demand, something people will pay for!
Who the fuck ever said implementation is easy. Coding is easy. That’s not implementation. The code has to fucking do something. That thing has to be tested. The sales person probably didn’t gather actual requirements before promising the feature, so whatever the customer thinks they’re getting is definitely not what they’re getting.
You can literally see that actual coding is easy when you understand the requirements by looking at tiny development companies that have made a single product where they give customers enormous power to choose new features. The new features come out incredibly quickly.
If coding is easy, why doesn't everyone just build ten variations of a thing and see which pans out?
Dumb question. It’s hard enough to sell one product, much less 10. Think about any normal software user finding out there are ten ways to do something. Even some programmers hate it, Python claims there’s only one right way to do any given thing.
Some software developers do say “I don't write code, I solve customer's problems”. But then they turn around and start to opine on monads, memory safety, and DRY principles, while their understanding of the customer is a made-up “user persona”, and they think “affordance” is the money your parents used to give you on weekends so you could go out and have a good time.
Yes, they like to talk about the fun part of the job, not the non-fun part. Big surprise. Also turns out they like to optimize that part to make it more and more fun, because it’s become too easy.
What is important?
You’ve switched the topic. It was about what is hard, not what is important.
But do recognize we're in the middle of an industry-wide tectonic change. We need to figure out how to adapt. We need to understand what is likely to change and what never changes.
No we don’t. This is like saying we need to learn how to adapt when every country has nukes and has started to bomb every country constantly. We need to stop bombing, not learn how to live with it.
Users will always want more and be prepared to spend less
So then we definitely should stop using LLMs.
Programmers have been in the business of disrupting our own industry since the beginning. Nobody uses punch-cards any more. Very few people need to code in assembly, or COBOL. Those decades spent fighting memory bugs in C or C++, with the scars to prove it, are worthless in the age of Rust, Go, Python and JavaScript.
Difference is, those things were an improvement. LLMs are a step backwards.
Accept that change happens. Be equal parts curious and critical about the new stuff.
I love change. I don’t like destroying the planet. It’s even worse when it’s of absolutely no benefit to anyone but billionaires. This isn’t change. This is destruction of the planet.
my argument is that i couldn't code real useful programs myself my whole life, and i tried several times, fail computer science in college etc, and now with claude im actually getting these things built -- and there's a lot of pitfalls a few times i had to tell claude to start over but i guess i feel like a paraplegic who could never walk but now with an accessible car i can actually drive and im sorry that's putting a lot of horse carriage drivers out of business.
and im my IRL circle, a couple of my friends who were great at coding in college and are now master coders, they're not complaining about it at all -- they're able to spin up ten agents at once to do things much faster than they were able to three years ago. they all have startup side businesses now on top of their full time industry job, only possible due to coding AIs helping them get shit done faster.
Very few people need to code in assembly, or COBOL
But those who do are paid the big bux, that's for sure. Many big banks still have their backend off of COBOL code originally written in the 90s, only with flowery UI updates over the years.
Cobol developers are typically developers who weren't good enough to learn other languages. Their computing knowledge is often quite limited to their mainframe. I've never met one who was competent in anything else.
They're not making the big bucks.
Pretty sure COBOL jobs getting unusually high pay is a myth. I don't really care what I work on so I've looked and they just don't seem to pay any higher than anything else
I guess when compared to FAANG/Silicon Valley salaries you are probably right.
Well written blog, thanks. I actually saved it to reread.
Programmers automating coding then CEOs forcing everyone else to use it is an insult to programmers.
Some fuckers that built AI and fucked their own industry need to take some responsibility here. Some Sloppenheimer out there fucked the market up, one of our own.
