* Ruby and Python are good languages that you can do a lot with.
* Eventually, knowing some C would be a good idea.
* Run Linux as your desktop.
* Ruby and Python are good languages that you can do a lot with.
* Eventually, knowing some C would be a good idea.
* Run Linux as your desktop.
> * Get involved with open source.
Say, by helping improve the code of open source apps, etc?
And if you had to choose between directing my attention towards Ruby or Python...?
I'm currently in desperate need of a new laptop. Can you recommend any basic requirements for programming? I have a rough idea - something along the lines of lots of RAM and not much else - but getting it from the horses mouth (no offense (: ) would be ideal.
Thanks again!
You say you're studying science: perhaps NumPy or Sage (http://www.sagemath.org/) would be useful? (I don't know what the Ruby equivalents of these are or if they even have them).
The same is true for your OS - if the people around you are using OSX (for example) then you should too. Make an actual "decision" when you identify what it is that your current choice doesn't do that some other OS would do. For now the availability of help if you need it outweighs everything else.
I think I'll go with Ruby too. I had a look around both sites (Ruby's and Python's), and decided superficially that I liked Ruby better, as I've nothing else to go on. Plus, Ruby's online trial thingy (http://tryruby.org/) is pretty cool. :)
As far as programming for science goes, I'm not sure tbh. The main program I use at uni is ChemBioOffice (by Cambridgesoft), but I'm not sure what that's programmed in. Any ideas?
Can you recommend any particularly good ways of learning a language? There seems to be some debate over rote learning, then programming vs. practical learning. Any good tutorials etc that you know of?
Thanks to both of you!
No idea about that package, but there is BioPython (http://biopython.org) so that's a possibility.
My usual advice for learning a language is to get the "plumbing" first. You don't even need to understand exactly what's happening at this stage, but learn to say parse command line arguments, read and write a disk file, connect to a database, open or listen on a socket, that sort of thing. You can just cut and paste code to do this at this stage. This gives you a framework for "doing stuff". Then it's just a matter of identifying a problem and gradually working your way towards a solution. E.g. if you wanted to read a file, do some computation, then store the result, you could concentrate on the interesting part. You'll learn how the plumbing actually works by osmosis as you go along.
If I could give some advice to my younger self, and he was programming in a vaccuum, I'd have said start with ML.
davidw above mentioned getting involved with open source - have you got any suggestions for how to get stuck in?
Thanks! :)
P.S. Do you think it's necessary to have a presence on the web, i.e. through a blog, in order to make connections with other kindly programmers? I'm also thinking that as I'm starting from scratch, I could record my progress and potentially help other baby hackers.
Most of the popular languages have a beginners mailing list, so just join that, ask questions if you're stuck, answer questions as you learn more. To "get involved" in open source, solve one of your own problems, tidy up the code, upload it to GitHub or wherever and announce it on the list.
Well, if you can't really code right now, that might not be possible. Maybe find something that needs doing and figure out how to do it, as a learning challenge, or help with documentation...
Laptop? I have a Dell. You can get them with Ubuntu:
http://www.dell.com/us/en/home/notebooks/laptop-inspiron-154...
You need memory and screen real-estate, IMO.
I prefer Ruby these days, but I've used Python too. They're both pretty good.