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 |
Beginning programming question
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 |
Beginning programming question
On 3/3/2011 11:35 AM, Ed Huntress wrote:
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? 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.. |
Beginning programming question
On Mar 3, 12:12*pm, "Tom Dacon"
wrote: 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. ... Tom Dacon Dacon Software Consulting Visual Studio Express is the free evaluation version: http://www.microsoft.com/express/ jsw |
Beginning programming question
On Mar 3, 11:35*am, "Ed Huntress" wrote:
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. |
Beginning programming question
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 On 2011-03-03, tnik wrote: On 3/3/2011 11:35 AM, Ed Huntress wrote: 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? 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.. |
Beginning programming question
On 03/03/2011 08:35 AM, Ed Huntress wrote:
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? 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). -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html |
Beginning programming question
On Thu, 3 Mar 2011 11:35:17 -0500, "Ed Huntress"
wrote: 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? 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 |
Beginning programming question
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. -- Richard Lamb email me: web site: http://www.home.earthlink.net/~cavelamb |
Beginning programming question
On Mar 3, 3:42*pm, CaveLamb wrote:
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. -- Richard Lamb email me: web site: *http://www.home.earthlink.net/~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. |
Beginning programming question
Ignoramus22805 wrote:
If he processes a lot of data in all kinds of ways, I would use perl. I didn't have to read this to know what you were going to write. :) Wes |
Beginning programming question
On 03/03/2011 09:55 AM, Ignoramus22805 wrote:
If he processes a lot of data in all kinds of ways, I would use perl. It is an awesome language for making money! Perl is really nice for processing text, but I wouldn't use it for scientific programming. -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html |
Beginning programming question
Ed Huntress wrote:
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. 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: http://www.scriptarchive.com/wwwboard.html but I've heard that his scripts are really sucky when it comes to hostile people hacking them. Good Luck! Rich |
Beginning programming question
Ignoramus22805 wrote:
If he processes a lot of data in all kinds of ways, I would use perl. Pathologically Eclectic Rubbish Lister? ;-) Rich |
Beginning programming question
On Mar 3, 11:35*am, "Ed Huntress" wrote:
a Masters in applied mathematics His interest is mostly in things that will help him deal with data. Any thoughts? -- Ed Huntress Maybe APL. He can download J for free and see if it fits what he wants to do. Dan |
Beginning programming question
On Thu, 03 Mar 2011 16:29:05 -0800, Rich Grise wrote:
Ignoramus22805 wrote: If he processes a lot of data in all kinds of ways, I would use perl. Pathologically Eclectic Rubbish Lister? 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 |
Beginning programming question
Ed Huntress wrote:
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. 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. 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? If he is into statistics, R is what everybody is using. http://en.wikipedia.org/wiki/R_(programming_language) He should probably start with R, then think about Python. -Wayne |
Beginning programming question
In article ,
"Ed Huntress" wrote: 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? 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 |
Beginning programming question
On 3/3/2011 8:35 AM, Ed Huntress wrote:
snip 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? 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 -- www.wbnoble.com |
Beginning programming question
"Tom Dacon" wrote in message ... Ed, at the risk of starting a firestorm if there are any Java or C# programmers lurking on this ng... 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 |
Beginning programming question
On 2011-03-03, Ed Huntress wrote:
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. It is more like a missing link between assembly language and a high-level language. Things like C++ have too many layers of abstraction, and result in massively bloated programs, so I tend to avoid that. 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. Given his intended use, I think that C (for all that I use it a lot) is not the best choice. Among old languages, FORTRAN has massive math libraries which could help. Or for something somewhat newer and *very* math focused, APL is a likely choice -- though it does use a weird characterset to represent all the math operations. It is infamous for being a write-only language. You can do amazing things in a one line program, and weeks later not be able to figure out how you did it -- but the program still works. I've not taken the time to learn it, however -- I'm not that strong in math. If he were interested in artificial intelligence, the best language is probably lisp -- or at least used to be. Pascal is a good language to start with, actually, because it makes it very difficult to write poorly-structured programs. However, most implementations of it also make it rather difficult to make complex programs which deal with strings a lot. (I wrote a membership database program in it when I was learning it, and when I ported the basics of that program to C, it was *much* easier. BTW -- with linux systems, you can usually get gcc (GNU C Compiler) which also includes A couple of versions of FORTRAN and possibly even ADA (A language written for the DOD patterned after Pascal, but designed for writing serious application programs, not for teaching as Pascal was.) However what you *don't* get with that Fortran is the ton of math libs -- which are usually sold to mainframe users at serious prices. You'll get a reasonable subset, but nothing like the massive collection which is out there in the mainframe world. Enjoy, DoN. -- Remove oil spill source from e-mail Email: | Voice (all times): (703) 938-4564 (too) near Washington D.C. | http://www.d-and-d.com/dnichols/DoN.html --- Black Holes are where God is dividing by zero --- |
Beginning programming question
"DoN. Nichols" wrote in message ... On 2011-03-03, Ed Huntress wrote: 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. It is more like a missing link between assembly language and a high-level language. Things like C++ have too many layers of abstraction, and result in massively bloated programs, so I tend to avoid that. 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. Given his intended use, I think that C (for all that I use it a lot) is not the best choice. Among old languages, FORTRAN has massive math libraries which could help. Or for something somewhat newer and *very* math focused, APL is a likely choice -- though it does use a weird characterset to represent all the math operations. It is infamous for being a write-only language. You can do amazing things in a one line program, and weeks later not be able to figure out how you did it -- but the program still works. I've not taken the time to learn it, however -- I'm not that strong in math. If he were interested in artificial intelligence, the best language is probably lisp -- or at least used to be. Pascal is a good language to start with, actually, because it makes it very difficult to write poorly-structured programs. However, most implementations of it also make it rather difficult to make complex programs which deal with strings a lot. (I wrote a membership database program in it when I was learning it, and when I ported the basics of that program to C, it was *much* easier. BTW -- with linux systems, you can usually get gcc (GNU C Compiler) which also includes A couple of versions of FORTRAN and possibly even ADA (A language written for the DOD patterned after Pascal, but designed for writing serious application programs, not for teaching as Pascal was.) However what you *don't* get with that Fortran is the ton of math libs -- which are usually sold to mainframe users at serious prices. You'll get a reasonable subset, but nothing like the massive collection which is out there in the mainframe world. Enjoy, DoN. Thanks for the tips, Don. FWIW, Fortran is what I learned in college. Actually, I took a course, but never really learned it, because we had exactly two computers on campus, both of which were IBM 360s. I think it was Tuesdays that I had to turn in my punch cards at the computer center. On Monday, I'd get my output -- which almost always had an error or two. g You could go a month or more getting one program to run right. That meant four tries. It's a wonder we learned anything then, huh? -- Ed Huntress |
Beginning programming question
On 03/03/2011 08:24 PM, Joseph Gwinn wrote:
In , "Ed wrote: 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? 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.) C isn't an exactly subset of C++. It comes pretty close, and it comes closer yet if the C code in question is written with good style. Certainly if you say "All C++ compilers will happily compile C that is _well written_ to _modern coding standards_", then you'll be much closer to the mark. Here's the story from the Stroustrop's mouth, with examples: http://www2.research.att.com/~bs/bs_...ml#C-is-subset -- Tim Wescott Wescott Design Services http://www.wescottdesign.com Do you need to implement control loops in software? "Applied Control Theory for Embedded Systems" was written for you. See details at http://www.wescottdesign.com/actfes/actfes.html |
Beginning programming question
"Ed Huntress" wrote in message ... "DoN. Nichols" wrote in message ... On 2011-03-03, Ed Huntress wrote: 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. It is more like a missing link between assembly language and a high-level language. Things like C++ have too many layers of abstraction, and result in massively bloated programs, so I tend to avoid that. 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. Given his intended use, I think that C (for all that I use it a lot) is not the best choice. Among old languages, FORTRAN has massive math libraries which could help. Or for something somewhat newer and *very* math focused, APL is a likely choice -- though it does use a weird characterset to represent all the math operations. It is infamous for being a write-only language. You can do amazing things in a one line program, and weeks later not be able to figure out how you did it -- but the program still works. I've not taken the time to learn it, however -- I'm not that strong in math. If he were interested in artificial intelligence, the best language is probably lisp -- or at least used to be. Pascal is a good language to start with, actually, because it makes it very difficult to write poorly-structured programs. However, most implementations of it also make it rather difficult to make complex programs which deal with strings a lot. (I wrote a membership database program in it when I was learning it, and when I ported the basics of that program to C, it was *much* easier. BTW -- with linux systems, you can usually get gcc (GNU C Compiler) which also includes A couple of versions of FORTRAN and possibly even ADA (A language written for the DOD patterned after Pascal, but designed for writing serious application programs, not for teaching as Pascal was.) However what you *don't* get with that Fortran is the ton of math libs -- which are usually sold to mainframe users at serious prices. You'll get a reasonable subset, but nothing like the massive collection which is out there in the mainframe world. Enjoy, DoN. Thanks for the tips, Don. FWIW, Fortran is what I learned in college. Actually, I took a course, but never really learned it, because we had exactly two computers on campus, both of which were IBM 360s. I think it was Tuesdays that I had to turn in my punch cards at the computer center. On Monday, I'd get my output -- which almost always had an error or two. g You could go a month or more getting one program to run right. That meant four tries. It's a wonder we learned anything then, huh? -- Ed Huntress I remember those days. I took it again many years later and was able to use a compiler that ran on a PC. |
Beginning programming question
....
Thanks for the tips, Don. FWIW, Fortran is what I learned in college. Actually, I took a course, but never really learned it, because we had exactly two computers on campus, both of which were IBM 360s. I think it was Tuesdays that I had to turn in my punch cards at the computer center. On Monday, I'd get my output -- which almost always had an error or two. g You could go a month or more getting one program to run right. That meant four tries. It's a wonder we learned anything then, huh? -- Ed Huntress I remember those days. I took it again many years later and was able to use a compiler that ran on a PC. I may have been one of the first computer hackers. I noticed a Doctoral candidate submit a stack of punch cards, two full boxes, to the computer operator for the IBM 360. I was punching up a large stack for my GPSS (general purpose simulation system) class. That person came back in only two hours! Next day, I struck up a conversation and asked to see her header cards, I must have something wrong. Anyway, started using those mysterious codes and getting my runs back in two hours. I aced that class and was even recognized by the prof. as writing some of the best code he'd seen. Karl |
Beginning programming question
On 2011-03-04, Wes wrote:
Ignoramus22805 wrote: If he processes a lot of data in all kinds of ways, I would use perl. I didn't have to read this to know what you were going to write. :) :) 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 |
Beginning programming question
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 On 2011-03-04, James Waldby wrote: On Thu, 03 Mar 2011 16:29:05 -0800, Rich Grise wrote: Ignoramus22805 wrote: If he processes a lot of data in all kinds of ways, I would use perl. Pathologically Eclectic Rubbish Lister? 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. |
Beginning programming question
Ed Huntress wrote:
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. 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 |
Beginning programming question
Bill Noble wrote:
On 3/3/2011 8:35 AM, Ed Huntress wrote: snip 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? 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 Agreed. -- Richard Lamb email me: web site: http://www.home.earthlink.net/~cavelamb |
Beginning programming question
"CaveLamb" wrote in message ... Ed Huntress wrote: 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. Ed, is this about learning about programming? or wrangling computers? 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. 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) 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. May I offer that learning CAD would provide more personal range of operation that programming skills do not provide. 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 |
Beginning programming question
"Karl Townsend" wrote in message ... ... Thanks for the tips, Don. FWIW, Fortran is what I learned in college. Actually, I took a course, but never really learned it, because we had exactly two computers on campus, both of which were IBM 360s. I think it was Tuesdays that I had to turn in my punch cards at the computer center. On Monday, I'd get my output -- which almost always had an error or two. g You could go a month or more getting one program to run right. That meant four tries. It's a wonder we learned anything then, huh? -- Ed Huntress I remember those days. I took it again many years later and was able to use a compiler that ran on a PC. I may have been one of the first computer hackers. I noticed a Doctoral candidate submit a stack of punch cards, two full boxes, to the computer operator for the IBM 360. I was punching up a large stack for my GPSS (general purpose simulation system) class. That person came back in only two hours! Next day, I struck up a conversation and asked to see her header cards, I must have something wrong. Anyway, started using those mysterious codes and getting my runs back in two hours. I aced that class and was even recognized by the prof. as writing some of the best code he'd seen. Karl Heh, heh....I wasn't devious enough to do things like that. At least, not then. d8-) That whole experience turned me off about programming. It wasn't until I got my first Apple II+ and started programming in BASIC that I regained any interest. Then I got a RS M100 laptop and really started to have fun. I wrote a merchandise-distribution program for my wife -- she was a fashion buyer for 26 retail stores -- in assembly, which saved her and her staff 30 hours or so per week. So the company's IT department asked if they could convert it for use on their minicomputers. I said sure, and gave it to them. But I had written it for the 80C85, using all of the commands, and they couldn't make head nor tail out of it. My wife continued to run it on the RS M100. g -- Ed Huntress |
Beginning programming question
Ignoramus20691 wrote:
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 Google 'Python tutorial'. Have Fun! Rich |
Beginning programming question
On Mar 3, 9:35*am, "Ed Huntress" wrote:
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. |
Beginning programming question
In article ,
Tim Wescott wrote: On 03/03/2011 08:24 PM, Joseph Gwinn wrote: In , "Ed wrote: 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? 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.) C isn't an exactly subset of C++. It comes pretty close, and it comes closer yet if the C code in question is written with good style. Certainly if you say "All C++ compilers will happily compile C that is _well written_ to _modern coding standards_", then you'll be much closer to the mark. Here's the story from the Stroustrop's mouth, with examples: http://www2.research.att.com/~bs/bs_...ml#C-is-subset While this is true, it's far too deep in the details to matter in the present discussions. In a sense, and to overstate the case, it's a bit like saying that US English and UK English are not quite identical, so let's learn Chinese instead. (Only to later discover that Chinese has hundreds of dialects.) The newer C and/or C/C++ compilers tend to be more rigorous about enforcing the rules of the language than in the 1970s, which means that perfectly functional old code is often rejected by new compilers. There is a big debate in the programming community on if this is a good thing or a bad thing. I'm in the just-fix-the-errors-and-get-on-with-it school, but if the old codebase is valuable and huge, people just disable the warnings. I think all modern compilers have a single switch to return to the laxity of yore. Joe Gwinn |
Beginning programming question
On Fri, 04 Mar 2011 11:54:41 -0600, Ignoramus20691 wrote:
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. 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: [...] 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. [...] 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 |
Beginning programming question
On Fri, 4 Mar 2011 01:18:17 -0500, "Ed Huntress"
wrote: snip 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. 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). |
Beginning programming question
On 2011-03-04, Ed Huntress wrote:
"DoN. Nichols" wrote in message ... On 2011-03-03, Ed Huntress wrote: I know, I should ask this somewhere else, but I don't trust somewhere else... [ ... ] Given his intended use, I think that C (for all that I use it a lot) is not the best choice. Among old languages, FORTRAN has massive math libraries which could help. [ ... ] BTW -- with linux systems, you can usually get gcc (GNU C Compiler) which also includes A couple of versions of FORTRAN and possibly even ADA (A language written for the DOD patterned after Pascal, but designed for writing serious application programs, not for teaching as Pascal was.) However what you *don't* get with that Fortran is the ton of math libs -- which are usually sold to mainframe users at serious prices. You'll get a reasonable subset, but nothing like the massive collection which is out there in the mainframe world. [ ... ] Thanks for the tips, Don. FWIW, Fortran is what I learned in college. Actually, I took a course, but never really learned it, because we had exactly two computers on campus, both of which were IBM 360s. I think it was Tuesdays that I had to turn in my punch cards at the computer center. On Monday, I'd get my output -- which almost always had an error or two. g You could go a month or more getting one program to run right. That meant four tries. It's a wonder we learned anything then, huh? At least with a linux box, your turnaround is in seconds, not days. :-) Makes learning easier. Enjoy, DoN. -- Remove oil spill source from e-mail Email: | Voice (all times): (703) 938-4564 (too) near Washington D.C. | http://www.d-and-d.com/dnichols/DoN.html --- Black Holes are where God is dividing by zero --- |
Beginning programming question
On Fri, 4 Mar 2011 15:01:54 -0500, "Ed Huntress"
wrote: snip 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. 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). |
Beginning programming question
On 2011-03-04, Ed Huntress wrote:
"CaveLamb" wrote in message ... Ed Huntress wrote: 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. Ed, is this about learning about programming? or wrangling computers? 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. 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: | Voice (all times): (703) 938-4564 (too) near Washington D.C. | http://www.d-and-d.com/dnichols/DoN.html --- Black Holes are where God is dividing by zero --- |
Beginning programming question
"F. George McDuffee" wrote in message ... On Fri, 4 Mar 2011 15:01:54 -0500, "Ed Huntress" wrote: snip 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. 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. 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 |
All times are GMT +1. The time now is 04:46 AM. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright ©2004 - 2014 DIYbanter