• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Devaka Cooray
  • Paul Clapham
Sheriffs:
  • Tim Cooke
  • Knute Snortum
  • Bear Bibeault
Saloon Keepers:
  • Ron McLeod
  • Tim Moores
  • Stephan van Hulst
  • Piet Souris
  • Ganesh Patekar
Bartenders:
  • Frits Walraven
  • Carey Brown
  • Tim Holloway

What programming language to teach a beginner's team?

 
Greenhorn
Posts: 6
Python Java Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello.
I've been programming as an amateur for 10 years. I'm completely self taught and have experience mostly on C, Python and Java. Lately i entered an association in my city that has 19 individual clubs of various activities (unrelated with programming). So i talked with the president and proposed him to create a new club where i could teach programming to people that have no idea about it. He agreed and now i try to figure out which language should i teach (at least first).
  • Should i teach Python? Python is very easy, quite portable and they can create many types of projects (games, networking, web development etc.).
  • Should i teach them C? It's the mother of the languages and even if they will never use it learning C they will learn many things about programming that no other language will teach them.
  • Should i teach them Processing? It's very easy, visual and funny but it's something that they won't use again after passing the "beginner's" level.
  • Should i get a bunch of Arduino's and breadboards and start making some fun projects from the first day?


  • I'm unable to decide. On one hand i know that they have to see some results quickly before they feel bored and dissapointed. On the other hand if they try to do anything after having experience with the "obscurities" of C everything else will seem so simple.

    What do you think?  
     
    Marshal
    Posts: 24594
    55
    Eclipse IDE Firefox Browser MySQL Database
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    I'm not too keen on just "teaching people programming". I think some kind of goal would be useful -- "After these people have learned this species of programming, they should be able to do this interesting/useful thing." And yes, as you say it's a good idea to have interesting/useful feedback fairly early on in the process.

    Given that, the Arduino idea works best for me. After all back in the Dark Ages (let's say 1960's) a lot of people got their hands on small and cheap hardware with very simple operating software and had a great time messing with them.
     
    Eric Burdon
    Greenhorn
    Posts: 6
    Python Java Linux
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Thank you for your replays and ideas!
    I decided on the first meeting to play a little with Python and maybe creating a command line Hangman game (without expecting them to understand the code) so that they'll have an idea of a complete program's development. And talking with them i'll try to guess what everyone expects from the team and what fits them so i'll THEN decide which language to teach. Although i'm almost sure i'll start with Python.
     
    Greenhorn
    Posts: 2
    1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    for beginners i recommend you teach them python because if they don't have any knowledge of programming it would be very difficult for them to understand some other language like c++ or java.
     
    Marshal
    Posts: 64654
    225
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    IJ: Please explain more. I don't understand your assertion.
     
    Bartender
    Posts: 1025
    18
    Mac OS X IntelliJ IDE Oracle Spring VI Editor Tomcat Server Redhat Java Linux
    • Likes 1
    • Mark post as helpful
    • send pies
    • Quote
    • Report post to moderator
    Why not be language agnostic, that is don't focus on any particular language or technology.  For the simple reason that once you introduce a particular language at the start then it become a matter of teaching that languages syntax.  I just feel that you could achieve more if you concentrated on the principals of programming/software development.  You could introduce a subject, and then give examples in a particular language(s).  
     
    Consider Paul's rocket mass heater.
    • Post Reply Bookmark Topic Watch Topic
    • New Topic
    Boost this thread!