I grew up in a house parented by programmers. Yes, both my parents went to get Bachelor’s degrees in physics and math and in programming (computational sciences) in Tbilisi, Georgia. And I think my father went further ahead with his education, but I still have to figure out exactly to which degree. Perhaps he only partially completed the next degree, I am not sure.
I remember that as a child I enjoyed having computers at home from quite an early age, knew how to use DOS, HTML (making websites), VISUAL BASIC (make a circle move across the screen), INTERNET (hello email, chats, and online communities), DELPHI (educational project contribution) etc., how to use different types of operating systems, including really old Macs, Windows (Pentiums), and DOS, and especially how to navigate to my favorite games through them (I spent too much time playing games one summer, and ended up the next semester with glasses !). I also remember that I did not find the people my parents had as coworkers nor the environment where they worked as particularly fun. So I wowed from the early age not to be like my parents, and tried very hard to avoid any kind of programming up till my Master’s degree.
Well, it turned out that my parents were visionaries in the choice of their profession, because even though I chose biology and astronomy, at the end, I had to become also a programmer, but now had a “late” start. I had the opportunity besides the minor classes or homeworks here and there to apply programming skills to real research projects starting from my Master’s degree in Physics, when I worked on a thesis with Dr. Aaron Romanowsky at the San José State University.
Also, I forgot to mention that I avoided dating programmers also, but actually my husband, James Michael Stone, was a brilliant programmer in disguise of an artist 😀 But that’s another story! James is a great artist and a great programmer, and he explains very well the coding process, and problem-solving in coding. The atmosphere can be quite discouraging for a woman programmer, and I am grateful that my husband is always so encouraging, and that kept me going and still does, so grateful for that.
Of course, given the fact that I grew up in this environment, and that I enjoy math and analytical thinking, programming does not come uneasy for me. I also noticed some challenges for women who code, such as various biases. I also noted as I was learning to code that some people cannot or choose not to explain the programming concepts well (obfuscate), even though they are simple. By sharing my code here, I hope to show that anyone can code, it is not “soo” hard. It’s okay to stumble in coding. There are many ways and approaches to solve coding problems, etc. etc. You don’t need to code right away the fastest way, sometimes the way that works is better than spending hours on fractionally faster code. I really wish to encourage people to code, and to believe in themselves to be able to do it. Actually, after all, it is a useful skill in many instances, and especially in maths and science, coding makes sometimes our life easier, by doing for example complex or repetitive calculations faster. Coding is a skill, it is a tool, and you can master it too. In some way it is like learning a new language. Finally, please choose to pay attention on how to “document”, i.e. “translate into readable English words” your code. I can’t emphasize enough the importance of good documentation (and I still have to do what I preach, of course). (P.S. Also remember to be kind in online forums.)
I am currently finishing up my graduate studies, and am seeking a postdoctoral position in astronomy research. It’s been a long time on my mind to share somewhere my code, so I start here. These are real-time pieces of code that I write for my own projects. So the documentation might be minimal. If I have time, maybe I will expand/explain more. Plus, it is an addition to my “online CV”.
I am an observational astronomer, but since having small children, wish to also get involved in coding-based research projects, so that I don’t have to travel as much, and can spend more time with my children. I understand that some people prefer a degree in programming in order to get involved in their projects, and that’s okay, but in case there are some who share my attitude that I can learn on the fly whatever is missing, then you can also see what example bits I have worked on (till) now.
I hope it will be useful to others, who are working on coding some tasks for their research projects.
I mostly code in python, and try to use astropy when possible 😀
I don’t really change anything to “improve” how my code looks like for others. I just have time now to copy/paste the code as is.
If you use my code though, please acknowledge with something like “This project benefited from the code by Maria Babakhanyan Stone on astronomy.go website”. And don’t forget to acknowledge any packages you use, e.g. astropy, etc.
P.S. If you have some advice for me, on how it is best to showcase your coding projects in astronomy community, please let me know via email ([email protected]).
Example 1 – adding Header keywords into FITS files – Here I also want to note that I like using visual techniques to learn. So as I code, sometimes I visualize things in order to check what’s happening (like the data table, or “print” command). In this case, I checked the header to see if the new keywords were added correctly and in a correct place, and then whether the new history comment was also incorporated at the end.
P.P.S. I use “i01, i02, i03 , … ” at the end of the file name to represent iterations of the same code (I also apply this system in other places, such as drafting manuscripts).