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?
--
Ed Huntress



Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
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
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Visual Studio Express is the free evaluation version: http://www.microsoft.com/express /
jsw
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

<snip>
I'm going to stop here and thank everyone for their thoughts and advice. As I expected, these were among the most open-minded and thoughtful suggestions I've seen anywhere on the Web. When I see similar questions asked elsewhere, they almost always descend, as Tom suggested, into a kind of religious war. <g>
For the record, my son did use Maple in college, and he has access to it now, at work. The commercial statistics programs seem to cover the math he needs in this work, however, so he doesn't have much need for a Mathematica-type program now. He probably will when he starts his master's degree program but I'm sure he'll have access to it at school.
To clarify, he does analyses of health care programs -- private, Medicare, and Medicaid -- as a component of reports and higher analyses that go mostly to federal agencies and Congressional committees. (This is a non-partisan policy institute/think tank, so they're working on contracts issued by the government and by insurance companies, not on lobbying projects.) Most of the data he digs up is in the form of Excel spreadsheets and databases, often with many thousands of records. He runs into the same issue that I frequently encounter in things we discuss here, and in my article research: Most of the data available in this world was prepared for some purpose other than the one you have for it, so it has to be filtered, reorganized, normalized, etc., before it can be used. Since much of it is collected by state agencies, he often has to combine 50 different data sources into one file, and they're all different.
He does the arithmetic parts of that in Excel. Then he imports it (usually) into SAS, where he applies higher statistical methods. The trick to making this work well, aside from having good ideas and insights about how to normalize and adjust the raw data to produce the value you're looking for, is to automate as many tasks as you can.
He's using Windows products, which often have to run all night to give him a result. There are some minicomputers in the place running on Unix, but they're reserved for other kinds of computational tasks.
I'm not going to pre-judge for him which way he should go with this. I'm compiling your suggestions for his consideration. I expect that, in the end, he'll be influenced by the programmers at work and what they encourage him to use. But his own learning needs are a part of it, too.
Thanks again. You've all been very helpful.
--
Ed Huntress



Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ed Huntress wrote:

Ed, is this about learning about programming? or wrangling computers?
In the Windows environment, for actual programming, ASM - for me, still. VBA (Visual Basic for Applications) capabilities and Visual BASIC programming. (macro language for all MS apps)
May I offer that learning CAD would provide more personal range of operation that programming skills do not provide.
--

Richard Lamb


Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

He's headed for a PhD in economics, with a master's in math along the way. His responsibilities at work are evolving. But his interest now is in learning basic programming, with an eye to learning something useful for his work. He doesn't really know what he's going to do with it. He does NOT want to be a professional programmer, although knowing the basics probably will help him.

I think he's picking up some VBA in his work with Excel. I recommended it to him last summer, when he was beginning to require lots of macros to automate Excel processes.

He has little interest. He watched me fiddling with it for years, when I wrote the CAD/CAM columns for a couple of manufacturing magazines, and later, when Ashlar was my client.
--
Ed Huntress



Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Fri, 4 Mar 2011 15:01:54 -0500, "Ed Huntress"
<snip>

<snip> If at all possible, it is suggested that he take at least one and possibly several courses in econometrics/political econometrics as these techniques scrub out most of the theorizing and replace it with data driven and empirically verified conclusions.
-- Unka George (George McDuffee) .............................. The past is a foreign country; they do things differently there. L. P. Hartley (1895-1972), British author. The Go-Between, Prologue (1953).
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Yeah, he studied econometrics at the undergrad level, and econometrics is what his department does. He's very numbers-driven in his economics work. That's what they emphasized in the econ program at Washington & Lee, and that's what he'll be doing with the applied math master's program at Georgetown, if he decides to go there. The Univ. of Maryland has a good program in that, too, and he can get to either with public transportation.
He just took the GREs and scored 800 on the math portion. They accepted him over the phone at Georgetown. d8-)
--
Ed Huntress



Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

    BTW -- the mention of "basics" reminds me to strongly advise *against* learning in BASIC. It teaches bad programming habits, as Pascal makes it difficult to learn bad programming habits.
    Once you know what *good* programming practices are, then you can consider using BASIC. I started in assembly language for the Motorola 6800 and 6809 CPUs (even more possible to do bad things there, but more work to write and faster running), then went to BASIC, because that was what was available for the system which I was then running. No floppies, no hard disk, just punched tape, and later a digital cassette tape drive which I interfaced to the system (and wrote the control software for). (This was in the 6800, I later had floppies for that and floppies plus hard discs for the 6809 systems.
    Enjoy,         DoN.
--
Remove oil spill source from e-mail
Email: < snipped-for-privacy@d-and-d.com> | Voice (all times): (703) 938-4564
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Fri, 4 Mar 2011 01:18:17 -0500, "Ed Huntress"
<snip>

<snip> As long as you have less than about 64k records [lines] and ample memory, take a look at an Excel statistics package add-in. The one I use is WinStat http://www.winstat.com/ 99$US Everything up to but not including canonical analysis. As it is an Excel add-in charts and graphs are easy to generate to include in the reports.
-- Unka George (George McDuffee) .............................. The past is a foreign country; they do things differently there. L. P. Hartley (1895-1972), British author. The Go-Between, Prologue (1953).
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On 3/3/2011 11:35 AM, Ed Huntress wrote:

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..
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
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

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I didn't have to read this to know what you were going to write. :)
Wes
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

:) Perl is the most awesome "git-r-done" language, it gets a job done quickly, has facilities to do stuff robustly. I can still easily read my perl stuff from years ago.
i
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On 03/03/2011 09:55 AM, Ignoramus22805 wrote:

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

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ignoramus22805 wrote:

Pathologically Eclectic Rubbish Lister?
;-) Rich
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Thu, 03 Mar 2011 16:29:05 -0800, Rich Grise wrote:

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, <http://docs.python.org/library/ 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 <http://pypi.python.org/pypi . But the only really obvious economics related stuff seems to be <http://pypi.python.org/pypi/econ/0.4 .
--
jiw

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
By the way, I bought a book for my 9 year old son to teach him programming. It is called "Hello World!" and it uses Python.
So far, he seems to like it.
So, I need to learn Python too, any suggestions for a good Python book for programmers. Something that would not explain in depth what is an if statement, just would explain how to use one.
thanks
i

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ignoramus20691 wrote:

Google 'Python tutorial'.
Have Fun! Rich
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Fri, 04 Mar 2011 11:54:41 -0600, Ignoramus20691 wrote:

I haven't kept up with current books about Python (a long time ago I bought a CORBA-via-Python book, which turned out not useful, and an overly elementary Python book) and have used online refs since to deal with particular questions. However, I've seen both of the following books recommended in comp.lang.python : "Python Standard Library", Fredrik Lundh, <http://oreilly.com/catalog/9780596000967 and "Python Cookbook, Second Edition", Martelli/Ravenscroft/Ascher, <http://oreilly.com/catalog/9780596007973/index.html . Both are a few years old now and I don't know if newer versions are out.
My thought is that it isn't worthwhile to get a book about Python syntax, which can be presented well enough online. However, the Standard Library book should be able to present background and framework information that online man pages often lack, while the Cookbook presents numerous segments of code for specific purposes, which may be useful examples for learning Python. The tables of contents of both books are available at those O'Reilly links, so you may be able to see if one or the other matches up with what you want.
Also the books "Dive Into Python" and "How To Think Like A Computer Scientist" are online somewhere, and mailing list <http://mail.python.org/mailman/listinfo/tutor may help. > On 2011-03-04, James Waldby wrote: [...]

[...]
--
jiw

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.