Sad realization

Jun 08 2009 Published by under Uncategorized

I had a great time at the conference last week and learned a lot, but I had a realization about something I have been successfully ignoring for a little while. I need to learn some programming. I don't know when the day will magically get longer so I will have the time, but I need to find a way. My field is moving in a way that I really have no choice if I want to continue to be competitive. I was hoping that I could leave that to students or technicians, but I know that I won't feel comfortable with the meal I am served unless I understand what goes into the recipe. It's why I don't eat hotdogs.

Now I need to do some poking and figure out whether to start with Perl or Python. I wonder if I should shave my head now so I don't end up pulling all of my hair out.

19 responses so far

  • Eugenie says:

    python or C.

  • Anonymous says:

    I will pray for you. I did Perl and it damn near killed me. A certain twitch pops up when someone says the letter R.

  • Nat Blair says:

    If you've never done any programming, I'd suggest Python. There's a good base for sequence analysis etc. And if you're not already used to a "free form" style/syntax, then Python's imposition of such won't grate on you terribly. I'm teaching it to myself right now, and it's painful, but doable. I'd definitely not recommend C as a first language. You may want to learn about it later, but not at this stage. Perl has a lot of bio related stuff as well, but I haven't poked much around in it. Now, how much programming have you actually done?

  • Prof-like Substance says:

    Now, how much programming have you actually done?"Hello world."

  • Nat Blair says:

    Yeah, go Python. I'd suggest "Learning Python" from the O'Reilly series as a place to start. It might assume a bit more familiarity with programming in general, but you gotta start somewhere.There are three things I've done to teach myself programming languages:1) In the beginning, just type in all the example programs presented in whatever book you're using. After testing them as shown, then I play around with them, changing one part at a time, adding new things, and making it more complex.2) Beyond "Hello, World" the next program I always write is to make a button that when pressed, asks you to input your name. Then it prints, "NAME, you are a motherf*cking programming master!" I always get a kick out of this and it's not as trivial as you might think. Most programs wait for input from the user, do something to it, and output it somehow. 3) Then I try to write a program that actually has some use. Without that there's no real motivation to continue. So I think of a simple task that I might do using the mouse, and do it with a program. Example: randomly select a pdf from my "to look over" folder of pdfs, and open it. Whenever I have a moment that I want to spend looking over a paper with more detail, I just start that program.

  • qaz says:

    Don't start with Perl. Perl is a powerful language, but is a terrible way to learn to program. I suggest starting with Python. It's clean and easy and (most importantly) clear. If you can do python, you can do any of the other languages (C, Matlab, Perl, etc. etc. etc.)

  • Prof-like Substance says:

    Sweet. Python sounds more badass anyway.

  • Nat Blair says:

    Hell, you can't go wrong with a language named after Monty Python, right?Now go away, or I will taunt you a second time!

  • Prof-like Substance says:

    If I told people I was spending the summer learning Perl better I feel like they would think I just got the full series of "Golden Girls" DVDs.

  • Odyssey says:

    Bah! Python is for wusses. Learn a real badass programming language - FORTRAN!!!

  • Anonymous says:

    Consider trying Ruby- much easier to learn than Perl and a more intuitive syntax and construction.

  • Anonymous says:

    I am constantly amazed at the brilliant people I meet who cannot program. Programming is like statistics -- we all simply need to understand a little to be scientists, and your education has failed you by not teaching you. Try Python. I agree that Perl is a beautiful thing, but Python is much clearer and the tutorial online at the python website is great. Also I recommend the "cookbook" programming series. They give you little snippets that you can reuse and which will teach you a lot while you are actually getting the programming you need done.Good luck!

  • Anonymous says:

    This is a tough call because think of all the other things you can do with your time. Been thinking about Perl because that's what all my colleagues use. I've opted to just find the right people with whom I can collaborate. It is amazing how much you can do with Excel, Access, and your alignment program of choice. I always forget everything I learn. Can't do a t-test in SAS anymore, can't even import data into R, etc. Good luck.

  • Toaster Sunshine says:

    I beat my head against Perl for a couple months, and then I decided to try Python during a slow afternoon in the lab. I taught myself more functional Python in 3h that I'd managed with Perl in 3 months.This tutorial was well-written and informative for me. Perhaps it can also be of use to you.

  • Parechoase says:

    I would also suggest python. It helps to have very specific problems that you want to solve. Also, modifying the scripts of others can be very productive. http://www.diveintopython.org/toc/index.html

  • Prof-like Substance says:

    I was leaning towards python anyway, but I think this settles it. I want to learn something that more than a few people use (Odyssey, stop making words up and calling them a programming language) because I don't plan on reinventing the wheel. I just want to build on and customize what is already out there. I thought I could go the route of hiring / working with people who can do this for me, but in the end I want to be able to understand what they are doing. I'll see how long my interest in this last, but I've least bought a couple books and plan to get the whole lab involved so we keep each other motivated.

  • systems biologist says:

    Perl has a lot of bioinformatics modules (bioperl), there is a very good intro perl book "Beginning perl for bioinformatics", which teaches almost all of the basics and also helps you learn how to use basic bioinformatics tools. Whatever you do, don't start with R.

  • tideliar says:

    Got me off my arse with this post. I downloaded the Python Shell and started...

Leave a Reply