Jump to content

Recommended Posts

Posted

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!!!

Posted

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 :D

Posted
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 :D

Thanks a lot MrMongoose, yeah I'm into more scientific stuff.

And sending some links would be just awesome!

Thnx

Posted

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.

Posted

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?

Posted
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!!!:doh:

Posted

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?

Posted
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

Posted
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. :)

Posted

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

Posted
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:-)

Posted

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.

Posted
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

Posted
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.

Posted

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/

Posted
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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.