Print

Print


> As a first language, you want something that let's you Get Stuff Done
> with a minimum of fuss...

If you are getting started and if you are not planning on being a full-time programmer, then you want to be looking at the high-level languages as Mike suggests: "the strong candidates include Perl, Python, arguably PHP and my own favourite, Ruby..."  

1+

-- Michael

# Michael Doran, Systems Librarian
# University of Texas at Arlington
# 817-272-5326 office
# 817-688-1926 mobile
# [log in to unmask]
# http://rocky.uta.edu/doran/
 

> -----Original Message-----
> From: Code for Libraries [mailto:[log in to unmask]] On Behalf Of
> Mike Taylor
> Sent: Friday, March 26, 2010 9:23 AM
> To: [log in to unmask]
> Subject: Re: [CODE4LIB] PHP bashing (was: newbie)
> 
> I was going to start this post with "I couldn't disagree more", but on
> sober reflection I am going to go with the more conciliatory "Let me
> offer an alternative perspective".
> 
> For someone who is just starting out in programming, I think the very
> last thing you want is a verbose language that makes you spend half
> your time talking about types that you don't really care about.  I'm
> not saying there isn't a time and a place for static type-checking,
> but while learning to program isn't it.
> 
> As a first language, you want something that let's you Get Stuff Done
> with a minimum of fuss -- a language that lets you go directly to
> saying what you want to say without having to begin with "public class
> HelloWorld { public static void main(String[] args) {" before you can
> even call System.out.println (which is, in any case, a very verbose
> way of saying "print").
> 
> As a heuristic, I think you might say that a good first programming
> language is one in which a program to print "Hello, world!" is most
> naturally expressed in a single line, or more precisely a single
> statement.  On that basis, the strong candidates include Perl, Python,
> arguably PHP and my own favourite, Ruby.
> 
> Java, C++ and the like might be important further down the line, but
> they are a horrible way to start: they're like learning to drive in a
> Harrier jump jet when what you really need is a bicycle.
> 
> 
> 
> On 26 March 2010 13:49, Simon Spero <[log in to unmask]> wrote:
> > There is a best language, and you shall know it by its parentheses.
> > However, since you probably  aren't going to be able to use it
> because your
> > co-workers aren't up to it, you have to pick a second best.
> >
> > I would strongly recommend learning a strongly typed language for
> one's
> > first programming experience.  Java, with a suitable development
> > environment, such as a Intellij Idea ( http://www.jetbrains.com/ ),
> is
> > probably the best way to get started.  Java is a safe language, which
> means
> > that any bugs are explicable at the program level, rather than
> appearing as
> > random damage to unrelated parts of the program
> >
> > It is important to have a good IDE when using java, as without one it
> is
> > much too verbose.  I recommend Intellij as the java-only edition is
> now open
> > sourced, and it has the best auto-completion and  refactoring
> support, as
> > well as built in support for unit testing.  A lot of important data
> > structures are built in to java, which means you can learn how to use
> them
> > without having to know how to write them.
> >
> > The second language should be lower level;  C is probably the best
> choice
> > for that.  Learning C forces you to learn about memory management,
> which you
> > need to understand, even if it's better to let a garbage collector
> take care
> > of it for you.  Learning how to implement the data structures you get
> for
> > free in java et. al will help you know how to use them more
> efficiently, and
> > design your own data structures in the future.
> >
> >  It is easy to see the assembler/machine level code generated by a C
> program
> > and relate it to the code you wrote;  again, you may not write much
> code at
> > this level, but it is important to understand what the computer is
> actually
> > doing when its running higher level code, and how this affects
> efficiency.
> >
> > It's also important to get a basic grasp of algorithmic complexity;
> you
> > don't need to be able to develop proofs like knuth's, but you should
> > understand what big O notation stands for, and why some problems or
> programs
> > won't scale up.
> >
> > After that, its safe to learn a scripting language; you'll appreciate
> the
> > stuff you can get away with not doing, but you'll also know just when
> you're
> > cheating, and why the Duck is a lie.
> >
> > Simon
> >
> >