Koozali.org: home of the SME Server

Computer language advice

Offline Charles2008

  • *
  • 174
  • +0/-0
Computer language advice
« on: October 13, 2015, 12:46:40 PM »
What computer language would you advise a 15 year old to learn ?  (enthusiastic, but no prior coding experience)

I am aware that Koozali - SME Server is written in Perl and is incredibly stable - I have horribly abused my test-server with SME Server on it for over 2 years now and it hasn’t missed a beat.

I have drawn up a short-list (in ignorance really):
PHP - due to it's common use in Internet / server environment
Perl - as I am aware of it's flexibility and stability
Python - as this seems favored by non-computer science types
C / C++  [edit - a later addition to my list after further reading around this topic]

Have I missed any other suitable candidates?

I am guessing that this question will be at the outer limits of 'relevance' even in the 'General Discussion' area of the Forum, however, I am sure that the answer will be obvious to some of you.

I would really appreciate some advice.
« Last Edit: October 14, 2015, 01:01:08 AM by Charles2008 »

Offline Daniel B.

  • *
  • 1,699
  • +0/-0
    • Firewall Services, la sécurité des réseaux
Re: Computer language advice
« Reply #1 on: October 13, 2015, 01:34:06 PM »
I am sure that the answer will be obvious to some of you.

No, because there's no real answer. It's mainly a matter of taste and need. I'd recommend perl, but that's just a personal preference
C'est la fin du monde !!! :lol:

Offline DanB35

  • ****
  • 764
  • +0/-0
    • http://www.familybrown.org
Re: Computer language advice
« Reply #2 on: October 13, 2015, 02:50:48 PM »
I'm far from an expert here, but a big consideration is going to be what he wants to do.  PHP, for example, would make more sense if he's interested in developing for web sites than if he wants desktop applications.  If he wants to create things that interact with the physical world in some way, Arduino (or any of the many, many clones) is an easy and inexpensive way to get started with that--which means he'll be using the Arduino environment and writing in C (as supplemented by the Arduino libraries).  The Raspberry Pi was designed as a computer to learn programming on, and they tend to guide you toward Python, though you can code in just about any language on one.

You'll probably get near-universal agreement on one point, though--don't use BASIC.
......

Offline Charles2008

  • *
  • 174
  • +0/-0
Re: Computer language advice
« Reply #3 on: October 13, 2015, 04:06:02 PM »
Thank you both very much for responding.

I had missed 'C' and the Arduino angle - a very exciting area for 'Projects'.

This whole area is a bit of a puzzle for me. I came across someone who had started using Pascal as a science graduate and then moved to using Delphi and now is the one-man IT Dept for a medium sized company, doing all sorts of extraordinary programming using just Delphi.

In the UK 'Computing' has now been added to the National Curriculum (long overdue) and I was just looking at a  iGCSE Computing Science syllabus (an exam taken at 16yrs) and came across this -
http://www.cie.org.uk/images/129751-2015-syllabus.pdf

----------------------------------------------------------------------------------------------------------------------------
Candidates to:
• understand and use pseudocode, using the following conditional statements:
IF ... THEN ... ELSE ... ENDIF
CASE ... OF ... OTHERWISE ... ENDCASE
• understand and use pseudocode, using the following loop structures:
FOR ... TO ... NEXT
REPEAT ... UNTIL
WHILE ... DO ... ENDWHILE
• understand and use pseudocode, using the following commands and statements:
INPUT and OUTPUT (e.g. READ and PRINT)
totalling (e.g. Sum ← Sum + Number )
counting (e.g. Count ← Count + 1 )
(Candidates are advised to try out solutions to a variety of different problems on a computer using a
language of their choice; no particular programming language will be assumed
in this syllabus
----------------------------------------------------------------------------------------------------------------------------

I am assuming that knowing more than one language would be handy.

Would it be fair to say that anything that one can do in PHP one could also do in Perl?
« Last Edit: October 13, 2015, 04:30:56 PM by Charles2008 »

Online ReetP

  • *
  • 3,722
  • +5/-0
Re: Computer language advice
« Reply #4 on: October 13, 2015, 07:36:13 PM »
In the UK 'Computing' has now been added to the National Curriculum (long overdue) and I was just looking at a  iGCSE Computing Science syllabus (an exam taken at 16yrs) and came across this -
http://www.cie.org.uk/images/129751-2015-syllabus.pdf

About time too - it has been a nightmare trying to find anyone who knows more about computers that 'I can do Word and Excel' (no you bloody well can't even do that very well)

Quote
----------------------------------------------------------------------------------------------------------------------------
Candidates to:
• understand and use pseudocode, using the following conditional statements:
IF ... THEN ... ELSE ... ENDIF
<snip> blah </snip>

(Candidates are advised to try out solutions to a variety of different problems on a computer using a
language of their choice; no particular programming language will be assumed
in this syllabus
----------------------------------------------------------------------------------------------------------------------------

Well that isn't going to set the world on fire but I guess it's a start :-) What are they doing in their second week then ?

Going to be fun with multiple languages - the teachers won't have a clue what to do or what is right and wrong (the blind leading the blind as ever)

Quote
I am assuming that knowing more than one language would be handy.

More the merrier - never hurts !

Quote
Would it be fair to say that anything that one can do in PHP one could also do in Perl?

I think you can do pretty well the same things in all languages generally - just that some are more orientated to certain types of work. Some are harder to do simple things than others, but may be a lot faster.

Worth seeing what friends are using as well - they need other people to discuss and thrash out problems.

Anyway - UK & IT - Rant off :-)

B. Rgds
John
...
1. Read the Manual
2. Read the Wiki
3. Don't ask for support on Unsupported versions of software
4. I have a job, wife, and kids and do this in my spare time. If you want something fixed, please help.

Bugs are easier than you think: http://wiki.contribs.org/Bugzilla_Help

If you love SME and don't want to lose it, join in: http://wiki.contribs.org/Koozali_Foundation

Offline JohnG

  • ***
  • 88
  • +0/-0
Re: Computer language advice
« Reply #5 on: October 13, 2015, 11:53:52 PM »
You'll probably get near-universal agreement on one point, though--don't use BASIC.

I respectfully disagree, both with the near-universal agreement and with the advice to not consider BASIC, but I won't get into a tit-for-tat here.

For the OP, Python would be my language of choice and https://www.codecademy.com/tracks/python is a great place to start. Just for fun and for the fundamental concepts of programming in general then I'd take a look at http://smallbasic.com/. Perl is fantastic but can be daunting for a first-timer. Just my thoughts. 

Offline DanB35

  • ****
  • 764
  • +0/-0
    • http://www.familybrown.org
Re: Computer language advice
« Reply #6 on: October 14, 2015, 12:44:02 AM »
Shows what I know.  I have no interest in debating the merits of BASIC, and probably don't have the knowledge to do so intelligently in any case.  I just understood it to be pretty well deprecated by now.  I suspect there will be a lot more in the way of up-to-date tutorial materials for some other languages, though.
......

guest22

Re: Computer language advice
« Reply #7 on: October 14, 2015, 01:13:45 AM »
I believe that 'learning' a computer programming language is a journey.


One has to start with a language, and then personal preference takes over. Many have started with BASIC and evolved into other languages as they saw fit (for their purpose at that time).


Start simple to understand the power and limitations, then gear up would be my advice.


BASIC has thought me the basics, and I never anticipated in becoming a programmer. I do however, due to my basic understanding, I can 'read' and 'understand' various programming languages. Do I need them in my daily life? No.

Offline Xavier.A

  • ***
  • 104
  • +0/-0
Re: Computer language advice
« Reply #8 on: October 14, 2015, 10:25:19 AM »
@Charles2008
What computer language would you advise a 15 year old to learn ?  (enthusiastic, but no prior coding experience)

I am aware that Koozali - SME Server is written in Perl and is incredibly stable - I have horribly abused my test-server with SME Server on it for over 2 years now and it hasn’t missed a beat.

I have drawn up a short-list (in ignorance really):
PHP - due to it's common use in Internet / server environment
Perl - as I am aware of it's flexibility and stability
Python - as this seems favored by non-computer science types
C / C++  [edit - a later addition to my list after further reading around this topic]

Have I missed any other suitable candidates?

I am guessing that this question will be at the outer limits of 'relevance' even in the 'General Discussion' area of the Forum, however, I am sure that the answer will be obvious to some of you.

I would really appreciate some advice.

My answer will be a little bit different than the others....I will give you 3 examples of exercise and I think that every coders should be able to do. In each exercice you must use :
  • more than 1 programming language (1 compiled language or 1 interpreted language and 1 another of your choice)
  • more than 1 user interfaces ( CLI, Web UI, Desktop UI, Tablet UI,etc...), for the last one you must use your smartphone API.

The first seems to be very simple but it is not, you find this exercise in many books:
"The user have to guess a number between 1 to 99 with 3 different level of difficulties."

The second is for more advanced developers, for this one the studend must be "foxy" :
"Create a brick breaker playable on more than one device and keep the best score of the players."

The third is a project for the duration of all the studies :
"Create a scientific calculator for your smartphone but not only !"

The idea is to develop the capacity for a coder to think the things before to code with a good method and in the end with a good modelisation. In each exercise, the algorithms are the most important things.

A+
“When the wise man points to the moon, the fool looks at the finger.”

Offline Charles2008

  • *
  • 174
  • +0/-0
Re: Computer language advice
« Reply #9 on: October 14, 2015, 01:03:53 PM »
I spoke to one of the leading UK Universities Computer Science depts and their opinion is that a competent Computer Science graduate should be able to pick up a new language (with the right manuals) in half a day. This is perhaps an exaggeration, but it suggests to me that the language is not so important - however, one has to start somewhere.

I am beginning to understand that the question “which is the best computer programme for xvz?” is a bit like asking “which is the best car for xyz?”.  Many different opinions; many in their own way right.


I came across this comparison of Perl / Python / Tcl:
http://legacy.python.org/workshops/2002-02/papers/14/index.htm
In it they examine which of  the three languages is easier to use to build (1)  a basic ‘Paint Programme’, and (2) a basic ‘Chat programme’. The results, for this study suggested that Python performed best, by 30%+ in some cases (somewhat subjective).

I came across a blog-post that suggested that from a security standpoint, Python was the most secure: Python(0.67%) > Perl(9.4%) > PHP(36%), based on number of vulnerabilities listed on the ‘National Vulnerability Database’ (US, I guess).
https://altabel.wordpress.com/2013/04/08/php-perl-or-python-which-one-is-best/
I recognise that this could be very misleading as any one language will be older / more widely used etc than others.

Thank you to all who have contributed to this thread. I realise now how hugely subjective my original question was.

I think that we will look more closely at Python. The primary reason being that it is supposedly easier to understand - therefore easier to get enthused by (and I love the idea of the Pi - thanks DanB35).
« Last Edit: October 14, 2015, 01:26:04 PM by Charles2008 »

Offline Charles2008

  • *
  • 174
  • +0/-0
Re: Computer language advice
« Reply #10 on: October 14, 2015, 01:22:56 PM »
@ReetP
I agree. This desperately needed addition to the UK National Curriculum is 35 years too late. This will have cost the UK a fortune developmentally. Painful when you think of the massive lead we had after WW2. However, better late than never.

You are right, I have over-heard the faintest, distant mention of Python at his school

@JohnG
It isn’t at all clear cut to me, but I think that Python is as good a place to start as any. Thank you for the useful links.

Personally, as a teenager I enjoyed GOSUB and the feeling of empowerment using it!

@HFW
Everything I read on this suggests that your ‘journey’ description is correct. If one needs a graphical representation of statistics one might use ‘R’; if trying to model the weather, Fortran (astonishingly); currently people are talking about Juliet eventually replacing Python; and if you want an Arduino project, C.

@Xavier.A
Anything more than one language might have him running for the hills :)

Thanks all.
« Last Edit: October 14, 2015, 01:27:02 PM by Charles2008 »

Offline stephdl

  • *
  • 1,519
  • +0/-0
    • Linux et Geekeries
Re: Computer language advice
« Reply #11 on: October 14, 2015, 01:53:01 PM »
Don't speak....do code ;)

Learning by coding is themost efficient way to do things in a funny way.

Python could be a good start and drive to be hired a day....at least python coders are the most wanted mostly because python is a bit instable following different versions you use :p
See http://wiki.contribs.org/Koozali_Foundation
irc : Freenode #sme_server #sme-fr

!!! Please write your knowledge to the Wiki !!!

guest22

Re: Computer language advice
« Reply #12 on: October 14, 2015, 02:16:05 PM »
Don't speak....do code :wink:

Learning by coding is themost efficient way to do things in a funny way.

Python could be a good start and drive to be hired a day....at least python coders are the most wanted mostly because python is a bit instable following different versions you use :p


I agree, simply start with a language that feels the most comfortable. Then evolve based on experience and needs. There is NO wrong choice neither is there e best choice. A christal ball is what we all lack, so we take the dive and learn as we go...


Geezzz... sounds like real life....


I'm looking forward to his first web based app that can hold my food recipes...

Offline igorrocha

  • 1
  • +0/-0
Re: Computer language advice
« Reply #13 on: July 09, 2019, 06:38:03 PM »
For the OP, Python would be my language of choice and https://www.codecademy.com/tracks/python is a great place to start.

[Edited to remove adverts]

The link you provided doesn't work anymore, I suggest updating it to this one: https://www.codecademy.com/catalog/language/python

« Last Edit: July 09, 2019, 06:46:46 PM by ReetP »