Why Jonny Can't Code
-
ahmed zahmed wrote:
Can you even get BASIC nowadays?
Maybe the next Code Project programming competition should be a BASIC interpreter, complete with a simple editor, syntax checker, and the ability to do cursor positioning in an 80x25 character grid, so basic (har har) character graphics could be done. Remember the good ol' "poke" statement? ;) Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
I wrote a nested for loop on the PET, poking all 255 values in every register. I found a tennis-court screen in 2 shades of green, and a backwards screen (text was big and screen was flipped 180).
"The activity of 'debugging', or removing bugs from a program, ends when people get tired of doing it, not when the bugs are removed." - "Datamation", January 15, 1984
-
ahmed zahmed wrote:
Can you even get BASIC nowadays?
Maybe the next Code Project programming competition should be a BASIC interpreter, complete with a simple editor, syntax checker, and the ability to do cursor positioning in an 80x25 character grid, so basic (har har) character graphics could be done. Remember the good ol' "poke" statement? ;) Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
You could even bring back Microsoft Clippy to help you code!
PlutoX
-
Wow - do you know anything about programming at all ? Visual Basic is, along with C#, one of the most popular languages for Windows development today. The writer is an idiot. He must be looking for a specific version of BASIC. The problem with programming today, is that there's so much drag and drop, point and click, write no code stuff going on that people are taking contract work and hitting a wall the moment they find they need to write code after all, and hitting our ASP.NET forums predominantly, although I notice a real increase in the WPF forum of late. The problem is that people assume it's easier than it really is to write good code, or just plain don't care about good code, and are glad that todays GC environments allow them to write crap that won't actually crash the system, and then sell it.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
"The problem with programming today, is that there's so much drag and drop, point and click, write no code stuff going on that people are taking contract work and hitting a wall the moment they find they need to write code after all" Amen to that. If I have to explain to one more stupid f**k how to loop through an collection, or or use a base page class I'm going to go gehad on their drag n' drop a**. 5 years ago I taught myself how to programm by reading books and tutorials online. I started with VB.NET and now do mostly C#. These days I make a good living building enterprise software. So I think .NET is a great place to start. I have tried several other languages and have not been impressed after working with .NET. I feel like nothing truly compairs. If I can become the developer for a software consulting company just by reading books and make the kind of money that good developers make with no colege degree, just by reading books. .NET is a great place to start. If you cant figure it out, maybe you are fresh out of college where they didn't teach you anything practical, or maybe this industry just isn't for you.
-Adam N. Thompson
-
Why Jonny Can't Code[^] I think this guy's got a point. Things are very, maybe too complex for simple PRINT "Hello World!" type programs today. A lot of today's technologies are not very approachable... You don't start out mountain climbing by first tackling Mt. Everest. You start out much much smaller and work up to Mt. Everest. Where's the BASIC of today. Can you even get BASIC nowadays?
-
I wrote a nested for loop on the PET, poking all 255 values in every register. I found a tennis-court screen in 2 shades of green, and a backwards screen (text was big and screen was flipped 180).
"The activity of 'debugging', or removing bugs from a program, ends when people get tired of doing it, not when the bugs are removed." - "Datamation", January 15, 1984
Richard Jones wrote:
I wrote a nested for loop on the PET, poking all 255 values in every register. I found a tennis-court screen in 2 shades of green, and a backwards screen (text was big and screen was flipped 180).
Hehe. That could be really dangerous, as you could affect the timing of the video chip and blow up the monitor! ;) Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
-
In my opinion the drag and drop, any mort can write code thing has really contributed to a lack of depth of knowledge. Often people I've hired or interviewed really know their framework and platform of choice really well but really don't understand how it works together and how the generated code works. So, when I have to hire contractors or consultants I come up with this as bit of a smoke test. I ask them to write me a Hello World app using their favorite language and framework. But, I have one condition, they can't use an IDE. I've found some really good people that way who are more efficient developers than I could ever hope to be. It doesn't really demonstrate a complete command of the inner workings but in my opinion it does show me that they aren't scared of diving into it if we need them to.
And above all things, never think that you're not good enough yourself. A man should never think that. My belief is that in life people will take you at your own reckoning. --Isaac Asimov Avoid the crowd. Do your own thinking independently. Be the chess player, not the chess piece. --Ralph Charell
modified on Tuesday, October 13, 2009 9:22 PM
-
Richard Jones wrote:
I wrote a nested for loop on the PET, poking all 255 values in every register. I found a tennis-court screen in 2 shades of green, and a backwards screen (text was big and screen was flipped 180).
Hehe. That could be really dangerous, as you could affect the timing of the video chip and blow up the monitor! ;) Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
Worst I ever got was a high-pitched squeal, like a dog-whistle. I can "hear" CRTs tube whine. I was really glad when we switched to LCD.
"The activity of 'debugging', or removing bugs from a program, ends when people get tired of doing it, not when the bugs are removed." - "Datamation", January 15, 1984
-
True, but you can ignore all that at first. One other problem we have today is people looking to do complex things, and who have not taken the time to learn simple things. C# or VB, a beginner should write one class console apps at first, in my book.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
The problem with this is the amount of time it takes to get past these introductory steps and get to functional coding. I am a complete noob at this. I took a C course in 1993 and a C++ in 97. I am an intern learning C# on the job and I am mostly lost. Yes I even made a stupid ball bounce using basic in the 80s... I have sat here at my desk reading up on how to use delegates, working with XML, forms, etc for literally weeks. I still don't get it and even having written some basic programs I am lost when I try to do the next step. I spent a day figuring out how to send an xml file to a pop up box so that the formatting worked and could still not get it to scroll the way I wanted. I am currently trying to get input in 3 pop up forms and then send that to a 4th form which tallies everything and lets the user know what they chose. I decided to do this because our environment actually does something similar. Writing those basic applications has not prepared me for this. I may be too old to just "get it" nowadays or something but my forehead hurts from slamming into a wall and I really do think an instructor with GOOD training in teaching (not just a degree in programming) is really necessary to get programming nowadays. This site has helped a ton, but the language on a lot of articles is so far above where I am that it doesn't always help. Heck, I couldn't even get the delegate thing using the bedtime story article. Learning for me has always required interaction with someone or me being able to puzzle out things with numbers and a map of sorts.
-
I'm sorry. The article does appear stupid to me, but I did fly off a little bit. I'm just not having a good day. The point appears to me to be that languages with line numbers and no OO are a better starting point than any modern language. I don't really agree. You can create a simple VB.NET project and write plenty of VB code, without having line numbers, which are only useful for arbitrary goto statements, something I don't think people need to learn about.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
Christian Graus wrote:
The point appears to me to be that languages with line numbers and no OO are a better starting point than any modern language. I don't really agree.
The guy was expressing his opinion. You have to respect that. He obviously is fond of his roots. I too started with Basic and undoubtedly would not be where I am today otherwise (thanks Commodore). The Basic language is a tool like any other. It has pros and cons like any other language.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
-
Why Jonny Can't Code[^] I think this guy's got a point. Things are very, maybe too complex for simple PRINT "Hello World!" type programs today. A lot of today's technologies are not very approachable... You don't start out mountain climbing by first tackling Mt. Everest. You start out much much smaller and work up to Mt. Everest. Where's the BASIC of today. Can you even get BASIC nowadays?
I think the reason might be something different entirely. I've noticed that the Jonnys of today have no interest, curiosity, fascination with, or drive to explore computers and how they work. Of course they use technology voraciously. This may be a generational thing. Today, they are so swamped with technology and take it all for granted, and don't even see it as a field worth pursuing. I may date myself, but having grown up when there were no PCs at schools, and getting my first introduction to them in college has left me with a life long appreciation for them, and subsequently writing code. I see the same at work (Not an IT company), those with the most interest and drive are older. Of course the same young generation doesn't read, for example books by Ray Kurzweil such as The Singularity is Near. Those few Jonnys who have that interest and drive are still there, creating the future companies and products. Think Google, Facebook, etc...
-
It seems to me that you can't teach "structured programming" unless you've introduced the class to its opposite. Regardless of language, have the student(s) try to implement something with just if and goto for flow control. X| Then introduce patterns, like for and while loops (with if/goto), then progress to real for and while loops. On the other hand, you have to know your audience. If the class just wants to be able to write some simple programs then by all means skip all that. As far as any students who intend to be serious developers, I believe that experiencing "the olde ways" is very important. It's why we had to learn a little Assembly, Fortran, and COBOL.
PIEBALDconsult wrote:
It seems to me that you can't teach "structured programming" unless you've introduced the class to its opposite.
that's ridiculous in the extreme. so if you want to learn math you must first learn non-math? or to learn to cook you must first learn to non-cook?
-
Why Jonny Can't Code[^] I think this guy's got a point. Things are very, maybe too complex for simple PRINT "Hello World!" type programs today. A lot of today's technologies are not very approachable... You don't start out mountain climbing by first tackling Mt. Everest. You start out much much smaller and work up to Mt. Everest. Where's the BASIC of today. Can you even get BASIC nowadays?
Download a C64 or Atari simulator. Voila - BASIC. And you can do cool things like poke characters on the screen, write garbage into the keyboard buffer, and create your own 8-bit chip tunes!
-
Why Jonny Can't Code[^] I think this guy's got a point. Things are very, maybe too complex for simple PRINT "Hello World!" type programs today. A lot of today's technologies are not very approachable... You don't start out mountain climbing by first tackling Mt. Everest. You start out much much smaller and work up to Mt. Everest. Where's the BASIC of today. Can you even get BASIC nowadays?
The article has a point. When you first learn to program, it's overwhelming because a beginner has to learn a wide variety of "mini-skills" all at once, in order to get the simplest thing working. Miss even one of them, and the program fails, and the beginner often doesn't have a clue what's wrong. Sure there are most sophisticated platforms out there. But a sophisticated platform is counterproductive to the initial programming learning experience. BASIC is simple, which makes it ideal to learn the concepts of programming. It's interpreted so you can bypass the concepts of compiling and linking. Line numbers and gotos are intuitive. Even as simple as C is, there are still complexities (for the beginner) like main () and #include <stdio.h> that distract, must be explained, and add more unnecessary uncertainty to the initial programming experiences.
-
Why Jonny Can't Code[^] I think this guy's got a point. Things are very, maybe too complex for simple PRINT "Hello World!" type programs today. A lot of today's technologies are not very approachable... You don't start out mountain climbing by first tackling Mt. Everest. You start out much much smaller and work up to Mt. Everest. Where's the BASIC of today. Can you even get BASIC nowadays?
The guys a decent writer, but he's a bit too nostalgic, or just really bad at finding things online. He's totally obsessed with a particular version of BASIC, for some reason. He even mentions QBASIC in his article as one he passed up. That's how I learned to code - after having a TRS 80 16k I was thrilled to get QBASIC on an PC. He keeps going on about how he just wants the kid to able to sit down and punch stuff in with out the hurdles, but QBASIC is actually easier AND better. You don't need line numbers, you have an actual text editor so you don't have to retype a whole line to fix a mistake, etc. He could easily have sat the kid down with QBASIC and punched in all those examples. And if he doesn't like that there's SmallBasic, or Ruby, or for that matter he knocks Python for being too high level, but you can enter BASIC examples in Ruby or Python with only trivial syntax changes. And they're interpreted just like BASIC, so no dealing with a compiler. Basically he just wanted to whine about 'how good it used to be' instead of downloading some of these things from the interwebs. But then I guess he wouldn't have an article.
-
The guys a decent writer, but he's a bit too nostalgic, or just really bad at finding things online. He's totally obsessed with a particular version of BASIC, for some reason. He even mentions QBASIC in his article as one he passed up. That's how I learned to code - after having a TRS 80 16k I was thrilled to get QBASIC on an PC. He keeps going on about how he just wants the kid to able to sit down and punch stuff in with out the hurdles, but QBASIC is actually easier AND better. You don't need line numbers, you have an actual text editor so you don't have to retype a whole line to fix a mistake, etc. He could easily have sat the kid down with QBASIC and punched in all those examples. And if he doesn't like that there's SmallBasic, or Ruby, or for that matter he knocks Python for being too high level, but you can enter BASIC examples in Ruby or Python with only trivial syntax changes. And they're interpreted just like BASIC, so no dealing with a compiler. Basically he just wanted to whine about 'how good it used to be' instead of downloading some of these things from the interwebs. But then I guess he wouldn't have an article.
... and just to be clear, I'm not saying he doesn't have a point. I learned through punching in BASIC line by line and i think everyone should experience that. I'm just baffled that he insists that experience is so inaccessible nowadays.
-
Worst I ever got was a high-pitched squeal, like a dog-whistle. I can "hear" CRTs tube whine. I was really glad when we switched to LCD.
"The activity of 'debugging', or removing bugs from a program, ends when people get tired of doing it, not when the bugs are removed." - "Datamation", January 15, 1984
Richard Jones wrote:
I can "hear" CRTs tube whine. I was really glad when we switched to LCD.
Me too. At least, I used to. I also couldn't understand why people had these fancy CRT's and graphic cards but would keep the refresh rate at 60Hz. The flicker would drive me nuts. Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
-
Richard Jones wrote:
I can "hear" CRTs tube whine. I was really glad when we switched to LCD.
Me too. At least, I used to. I also couldn't understand why people had these fancy CRT's and graphic cards but would keep the refresh rate at 60Hz. The flicker would drive me nuts. Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
Not everyone is susceptible to flicker. I only ever notice 60hz flicker from 10' and a 45* angle; meanwhile higher resolution is always useful and the highest generally are where the CRT bottoms out at 60hz max. OTOH I've never met anyone who could use the 85hz interlaced (42.5 effective) mode on 90's era systems; which makes me wonder why they ever offered it.
The latest nation. Procrastination.
-
dighn wrote:
and do "Hello World" in minutes.
Not much beats: 10 Print "Hello World" run Marc
I'm not overthinking the problem, I just felt like I needed a small, unimportant, uninteresting rant! - Martin Hart Turner
Beats the VB/C# equivalents: VB
Imports System
Namespace Tutorial
Public Class Hello
Public Shared Sub Main
Dim name As String
Console.WriteLine("Please enter your name.")
name = Console.ReadLine()
Console.WriteLine("Hello there, " & name & "!")
Console.ReadLine()
End Sub ' Main
End Class ' Hello
End Namespace ' TutorialC#
using System;
namespace Tutorial {
public class Hello {
public static void Main() {
string name;
Console.WriteLine("Please enter your name.");
name = Console.ReadLine();
Console.WriteLine("Hello there, " + name + "!");
Console.ReadLine();
} // end method Main
} // end class Hello
} // end namespace TutorialI'll be nice and not post the 200+ line Windows CE VC++ version... :-\ Flynn
-
Beats the VB/C# equivalents: VB
Imports System
Namespace Tutorial
Public Class Hello
Public Shared Sub Main
Dim name As String
Console.WriteLine("Please enter your name.")
name = Console.ReadLine()
Console.WriteLine("Hello there, " & name & "!")
Console.ReadLine()
End Sub ' Main
End Class ' Hello
End Namespace ' TutorialC#
using System;
namespace Tutorial {
public class Hello {
public static void Main() {
string name;
Console.WriteLine("Please enter your name.");
name = Console.ReadLine();
Console.WriteLine("Hello there, " + name + "!");
Console.ReadLine();
} // end method Main
} // end class Hello
} // end namespace TutorialI'll be nice and not post the 200+ line Windows CE VC++ version... :-\ Flynn
Flynn Arrowstarr wrote:
I'll be nice and not post the 200+ line Windows CE VC++ version... Shucks
I'll be unholy and post the Malbolge hello world program:
('&%:9]!~}|z2Vxwv-,POqponl$Hjig%eB@@>}=<M:9wv6WsU2T|nm-,jcL(I&%$#"
`CB]V?Tx<uVtT`Rpo3NlF.Jh++FdbCBA@?]!~|4XzyTT43Qsqq(Lnmkj"Fhg${z@>I'll only link to the 99 bottles of beer program due it it's length. http://www.99-bottles-of-beer.net/language-malbolge-995.html[^] Edit: fixed escaping problems.
The latest nation. Procrastination.
-
I'm sorry. The article does appear stupid to me, but I did fly off a little bit. I'm just not having a good day. The point appears to me to be that languages with line numbers and no OO are a better starting point than any modern language. I don't really agree. You can create a simple VB.NET project and write plenty of VB code, without having line numbers, which are only useful for arbitrary goto statements, something I don't think people need to learn about.
Christian Graus Driven to the arms of OSX by Vista. Read my blog to find out how I've worked around bugs in Microsoft tools and frameworks.
I first started programming in pascal and I found it was a good starting point not too complex but not too simple either. I don't think that a line number language is needed to learn the basics because i still found a small gap jumping from procedural programming to object oriented stuff. It was like learning all over again. I mean you wouldn't want to start a beginner with something like the windows api, but a nice procedural language would be good enough. What i would say is that I think a programmer should be well "read" in a variety of languages even if they are out dated and not commonly used. PS i don't believe in non object oriented languages like how i don't believe in Santa clause :)