[personal profile] asterroc
My current list of Summer Projects. Enumerated for convenience, not priority.

  1. Organize photos. My high school photography instructor told me the secret to good photography is to take many photos and only show the best ones. With the advent of digital photography I have perfected the former, but need to work on the latter. My goal is to take the best photos from my anonymyzed Flickr account and upload them into my personally identifiable account (for those of you who know my real name, that Flickr username is first initial last name, no spaces or punctuation).

  2. Record singing - I have enjoyed singing since at least 5th grade, which makes it 20 years now. My singing voice is somewhat soft, but I have good relative pitch. I also play guitar though a bit crappily. My goal here is to record guitar and vocals for a few covers (Indigo Girls, Dar Williams, possibly Sarah McLachlan) and one or two of my own, using Garage Band. I will need to get something to plug in my guitar (it's got a jack) to a USB port ([livejournal.com profile] kelsin, got anything like this I could borrow, or that you could recommend I buy?). I am not adverse to collaborations.

  3. Road trip to Philly - one of the two surviving Galileo telescopes is out of Italy for the first time ever and is on exhibit through Sept 7 at the Franklin Institute. Along with this I may visit nerdcamp.

  4. Visit the crater photography exhibit at CLAMPART in NYC; open through July 6.

  5. Learn programming

  6. Inbox 0 - a lifestyle change in which I treat my email Inbox as a To-Do list, and remove everything I've completed, so that my Inbox stays perpetually close to 0 items.



More items may be added in the future, but generally 3-5 items is a good goal and I achieve 2-3 of them.

Edit: Added programming, I knew I was missing something.

Date: 2009-04-28 04:49 am (UTC)
From: [identity profile] jrtom.livejournal.com
Cool. If you would be willing to share what you come up with on #2, I'd like to hear it. (I'm not averse [sic :) ] to collaborations either, but I can't play guitar at all, and I'm not sure you really need baritone vocals for the covers you're picking. :) )

As for #5, what did you have in mind? As stated, it's about like "do music". :) What kinds of programming, and to what end?

Date: 2009-04-28 12:01 pm (UTC)
From: [identity profile] zandperl.livejournal.com
I have never had a course in programming, and in my undergraduate research I performed a minimal amount of programming. Then when I went to grad school they assumed I already knew how to program and threw me into a numerical methods course, as well as two research projects that required programming skills. I taught myself enough of the commands to hobble along, but I don't have a coherent framework or understanding. Some day I want to go back to grad school, possibly in astro or phys, and I will need to know how to program to do so.

My goal is to learn the equivalent of a Programming 101 course, focusing on concepts in one particular language (probably C++ b/c that's used in astro at times and my co-conspirator [livejournal.com profile] jethereal is interested in it as well). (I also reason that concepts I learn in one language will carry over to another one, but that it's important to be able to DO one language.) I want to learn procedural programming (if/then/for loops), pulling in/writing to data tables, images, and graphs, and GUIs. I'm not sure if object-oriented will be as useful, but I figure I should at least learn what it is.

I fully expect that some of my stated goals above are contradictory to each other. If so, I'd be interested to know which.

Date: 2009-04-28 03:00 pm (UTC)
From: [identity profile] seekingferret.livejournal.com
I suspect more people in the sciences are at this stage of programming knowledge than you think. It's about where I am. I can do things in Matlab and C and C++ and Basic, have even done a few reasonably sophisticated robotics projects by teaching myself just enough to make it work (Man, my laser galvo scanner code is ridiculous), but I have no consistent framework for understanding what I'm doing.

Date: 2009-04-28 03:13 pm (UTC)
From: [identity profile] zandperl.livejournal.com
I think most of my peers had taught themselves programming, but they did it years before I did so and thus didn't have the problems that I had.

And regardless of what other people have done or not done, what's important is what works for me. What I did last time did not work for me. I know from past experience I learn well by following the traditional steps of taking assignments sequentially, so I wish to do so this summer to help me learn programming better than the mess I cobbled together before.

Date: 2009-04-28 03:53 pm (UTC)
From: [identity profile] jrtom.livejournal.com
So, a few things.

First, before I forget: I'll be visiting NY and possibly points Bostonian on Saturday and Sunday. I don't know where you live, so I don't know whether it would be feasible to meet up, but email me if you'd like to see what might be manageable.

Back to your original topic...

If you want to go to grad school in astro/phys, then you should talk to my friend [livejournal.com profile] amnesiadust, who's doing an astro post-doc at Yale, and who's done a fair amount of programming in the context of astrophysics. He'd be a good person to tell you what kinds of programming skills would be most useful in that context. If you're interested, I'll put you in touch with him. (I'll be seeing him this weekend, too.)

About languages:
* Personally I wouldn't start with C++. It's a very complex language and it's easy to go off the deep end. I've been a software engineer for a number of years now and C++ still scares me somewhat. I prefer Java and Python; I can expound if you're interested.
* There is definitely some conceptual transfer from one language to another, but not always as much as you might expect. Functional, procedural, and object-oriented languages (not to mention weirder things like Prolog) present very different ways of solving problems. One of the reasons why C++ is hairy is that it mixes together procedural and object-oriented concepts in a fairly confusing mish-mash.
* Object-orientation is a good thing to at least get a basic handle on, as it's a very common organizing metaphor for programming these days.
* For the specific kinds of things that you want to do, Java is actually a pretty good choice: it's got good built-in support for doing all of those things, and its documentation is very good.

Anyway, hope this is useful matter for reflection.

Date: 2009-04-28 05:50 pm (UTC)
From: [identity profile] zandperl.livejournal.com
Thanks for the offer to meet, but this weekend is particularly busy for me what with union duties on top of end-of-semester panic. Hopefully another time.

Thank you for the offer of putting me in contact with an astronomer, but I do not think it will be necessary since I have a number of friends with PhDs in astronomy, some of whom I met while working on my Master's and others from before. I am also on good terms with some of the faculty where I went to grad school the first time, and I hope to ask them about it as well.

As for which language, I would really like IDL since it seems to be the wave of the future in astrophysics, but I would have to pay for a compiler as would [livejournal.com profile] jetheral who will be studying with me. He recommended Python to me, but it's my understanding that no one uses Python in astrophysics - everyone older uses C or Fortran, and everyone younger is transitioning from those to IDL. I will be asking around more to try and confirm or correct this impression of mine though.

What does "functional language" mean?

Date: 2009-04-28 06:03 pm (UTC)
From: [identity profile] jrtom.livejournal.com
Meeting: it's short notice, not to worry. I don't expect to be out that way again any time soon, but I wouldn't have expected you to rearrange your life just to meet some semi-random Person From The Internet, either. :) I figured I'd mention it just in case.

I assumed that you knew a number of astronomers, given your background and interests; I mentioned [livejournal.com profile] amnesiadust because I get the impression that he's done more on the programming side than most in that field do (somewhat to his dismay at times). Up to you.

I don't know anything about IDL, so I can't usefully comment on it.

Something to keep in mind, though: in my experience, you can use whatever language you want as long as it's supported by your environment and you're the one that's writing and maintaining the code.

Functional programming is a kind of conceptual approach that solves programming tasks via stateless function invocations, as mathematical functions do. The Wikipedia article has a decent overview.

Date: 2009-04-29 12:37 am (UTC)
From: [identity profile] sildra.livejournal.com
The reason a lot of astronomers and physicists use IDL is because 1) it has a lot of plotting and other numerical visualization stuff built in, and 2) it's vectorized, i.e., it's designed around working with arrays. This means it's much easier/faster to do calculations relating to a large number of objects (simulated physical objects, not "objects" of object-oriented programming), or a large number of points in some coordinate-space, than it would be in other languages. The people I know who use it range from astrophysicists to... umm... neurophysicists.

Personally, I've only ever used it for a math methods class in undergrad (we had a "lab" portion of the class that was in IDL). No one runs equipment using IDL, so it isn't a universal language for all physicists. For equipment, people typically use C (well, usually people use Labview, but that's a separate issue...), but that only matters to the type of astrophysicist who build detectors.

The only situation in which I've ever encountered Python was a professor who used it to make toy examples for class in undergrad. I've never heard of someone actually using it for real simulations, though.

If there's legacy software, it's in C or Fortran (if it's actually old, it's in Fortran). Those are nice because they're relatively fast even if you have a complicated program (faster than IDL, I think, unless you're doing one of the things IDL is specifically built for). Brand new stuff that doesn't have to worry about complicated calculations over large arrays is often done in Matlab (Matlab is to C as IDL is to Fortran insofar as they have the same syntax but have been reworked specifically for scientific applications and graphing data; Matlab in particular has nice GUI interfaces). Matlab has nice things like built-in programs for calculating Fourier transforms or correlations. It's slow, though, so it wouldn't be good for a real calculation done over a large parameter space.

I've never heard of a physicist using Java.

Date: 2009-04-30 07:57 pm (UTC)
From: [identity profile] kelsin.livejournal.com
Others have already answered this pretty nicely but it is a good idea to start with a "simple" language first. Learning programming languages is like real languages. The more you know the easier it becomes. They are all VERY similar and come in "families" based on how they handle certain things (Functional, Lazy, Strict, Static, Compiled, Interpreted, Object Oriented, Aspect Oriented) and many not only blur the lines of these definitions but have libraries or add ons that try to implement things the language doesn't do well on top of the base language.

Enough of the stupid talk: learning Python is on the right track. Personally I hate Python for many reasons and think it's a stupid language, but with that being said many people like it and it is a "simple" language to learn in some aspects. I won't go into detail here, I'll blab even more than I'm doing now. My vote (as I said below in another comment) is to learn Ruby. Simple, no start up time (installed on Macs) and very clean. Plenty of third party libraries so writing something useful will be possible.

Once you learn one, learning others is very easy.

Profile

asterroc

April 2017

S M T W T F S
      1
2345678
9101112131415
16171819202122
232425 26272829
30      

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 24th, 2025 07:36 pm
Powered by Dreamwidth Studios