thedarkshade Posted December 9, 2007 Posted December 9, 2007 Hi guys! New chances are opening up in the city I live, but few conditions are limiting me of getting them. And one of them is programming:doh: . I'm thinking (and I really need to) of learning to program, so I was wondering which software would be the best to start with, and if anyone of you could recommend any books to read about that, that'd be great. Any help would be mostly appreciated! Thanks!!!
Pangloss Posted December 9, 2007 Posted December 9, 2007 What kind of programming? What is it you're interested in doing with your programs?
MrMongoose Posted December 9, 2007 Posted December 9, 2007 Which software? Do you mean which compiler or which software should you make? The answers to those two depend on which language you use and what you want to make, but initially for learning you will probably start with "Hello World". As for languages, personally I'd say c++ and java are the most common commercially, so if you're actually looking for a programming job, learn one of those. If you want programming to add to your skills for a more scientific job, Fortran may be better. If you're more specific with what you want I'll give you my very very very opinionated views and send you some links
thedarkshade Posted December 9, 2007 Author Posted December 9, 2007 What kind of programming? What is it you're interested in doing with your programs? Whatever, it really doesn't matter (C, C++, Perl, php, HTML, java etc) the problem is that I have not a clue of programming with either of them, and I guess some of them are easier some harder, and I would like to know with which one should I start! I'm interested in doing mathematical programs mostly! As for languages, personally I'd say c++ and java are the most common commercially, so if you're actually looking for a programming job, learn one of those. If you want programming to add to your skills for a more scientific job, Fortran may be better. If you're more specific with what you want I'll give you my very very very opinionated views and send you some links Thanks a lot MrMongoose, yeah I'm into more scientific stuff. And sending some links would be just awesome! Thnx
insane_alien Posted December 9, 2007 Posted December 9, 2007 python would be a good place to start. it isn't as fast as the others(it is primarily an interpreted language) but it is veryeasy to pick up on. i use it for prototyping(and occasionally a proper program if how fast it runs is not a priority) just search up 'python tutorial' on google and you'll have a huge number of easy to follow tutorials to tell you how to do everything on it.
thedarkshade Posted December 9, 2007 Author Posted December 9, 2007 just search up 'python tutorial' on google and you'll have a huge number of easy to follow tutorials to tell you how to do everything on it. OK thanks, but the programs you write with it, are they script programs or they can be opened as any other program?
insane_alien Posted December 9, 2007 Posted December 9, 2007 both. i have a bunch that are basically just scripts(for mass file convertions) and i have made a few little card game applications.
thedarkshade Posted December 9, 2007 Author Posted December 9, 2007 both. i have a bunch that are basically just scripts(for mass file convertions) and i have made a few little card game applications. I just downloaded Python25, and it seems to be "a little" primitive, but I'll get used with it. Can I make mathematical applications out of it? because it doesn't look that sophisticated you know!!!
insane_alien Posted December 9, 2007 Posted December 9, 2007 yes you can make mathematical programs out of it. though you need to be careful with the way it handles division. try 2/3 and see what i mean. to get the propper answer 2.0/3 should be used. also, all programs can be written in something like windows notpad if you really wanted to do it that way. there ain't nothing primitive about it. i use Gedit to make python programs. and C++ programs, and bash scripts and so on and so forth. anything with syntax highlighting is good. and why shouldn't programming be simple?
thedarkshade Posted December 9, 2007 Author Posted December 9, 2007 yes you can make mathematical programs out of it. though you need to be careful with the way it handles division. try 2/3 and see what i mean. to get the propper answer 2.0/3 should be used. also, all programs can be written in something like windows notpad if you really wanted to do it that way. there ain't nothing primitive about it. i use Gedit to make python programs. and C++ programs, and bash scripts and so on and so forth. anything with syntax highlighting is good. and why shouldn't programming be simple? Yes yes you're right! I guess I should go through that ENDLESS tutorial and then try to make something out of it. Thnx
timo Posted December 9, 2007 Posted December 9, 2007 I don't know what you call a "mathematical application", but if you're going for Python then the packages "NumPy" and "SciPy" (http://numpy.scipy.org/ and http://www.scipy.org/) might be worth a look.
iNow Posted December 9, 2007 Posted December 9, 2007 New chances are opening up in the city I live, but few conditions are limiting me of getting them. And one of them is programming:doh: If you are doing this primarily to increase your chances of getting a job, I'd spend some time discovering what programming languages are used in those jobs, then study those. Good luck with it all.
mooeypoo Posted December 9, 2007 Posted December 9, 2007 I personally do PHP/mySQL these days, I find it VERY fruitful, because of the growth of Web 2.0 etc. But I also know VB and C.. the thing is that you need to find what you like doing. C and the likes of it are used primarily for Software programming. PHP/mySQL and the likes are for Internet programs (it's not quite 'web sites' anymore, with the integration of websites and personalization etc..). I know Java was going strong too, but I'm not sure if it still is. AJAX is 'da bomb' these days, but it's just an 'upgrade' over javscript and php (or javascript and other server-side languages). Do some research online on what's "going strong", or, I would actually recommend checking what those companies that openned up *do* and what they request from their employees... then start studying it. Good luck.. ~moo
thedarkshade Posted December 9, 2007 Author Posted December 9, 2007 If you are doing this primarily to increase your chances of getting a job, I'd spend some time discovering what programming languages are used in those jobs, then study those. Good luck with it all. yeah, it's something like that, and thanks:-)
Cap'n Refsmmat Posted December 9, 2007 Posted December 9, 2007 Python's a good choice as you can use it for pretty much anything. It's actually quite powerful in the language sense -- you can do a lot with very little code -- and incredibly flexible. You could benefit from learning the basics of programming (loops, control structures, functions, objects, etc.) with an easy-to-learn language like Python. If you ever learn a more complex language like C++, that experience will pay off greatly.
insane_alien Posted December 9, 2007 Posted December 9, 2007 yeah, i learnt C++ befor python, it was hellish. python was pretty easy to get to grips with.
thedarkshade Posted December 9, 2007 Author Posted December 9, 2007 Python's a good choice as you can use it for pretty much anything. It's actually quite powerful in the language sense -- you can do a lot with very little code -- and incredibly flexible. You could benefit from learning the basics of programming (loops, control structures, functions, objects, etc.) with an easy-to-learn language like Python. If you ever learn a more complex language like C++, that experience will pay off greatly. And should I follow only python's official tutorial or there is any other tutorial out there that would be more practical for starters (I am one at this:doh: )? I don't know what you call a "mathematical application", but if you're going for Python then the packages "NumPy" and "SciPy" (http://numpy.scipy.org/ and http://www.scipy.org/) might be worth a look. thanks but they seem not to work, because they require Python 2.4 and I got 2.5
Cap'n Refsmmat Posted December 9, 2007 Posted December 9, 2007 And should I follow only python's official tutorial or there is any other tutorial out there that would be more practical for starters (I am one at this:doh: )? I can recommend a good book on the subject (Learning Python by Mark Lutz and David Ascher) but not an online tutorial, as I haven't tried many of those. thanks but they seem not to work, because they require Python 2.4 and I got 2.5 The SciPy download page offers versions of SciPy for both 2.4 and 2.5.
thedarkshade Posted December 9, 2007 Author Posted December 9, 2007 OK, thanks a lot Cap'n Refsmmat. That helped a lot!
MrMongoose Posted December 9, 2007 Posted December 9, 2007 Python is a little simplistic. If you want to write short programs it's fast, if you want to write long programs it's slow. Also, I have heard of python being looked down on as a toy by employers, so whilst it may be adequate for what you do, other ones may look better for your job hunting purposes. I would vehemently back Fortran. If you're interested, there's a pretty decent beginners guide here: http://gershwin.ens.fr/vdaniel/Doc-Locale/Langages-Program-Scientific/Fortran/Tutorial/ The only problem with Fortran is that I have yet to find a compiler for windows, so you'll want to get a fake linux for windows if you dont have (or want) a full os. The bonus here is that if you can do stuff with that you have more skills to add to your CV! Here's the one I use: http://www.cygwin.com/
bascule Posted December 11, 2007 Posted December 11, 2007 Python is a little simplistic. Scheme is simplistic. It's also one of the most powerful languages in existence. A language's simplicity is a strength, not a weakness. C++ is possibly the most complex language in existence. It embeds a templating tool which is in itself a Turing-complete functional language with immutable state. This should not be considered a good thing. C++'s complexity is what lead to (comparatively) simple languages like Java. And the idea of equating Java with simplicity sickens me... If you want to write short programs it's fast, if you want to write long programs it's slow. I'm going to guess what you're trying to say is that in larger programs you will encounter more hot spots which are CPU hot spots, either due to algorithm design or deficiencies in the language interpreter itself. Far and away inefficient algorithms are going to be the main source for hot spots. Simply looking at algorithmic complexity and finding a more clever solution often alleviates hot spots. Beyond that, there are many alternatives. You can always create a C extension and rewrite the hot spots directly in C. This may lead to an attitude of "Why not just write the program entirely in C? Then it will be fast!" The simple answer to this is that writing correct and complex programs in C (or C++) is substantially more complex than writing them in a higher level language like Python. Also, I have heard of python being looked down on as a toy by employers Perhaps that's why it's one of the 3 languages that Google allows and endorses for development, including C++ and Java? Notice PHP isn't on that list... so whilst it may be adequate for what you do, other ones may look better for your job hunting purposes. For the purposes of finding employment I would recommend Python's sister language Ruby. The two share uncanny similarities and for all intents and purposes two flavors of the same language. Ruby is best known for the Ruby on Rails web development framework, which is perhaps the most lucrative language for web developers. Rails salaries run in the $100k+ range. I would vehemently back Fortran. If you're interested, there's a pretty decent beginners guide here Fortran is an abysmally imperative language which lacks the overwhelming majority of modern language features like garbage collection, closures, and higher order functions. On the Paul Graham scale of Blub to Lisp, Fortran is definitely in the extreme Blub category. I spent 5 years doing support work for people using a scientific model written in Fortran, and it was truly depressing. Having worked with what I consider "better" languages (and ones which are perhaps closer to the actual math they're attempting to use) it was really sad to see all sorts of things they didn't want to deal with getting in the way of their research. This includes things like: compiler errors, linker errors, exceeding arbitrary internal limits of the Fortran compiler, memory errors, solving algorithmic complexity problems, and features with conditional support among various Fortran compilers. Languages like O'Caml (and for parallel programming, JoCaml) and Haskell provide speed, simplicity, and easy mapping between the underlying mathematics and the program being developed. Unfortunately it seems the scientific programming community is sticking mostly to Fortran, C, and C++, for reasons of supporting legacy code, as far as I can tell. The only problem with Fortran is that I have yet to find a compiler for windows Try Intel Visual Fortran. It's among the fastest Fortran compilers available for x86, and there's a Windows version: http://www.intel.com/cd/software/products/asmo-na/eng/compilers/220040.htm
MrMongoose Posted December 11, 2007 Posted December 11, 2007 Well, the majority of that post was valid opinion which I disagree with. As for the last link, thanks. Sounds worth a try!
thedarkshade Posted December 11, 2007 Author Posted December 11, 2007 Thanks for all this guys, I'm learning Python right now, and it seems to be quiet good, really. Thanks for everything.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now