I'd start with Java.

* Starting with C teaches too many bad habits.  I've spent more time with C 
programmers breaking bad habits than any other strongly-typed language.
* Starting with C++ is like starting with C, except there is 100 times more to 
learn before you're productive, and 10 times more bad habits if you haven't 
learned good Object Oriented Design first.

* CS schools used to start everyone in Pascal, because it teaches structured 
programming very well and strongly discourages bad habits.  C was taught AFTER 
the students, presumably, learn good structured programming habits in Pascal.  
With the rise of Object Oriented programming, this needed to change.
* Current curricula usually start with Java for the same reason they used to 
start with Pascal.  Java teaches good Object Oriented Development habits with 
strong discouragement for bad habits (although there are still a few areas 
where Java can teach bad habits, particularly for Swing programming).
* Starting with a scripting language (like Python, Ruby, Perl, PHP, Javascript, 
etc...) is like learning to drive trucks using a motorcycle.  The rules are 
COMPLETELY different, and you'll pick up a lot of bad habits you may have 
difficulty unlearning later.  Also, these languages are generally frowned upon 
in business applications, so it's a long twisty route to where the student 
wants to get.
* C# forces a dependency on proprietary subsystems and patented API's.  It's a 
nice language, but most of the jobs using it are really ASP jobs using the C# 
syntax as a scripting engine. It's sort of like writing JSP pages with Java, 
you don't really use the language well, and you learn absolutely TERRIBLE bad 
programming techniques because the whole system architecture for the typical 
ASP site is a Frankenstein's Monster twisting of good design principles. ASP 
(and JSP) can be useful tools (I use them myself in almost all web-based 
multi-tier applications), but the vast majority of uses I've seen abuse the 
technology to create 70's style monolithic applications because the software 
designer/architect simply doesn't know (or doesn't care) how to create an 
effective multi-tier system for
the web.
* Visual Basic is widely used in business simply because there are a ton of 
cheap, and low-skill, programmers available who ONLY know VB (many great 
programmers also know VB, but they tend not to be cheap).  Most VB projects are 
done in VB because they have to be done very quickly, quality doesn't matter, 
and it has to be cheap.

* Ada is a great language to learn structured procedural programming, but 
there's very little use for it, and the industry has mostly moved forward to 
Object Oriented design, so procedural programming is being squeezed into 
smaller and smaller niches (mostly very low-level code in the embedded or O/S 
space, sometimes packaged applications still use procedural code, but that's 
getting rare).
* If you want to torture yourself working on Mainframes in dark cramped 
dilbertian cubicles, learn COBOL, it's valued mostly because very few people 
are learning it, but millions of lines of legacy code is still in use.
* If you're really interested in learning just procedural programming (C, Ada, 
etc...), start with Pascal, and then learn C.  You'll learn how to program well 
before having to deal with the much greater complexity of C.

* All the minority languages (BASIC, scheme, lisp, smalltalk, eiffel, D, awk, 
snobol, icon, forth, etc...) make sense as languages to learn thoroughly once 
you've actually mastered at least 3 major languages (Java then C++; then C#, 
Ruby, Python, or Javascript).

All of the above is my opinion only, and is a VERY brief summary, no offense is 
intended and many statements are broad generalities about the language; not 
intended to depict any particular person or group.

Hope that helps.

Dennis Kibbe wrote:
> I searched the archive but didn't find a previous discussion about this.
> 
> A friend who graduates from high school next week wants to take a summer 
> course in programming. His goal is to become a business applications 
> programmer.
> 
> He asked me what language he should start with. I'd guess the prgramming 
> landscape is changing with more services going into the cloud.
> 
> Joseph, Hans, Charles I'm sure you have opinoins and I welcome anyone elses.
> 
> My friend, Ian isn't on the list so I'll point him to gmane.org to follow the 
> discussion.
> 
> dennisk
> 

Attachment: signature.asc
Description: OpenPGP digital signature

---------------------------------------------------
PLUG-discuss mailing list - PLUG-discuss@lists.plug.phoenix.az.us
To subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss

Reply via email to