Geekzone: technology news, blogs, forums
Guest
Welcome Guest.
You haven't logged in yet. If you don't have an account you can register now.




26 posts

Geek


# 116434 29-Apr-2013 11:37
Send private message

I have just started a coding club at a school in Auckland, teaching relative beginners the ins and outs of programming.  I'm looking for some advice on which language to use as a teaching medium. I should state here that I'm a professional programmer, and not a teacher.  As far as I can see I've got the following options:

 

1.  C#.  I've got about 8 years experience with this language, and consider myself fairly proficient in it.  I've written some good applications, both for desktop and for the web, and I know my way around the language pretty well.

 

2.  Visual Basic.Net - I've used VB from version 2 up to version 5 before it moved to the net, so I'm fairly proficient with it.  Some of the members have started VB.Net, but I wouldn't say any of them are really up to speed with it.

 

3. Java  None of us have any experience with this language, but it appears to be the language of instruction in the universities here.  I don't know how much use it is in the real world, so I'm at a bit of a loss with this one.

 

4. C++ - I've used this enough to be impressed with what it can do, but I've never written anything professionally with it. The group could use this as a 'learning together' language, but it might turn out to be 'The blind leading the mad' kind of thing.  I've been coding professionally for about 20 years now, so I could find my way round it I suppose.

 

5.  One or other of the 'newer' languages, Perl, Python, Ruby etc.  I've never used any of them in a professional way and I'm not sure about any of them.

 

It stands to reason that we'll be using HTML at some time or other (they are all frothing at the mouth to start a web page), but we'll pick that up as we go along.

 

I'm leaning towards C# as that is going to meld in with just about everything, but I'd be very pleased to hear your advice/war stories on this subject.

 

Thanks in advance for this,

 

George.

View this topic in a long page with up to 500 replies per page Create new topic
 1 | 2 | 3
744 posts

Ultimate Geek
+1 received by user: 193

Trusted
Full Flavour

  # 807221 29-Apr-2013 11:49
Send private message

We're crying out for good PHP developers...

3344 posts

Uber Geek
+1 received by user: 1089

Trusted
Vocus

  # 807222 29-Apr-2013 11:53
Send private message

I'd keep away from Java and C#.  C# is so very strict, it takes the fun out of programming.  Java ... needs to DIAF.

 
 
 
 




26 posts

Geek


  # 807223 29-Apr-2013 11:55
Send private message

Never even thought of PHP!  I've never used it, as I've stuck to ASP.Net for any web pages I've had to do, and I've never heard a lot of good said about it.  I've been put off by articles like http://www.codinghorror.com/blog/2012/06/ It's worth a thought though.



26 posts

Geek


  # 807228 29-Apr-2013 12:00
Send private message

Well Uber, I agree with what you said about Java, but I can't understand why they teach it in Uni.  I'm canvassing a few lecturers,so I'll let you know what they said if you want?
As for C#, each to his own I suppose.  I like the structure of the language, and the way it keeps me honest.

12 posts

Geek
+1 received by user: 1


  # 807236 29-Apr-2013 12:09
Send private message

Scratch is being used to teach a lot of introductory programming to kids.  No syntax issues to worry about!

Python is also being used by many educators.

Have a look at the Teaching manual that has been published in the UK for use with the RaspberryPi http://www.raspberrypi.org/archives/2965

The content isn't restricted to the RaspberryPi

470 posts

Ultimate Geek
+1 received by user: 85


  # 807266 29-Apr-2013 12:38
Send private message

I think Java is used in universities because it teaches students OOP, but I don't see it used often in the real world. It always annoyed me how universities taught programming (I took a class a couple of years ago), they often taught you about the inner workings of a language and how to implement things like arrays/hash tables/sorting etc, but in the real world you tend to just use what is built into the language (i.e. PHP uses quick sort, so why write your own sorting algo).

As far as what language to use for the club, it depends on whether you were aiming this towards web, desktop or mobile application development.

For web:
- PHP is easy to pick up and used in a lot of open source software so it's easy to find examples.
- Python is a better language from what I've read, but probably a steeper learning curve

Check out http://www.codecademy.com/learn which has courses on a few of the more popular web languages

Desktop:
- C# would probably be good for this, although doesn't run across platforms like Java does

Mobile:
- This would have to be Java/Obj C depending on whether you're aiming towards Android or iOS

1332 posts

Uber Geek
+1 received by user: 152
Inactive user


  # 807303 29-Apr-2013 12:56
Send private message

Absolutely Java. No fun is removed from programming by obeying rules. As it is a club rather than a class you're likely to attract those who want to learn already...

A second choice would be Python.

 
 
 
 




26 posts

Geek


  # 807304 29-Apr-2013 12:56
Send private message

I read an article a couple of weeks ago that said that Java was the most popular language, but for the life of me I can't see how the author arrived at that conclusion. I can't see the justification of teaching a language that hasn't got a lot of use in the real world. As I remember when I was first starting out, Pascal was the big thing, but that was the same, it didn't have much use in the RW. Slick Billy decided we were going to use VB, so we all used VB. End of story.

The club is just getting off the ground at the moment, we've only been going 3 weeks, so we are still finding our direction. I must own up to being a platform fascist, as I only deal with PC's running windows - Macs and the rest don't figure .

I've looked at Scratch, and I was really amused with the IDE, but my members are all between 15 and 19 years old, so I may get a few funny looks if I use that. I have a few that are going on to study Compsci at Uni, and I really don't want to confuse them.

1673 posts

Uber Geek
+1 received by user: 283

Subscriber

  # 807327 29-Apr-2013 13:27
Send private message

I would suggest PHP, web applications are taking off and PHP is one of many solutions for this. It has many easy to use built in functions and supports both procedural and OOP. There are vast resources (versus something like Ruby on Rails), and also many classes prewritten which will give great functionality at a very early stage. Most importantly it is open source, meaning when used with mysql DB costs absolutley nothing to get started. WAMP is a great solution for instant LAMP programmping environments on Windows!

3344 posts

Uber Geek
+1 received by user: 1089

Trusted
Vocus

  # 807341 29-Apr-2013 13:46
Send private message

Python over PHP.  It's every bit as free and every bit as useful (if not more so) - and more consistent.  If you could use Python, it would be easy to pick up PHP anyway.

925 posts

Ultimate Geek
+1 received by user: 291


  # 807358 29-Apr-2013 14:07
One person supports this post
Send private message

ShadyG: I have just started a coding club at a school in Auckland, teaching relative beginners the ins and outs of programming.  I'm looking for some advice on which language to use as a teaching medium. I should state here that I'm a professional programmer, and not a teacher.


To some extent it depends on what you know... I'd say the main factors would be "minimal code to do something cool", "can do this on my home PC without having to pay $200-$2000 for a visual studio license", and "can show my friends what I've done.".

My vague views on these as someone who tutored university comp sci students 10 years ago (and since had to work with C#, Java, VB, C++, C, Perl, Ruby., PHP, ...)

C++: not worth looking at.  Too painful to debug (been there, done that).  Unless you want your students to start with writing device drivers :P
Java: there are lots of Java jobs out there, it is definitely used in the real world.  102 job listings on trademe even.
C#/VB: what does Visual Studio cost these days?  Bit of a barrier to entry for your students, and impossible if they have Macs.

What I'd suggest is going down one of two routes

a) Language/environment desgined for building simple things quickly, like ruby+shoes, scratch, there must be others but I'm not up with the play on these
b) Web technologies - HTML/Javascript, etc.  This has the "is easy to show my friends" factor.

If you had the funding for it you could also use Raspberry Pis, this is exactly the sort of thing they were built for, and the RPi guys are working on teaching materials to use with them (not sure if any are available yet)

3433 posts

Uber Geek
+1 received by user: 704

Trusted

  # 807370 29-Apr-2013 14:14
Send private message

ubergeeknz: I'd keep away from Java and C#.  C# is so very strict, it takes the fun out of programming.  Java ... needs to DIAF.


what a load of crap.  C# is an awesome fun language to use.  all the things you have access to makes it quick to do things.  it works in many different environments (desktop, web, mobile).  i never thought of programming in C# as "not fun", heck i love it.

having said that, i would recommend java.  because
- you dont need to worry about memory
- it works on many platforms (desktop, mobile, web)
- the syntax is pretty nice
- its free
- can write apps in notepad and compile from command line (best way to learn IMO, how i learnt at uni)
- has many IDEs for it
- is taught in many universities
- many jobs out there for java

at uni I learnt java, i wouldnt really want to go back to it now since im a c# dev, but the migration from java to c# was very easy.  java is a wonderful language to start with IMO.

i wouldnt recommend PHP, you're stuck to mostly a web world.  HTML and javascript could be another option, its pretty trendy ATM and you can write desktop, server and web apps using it.  

but i still recommend java.  can develop android apps, desktop apps, web apps etc as projects.

14899 posts

Uber Geek
+1 received by user: 2795

Trusted
Subscriber

  # 807380 29-Apr-2013 14:30
Send private message

What's your club trying to achieve?

Java is huge in enterprizes and government departments, ie where the money is earned for a professional developer. A good Java developer with 10 years experience in Java will be on $70-$100/hr, or around $100K as a salary. It's used in Android app development.

C# is basically Java re-written by Microsoft because of legal issues.

C++ is pretty horrible and slow to achieve much, for beginners. PHP is ok, but it's poorly typed and PHP array syntax confuses the h3ll out of me, despite being fine with 3D arrays in other languages. Ruby, sure, productive. Javascript I don't like at all.

Overall Java or C# would be my pick.

87 posts

Master Geek
+1 received by user: 5


  # 807434 29-Apr-2013 15:11
Send private message

Noodles: I think Java is used in universities because it teaches students OOP, but I don't see it used often in the real world. It always annoyed me how universities taught programming (I took a class a couple of years ago), they often taught you about the inner workings of a language and how to implement things like arrays/hash tables/sorting etc, but in the real world you tend to just use what is built into the language (i.e. PHP uses quick sort, so why write your own sorting algo).


I suppose some would argue that university is a place of academics and is not a polytechnic. As a consequence, their intention I guess, is to teach you the subject at its core, rather than what you would likely use in an everyday job. However, knowing the inner workings of a language is more than just getting to know that language better. It's to understand programming at a fundamental level which will aid you in writing your own algorithms (especially helpful if you ever need a modified version of a well known algorithm, say for a performance critical program). Thus, although it seems pointless, it's probably helping you more than you realise and it will definitely help you keep relevant for when new concepts and languages arise in the future.

@OP
I would stay away from PHP as a first language. Although it can be used as a general purpose language, it seems more appropriate to be used on a server which I doubt many of your students have/manage.

As most universities are teaching Java nowadays, it's probably best to teach Java or C#. However, rather focusing too much on syntax and specific implementations of that language, it might be better to teach them the fundamental concepts (namely OOP) instead. At that point, it doesn't really matter what you language you teach them in, they should be able to easily apply the same knowledge to another language (you can literally port most basic C# programs into Java with a little "Find and Replace").

As they commonly say, learning a language is the easy part. Once you know the concepts, you should be able to easily pick up another language in a couple of weeks (learning the syntax etc).

1276 posts

Uber Geek
+1 received by user: 171


  # 807439 29-Apr-2013 15:14
Send private message

If your club is about getting into real application development, choose C. Not C++, just plain old simple K&R or Ansi C - with the rise of microcontrollers for enthusiasts (arduino etc) knowing C is becoming very useful again.

If you know C it's a fairly short step to extend your knowledge into C++ (but frankly, I think C++ is uuuuuuuugggllllllyyyy for the most part). And if you know C then you are well on the way to understanding most any language.

If you want to look at web stuff though, then PHP and Javascript should be your main points of call. Javascript is a really nice language, extremely flexible, and PHP is, well, not so nice but extremely well supported.

Tip: for Javascript, if you want or need a framework to work in, please choose Mootools, not jQuery, which is horrible (but popular amongst the copy-paste-programmer crowd).





---
James Sleeman
I sell lots of stuff for electronic enthusiasts...


 1 | 2 | 3
View this topic in a long page with up to 500 replies per page Create new topic



Twitter and LinkedIn »



Follow us to receive Twitter updates when new discussions are posted in our forums:



Follow us to receive Twitter updates when news items and blogs are posted in our frontpage:



Follow us to receive Twitter updates when tech item prices are listed in our price comparison site:





News »

Huawei's scholarship programme showcases international business to Kiwi undergrads
Posted 22-Jul-2019 17:53


Spark Sport launches across a range of new devices
Posted 22-Jul-2019 13:19


Dunedin selects Telensa to deliver smart street lighting for 15,000 LEDs
Posted 18-Jul-2019 10:21


Sprint announces a connected wallet card with built-in IoT support
Posted 18-Jul-2019 08:36


Educational tool developed at Otago makes international launch
Posted 17-Jul-2019 21:57


Symantec introduces cloud access security solution
Posted 17-Jul-2019 21:48


New Zealand government unveils new digital service to make business easier
Posted 16-Jul-2019 17:35


Scientists unveil image of quantum entanglement
Posted 13-Jul-2019 06:00


Hackers to be challenged at University of Waikato
Posted 12-Jul-2019 21:34


OPPO Reno Z now available in New Zealand
Posted 12-Jul-2019 21:28


Sony introduces WF-1000XM3 wireless headphones with noise cancellation
Posted 8-Jul-2019 16:56


Xero announces new smarter tools, push into the North American market
Posted 19-Jun-2019 17:20


New report by Unisys shows New Zealanders want action by social platform companies and police to monitor social media sites
Posted 19-Jun-2019 17:09


ASB adds Google Pay option to contactless payments
Posted 19-Jun-2019 17:05


New Zealand PC Market declines on the back of high channel inventory, IDC reports
Posted 18-Jun-2019 17:35



Geekzone Live »

Try automatic live updates from Geekzone directly in your browser, without refreshing the page, with Geekzone Live now.


Support Geekzone »

Our community of supporters help make Geekzone possible. Click the button below to join them.

Support Geezone on PressPatron



Are you subscribed to our RSS feed? You can download the latest headlines and summaries from our stories directly to your computer or smartphone by using a feed reader.

Alternatively, you can receive a daily email with Geekzone updates.