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.


ShadyG

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
myfullflavour
804 posts

Ultimate Geek

Trusted
Full Flavour

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

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

ubergeeknz
3344 posts

Uber Geek

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.

 
 
 
 


ShadyG

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.

ShadyG

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.

stuartcharters
12 posts

Geek


  #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

Noodles
484 posts

Ultimate Geek


  #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

1080p
1332 posts

Uber Geek
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.

 
 
 
 


ShadyG

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.

itxtme
1779 posts

Uber Geek

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!

ubergeeknz
3344 posts

Uber Geek

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.

deadlyllama
1018 posts

Uber Geek


  #807358 29-Apr-2013 14:07
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)

reven
3469 posts

Uber Geek

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.

timmmay
16513 posts

Uber Geek

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.

Etcman
87 posts

Master Geek


  #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).

sleemanj
1345 posts

Uber Geek


  #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





News »

Nanoleaf enhances lighting line with launch of Triangles and Mini Triangles
Posted 17-Oct-2020 20:18


Synology unveils DS16211+
Posted 17-Oct-2020 20:12


Ingram Micro introduces FootfallCam to New Zealand channel
Posted 17-Oct-2020 20:06


Dropbox adopts Virtual First working policy
Posted 17-Oct-2020 19:47


OPPO announces Reno4 Series 5G line-up in NZ
Posted 16-Oct-2020 08:52


Microsoft Highway to a Hundred expands to Asia Pacific
Posted 14-Oct-2020 09:34


Spark turns on 5G in Auckland
Posted 14-Oct-2020 09:29


AMD Launches AMD Ryzen 5000 Series Desktop Processors
Posted 9-Oct-2020 10:13


Teletrac Navman launches integrated multi-camera solution for transport and logistics industry
Posted 8-Oct-2020 10:57


Farmside hits 10,000 RBI customers
Posted 7-Oct-2020 15:32


NordVPN starts deploying colocated servers
Posted 7-Oct-2020 09:00


Google introduces Nest Wifi routers in New Zealand
Posted 7-Oct-2020 05:00


Orcon to bundle Google Nest Wifi router with new accounts
Posted 7-Oct-2020 05:00


Epay and Centrapay partner to create digital gift cards
Posted 2-Oct-2020 17:34


Inseego launches 5G MiFi M2000 mobile hotspot
Posted 2-Oct-2020 14:53









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.