Beginning programming question

I know, I should ask this somewhere else, but I don't trust somewhere else...

My son is an economics researcher for a think tank, and he uses statistics programs -- SAS, SPSS, and SDATA -- all day long. He took it upon himself to learn scripting for all three, an he's become pretty facile at writing scripts in their dedicated scripting languages. Now he wants to learn something about programming.

He has no interest in becoming a programmer, but he'd like to know something that may be useful in his work (he had a math minor, and he's now going for a Masters in applied mathematics). I used to dabble in C and Assembly, so he's asked me what he should learn. I have no clue.

Some people he works with have recommended Python. I know nothing about it. I suggested C, but I made the mistake to telling him it's like Latin for a language major, and he hated Latin. He's not going to be doing anything that relates to the Web. His interest is mostly in things that will help him deal with data.

Any thoughts?

Reply to
Ed Huntress
Loading thread data ...

Ed, at the risk of starting a firestorm if there are any Java or C# programmers lurking on this ng...

If the shop he works in uses Microsoft technologies, VB.Net (Visual Basic .Net) would be a pretty good starting point. The syntax is straight-forward, doesn't nitpick about case-sensitivity, semicolons, and curly braces and so forth, and has proven to be a good platform for people who are primarily interested in solving computational problems as opposed to involving themselves in religious wars about programming languages. However, it runs only on Windows OS's (setting aside the problematic Mono platform-neutral variant for the adventurous and highly-motivated).

On the other hand, if his shop is Unix-based as many academic and research institutions are, Java would probably be his best general-purpose language choice. Like Microsoft's C#, it's a member of the C-language family and thus familiar to anyone who's programmed in any other C-like language. In fact it's not a hell of a lot different from C# in its fundamentals.

Like you, I cut my teeth on assembly language and C and other languages from the distant past, and have worked professionally in well over a dozen languages and dialects, to include C++, Pascal, C#, Prolog, Smalltalk, and a host of others. For a personal project I'm inclined to use C#, but the company I'm currently working for dictates VB.Net so I'm happily programming away in it and only occasionally slipping in a little C# where I can justify it.

Tom Dacon Dacon Software Consulting

Reply to
Tom Dacon

If you want quick and dirty, learn Java.. if you want robust, learn C#.. There's plenty of programming languages out there, it all depends on what you want to do..

Reply to
tnik

Visual Studio Express is the free evaluation version:

formatting link
jsw

Reply to
Jim Wilkins

Sounds like he has found the scripts to be deficient in some ways. I am not= familiar with those products, other than name. They may have options that = allow extensions, or the scripting may allow extensions, so he should first= see if such are allowed and follow that trail to an appropriate programmin= g language.

As others have written, a lot depends on the computer operating system he i= s using.

My favorites were also "C", assembly and for the old Burroughs medium syste= m, "BPL". But in most cases I had to use what was available.

Paul

Reply to
KD7HB

I concur with Tom. It really depends on what you're trying to do or to whom you're trying to make yourself marketable. Visual Basic .net is a pretty good place to start. You can make programs that are very structured, or not so much, and it's pretty easy to debug.

Reply to
rangerssuck

If he processes a lot of data in all kinds of ways, I would use perl.

It is an awesome language for making money!

i
Reply to
Ignoramus22805

I hear a lot of good things about Python from people I know and respect from newsgroup postings. In particular, it is recommended for numerical analysis. I haven't used it, and I know it has some quirky properties (apparently indentation level has semantic meaning, which makes me shudder). But like I said -- folks that I know and respect from other newsgroups have mentioned using it, and have liked it.

So if his primary interest is things that will help him deal with data, and if he's got people he works with that he can go to with questions, I'd say that Python is a not-too-bad choice.

My next two recommendations would be general-purpose numerical analysis programs -- Scilab, which I use personally and can highly recommend, and R, which I've heard about and is specifically for statistics. Scilab makes it very easy to prototype communications and control systems algorithms, and generally unpacks into C++ at a ratio of ten C++ lines to one line of Scilab. R -- I dunno, but given that it's made by and for statisticians, he may find it useful.

One additional plug: if he does any control systems analysis as part of his economics work then he wants to look into Scilab. Scilab is made by control guys, and has a lot of built-in functionality that make it a natural for control systems analysis. (And yes, economists _do_ study control theory -- I had a coworker once who got introduced to control theory as part of her coursework for a bachelor's in economics. She decided that the control theory was so fun she ended up getting her PhD in mathematics, specifically in control theory).

Reply to
Tim Wescott

Sounds like he's going to deal with very large data sets. If he's OK with m$oft, I'd suggest the data is kept in Access or Excel. Then start with VB.net or visual basic to work the data.

It does depend on what he wants to do, but the various flavors of basic are easy to learn and teach you programming concepts.

Karl

Reply to
Karl Townsend

If he really doesn't want to write programs, tell him Assembly.

Then he can look down from above on the rest of the coders.

Reply to
CaveLamb

When I went back and go my MSAE the most usefull package to know was Mathmatica. How about Mathmatica scipt. The script is pretty much like C but the power of Mathmaica will blow your mind.

Reply to
toolbreaker

I didn't have to read this to know what you were going to write. :)

Wes

Reply to
Wes

Perl is really nice for processing text, but I wouldn't use it for scientific programming.

Reply to
Tim Wescott

John Larkin, who hangs out at sci.electronics.design, swears by "Power Basic." He says he doesn't like programming per se, so PB kind of relieves him of some of the details - it's "BASIC," after all. I don't know anything about Python, but it would probably be worth a look-see.

I've been known to hack "Matt's" perl scripts, for example:

formatting link
I've heard that his scripts are really sucky when it comes to hostile people hacking them.

Good Luck! Rich

Reply to
Rich Grise

Pathologically Eclectic Rubbish Lister?

;-) Rich

Reply to
Rich Grise

Maybe APL. He can download J for free and see if it fits what he wants to do.

Dan

Reply to
dcaster

Sure, but also Practical Extraction and Report Language. Both names appear, one line apart, on page xii in the Camel Book (Programming Perl; Larry Wall and Randall Schwartz; O'Reilly). The Perl slogan is, 'There's more than one way to do it!'.

Perl is a good choice in many ways, far better than almost any Redmond product, but for a non-programmer trying to get things done, Python probably is a better choice. The language is far better organized than most. Online documentation and support is good. Eg, and sibling pages are nicely done.

Mathematica (mentioned before) would be an ok idea for Ed's son if he needs to use higher math functions. Schools often have Maple or Mathematica and Matlab available since academic versions cut the prices so much, but some of the freely-distributed programs pari/gp, maxima, Scilab (mentioned before) and Octave are of comparable power to some of those high-priced products. Python of course has bignum and/or pygmp support.

Python has packages one can use in a program via 'import' statement; see . But the only really obvious economics related stuff seems to be .

Reply to
James Waldby

Python is a 3rd generation scripting language and is pretty good. (Perl was 2nd generation, and Tcl was 1st generation.) It has its flaws (as do all languages), but it has a huge user community so there are plenty of books and forums to buy or visit.

If he is into statistics, R is what everybody is using.

formatting link
He should probably start with R, then think about Python.

-Wayne

Reply to
Wayne C. Gramlich

By far and away, plain old C is the most useful and durable, and code written in C will always be able to find a new home.

C++ is far more complex, so I would not start there. But all C++ compilers will happily compile plain old C, which is by design a subset of C++. (The development went the other way: C++ is a superset of vanilla C.)

Stay away from C# unless you don't mind being trapped by Microsoft.

Lots of business coding is done in Java, such as for websites. Java works, but is slow. Microsoft has their own variant, J#m which works quite well. Again, the question is if being entrapped in a proprietary language is a problem.

Perl, Python, et all are fine languages for what they do, but C/C++ is the heavy-duty language.

And so on. I made my living as a programmer for 20+ years.

Joe Gwinn

Reply to
Joseph Gwinn

On 3/3/2011 8:35 AM, Ed Huntress wrote: snip

you can't go wrong with C, just read Kernigan and Ritchie and start coding - pretty much any language is like any other language, just some syntactic differences. If cost is an issue, use the VBA within MS office apps and write clever macros

Reply to
Bill Noble

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.