4 ms·
My father learned to program in FORTRAN in the 70's. He used punched cards, wrote his code, left the batch of cards at the computer operator and came back a few
by marcodiego 5y ago
My father learned to program in FORTRAN in the 70's. He used punched cards, wrote his code, left the batch of cards at the computer operator and came back a few days later to get the printed results of his program. Sometimes the results were "syntax error in line 11". He never saw the computer but he learned to think before writing.
I met some real old people who used to print their code on paper for review. They made annotations, spent some time reading it like old people used to do with newspapers. They thought about it, sometimes discussed about it, you could see the code was carefully studied out by marks of coffee or cigarette ash.
I learned to program on 8-bit 80's home computers. I later turned to IDE's on PC's. I was impressed by the apparent gain in productivity. I then tried to use linux as old time unixers did. I was impressed that I could feel and sometimes even see what was happening. I saw some great and productive coders who used nothing else than a well configured programming text editor and a terminal. For me that was the most productive and advanced way to write code. I didn't change my mind even after using jetbrains IDE's.
I then became a teacher. I saw students who couldn't tell the difference between a programming language and an IDE. I heard people say java was much better than C and asked why; they explained how great eclipse was. I saw students who were not really writing code, they were writing some random code here and there and waiting the IDE to suggest corrections.
One day I said: "Today we'll write code, but we'll do it on pen and paper first and then we'll type it." After a few days, their skills clearly improved. Syntax errors were rare, off-by one errors mostly disappeared and they started thinking before writing.
I'm not against IDE's, but it is easy to get bad habits because of them. I don't think IDE's are a good replacement for a terminal with a good set of tools. They can improve productivity of good and experienced developers, but when used as a complement, not as a replacement.
- sokoloff 5y agoThis resonates with me. I’m teaching myself Clojure and doing AoC questions as the vehicle. The highly interactive nature is a blessing and a curse. It’s a blessing if I’m thinking clearly and just want to quickly test my code. It’s a curse when I’m not thinking deeply and instead just layering bandage after bandage on the code until it “works”. It’s not the tools; it’s the carpenter.
- BeFlatXIII 5y ago> I heard people say java was much better than C and asked why; they explained how great eclipse was. To be fair, the language ecosystem may be why one language ends up more popular than another that is superior in both memory safety and performance on paper. Of course, these are beginner students who don't have the full context to understand that. > "Today we'll write code, but we'll do it on pen and paper first and then we'll type it." After a few days, their skills clearly improved. Syntax errors were rare, off-by one errors mostly disappeared and they started thinking before writing. How anal were you with semicolons, parenthesis matching, and quotation balance? I can't imagine that would be remotely enjoyable to grade. That said, writing down the high-level structure on paper (annotated with the occasional implementation detail I don't want to forget when it's typing time) is immensely helpful.
- marcodiego 5y ago> How anal were you with semicolons, parenthesis matching, and quotation balance? In something like an exam, I would completely ignore mistakes like these as mere typos. But it prevented students from trying to write loops by trial-and-error and really understand what they were doing.
- uberman 5y agoAs a teacher, I am rather surprised that you would frown on trial and error exploration. My first program was written on punch cards, It took a shoe box full of them to complete trivial assignments. I was thankful when I got to use my first line editor, my first page editor, my first general editor and my first IDE. I don't believe anything would be gained by going back to carving programs out of stone tablets.
- anamexis 5y agoI've worked with several junior programmers who, when they encountered an error in a program they were working on, would immediately go back to their editor and try changing something to see if it fixed it. I encouraged them to stop, read the error and stack trace, and understand the issue before they changed anything to fix it. I think their skills improved for it. Trial and error is good, but you have to understand what you are trying, and if it works, why. Writing out a program up front can encourage this.
- kristaps 5y agoHow big would a typical program be in the 70s?
- uberman 5y agoI can assure you that even trivial programs in Fortran and Cobol could be a shoebox or more of punchcards. Imagine someone knocking your shoebox off the table and having to sort them all by hand. Imagine that on your 3rd run, the reader eats one or more of your cards, then they all start to fail. Programming was wonderous to be sure, but no one is worse off with an IDE and a interpreted language.
- marcodiego 5y ago> Programming was wonderous to be sure, but no one is worse off with an IDE and a interpreted language. Just to be clear: I didn't say anyone is better without and IDE.
- userbinator 5y agoI saw students who were not really writing code, they were writing some random code here and there and waiting the IDE to suggest corrections. Your experience --- especially with teaching --- is basically exactly the same as mine. IDEs add a lot of distraction from the process of actually thinking about and "mentally executing" the code you're writing, which is an important skill to develop especially for someone who is learning. "How can you tell the computer what to do, if you don't know how to do it yourself?"
- FpUser 5y agoIDE being complement of a terminal - sorry been there done that. I started my programming with machine codes. Do I want to go back to that stage - frigging no. And the scope of the programs I had written back then was way smaller than what I do now. IDE along with the other tools are now invaluable help.