Coding is easy and other fallacies

The New York Times ran an op-ed with the headline “In India, parents are being aggressively sold the idea that their children must start coding at 4 or 5 or be future failures.” (It’s behind a paywall, but you don’t need to read the article for my blog post). As I read the comments, I kept cringing at some fallacies. Hence my blog post. I’ve paraphrased the arguments I want to respond to.

My opinion: I don’t think little kids need to learn how to do code as little kids. But I also don’t think it is terrible if they do. Languages like Scratch Jr let kids create cute stories and games online. This feels just as creative to me as coloring except with some logic built in.

“Coding is easy”

I wrote a whole blog post about what “easy” means. I assure you many people currently learning to code (as adults) are not thinking “this is easy”

“No need to learn early; I learned to code in 3 months at age X”

Learning to code is not the hard part. Being a programmer/software developer is more than just learning how to code. Knowing how to code is a foundation skill for being a good programmer though. (Kind of like how basic arithmetic is a foundation skill for algebra). Once you’ve learned that initial three months of coding, you can learn the harder things that make you a good developer. For example, knowing what libraries/frameworks are available allows you to solve problems far faster.

I agree that you can become a good developer at any age. But I disagree that three months is enough to become proficient. Also, I’m sick and tired of interviewing “experienced developers” who can’t solve the equivalent of FizzBuzz. That’s a foundation level skill.

“Nobody will need to code by the time these kids grow up”

I’ve been reading about coders become obsolete my entire career. And I’m sure the predictions didn’t start then. Programming will become higher level over time. It already has. Look for some assembly language developers. Look at some Fortran code. It would take a long time to write something in those languages that we could write in minutes in a modern language.

Similarly, there are DSLs (domain specific languages) for business users. Who writes these? Programmers!

I also expect more “glue” and customization code over the years. I work with a lot of COTS (commercial off the shelf) products. One would think that there wouldn’t be a lot of programming because someone else wrote the product. Yet I code almost every day. Sometimes all day. Businesses will always have custom requirements.

“Languages change too quickly to learn”

Let’s look at some dates here. Python and Java were both created over 25 years ago. Both languages have changed extensively in the last 25 years. So yes, learning 1990’s Python or Java would not make you a good developer today.

However, these are little kids. They are probably using a language like Scratch that doesn’t require reading. Which clearly won’t be the language they use when they grow up. Similarly, the won’t be reading picture books when they grow up either (comics maybe, but not picture books.) When I was in elementary school, I learned Logo (a language with a turtle.) It was fun. I learned a little about computers and math and made a turtle move.

Even as an adult, you need to keep learning as programmer. Languages change. There are new languages. Learning multiple languages up front helps you learn new ones faster over your career. The fact that something changes quickly doesn’t mean declaring defeat.

Copy/paste connected shape in Acrobat Reader

Adobe Acrobat Reader DC has a “shape” called “Connected Lines” in the comments pane. I wanted to copy/paste and move one around. This was a pain in the neck. I wasn’t expecting it to be that hard.

I ran into three problems:

1 – Pasting only works in a certain mode

I select the shape with ctrl-C. If I press ctrl-v to paste, nothing happens. Why? Apparently because I have the comment feature open. If I open the stamp feature or click “close” so nothing is open, it does paste. Ok fine. Except…

2 – It doesn’t paste where I put the mouse cursor

When I get it to paste, it always seems to be the center middle of the screen towards the bottom. This is rarely where I want my pasted item. This would be a minor annoyance except

3. It doesn’t let me drag with the mouse

A text comment box, I can select with my mouse and drag where I want it. A connected shape changes the shape when I try to select it. I can use the arrow keys to move it but that is slow and tedious… Oh wait. I figured it out. If I mouse over very carefully to the center of the connected shape, my mouse turns into a drag icon and I can drag it with my mouse.

Update: Java 11 Practice Tests

Jeanne and I know many of our readers are anxiously awaiting their copy of our new Java OCP 11 Practice Test Book for the 1Z0-819 Exam, originally expected out this month. The good news is we finished the manuscript a few months ago, so the book is done! The bad news is, the publishing and printing process has been slower than expected given everything going on in the world.

We now expect the book to be available in late January/early February. Believe us, no one is more anxious for this book than us! If you purchase the book from Amazon or other resellers, it will ship as soon as it is available!

Oh, and a big thanks to all our readers this year, whose feedback and support has kept us going in these strange times!