# Trying to help a wannabe programmer

**URL:** <https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425>\
**Category:** Factual Questions\
**Created:** [February 10, 2005, 5:06pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425 "2005-02-10T17:06:58Z")\
**Posts on this page:** 20\
**Page:** 2

<div class="post-metadata">

**Author:** ![Athena](https://avatars.discourse-cdn.com/v4/letter/a/35a633/32.png) [@Athena](https://boards.straightdope.com/u/Athena)\
**Post date:** [February 10, 2005, 11:00pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/21 "2005-02-10T23:00:42Z")

</div>

Y’know, something else that teaches programming in a really fun way is Lego Mindstorms. It’s kind of expensive to get into, though - I think the basic package runs $150 or so. Basically, it’s Legos with a processor, and it comes with a visual programming environment. You build a robot with the legos (it comes with some motors and such) then program it using a Windows based programming environment. It’s pretty cool, if he can stomach the initial investment.

---

<div class="post-metadata">

**Author:** ![Athena](https://avatars.discourse-cdn.com/v4/letter/a/35a633/32.png) [@Athena](https://boards.straightdope.com/u/Athena)\
**Post date:** [February 10, 2005, 11:06pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/22 "2005-02-10T23:06:42Z")

</div>

Y’know, something else that teaches programming in a really fun way is Lego Mindstorms. It’s kind of expensive to get into, though - I think the basic package runs $150 or so. Basically, it’s Legos with a processor, and it comes with a visual programming environment. You build a robot with the legos (it comes with some motors and such) then program it using a Windows based programming environment. It’s pretty cool, if he can stomach the initial investment.

---

<div class="post-metadata">

**Author:** ![Stranger\_On\_A\_Train](https://avatars.discourse-cdn.com/v4/letter/s/13edae/32.png) [@Stranger\_On\_A\_Train](https://boards.straightdope.com/u/Stranger_On_A_Train)\
**Post date:** [February 10, 2005, 11:11pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/23 "2005-02-10T23:11:19Z")

</div>

I don’t know why this didn’t occur to me before, but if you’re looking for something really basic, how about [Logo](http://www.softronix.com/logo.html)? It’s kind of limited in what you can do with it (though apparently you can do a lot more now than just move a turtle around the screen) and the language is a subset of Lisp, of which there are manifold varieties to expand into if he decides he wants to do more.

Stranger

---

<div class="post-metadata">

**Author:** ![gazpacho](https://avatars.discourse-cdn.com/v4/letter/g/6f9a4e/32.png) [@gazpacho](https://boards.straightdope.com/u/gazpacho)\
**Post date:** [February 11, 2005, 12:41am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/24 "2005-02-11T00:41:41Z")

</div>

You can download Borland turbo C++ without the Integrated development environment for free. There are a huge number of C and C++ turtorial web pages.

You also must get a good text editor. I recomend downloading either Vim or emacs. Textpad is also available for free in a trial mode that is just a nag screen. All three of these do good contextual color coding of the text.

Windows versions of these are available.

---

<div class="post-metadata">

**Author:** ![gazpacho](https://avatars.discourse-cdn.com/v4/letter/g/6f9a4e/32.png) [@gazpacho](https://boards.straightdope.com/u/gazpacho)\
**Post date:** [February 11, 2005, 12:45am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/25 "2005-02-11T00:45:50Z")

</div>

Bah that did not make sense.

Textpad if you don’t register it will show a nag screen when you launch it. It is fully functional and does not expire.

You don’t need to spend anymoney to get good programming tools.

---

<div class="post-metadata">

**Author:** ![ninetypercent](https://avatars.discourse-cdn.com/v4/letter/n/9de0a6/32.png) [@ninetypercent](https://boards.straightdope.com/u/ninetypercent)\
**Post date:** [February 11, 2005, 1:01am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/26 "2005-02-11T01:01:06Z")

</div>

> [@InvisibleWombat](#):
>
> I’m not sure what you mean about an SDK, **ninetypercent**. Did you mean IDE? The reason I suggested an IDE (interactive development environment) was to allow him to actually build something quickly. Remember, he’s developmentally disabled. He’s 30 years old and works as a dishwasher because that’s the only job he’s qualified for. He doesn’t know the difference between the Internet and the Web, and I have to agree with you that teaching him Perl would just be hopeless.

A simple version of BASIC is what I am referring to. An intepreter is all that is needed to run the code, no external libraries or anything like that.

To me, an IDE is more confusing then just typing **interpreter** _progcode_ on the command line, and watching the output.

---

<div class="post-metadata">

**Author:** ![bump](https://avatars.discourse-cdn.com/v4/letter/b/7c8e57/32.png) [@bump](https://boards.straightdope.com/u/bump)\
**Post date:** [February 11, 2005, 1:12am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/27 "2005-02-11T01:12:45Z")

</div>

If you’re going to learn OOP for the first time, don’t fuck around with C++; it’s way too tortured and confusing for someone unfamiliar with programming concepts. I’d just go get a good book from the library on JAVA, and go to [eclipse.org](http://eclipse.org) and get IBM’s Eclipse development environment. Plus, they have fun exercises like Code Rally and Code Ruler that are really interesting.

I’d go with some kind of freeware Pascal compiler for procedural programming- Pascal was written as an instructional language, so it’s pretty rigorous in terms of what you can and can’t do, while something like C lets you do anything you damn well please, consequences be damned. Pascal also has the advantage of being pretty modern in terms of program structure and data typing, unlike many scripting languages and older ones (BASIC, COBOL, etc…)

[http://pascal-central.com/tools.html](http://pascal-central.com/tools.html)

> **[The Community for Open Innovation and Collaboration | The Eclipse Foundation](http://www.eclipse.org)**
>
> The Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 375 open source projects, including runtimes, tools and frameworks.

---

<div class="post-metadata">

**Author:** ![ZipperJJ](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/zipperjj/32/211_2.png) [@ZipperJJ](https://boards.straightdope.com/u/ZipperJJ)\
**Post date:** [February 11, 2005, 3:53am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/28 "2005-02-11T03:53:12Z")

</div>

Just want to add my uneducated opinion - but I’m an idiot when it comes to math-y things and can barely grasp Javascript (I’m a journalist by education), but I was able to learn **VB** without any formal training. To me, it’s the MOST like … English.

I also suggest before your friend buys a book he might be wise to just use what is available for free online first. He may really latch on to something and really understand what he’s reading, and be able to follow online examples and THEN buy a book to enhance what he’s already found.

Oh and if your friend’s a student, he can probably get a very cheap (or free) copy of Visual Studio and maybe [VS.NET](http://VS.NET) too.

If he’s interested in .NET, by the way… there’s a free tool ([vs.net](http://vs.net) is horribly expensive) [http://www.asp.net/webmatrix/default.aspx?tabIndex=4&tabId=46](http://www.asp.net/webmatrix/default.aspx?tabIndex=4&tabId=46) There’s also alot of free [asp.net](http://asp.net) apps that he could download and de-construct, if he’s interested in that sort of programming.

Best of luck!

---

<div class="post-metadata">

**Author:** ![FordPrefect](https://avatars.discourse-cdn.com/v4/letter/f/e99b99/32.png) [@FordPrefect](https://boards.straightdope.com/u/FordPrefect)\
**Post date:** [February 11, 2005, 5:07am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/29 "2005-02-11T05:07:40Z")

</div>

[vb.net](http://vb.net) 2005 express, look for it at [msdn.microsoft.com](http://msdn.microsoft.com), it’s free too.

---

<div class="post-metadata">

**Author:** ![Electronic\_Chaos](https://avatars.discourse-cdn.com/v4/letter/e/bbe5ce/32.png) [@Electronic\_Chaos](https://boards.straightdope.com/u/Electronic_Chaos)\
**Post date:** [February 11, 2005, 6:18am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/30 "2005-02-11T06:18:38Z")

</div>

I’m finding the book “Game Programming For Teens” By Maneesh Sethi (Published by Premier Press) pretty helpful. It teaches Basic (more specifically Blitz Basic, which is very similar in syntax and logic to C/C++), and is obviously written so for youngish people just beginning so it’s very easy to understand and keep your attention. Plus, it’s applying the concepts to games you can play, rather than boring old business applications, which makes it pretty fun. The book is only $30 and includes the demo version of Blitz Basic, which allows you to run the code (but not compile it into an executable), and never expires.

---

<div class="post-metadata">

**Author:** ![WhiteyFoo](https://avatars.discourse-cdn.com/v4/letter/w/3e96dc/32.png) [@WhiteyFoo](https://boards.straightdope.com/u/WhiteyFoo)\
**Post date:** [February 11, 2005, 6:23am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/31 "2005-02-11T06:23:34Z")

</div>

> [@InvisibleWombat](#):
>
> I appreciate the offer, **WhiteyFoo**. Does the book have any development tools on the CD? My hesitation with Java is that every book I read on it (granted, I haven’t looked at one in five years) was written for people who already knew how to program, not for someone who was trying to learn fundamental concepts like “what’s a variable.”

Ok, the book is Big Java by Cay Horstmann. It begins very very simple. There isn’t actually a CD with it. The web site of the book is  
[http://he-cda.wiley.com/WileyCDA/HigherEdTitle/productCd-0471697036.html](http://he-cda.wiley.com/WileyCDA/HigherEdTitle/productCd-0471697036.html)  
The one I have is the first ed, but the general info stand.  
I like the book because it takes sucha great approach to teaching. Instead of giving you a code snippet and saying “this does blah”, this book actually tells you what exactly you are doing. Anyway, if you want it, let me know and I’ll put it in a box.

---

<div class="post-metadata">

**Author:** ![Ms2001](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/ms2001/32/18463_2.png) [@Ms2001](https://boards.straightdope.com/u/Ms2001)\
**Post date:** [February 11, 2005, 9:44am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/32 "2005-02-11T09:44:55Z")

</div>

> [@FordPrefect](#):
>
> [vb.net](http://vb.net) 2005 express, look for it at [msdn.microsoft.com](http://msdn.microsoft.com), it’s free too.

Visual C++ Express and Visual C# Express are also free. Personally, I’d recommend C# instead of VB; these days, there isn’t much difference besides the amount of typing you need to do.

---

<div class="post-metadata">

**Author:** ![HMS\_Irruncible](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/hms_irruncible/32/7394_2.png) [@HMS\_Irruncible](https://boards.straightdope.com/u/HMS_Irruncible)\
**Post date:** [February 11, 2005, 11:54am UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/33 "2005-02-11T11:54:26Z")

</div>

> [@Athena](#):
>
> Sheesh, people. Perl? Linux? For a beginner who has a learning disability? Slow down, guys, programming is a hell of a lot harder for someone who is not computer savvy.

Learning code requires a combination of aptitude, motivation, and opportunity. Motivation is one of the hardest things to find… you need a reason to code. If your friend starts out creating something he’s familiar with… say, web pages… his motivation may take him farther than he’d get making toy programs in Visual Basic. If he’s your friend, I’d suggest being a real friend and help him create an opportunity to start with the LAMP platform (Linux, Apache, mySql, PHP) in as small steps as he can handle.

If you’re stipulating something that is dumbed down for a beginner who has a learning disability, really the best thing to suggest is something like pottery or sewing. Tackling computational concepts requires that one is willing and able to exert a certain amount of mental effort. If someone is frightened by shell prompts, curly braces, and semicolons probably will not do well with symbolic logic inherent to programming.

---

<div class="post-metadata">

**Author:** ![Capt.Ridley\_s\_Shooting\_Party](https://avatars.discourse-cdn.com/v4/letter/c/cc9497/32.png) [@Capt.Ridley\_s\_Shooting\_Party](https://boards.straightdope.com/u/Capt.Ridley_s_Shooting_Party)\
**Post date:** [February 11, 2005, 1:16pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/34 "2005-02-11T13:16:46Z")

</div>

> [@](#):
>
> I like Delphi, +MDI. I wrote a lot of code with it back in the mid-90s. Has it changed much since then? It seemed very natural to me, but maybe that’s because Pascal was one of the first languages I learned–the first that I actually got formal instruction in. I don’t know how natural it would feel for a rank beginner, though.

It’s changed a lot from the earliest versions.

---

<div class="post-metadata">

**Author:** ![Athena](https://avatars.discourse-cdn.com/v4/letter/a/35a633/32.png) [@Athena](https://boards.straightdope.com/u/Athena)\
**Post date:** [February 11, 2005, 2:05pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/35 "2005-02-11T14:05:00Z")

</div>

> [@NattoGuy](#):
>
> If your friend starts out creating something he’s familiar with… say, web pages… his motivation may take him farther than he’d get making toy programs in Visual Basic. If he’s your friend, I’d suggest being a real friend and help him create an opportunity to start with the LAMP platform (Linux, Apache, mySql, PHP) in as small steps as he can handle.

Are you suggesting that Visual Basic isn’t a real programming language, used by professional programmers who are being paid to program? If so, you’re mistaken. VB is still widely used.

LAMP is great, but as a beginning environment/language - no way. VB, C#, etc. are so much more English like than C/C++/C#/php that it makes it much easier for the beginner to pick them up. And I’m a C/C++/C#/php nut. But it just ain’t right to expect someone to whom writing Word macros is a big step to suddenly understand a non-Windows, non-intuitive language without a standard IDE and very much not point-n-click.

---

<div class="post-metadata">

**Author:** ![Mangetout](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/mangetout/32/19_2.png) [@Mangetout](https://boards.straightdope.com/u/Mangetout)\
**Post date:** [February 11, 2005, 2:49pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/36 "2005-02-11T14:49:55Z")

</div>

I’ll second that; I can only imagine that people recommending C and some of the other languages are projecting their own ease of use; really, C is not an easy first language at all; sure, people _do_ start with it, but I’m willing to bet that way more people drop out of learning C as a first language than others such as Pascal or BASIC.

And that’s what matters; not where you start, but how far you get; starting off with a language specifically _designed_ for learning, then later progressing to a more ‘serious’ one (whatever that means, really), even if you pick up and have to unlearn some bad habits on the way is much better than hurling yourself in at the deep end and giving up because it is too hard.

---

<div class="post-metadata">

**Author:** ![Bytegeist](https://avatars.discourse-cdn.com/v4/letter/b/9dc877/32.png) [@Bytegeist](https://boards.straightdope.com/u/Bytegeist)\
**Post date:** [February 11, 2005, 3:20pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/37 "2005-02-11T15:20:02Z")

</div>

> [@TonyF](#):
>
> Get him a book on x86 ASM. Then he’ll _really_ know programming! 😛

Feh! The X86 has cushy _multiply_ and _divide_ instructions and all other sorts of bling-bling. What a crutch. Real programmers write _their own_ subroutines for multiplication and division — preferably hand-tuned to the exact size of integer needed.

Want to help your friend learn programming? Here is a recommendation from the Board of Irresponsible People. Have him write a flight simulator entirely in 6502 assembly language.

It’s a great resumé stuffer.

---

<div class="post-metadata">

**Author:** ![Gary\_Robson](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/gary_robson/32/3448_2.png) [@Gary\_Robson](https://boards.straightdope.com/u/Gary_Robson)\
**Post date:** [February 11, 2005, 8:21pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/38 "2005-02-11T20:21:25Z")

</div>

> [@Bytegeist](#):
>
> Feh! The X86 has cushy multiply and divide instructions and all other sorts of bling-bling. What a crutch. Real programmers write their own subroutines for multiplication and division — preferably hand-tuned to the exact size of integer needed.

Back in my day we entered our programs by hand-toggling them in through the front panel switches. Subroutines? Bah. You kids today. 😉

Seriously, though, your post reminds me of the time I spent once building floating-point division routines in Data General Nova 1200 assembly language. What a pain.

And, just for the record, I did have a job once writing device drivers for S-100 buss computers where I had to toggle my bootstrap program in from front panel switches.

---

<div class="post-metadata">

**Author:** ![HMS\_Irruncible](https://sea3.discourse-cdn.com/straightdope/user_avatar/boards.straightdope.com/hms_irruncible/32/7394_2.png) [@HMS\_Irruncible](https://boards.straightdope.com/u/HMS_Irruncible)\
**Post date:** [February 11, 2005, 9:56pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/39 "2005-02-11T21:56:10Z")

</div>

> [@Athena](#):
>
> Are you suggesting that Visual Basic isn’t a real programming language, used by professional programmers who are being paid to program? If so, you’re mistaken. VB is still widely used.

That isn’t what I said at all. I was saying that the immediate practical uses of web programming will probably motivate and interest a novice farther than the immediate practical uses of Visual Basic.

---

<div class="post-metadata">

**Author:** ![Boldface\_Type](https://avatars.discourse-cdn.com/v4/letter/b/b5e925/32.png) [@Boldface\_Type](https://boards.straightdope.com/u/Boldface_Type)\
**Post date:** [February 11, 2005, 11:18pm UTC](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425/40 "2005-02-11T23:18:33Z")

</div>

I’d second Delphi or Visual Basic. Not sure about VBA - the debugging process for VBA progs seems a bit more fraught than in ‘proper’ IDEs, at least IME with Excel VBA.

I would be amazed if a beginner found Perl easy or intuitive, even if the beginner did not have a learning disability.

If you really dislike the guy, get him programming in SAS.

[Previous page](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425.md?page=1)

[Next page](https://boards.straightdope.com/t/trying-to-help-a-wannabe-programmer/289425.md?page=3)
