Best First Programming Language?

135 views
Skip to first unread message

Jesse Robinson

unread,
Oct 6, 2012, 10:12:15 PM10/6/12
to sect...@googlegroups.com
My wife is considering learning a programming language, just for fun, and I've been mulling over what to have her start.  She has no programming experience.  Here are my thoughts

I'm thinking VB.net or C# only because I think Visual Studio makes it easier to learn a language and also gives you quick gratification because of the auto gui it does.  Just drop a button on a form, double click, add some code and you can see what it does.  I'm leaning VB vs C# only because then she could possibly use her skills as vb scripts in excel.

I have some good Java books, but I'm worried that Java is too hard to be a first language.  Other thoughts were maybe Python, but I have no experience in Python so I wouldn't be able to help, and I don't know what experience it offers.  I know lots of plugins and scripts for other programs are written in it, but don't know how standalone it is for her to learn.

Also thought about processing, so maybe she could do Arduino work.  She has no interest in hardware so there is no reason for her to learn that then.

Any other suggestions?

Also anyone know any good free courses online for one of these?  I found some python ones, but not a C# or VB one.

Bob Baddeley

unread,
Oct 6, 2012, 10:18:50 PM10/6/12
to sect...@googlegroups.com
http://www.codecademy.com/, and specifically http://www.codecademy.com/tracks/javascript-upgraded

Codeacademy also does python, so there's that.

There are so many resources for learning javascript and python online, and so many free IDEs and they are platform independent, and everything is moving towards web based and NOT desktop applications, so in the long run learning Javascript and how to build web sites may be more useful than tying oneself to Microsoft and expensive IDEs and desktop applications.

bob
--
You received this message because you are subscribed to the Google Groups "Sector67 Public" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sector67/-/NcU8qmOAo1kJ.
To post to this group, send email to sect...@googlegroups.com.
To unsubscribe from this group, send email to sector67+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sector67?hl=en.

Dougal

unread,
Oct 6, 2012, 10:28:33 PM10/6/12
to sect...@googlegroups.com

I vote for Java/JavaScript as well. Probably the most versatile.

William LaFrance

unread,
Oct 6, 2012, 10:28:44 PM10/6/12
to sect...@googlegroups.com, sect...@googlegroups.com
Either c# for the reasons cited, or ruby. VB.NET is a bad idea upon a bad idea. :(

tryruby.org

Sent from my iPhone

Jesse Robinson

unread,
Oct 6, 2012, 10:39:50 PM10/6/12
to sect...@googlegroups.com
Visual Studio Express is free and I've used it for some development.

I'm biased against web based and scripting languages.  They tend to not cover the same base object oriented abilities that languages like C# and Java cover.  It's been awhile since I've done Javascript, but I know I've never liked it.

Also, the problem with a web based language is needing to set up a webserver to host it on to test it and then she has to learn html and how to embed her apps, and lots of other kind of helper things to get it to runs, like ftp programs, maybe some database and languages, that harder to just sit down and have quick feedback.

Scott Fradkin

unread,
Oct 6, 2012, 10:41:09 PM10/6/12
to sect...@googlegroups.com
I would suggest Ruby. Ruby isn't as hard to learn as other languages. Tryruby.com or hackety.com (hackety hack) for resources. Ruby is a nice hybrid language so you get elements of a Perl/C like syntax mixed with the usefulness of a functional language.

Java isn't really that hard, but at this point in time it may not be as useful as other languages.

I know JavaScript is all the rage these days and it's probably good to learn, but I'm not sure I'd recommend it as a first language to learn. It was messy many years ago and it's still messy. It's also not really an object- oriented language: it's a prototype-based language.  So it works a bit differently than may be expected.

That being said, I don't know if there's really a "perfect" language for beginners. (Well, maybe Smalltalk) Each language has its pros and cons and idiosyncrasies. There's a book from the Pragmatic Programmers called "Seven Languages on Seven Weeks".  It's a survey of seven different languages. It might be a good read for a beginner just to see how languages can be different.

Also, different languages could appeal differently to each person, so a language that you or I think is great could be considered horrible by someone else.

Scott


On Oct 6, 2012, at 9:18 PM, Bob Baddeley <bob.ba...@gmail.com> wrote:

sc...@fradkin.com

unread,
Oct 6, 2012, 10:45:05 PM10/6/12
to sect...@googlegroups.com
Heh. Many moons ago I did some work in VB. I always wondered who created
such an abomination.

Looks like I got that tryruby link incorrect on my previous reply.

Scott

William LaFrance

unread,
Oct 6, 2012, 10:54:00 PM10/6/12
to sect...@googlegroups.com, sect...@googlegroups.com
The problem with JS is it can do just about every single language paradigm (functional, procedural, object orientation, prototyping, duck typing) and a noobie can't learn it well.

Sent from my iPhone

Alex

unread,
Oct 7, 2012, 12:45:42 AM10/7/12
to sect...@googlegroups.com
head first books are really good. I found Head First Java  to be really helpful. Purchase it on amazon though cuz its cheaper that way

Charles Allhands

unread,
Oct 7, 2012, 1:02:42 AM10/7/12
to sect...@googlegroups.com

I'm by no means an expert but for what it's worth, I'd say if she's learning "for fun" to explore a new way of thinking I'd suggest scheme or smalltalk. If she's doing it to build a simple project she has in mind I'd lean towards python. All of these have excellent learning resources available for free online. I'd probably suggest a completely different route if she was learning programming to get a job.

-Charles

--

Grant Dobbe

unread,
Oct 7, 2012, 7:54:31 AM10/7/12
to sect...@googlegroups.com

Having taught programming, I would highly suggest either Python. The nice thing about Python is that the language structures are easy to follow, and the language itself keeps you honest in terms of syntax and layout.

-sent from android, please forgive brevity or typos

Dithermaster

unread,
Oct 7, 2012, 10:23:12 AM10/7/12
to sect...@googlegroups.com
If it's just for fun, the bang-for-buck is pretty high with "Processing", and the syntax is close enough to real programming languages so when she graduates from it she'll have good foundation. There are tons of example apps, and the visual aspect is pretty amazing.

///d@

Walker, Larry

unread,
Oct 7, 2012, 10:30:10 AM10/7/12
to sect...@googlegroups.com
OK, I replied off-list to Jesse, but I do just have to wade in publicly with a radical response:

I'd suggest that the first question to ask is whether Jesse's wife is an engineer-type or a liberal-arts-type. And unless she is clearly an enginerd at heart, I'd claim that all of the languages mentioned are horrible choices.

All these languages are top-heavy on obscure and (to normal humans) absurd syntax. (Well, OK, not so much VB, but as someone already pointed out, it's simply an abomination to start with). Ridiculous punctuation requirements just add insult to injury. Inheritance, polymorphism, casts, even typing of variables are all non-intuitive stumbling blocks to simply learning to work out logical sequences of instructions to make the computer do something interesting.

At the other extreme, languages like Logo are dead-simple to learn, but pretty limited in real-world utility. Plus they often don't have the traditional set of control structures or conventional I/O features.

So, in case you haven't guessed already, I would claim that the only readily-available and well-supported language for beginners who just want to 1) learn the elements of programming, and 2) make the computer do some simple-to-moderately-complex things they are interested in, is LiveCode (previously known as Apple's HyperCard).

Why?

1) super-easy, English-like programming language (with type-less variables)

2) rich drag&drop GUI builder

3) simple-to-use support for virtually all media types (JPGs, MPEGs, MP3s, HTML)

4) insanely easy methods to read and write files locally or remotely (via FTP or HTTP)

5) easy creation and manipulation of graphical objects (for games or applications that need visualization)


So here's a thought-exercise, which I'd love to actually attempt, if a suitable subject were willing:

You pick your favorite candidate language; I'll pick LiveCode. We each get 90 minutes with the subject. After the 90 minute session, how much can the subject actually do on her own?

Did you laugh out loud at the idea of teaching the subject enough to even do a Hello, World in your favorite language (start to finish, IDE through compiled executable), on her own, in just 90 minutes? Come on, be honest!

I did this at Sector67 this summer, in my LIveCode Summer Camp, with a dozen 9-12 year-olds and their parents. It worked.

Any takers?

<donning asbestos suit>

Larry 





Charles Allhands

unread,
Oct 7, 2012, 11:55:52 AM10/7/12
to sect...@googlegroups.com

If I had the time I'd love to take that challenge. Both smalltalk and scheme have simple syntax and a long and proven history in education, even teaching children. Moreover they aren't limited to toy applications. I'd be especially interested to see how easily students pick up another language afterwards.  I suspect livecode's English like style would prove a hinderence. Also,  I'm curious how livecode would do when trying to teach some of the more difficult programming concepts like recursion. It would be an interesting experiment for sure. Hypercard did after all introduce many people to programming. I didn't know there was a modern incarnation of it.

    - Charles

Gretta

unread,
Oct 7, 2012, 12:40:05 PM10/7/12
to sect...@googlegroups.com
I had to learn a little FORTRAN back in the '60s when I was a keypunch operator…(not recommending it …  :)P
Thanks for this tip, Larry. I had fun w/HyperCode back in the day. Will check out LiveCode.
gretta

Walker, Larry

unread,
Oct 7, 2012, 2:16:36 PM10/7/12
to sect...@googlegroups.com
Charles:

Good points. In general, I don't think LC's English-like syntax is a hinderance for learning a next language. Its control structures read in English very close to traditional control structures in procedural languages, for instance.

On the other hand, it certainly doesn't prepare the student for the shock of syntaxes (syntaxi?) that are full of VOIDs and {'s and ;'s. But having learned LC first shouldn't make these syntax "features" any more jarring/annoying/confusing than meeting them in your first language, methinks.

LC does recursion just fine (and it "looks" just like recursion in any other procedural language), though I admit I've only used it maybe once. But recursion is definitely not a beginner's topic, and in fact is not of much use to at least 97% of all people who just need to whip a up a handy tool for their job or hobby…

It's funny (or frustrating) that so few people DO know that a modern incarnation of HyperCard exists. LiveCode's been around for like a decade or more, but is only now getting any significant visibility. And for better or worse, that's largely because of their recent focus on iOS and Android. I'm a little disappointed to see them edging away from positioning it as a general-purpose application builder or an educational tool. But they do have to pay the rent and the developers' salaries, and handheld apps are where the action is these days...

Larry

Tanya Cunningham

unread,
Oct 7, 2012, 3:00:08 PM10/7/12
to sect...@googlegroups.com
Hey all,

As a complete non-computer, non-nerd person (definitely more "artsy" liberal-arts type), I have nothing constructive to suggest, but I am loving this discussion.  Thanks for having it publicly.  

Tanya

(I do love a challenge, and would, in fact, like to be able to learn some basic coding at some point.  I would definitely offer myself up as a subject for the 90-minute challenge.)

Peter Novotnak

unread,
Oct 7, 2012, 5:25:55 PM10/7/12
to sect...@googlegroups.com
BASH (don't laugh!) Has a very minimal learning curve and lets you do
crazy cool stuff really fast. That or Javascript, because it runs
anywhere/ everywhere and provides instant gratification, also probably
more immediately useful than most other languages. Python is a very
cool, verbose language, but I've never gotten much instant
gratification from it.

On the other hand, Java is interesting because it's very strongly
typed, and it's good to know about that stuff. Also runs on Android.
That or objective C/ iPhone.


-2¢@Peter

Grant Dobbe

unread,
Oct 7, 2012, 6:05:52 PM10/7/12
to sect...@googlegroups.com

No. Suggesting Bash shell scripting as a first language is like suggesting a Caterham as a driver's ed car.

And while I can see Larry's point, I think that a rose by any other name is still a rose. Programming isn't hard to learn because the syntax is difficult or the constructs are scary; if that were the case, nobody would speak English or read sheet music.

Programming is hard to learn because it requires you to spend tons of time inside your own head actively detailing thought processes and constructs we normally take for granted so that a machine can do it in the same way.

LiveCode might reduce the barrier to entry, but anyone doing even moderately complex development in *any* language is going to face those same problems.

-sent from android, please forgive brevity or typos

Larry Walker

unread,
Oct 7, 2012, 6:14:53 PM10/7/12
to sect...@googlegroups.com
Not to pick on you specifically Peter, but I continue to be totally puzzled why one would wish to inflict recursion or strong-typing on a (presumably) non-technical spouse who just wants to get a feel for what programming is like?!?

It almost feels like people want Intro to Programming to be a fraternity hazing, not a positive, quick-gratification learning experience!

I remember way back when there was actually concern in the IT community about how to avoid the "cult of the IT high-priests in their glass-enclosed machine rooms". It almost feels like some parts of this discussion want to make Intro to Programming into an exercise intended to install how complex and inscrutable it all is...

Yeah, we (you) guys are all totally comfortable with recursion and polymorphism and type-casts but seem to have no sense of how advanced (and intimidating) these topics are, from the point of view of a total neophyte. Not to mention how many of these things they'd have to understand before being able to make the first interesting happen on the screen!

If you expect the exercise to be step 1 on the way a degree in Computer Science, it makes sense. But for a spouse who just wants to get her feet wet? Sheesh!

Of course if Jesse's wife is looking to make a career change, then sure a mainstream OO language like Java or Objective-C makes some sense. Though it's still a tough level to start at...

<dismounting soapbox>

Larry

Walker, Larry

unread,
Oct 7, 2012, 6:23:57 PM10/7/12
to sect...@googlegroups.com
Grant: 

I absolutely agre with your last two paragraphs: programming at its heart is about thinking through problems and decomposing them in a logical manner.

But I would quibble with your analogy to learning English. We all learn our first language by being immersed among speakers, at an age when our brains are plastic and "designed" to acquire language(s). Ask anyone who's tried to learn another language as an adult (or really, any age over 10-13 or so), and they likely won't report it being easy. Many adults find it essentially impossible. 

I've felt for years that OO languages are a lot like this: for most of us, if you don't learn at least one OO language by the time you're about 25 or so (19 or so?), the odds of ever learning one, let alone being truly comfortable and deeply proficient go up astronomically with age...

You're going to have a tough time getting people good at the "inside your head" work, if they are totally perplexed and intimidated at even getting an error-free compile!


Larry 

Justin Reed

unread,
Oct 7, 2012, 6:24:19 PM10/7/12
to sect...@googlegroups.com
I'll throw in my vote for VB.  I learned on BASIC and I turned out alright (I think).

I haven't used VB in quite a while, but based on my experience years back, if the goal is to introduce someone to programming, I think it's a great way to learn programming concepts while allowing one to fairly easily make a usable application.  Plus it's free!

Justin


William LaFrance

unread,
Oct 7, 2012, 6:24:10 PM10/7/12
to sect...@googlegroups.com, sect...@googlegroups.com
mount :soapbox
puts "ruby is easy. Hello world?"
dismount :soapbox

Sent from my iPhone

Scott Hasse

unread,
Oct 7, 2012, 6:37:21 PM10/7/12
to sect...@googlegroups.com
I would consider Groovy. Dynamic language syntax with an extremely
mature cross-platform deployment environment and access to the
humungous set of Java APIs, vendor integrations and and frameworks.
Even large enterprises are considering Groovy/Grails, and there is
crossover with Java. In my opinion a decent learner language with
commercial upside.

Scott
> --
> You received this message because you are subscribed to the Google Groups
> "Sector67 Public" group.
> To post to this group, send email to sect...@googlegroups.com.
> To unsubscribe from this group, send email to
> sector67+u...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/sector67?hl=en.



--
Scott Hasse
Partner & CTO
T. 866-620-4353 C. 608-206-1813
E. sha...@flexion.us
FLEXION - VALUE FORWARD
1500 West Main Street, Suite 500
Sun Prairie, WI 53590

--



------------------------------
*Notice*: The information contained in this message or any attached
document is confidential and intended only for individuals to whom it is
addressed. If you got this message in error, please inform me immediately
using one of the methods above. In some cases, I may ask you to return the
documents at my expense. In general, please simply destroy the information
at once. Any unauthorized use, distribution, or copying of this information
is prohibited.

RockyWenz

unread,
Oct 7, 2012, 6:41:58 PM10/7/12
to sect...@googlegroups.com
If it truly is for fun, you want a language that gives visual feedback quickly. I would lean toward Processing, since it does that. The kicker is that Processing is actually a wrapper for Java! It makes it quicker and easier to use. And forget that Ardunio stuff, that is just another thing it can do. It was originally developed to be a fun, easy language.

Rocky
.

Peter Novotnak

unread,
Oct 7, 2012, 6:45:19 PM10/7/12
to sect...@googlegroups.com

Grant: BASH is what got me into programming and was my first language. Much like a Caterham (I can only suppose,) it's fun :)

Larry: I didn't mind it too much at the time, and it made me realize how cool compilers are once I learned a dynamic language. 'Course everybody has their own kink.

RockyWenz

unread,
Oct 7, 2012, 7:05:49 PM10/7/12
to sect...@googlegroups.com
You have good points here, but even LOGO has strange punctuation and syntax. Since we cannot program a computer in English, we have to teach another language.

I soooo want to get you behind a computer that is running Mathematica. In a half hour I will have you doing full-on programming. An hour after that you will look at  Livecode and decide that it just is not powerful enough. I have never done a Hello World as a teaching assignment in Mathematica. It would be just a silly waste of power.

Rocky


On Sunday, October 7, 2012 9:30:11 AM UTC-5, Larry Walker wrote:

Jesse Robinson

unread,
Oct 7, 2012, 8:01:42 PM10/7/12
to sect...@googlegroups.com
Lots of good advice here.  I've talked with her about these suggestions and asked her more questions to gauge what her end goal is.

She doesn't want to learn to change her job, but she does want to learn.  And I said earlier to her that if you learn one language, the rest are easier to pick up because of similarities, but as long as you have a strong base.  So she's leaning more towards Java or C#.

I think what I am going to do, is give her my headfirst Java eBook which I got for a class, but didn't really use, but did browse through and it looked good.  If she starts getting frustrated I'll steer her towards trying Livecode, Ruby, or Python.  I'm not sure all Python is used for, but there is a some good courses offered free online (like through Coursera).

Grant Dobbe

unread,
Oct 7, 2012, 8:25:52 PM10/7/12
to sect...@googlegroups.com

I get what you're saying, Larry.  However, I still maintain that the hard part isn't the language; it's the thinking. You can write (or teach) bad code in any language.

-sent from android, please forgive brevity or typos

Walker, Larry

unread,
Oct 7, 2012, 10:06:53 PM10/7/12
to sect...@googlegroups.com
Grant:

Agreed, absolutely: one can write/teach bad code in any language.

But I think the real issue here is the inverse (or is it the contrapositive?): will a "bad" language (i.e. an intimidating or confusing one) interfere with mastering the necessary modes of thinking that are really what we mean by "programming"?

larry

Scott Fradkin

unread,
Oct 8, 2012, 12:08:16 AM10/8/12
to sect...@googlegroups.com
Where were you when I took my Numerical Methods class eons ago?  I had a really hard time in that class. Partly because I didn't care about the math, and partly because we had to use Mathematica.  I could program C++ just fine, but I couldn't understand Mathematica at all.

Scott
To view this discussion on the web visit https://groups.google.com/d/msg/sector67/-/P29Seu3r3zAJ.

Scott Fradkin

unread,
Oct 8, 2012, 12:14:24 AM10/8/12
to sect...@googlegroups.com
My bias would still be to prefer Ruby over Groovy. My preferred alternative JVM languages are either Scala or Clojure. Both are great languages to learn, though I'd never recommend them for a beginner.

Scott

Grant Dobbe

unread,
Oct 8, 2012, 12:16:31 AM10/8/12
to sect...@googlegroups.com
I think you can make an argument for that if you're weighing 2+
options against the same person or group of people, but only if you
have a good idea of their end goal.

In general, my experience has been that if you focus on the thought
processes first (e.g., write incredibly exact specifications for
making a peanut butter and jelly sandwich), then most of your issues
with teaching a language are just making sure you are accurately
lining up those thought processes with the appropriate language
constructs.
Grant Dobbe
http://grant.dobbe.us
+1-608-469-9907

Scott Fradkin

unread,
Oct 8, 2012, 12:18:00 AM10/8/12
to sect...@googlegroups.com
To get that feel for what programming is like, why not play with Scratch? It gets you into the programming mode of thinking without dealing with compiling, functions, objects, etc that just complexify things. You can make some pretty cool non-trivial stuff with Scratch.

Scott

On Oct 7, 2012, at 5:14 PM, Larry Walker <la...@walkerenergysystems.com> wrote:

Dave Cornell

unread,
Oct 8, 2012, 4:24:10 PM10/8/12
to sect...@googlegroups.com
I vote for Unity3D.  Code in Javascript, print stuff to the console, get your feet wet, etc. then next step - make cool stuff happen in 3D!  Very intuitive in how scripts are attached to objects I might add.  For me it's all about the code making something happen you can see/hear, that's what's most gratifying.

Peter Novotnak

unread,
Oct 8, 2012, 4:31:47 PM10/8/12
to sect...@googlegroups.com
+1 Dave, that's a really cool suggestion.

-Peter
> --
> You received this message because you are subscribed to the Google Groups
> "Sector67 Public" group.
> To view this discussion on the web visit
> https://groups.google.com/d/msg/sector67/-/attp5bDC6VAJ.

Scott Fradkin

unread,
Oct 8, 2012, 4:45:08 PM10/8/12
to sect...@googlegroups.com
Along those lines... At BarCampMilwaukee this past weekend I learned about the existence of a program called Alice [alice.org]. It seems to be a bit like Scratch except for learning programming by manipulating 3D environments.

Scott

Rob Hielke

unread,
Oct 8, 2012, 5:00:26 PM10/8/12
to sect...@googlegroups.com
I have heard the advice of learning the language your friend knows/likes.
This is because the expertise is available during social time and interesting to both parties.

That said, and other things equal then previous experience/current environment matters.
If Excel then VBA if there is an opportunity to use excel/word macros/VBA  for work.
It is nice for instantly available data and visible variable names (rows/columns/loops to array concepts is smooth)
and can be shared in many non-developer work environments.
Nice for instantly available code by editing a recorded macro and also introduces IDE concepts of Source vs Design tabs to move to VB in VS..

Joe Kerman

unread,
Oct 8, 2012, 5:04:16 PM10/8/12
to sect...@googlegroups.com
I would throw in my $0.02 for a project-based approach. It certainly
depends on the type of person you are, but for me, there is no greater
motivation to learn a skill than to REALLY want a project that cant be
done without said skill. Learning any type of programming language is
the main goal. its relatively easy to switch between one or the other
once you get past the basic hurdles of learning to talk in a way that
computers like to be talked to.

Arduino is a great place to start, because there are so many projects
you can verbatim copy, that are immediately useful in the real world.
Interacting with the real world is a great motivator! Learning to code
is pretty fun when there are blinky lights for feedback instead of
debug output.

Id second a vote for processing as well, for similar reasons. Lots of
examples to copy, and lots of instant visual useful feedback.

Brendan O'Connor

unread,
Oct 8, 2012, 5:06:56 PM10/8/12
to sect...@googlegroups.com
I agree with a project-based approach to learn a *new* language, but
you need to do a bit of basic work before you can do that (maybe
outside Arduino).

I'm going to say either Ruby or Python as a first language: both free
you from the stupid cargo culting of languages like C or Java (public
static void main(String[] args) anyone?), and both are commercially
viable if you want to go that route. If you have no interest in
programming professionally in the near term, Processing is a *great*
first language-- I've used it to teach reporters how to code enough to
extract information from Data.gov, and it's a great language for any
art work.

---BFO

Luke Winslow

unread,
Oct 8, 2012, 5:57:27 PM10/8/12
to sect...@googlegroups.com
I'd like to second the project-based approach to learning programming. A lot of individuals have come to me and asked what flavor of programming language they should learn. As long as they've selected a reasonable language (not x86 assembly or something), I've almost *never* seen the language predict success or failure.

But I've seen a lot of people fail to learn programming. Why you might ask? Because they got discouraged and stopped. They got bored. Or they finished the online tutorial/bootcamp and didn't *do* anything with the language they learned. They were rarely challenged with the subject and didn't internalize much of what they were doing.

Why do I think having a project in mind is so important? A project gives you clarity of purpose. It helps you get over the inevitable challenge and hurtles you will encounter when programming. If I get an bizarre error message when working through a tutorial, do I spend two hours figuring it out so I can print "Hello world"? Meh, probably not. But if my project is to write an android app and I can't get the Notepad Tutorial loaded on my android device because of a version conflict/path issue/SDK install problem, do I spend a full Saturday digging through old blog posts and reinstalling the SDK five times to get it to work? Yes. It also helps you evaluate your own progress. Am I learning what I need to learn? Project approach: Am I making progress towards my project goal? Tutorial/learning materials approach: How far through the learning materials am I?

In fact, I'd argue that a project based approach can apply to learning a lot of different skills (insert "woodworking" for the word "programming"). It doesn't work in necessarily all situations, but you can definitely see it out there. Want to learn carpentry? Build something. Want to learn to fix cars? Start working on your own car.

When people ask now what language they should start learning, I ask them "What's your project?" Once they have a project in mind, regardless of how simple or complex, I point them towards the language/OS/framework which will help them quickly finish their project in mind. Of course, if it seems like their project is overly ambitious for their skill level, I try to help them pare it down to a more manageable level.

-Luke

P.S. If the person I'm talking to can't come up with a project they want to accomplish, I often ask if learning to program is really worth it to them at that moment.

Harley Pyles

unread,
Oct 8, 2012, 6:01:03 PM10/8/12
to sect...@googlegroups.com
Python is great for beginners, learning it was my first experience programing and it came fairly easy. Also there are great online resources.

MIT open-access course (intro to programming, using Python)

Leon Maurer

unread,
Oct 8, 2012, 6:46:50 PM10/8/12
to sect...@googlegroups.com
I also think a project is a great way to learn, but I don't think you should choose a specific project before starting; that should wait until after a basic introduction. Otherwise, it's too easy to have unrealistic goals or be unable to think of a project; the introduction can spur project ideas -- especially for students who are totally new to the subject.

Encourage the student to think about project ideas during the introduction; that can help them maintain interest, since -- as you said -- introductions can be kind of dull.

That's not to say that a general end goal (e.g. "I'm interested in making webapps") isn't useful; like you said, that can be useful for choosing the right tools. However, I think that requiring the student to choose a specific project too early can do more harm than good.
-Leon

Jesse Robinson

unread,
Oct 8, 2012, 7:47:29 PM10/8/12
to sect...@googlegroups.com
Just an update on what was decided on to start.  She did her own research and decided to take this free course from Stanford

Which is aimed at non engineers and uses Java for its examples and work.  If she runs into problems I have several Java books including a head first one which appeared to be pretty good to help her out.

Thanks for all the suggestions and discussion.  I might look into some of those languages if she ends up really disliking Java.

Jesse

Larry Walker

unread,
Oct 8, 2012, 8:12:13 PM10/8/12
to sect...@googlegroups.com
Jesse:

Please wish her good luck amd keep us posted on her progress, one way or the other: your wife's experience should be a very enlightening data point!

Thanks (and thanks for bearing with this wide-ranging debate!)

Larry

Sent from my iPhone
--
You received this message because you are subscribed to the Google Groups "Sector67 Public" group.
To view this discussion on the web visit https://groups.google.com/d/msg/sector67/-/vbLiFIix3vUJ.

Ian D. Alderman

unread,
Oct 8, 2012, 10:54:07 PM10/8/12
to sect...@googlegroups.com
Hi Jesse,

I'm glad to hear that your wife has decided to do a computer science course, rather than just learn a language. The first language one learns is important because it shapes what you're capable of doing when you complete the course. However, by focusing on learning CS in addition to a particular language, she will have a serious head start towards learning *any* language. 

Even beginner programmers need to understand logic, data structures and algorithms, and learning these topics is crucial for effective programming in any language. The best introductory classes will focus on teaching these fundamentals rather than the idiosyncrasies of a particular language. Often this is done by giving assignments involving augmenting existing code rather than just creating something from scratch. Obviously this means that students will be exposed to less detail about these language idiosyncrasies. I believe that learning more about CS theory and less about a particular language is more valuable and more rewarding for a beginner than just learning language X.

Good luck to your wife in learning CS!

-Ian

Walker, Larry

unread,
Oct 9, 2012, 7:12:08 AM10/9/12
to sect...@googlegroups.com
Conveniently enough, O'Reilly is having a 50% off sale on books about the non-programming side of software development.

This one clearly caught my eye, given our recent discussion:

Think Like a Programmer
An Introduction to Creative Problem Solving


The whole collection is at:


The discount code is embedded in the above URLs: WKGKCD

Good through 10/16.

Larry

Nick Terrible

unread,
Oct 12, 2012, 1:49:40 AM10/12/12
to sect...@googlegroups.com
Maybe:
 
Scratch  (http://en.wikipedia.org/wiki/Scratch_(programming_language)   It's for kids, but I've read a couple of articles about using it well.
or
Processing (http://en.wikipedia.org/wiki/Processing_(programming_language) It's designed for Artists, and other non-coders.
{I have not spent any real time with either, just a few minutes playing}
 
The question is do you want to start with OO'ed, or ignore it for now.   When I learned Java they used the second,  "Just use this to print out a line, and this to write out a file" and "And don't worry about the details."
 


 

--
You received this message because you are subscribed to the Google Groups "Sector67 Public" group.
To post to this group, send email to sect...@googlegroups.com.
To unsubscribe from this group, send email to sector67+u...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/sector67?hl=en.



--
Thanks,

Nick Terrible
nick.t...@gmail.com

philip crawford

unread,
Oct 17, 2012, 12:14:20 PM10/17/12
to sect...@googlegroups.com
This may have already been mentioned, but John Resig is working at Khan Academy now and they have a relevant track.


Seedly - Plant a Possibility

My profile on IMBY
http://madison.imby.info/p/Philip.Crawford

Mike Putnam

unread,
Oct 17, 2012, 8:43:53 PM10/17/12
to sect...@googlegroups.com

Scott Fradkin

unread,
Oct 17, 2012, 9:40:50 PM10/17/12
to sect...@googlegroups.com
Copybooks FTW!

On Oct 17, 2012, at 7:43 PM, Mike Putnam <mi...@theputnams.net> wrote:

Reply all
Reply to author
Forward
0 new messages