Announcement: Be excellent to each other.


Caravel Forum : Other Boards : Anything : I want to learn programming (So what language should I use?)
New Topic New Poll Post Reply
Poster Message
Mikko
Level: Master Delver
Rank Points: 276
Registered: 02-04-2003
IP: Logged
icon I want to learn programming (0)  
I've been working for quite some time on a system for ranking (association) football teams, although it can also be used for other sports, in Excel.

I now want to create a program specifically for this because of various reasons, most importantly the fact that I bought a new computer that doesn't have Excel installed.

Unfortunately my only real experience with programming (apart from the macro for the Excel file) was back on my Commodore 64. I don't think that I would have too much problems learning a new programming language, though. As something of a mathematician I'm quite familiar with algorithms, functions and such. I just have to learn the syntax from scratch.

So what language should I learn? For now, I only need to do basic stuff like reading and writing files and some simple math including exponents, but I might want to expand things in the future. Also keep in mind that any compiler must be downloadable on my dial up connection without unreasonable efforts. I'm using Windows XP, in case that matters.
08-13-2005 at 08:04 AM
View Profile Send Email to User Show all user's posts Quote Reply
Mattcrampy
Level: Smitemaster
Avatar
Rank Points: 2388
Registered: 05-29-2003
IP: Logged
icon Re: I want to learn programming (+1)  
Well, far as I can see you've got two or three options.

Probably the best one, especially if you have Word installed (it seems pretty common nowadays for computers to come with Word and not Excel, I'm looking at you, Hewlett-Packard) would be to learn VBA. No compilers to install, and it can output to Word. You'd also be able to use some of that knowledge for VB, which is much maligned because it lets you get away with a lot more without having to do any object-oriented programming.

Then you're basically looking at real programming languages, which is overkill a bit because you were doing this in Excel before. You could go C++, which would let you do everything you need, but C++ is somewhat difficult to learn. There's Java, but as far as I know about Java, it's probably not the best for your needs. It might be worthwhile investigating Python, which I've heard is easy to learn and should be able to do everything you need it to, certainly easier than C++.

____________________________
What do you call an elephant at the North Pole?
Click here to view the secret text


[Last edited by Mattcrampy at 08-13-2005 09:04 AM]
08-13-2005 at 09:03 AM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
AlefBet
Level: Smitemaster
Rank Points: 979
Registered: 07-16-2003
IP: Logged
icon Re: I want to learn programming (+2)  
If you don't want to go the VBA route (and I wouldn't blame you --- I hated VB when I played with it ten years ago, but I've heard it's better since then) I would suggest learning Python because it's easy to learn and easy to read. I personally tend to use Perl rather than Python because I find that programs tend to be more concise in Perl, but Python is easier to work with as a beginner, and has clean notation, which a mathematician might appreciate. And there's not really anything you can do in Perl that you can't do in Python.

Perl programs do tend to run a bit faster than Python programs, though (although if I'm writing in a scripting language I usually don't care that much about speed). And Perl was really designed for reading, manipulating, and writing text oriented data. So if you don't mind syntax that is punctuation heavy to the extreme, you may want to look at Perl.

I wouldn't go with C++ for this job (even though it tends to be my language of choice) for a few reasons. First, acquiring and installing a quality C++ compiler is going to take some undertaking. There are several good free ones out there, but the best ones for Windows XP would be either the latest VS.net (the full version is costly, but I believe you can actually just get the compiler for free, although you'd get no editor or IDE) or G++, which really should be used within a Cygwin environment. (I really like Cygwin, but it is by no means small).

Second, C++ is a big language, probably the most complicated language in mainstream use today. I appreciate this because it is very powerful and flexible, but there are a lot of nuances that take years of regular use to understand.

Third, C++ by itself has only basic file processing capabilities. So to get flexible reading and writing, you either need to write a lot of code or use an extension library (I recommend "boost" for its regular expressions). Perl and Python both have more flexible reading and writing of text data out of the box.

Fourth, it usually takes longer to do something simple in C++ than in Perl or Python. The emphasis on good abstraction and design takes time on a simple project and it's not really needed for small jobs.

Anyway, give me a chance and I will wax lyrical on programming. I hope this is helpful.

____________________________
I was charged with conspiracy to commit jay-walking, and accessory to changing lanes without signaling after the fact :blush.

++Adam H. Peterson
08-13-2005 at 06:50 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
Mikko
Level: Master Delver
Rank Points: 276
Registered: 02-04-2003
IP: Logged
icon Re: I want to learn programming (0)  
I downloaded Python and it appears to be just what I wanted. Thanks for recommending it!
08-14-2005 at 11:26 AM
View Profile Send Email to User Show all user's posts Quote Reply
bradwall
Level: Smiter
Avatar
Rank Points: 423
Registered: 02-12-2003
IP: Logged
icon Re: I want to learn programming (+1)  
If you have a good book with a dumbed-down version of the compiler, VB (Visual Basic) is pretty easy to learn and use.
I wouldn't use Java... mainly because (in my opinion) to program effectivly in Java (keeping your program fast and reliable and creating a good interface) takes experiance with it. Our company uses Java for programming and I really do like the language, however, if you don't know programming, it may not be a good way to start... too many factors to make your program efficient.
C++ can be difficult as well (if you have never done any serious programming).

Again, I have found that VB is extremely simple to learn some basic programming. That is what I started on. Great for pumping out a quick program without learn how to create GUI's through code.

Just my thoughts.
08-15-2005 at 02:11 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
John259
Level: Delver
Rank Points: 57
Registered: 11-18-2005
IP: Logged
icon Re: I want to learn programming (0)  
If you want to stick with Excel then you could try Open Office which is a free version. The Wikipedia article of the same name has all the info.

One alternative approach is a database system such as Access (part of some editions of Microsoft Office). I think Open Office includes something similar. Access takes quite a bit of getting used to, you have to learn to think its way, but the results are very fast and usually very reliable. A friend of mine has created a sophisticated archery scoring system in Access which does the extremely complicated job very nicely even with a large number of competitors.

HTH, John

____________________________
2006 A DROD Odyssey: "Open the pod bay doors Halph" - "Not possible!"
08-14-2006 at 12:46 PM
View Profile Send Private Message to User Show all user's posts Quote Reply
Briareos
Level: Smitemaster
Avatar
Rank Points: 3516
Registered: 08-07-2005
IP: Logged
icon Re: I want to learn programming (+1)  
John259 wrote:
ker-snip
And there I was thinking the forum had a bug when I saw

14.8.
15.8.
14.8.

until I noticed you actually replied to a thread that was 1 year old... :wacko

np: Yello - Desire (12'' mix) (Stella)

____________________________
"I'm not anti-anything, I'm anti-everything, it fits better." - Sole
R.I.P. Robert Feldhoff (1962-2009) :(
08-14-2006 at 12:54 PM
View Profile Send Private Message to User Send Email to User Visit Homepage Show all user's posts Quote Reply
bandit1200
Level: Master Delver
Rank Points: 290
Registered: 10-29-2003
IP: Logged
icon Re: I want to learn programming (0)  
I was about to mention Open Office when I saw John's post. If anyone would like to try it out without installing, there's a portable version at portableapps.com

If you don't like it, just delete the directory you placed it in.
08-14-2006 at 01:01 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
bandit1200
Level: Master Delver
Rank Points: 290
Registered: 10-29-2003
IP: Logged
icon Re: I want to learn programming (0)  
Briareos wrote:
John259 wrote:
ker-snip
And there I was thinking the forum had a bug when I saw

14.8.
15.8.
14.8.

until I noticed you actually replied to a thread that was 1 year old... :wacko

np: Yello - Desire (12'' mix) (Stella)
Heh, I never noticed that.
08-14-2006 at 01:02 PM
View Profile Send Private Message to User Send Email to User Show all user's posts Quote Reply
Mikko
Level: Master Delver
Rank Points: 276
Registered: 02-04-2003
IP: Logged
icon Re: I want to learn programming (+1)  
If anyone cares (which I doubt), I eventually used C for this and other similar projects.

The football ranking that I mentioned is now available at http://personal.inet.fi/koti/qolumbo/ranking.html
08-14-2006 at 01:53 PM
View Profile Send Email to User Show all user's posts Quote Reply
Alneyan
Level: Smitemaster
Rank Points: 622
Registered: 07-06-2004
IP: Logged
icon Re: I want to learn programming (0)  
As a mathematician, you might find Haskell appealing for certain projects. That language seems closer to some branches of mathematics than to C and its kin.... but of course, I'm no mathematician myself, and not up to the task of defining those monads in formal, mathematical terms.

Haskell has a fairly different syntax compared to those other languages, with a strong focus on recursivity and natural handling of infinity (an infinite list is no problem, so long as you only call finite parts of the list). That list is by no means complete, since I've only been toying with the language myself.

The interpreter and compiler suite GHC (for Glascow Haskell Compiler) should be available on Windows, along with the interpreter-only Hugs (these two are the most common implementations of the Haskell language).
08-15-2006 at 08:01 AM
View Profile Send Private Message to User Show all user's posts Quote Reply
silver
Level: Smitemaster
Rank Points: 915
Registered: 01-18-2005
IP: Logged
icon Re: I want to learn programming (+2)  
From a practical "I want a job in programming" sense:

briefly cover assembly language, and then learn C. not because you'll get a job programming in it, but because the best programmers of other languages understand the Heart of the machine.

then learn Java and/or C#, because those are where the jobs lie. if you like, you can read some chapters on how C++ is related to Java and C#, but that's an afterthought, unless you want to develop in C++ (which means almost exclusively game programming these days) - but you won't understand C++ without knowing C thoroughly and knowing the OO principles learned in studying one of the other two languages.

then go back and learn Lisp, because there's so much theory of programming to be learned from understandng The Lisp Way.

next, study some SQL. It's not really a "programming" language (unless you write a lot of stored procedures), but knowing how databases work is important to real development. Similarly, at least in today's environment, some knowledge of XML parsing is handy to pick up, even though it isn't real programming.

in today's job market, you must also know HTML and CSS backwards and forwards. it helps to learn a lot about javascript (though that is a tangled mess of "which browser supports which function?"). this isn't real programming (except for complicated javascript), but it's really important in 90% of jobs.

learn to use well the *n*x command-line utilities "find" and "grep" (and several others those imply such as xargs and cut). Even if you're going to be a Windows programmer, learning about how operating and file systems are practically used by users will leverage well for many tasks.

Finally, if you have time, study a little Prolog. Just to break your brain. But it will also help you read Makefiles better.

If you've got a basic understanding of assembly language; a thorough understanding of C, plus one of Java or C# or C++; an acquaintance with SQL, XML, and HTML/CSS/javascript; and a passing knowledge of Lisp and Prolog and *n*x shell usage, then there's no programming job you need fear take, even if you haven't even heard of the language used.

I have interviewed many people who knew Java Very Well, but had no f-ing clue how anything else worked, and frankly, such people were useless to me. I work daily with both low and high levels of the system. While I'm never called upon to use any assembly language knowledge, all the rest comes up at least once a week. And the assembly language knowledge still informs some decisions here and there.

(And I mostly program in Perl. but Perl is just a mishmash of C, C++, shell, and Lisp (Lisp may seem counter intuitive to list here, but the best use of Perl's dynamic arrays and the "map" and "grep" operators comes from a good Lisp background)).

you may not like this answer, but based on practical field experience, it takes years to even be a vaguely useful programmer. and time spent on visual basic doesn't count towards those years.


____________________________
:yinyang

[Last edited by silver at 08-15-2006 09:48 AM]
08-15-2006 at 09:30 AM
View Profile Send Private Message to User Show all user's posts This architect's holds Quote Reply
coppro
Level: Smitemaster
Rank Points: 1308
Registered: 11-24-2005
IP: Logged
icon Re: I want to learn programming (0)  
If you want to learn programming, I suggest you look in your TV Guide. They have all sorts of programming in there.
08-15-2006 at 03:26 PM
View Profile Show all user's posts Quote Reply
New Topic New Poll Post Reply
Caravel Forum : Other Boards : Anything : I want to learn programming (So what language should I use?)
Surf To:


Forum Rules:
Can I post a new topic? No
Can I reply? No
Can I read? Yes
HTML Enabled? No
UBBC Enabled? Yes
Words Filter Enable? No

Contact Us | CaravelGames.com

Powered by: tForum tForumHacks Edition b0.98.8
Originally created by Toan Huynh (Copyright © 2000)
Enhanced by the tForumHacks team and the Caravel team.