Live data from Hacker News

Why Johnny can't program (2002)

bricklin.com

21–30 of 37 posts

Re: Why Johnny can't program (2002)

#21

Excellent article. The one thing I disagree with is IDE's. I think that they actually present an overly complex interface that is daunting to the new user, not helpful. Ditching IDE's and switching to a text editor and CLI has made every aspect of programming easier for me to understand. As a new user, the price I paid to be able to click a button and run my program, was far greater than the price of learning how to…

When you say "IDE" you're probably meaning something like Visual Studio. Ok, fair enough.

Now think about something like HyperCard. That's an IDE. It's eminently usable and learnable (even friendly), and yet still does all the things an IDE does.

"IDE" doesn't have to be Visual Studio. There have been friendly IDEs in the past, and there's no reason they couldn't be built today except nobody's doing it. There's actually a nasty trend in software development right now that can be summarized as "they're programmers; they don't need usability or discoverability". Look at Git for an example. Ugh. This trend can not die quickly enough for me.

Re: Why Johnny can't program (2002)

#22

Excellent article. The one thing I disagree with is IDE's. I think that they actually present an overly complex interface that is daunting to the new user, not helpful. Ditching IDE's and switching to a text editor and CLI has made every aspect of programming easier for me to understand. As a new user, the price I paid to be able to click a button and run my program, was far greater than the price of learning how to…

When you say "IDE" you're probably meaning something like Visual Studio. Ok, fair enough. Now think about something like HyperCard. That's an IDE. It's eminently usable and learnable (even friendly), and yet still does all the things an IDE does. "IDE" doesn't have to be Visual Studio. There have been friendly IDEs in the past, and there's no reason they couldn't be built today except nobody's doing it. There's actua…

I find git extremely usable, and I despise IDEs that hide anything from me.

Every hidden thing is a thing that, when it goes wrong, I can't fix. Something "goes wrong" when it's either not working as designed, or it's broken as designed and needs to be reconfigured or otherwise changed: The IDE handles the wrong language, for example, and needs to use a different compiler and have different highlighting and formatting rules.

IDEs that only handle one language are beneath contempt.

Re: Why Johnny can't program (2002)

#23
post #20
post #14

Earlier quoted context omitted.

"It's just that people who aren't professional or hobbyist programmers usually don't want to get so immersed in something that is infrequently done and not part of the rest of their lives." His view, if a wedding planner (someone that did this regularly) was a programmer they would use it to solve problem X. My view Problem X is generally not a programming problem. In comparison problem Y ex:(programming a DVR) is a…

That's not how interpret what he's saying at all - he's saying that there are activities/professions that require detailed modeling and knowledge of complex rules and systems but people who engage in them don't usually take up programming for any reason, not 'they don't take up programming for the professional needs'. And what you're contrasting as a 'programming problem' mostly doesn't fit his definition of programm…

He clearly has a flexable definition of programming: "There are some hybrid forms. ... (Trellix's TWE web site authoring system is built this way.)" And DVR's seem to meet this definition of specification through menus style programming especially when you get into GC.

Yet, I don't see any way a weadding planner can save time and really automate things at a high level. Use an online calendar, manage invitations through an electronic address book etc sure. Get a computer to do seating arrangements, yea not worth the effort.

http://www.toptableplanner.com/blog/wp-content/uploads/2010/...

Re: Why Johnny can't program (2002)

#24
post #22

Earlier quoted context omitted.

When you say "IDE" you're probably meaning something like Visual Studio. Ok, fair enough. Now think about something like HyperCard. That's an IDE. It's eminently usable and learnable (even friendly), and yet still does all the things an IDE does. "IDE" doesn't have to be Visual Studio. There have been friendly IDEs in the past, and there's no reason they couldn't be built today except nobody's doing it. There's actua…

I find git extremely usable, and I despise IDEs that hide anything from me. Every hidden thing is a thing that, when it goes wrong, I can't fix. Something "goes wrong" when it's either not working as designed, or it's broken as designed and needs to be reconfigured or otherwise changed: The IDE handles the wrong language, for example, and needs to use a different compiler and have different highlighting and formattin…

Sounds like you're a power user, not a novice.

Re: Why Johnny can't program (2002)

#25

Excellent article. The one thing I disagree with is IDE's. I think that they actually present an overly complex interface that is daunting to the new user, not helpful. Ditching IDE's and switching to a text editor and CLI has made every aspect of programming easier for me to understand. As a new user, the price I paid to be able to click a button and run my program, was far greater than the price of learning how to…

when you are dealing with a small project notepad++ might be fine but large codebase and frontend development it would be counter productive to not use IDE

The 'complexity of IDE' is overrated. Once you've memorized the hot keys, it makes a world of difference, running grep to find a piece of code you don't remember hidden under layers of inheritence. You are setting up for failure if you act like a luddite.

Re: Why Johnny can't program (2002)

#26

Earlier quoted context omitted.

It may cause future problems, but things like Visual Basic with the graphical interface are very easy for a child to understand (or at least me). As the artifacts that you are interacting with in the GUI are in the programming environment.

I think it's much simpler to learn 10 commands in the terminal and use text files than try to grasp what's going on in an IDE. I understand the corner case for GUI building. My first language was C# and this is how I learned how to program. I had no idea what was going on. I had no idea how events worked and the Property Inspector seemed to have a million nuances. I didn't care about learning how to program. I just w…

> I think it's much simpler to learn 10 commands in the terminal and use text files than try to grasp what's going on in an IDE.

This is true IMO. However you don't need to understand what the IDE is doing to use it now do you? A new user needs to learn nothing more than how to use the project creation wizard, and hit the play/stop button button.

As someone who teaches high school children how to program I assure you from experience and an IDE is much, much simpler than diving into the terminal.

Re: Why Johnny can't program (2002)

#28

Excellent article. The one thing I disagree with is IDE's. I think that they actually present an overly complex interface that is daunting to the new user, not helpful. Ditching IDE's and switching to a text editor and CLI has made every aspect of programming easier for me to understand. As a new user, the price I paid to be able to click a button and run my program, was far greater than the price of learning how to…

All anyone needs is a text editor and a compiler :-)

Re: Why Johnny can't program (2002)

#29
post #26

Earlier quoted context omitted.

I think it's much simpler to learn 10 commands in the terminal and use text files than try to grasp what's going on in an IDE. I understand the corner case for GUI building. My first language was C# and this is how I learned how to program. I had no idea what was going on. I had no idea how events worked and the Property Inspector seemed to have a million nuances. I didn't care about learning how to program. I just w…

> I think it's much simpler to learn 10 commands in the terminal and use text files than try to grasp what's going on in an IDE. This is true IMO. However you don't need to understand what the IDE is doing to use it now do you? A new user needs to learn nothing more than how to use the project creation wizard, and hit the play/stop button button. As someone who teaches high school children how to program I assure you…

But that's the point. I didn't need to understand 10 commands in the terminal to run the application. A very small barrier. What IDE's did was create a huge barrier between me and all the other programmers. If something broke or I needed to learn something new, it was all in the context of this magical black box. I wasn't learning how to use my computer. I was learning how to use someone else's program. I could get from point A to point B without knowing what was going on, but ultimately that just caused a lot of frustration. How long would it actually take you to teach a student to compile and run a program written in C?

This example requires the user to be able to do the following that an IDE would not:

- copy paste a file path to the terminal

- cd [pasted filepath]

- make [file name]

- ./[filename]

http://c.learncodethehardway.org/book/ex1.html

Versus throwing them into a black box where they are overwhelmed with buttons and gizmos and are encouraged to give up on the idea that they will ever know what's going on. Do you honestly think it's not worth the time to teach students how to use the terminal?

Re: Why Johnny can't program (2002)

#30

Excellent article. The one thing I disagree with is IDE's. I think that they actually present an overly complex interface that is daunting to the new user, not helpful. Ditching IDE's and switching to a text editor and CLI has made every aspect of programming easier for me to understand. As a new user, the price I paid to be able to click a button and run my program, was far greater than the price of learning how to…

when you are dealing with a small project notepad++ might be fine but large codebase and frontend development it would be counter productive to not use IDE The 'complexity of IDE' is overrated. Once you've memorized the hot keys, it makes a world of difference, running grep to find a piece of code you don't remember hidden under layers of inheritence. You are setting up for failure if you act like a luddite.

The article is about why so many people were able to customize their myspace pages but not their internet browsers. It's about the transition of a new user to that of a programmer. My response is in the context of the article. It has nothing to do with whether or not IDE's are good or bad for advanced users with large projects.
Post reply on HN