Hi! We're a trio of PhD candidates at MIT’s Computer Science and Artificial Intelligence Laboratory (@MIT_CSAIL), the largest interdepartmental research lab at MIT and the home of people who do things like develop robotic fish, predict Twitter trends and invent the World Wide Web.

We spend much of our days coding, writing papers, getting papers rejected, re-submitting them and asking more nicely this time, answering questions on Quora, explaining Hoare logic with Ryan Gosling pics, and getting lost in a building that looks like what would happen if Dr. Seuss art-directed the movie “Labyrinth."

Seeing as it’s Computer Science Education Week, we thought it’d be a good time to share some of our experiences in academia and life.

Feel free to ask us questions about (almost) anything, including but not limited to:

  • what it's like to be at MIT
  • why computer science is awesome
  • what we study all day
  • how we got into programming
  • what it's like to be women in computer science
  • why we think it's so crucial to get kids, and especially girls, excited about coding!

Here’s a bit about each of us with relevant links, Twitter handles, etc.:

Elena (reddit: roboticwrestler, Twitter @roboticwrestler)

Jean (reddit: jeanqasaur, Twitter @jeanqasaur)

Neha (reddit: ilar769, Twitter @neha)

Ask away!

Disclaimer: we are by no means speaking for MIT or CSAIL in an official capacity! Our aim is merely to talk about our experiences as graduate students, researchers, life-livers, etc.

Proof: http://imgur.com/19l7tft

Let's go! http://imgur.com/gallery/2b7EFcG

FYI we're all posting from ilar769 now because the others couldn't answer.

Thanks everyone for all your amazing questions and helping us get to the front page of reddit! This was great!

[drops mic]

Comments: 4661 • Responses: 71  • Date: 

accas51244 karma

My 11 year old daughter has recently taken an interest in coding and has asked me to help her find the resources to do it. However, I have ZERO knowledge in this area and honestly have no idea how to help her, or even point her in the right direction. What do you guys suggest? How can I get her involved in coding and help her to learn and understand it - and more importantly, KEEP HER INTERESTED IN IT. Thank you in advance for any insight you can offer.

ilar769772 karma

That's amazing! It's great that you are encouraging her. I definitely recommend groups like Pyladies and Girls Who Code.

Edited to explain more about why I recommend those groups over (but not instead of!) gender-neutral ones or online resources: First of all, you should try everything! But I personally have found groups like Pyladies awesome because they specifically focus on mentorship, and I bet if there's one in your area they would love to help your 11 year old daughter. Face-to-face learning in a warm environment can help someone stay committed.

show_time_synergy771 karma

Why did you feel the need to list your gender in your title?

ilar7691136 karma

JEAN: Only 20% of computer science PhD students are women. Often when I meet new people they are surprised they are meeting a female computer scientist at all and have many questions. We wanted to give everyone the opportunity to ask questions to female computer scientists (including questions about being women in a male-dominated field).

ilar769322 karma

Neha: I actually don't feel super happy about that, but we are (in part) doing this AMA because we're women in CS. We want to present positive examples of women doing computer science research in a world where there just aren't that many.

Intrexa-3 karma

Coding culture is extremely hostile to women in the field. Everyones attitude is stacked against them, from classmates to professors. There are a lot of effort to try and fix this. In 2011, only 12% of bachelors were awarded to females. Clearly, there is disparity, and by making the gender of the OP's known, it could lead to inspiring young women to ask specific questions on how they dealt with these difficulties men don't face in this profession.

TASK_DEAD20 karma

Coding culture is extremely hostile to women in the field.

Bullshit, where do you even get that nonsense? Low enrollment does not mean it is hostile.

ilar76916 karma

Neha: I think it's sometimes hostile.

drgurk447 karma

Would you do it again? (I am asking because I am 45 years old, stuck in my job as a banker, handicapped child and nearing burn out).

ilar769341 karma

JEAN: Yes without a doubt, but I understand it's not for everyone. A PhD can be a lonely experience and there is high opportunity cost: there are many things you could be doing instead that will make you more money. In addition, the only additional thing a PhD enables you to do (besides spend a few years enriching yourself) is become a professor or a researcher. It's probably not the best idea to begin a PhD burned out--you're going to need your emotional reserves. (I have more here on reasons to do a PhD: http://jxyzabc.blogspot.com/2011/12/reasons-to-pursue-phd.html)

A masters program may be a better fit. It is a much lower time commitment and much lower emotional cost for someone exploring new opportunities. There are also many online courses through MOOCs that can help you explore your other interests in a lightweight way without too much commitment. You may also want to check out something like Hacker School: https://www.hackerschool.com/

ilar76985 karma

Elena: Absolutely. And, as lostgateways said, hang in there!

igorw416 karma

What are your thoughts on journal publishers restricting access to academic research papers?

ilar769565 karma

I think it's terrible, and I'm encouraged that we're moving away from restricted access. I put all my papers online.

smartass627 karma

Hopefully only after the 6 or 12 month embargo if it's not open access... Even if you don't put the final form of the paper online, you can still run into copyright issues if you immediately post the paper online after it is accepted.

EDIT: Not sure if CS typically publish a lot in IEEE, but they recently changed their policy regarding posting your work online. You are allowed to post the preprint copy immediately, just not the final published version. http://www.ieee.org/publications_standards/publications/rights/paperversionpolicy.html

wilandlane17 karma

I was surprised to see this too. Are you legally allowed to distribute your own copy? I was under the impression that your work became property of the publisher once you agreed to have it printed, but I am guilty of not reading the fine print.

ilar76934 karma

Neha: Hmmm. Perhaps in our conferences we are just a bit more lax about this. I'll look into it.

Honeycone353 karma

Are you in any way treated differently from the male computer scientists? Both positives and negatives.

ilar769691 karma

JEAN: Yes. Especially when I was younger, I noticed that people did not expect me to know very much. While some of my male friends could walk into a room and have people listen to their technical ideas by default, I had to do some amount of proving myself. Now that I have more credentials it's become easier because rather than having to do this whole song-and-dance to demonstrate my technical credibility, I can say what I've done in the past. This can be exhausting--and certainly made me doubt myself more when I was younger.

An advantage of being one of the very few women in a male-dominated field is that people remember me. At some of our conferences, there are hundreds of men and less than 10 women. People are more likely to notice me and remember my name than someone who is just another guy in a button-down shirt and glasses. I feel like this has given me a good platform for spreading my technical ideas.

ilar769426 karma

Neha: I don't think any two people are ever treated the "same", male or female -- we all have inherent biases that come out in different ways. An environment that is predominantly male feels different than one that is more balanced. I found I prefer the latter, but sadly don't have it often.

AndyLC287 karma

Who were your role models growing up to enter the field you are in now?

ilar769486 karma

My mom. She's a doctor, not a computer scientist, but she was pretty bad-ass: she moved to the US from India alone in her twenties with no resources besides an MD and a residency job, and eventually brought my dad over and now has a successful pediatric practice.

Edited to say she had like, $7 to her name. It wasn't really all that 1% ish.

Edited again to add a few folks:

  • My dad, who first bought us a computer and who now, in his 60s and with zero CS education, is learning a TON about video editing, P2P, and more. His growth astounds me.
  • Amazing women like Barbara Liskov, a professor at MIT who is on my thesis committee (!) and also one of the first women in the US to get her PhD in computer science, and a Turing Award winner.

ilar769275 karma

Elena: That's awesome, Neha! :) Similarly, my role model was my dad. He is an engineer (in industry). He's always learning new things, and going to talks at local universities. He used to take me along with him and always encouraged me to come up with a good question for the speaker. :)

ilar769185 karma

JEAN: I have a Quora post on my role models here: http://www.quora.com/Who-are-some-examples-of-older-superstar-female-engineers-Post-40

My mom was a computer science professor and is now a software engineer. She used to debug my code and solve the calculus limits I couldn't solve. I was always impressed that she could so effortlessly do tasks that seemed difficult to me without even talking about her work most of the time.

I also had a couple of female professors in undergrad who showed me what life could be like if I continued in the field. They also taught me about things like Impostor Syndrome and how to fit in in a male-dominated field. I have really appreciated the advice, support, and championing I've gotten from them.

Whenever I meet a strong woman, I try to learn from her. I have lots of female friends I've learned a lot from over the years, starting from when I was very young. Growing up for instance I was good friends with Nancy Hua, who taught me a lot about confidence and ambition: http://www.femalefounderstories.com/nancy-hua.html

silkmoth_218 karma

How much did grades matter to get to where you are now?

ilar769330 karma

I think grades matter a lot to get into grad school, as in they are usually necessary but not sufficient. That said, there are lots of exceptions! MIT is definitely the type of place which cares more about what you do than your grades.

One nice thing is that MIT EECS doesn't even take GRE scores. - neha

mamaBiskothu104 karma

I feel like you're undermining how hard it is to get into these programs. Grades don't matter only if you have really good grades I guess? For example, I'd be very curious if you could give us an idea of what set you apart other than grades that enabled you to get into this program. This would also motivate people in the right direction!

ilar769155 karma

Neha: I don't mean to say grades aren't important -- you're right, if you took a survey, most of the people in top programs will have great grades.

BUT I think you can get around bad grades by doing something really cool. Different professors care about different things; for example some will care WAY more about your projects/open source code than your grades.

Triapod207 karma

What tools do you use to organize your daily life?

ilar769255 karma

Neha: deft for emacs, google calendar, gmail multiple inboxes with a weird starring-system, and evernote.

ilar769216 karma

Elena: Evernote is great for me, and also google calendars. I think the best way to organize my life is to make sure there are uninterrupted periods of time to do work. The rest just sorts itself out, mostly.

ilar769104 karma

JEAN: I am obsessed with Google Calendar. I use it for keeping track of appointments, tasks, and for organizing my time. I even use it to text reminders to myself to water my plants.

I have a notebook (Postalco, totally in love with it) that I use for to-do lists for the week and day. (Some weeks I am more on top of it with to-do lists than others.) I also use Todoists (mostly around paper deadline times) and Google Tasks (often for administrative sorts of things).

Like everyone else, I also use my email inbox as somewhat of a task list. I aim for zero inbox but I think I average around 25.

nerdforsure168 karma

How did you get into programming? What do you hope to do after you complete the program? What is it like to be a woman in the computer science field?

And thank you for doing this AMA! As a girl in her 20's who recently picked up programming, I am excited to see your responses! :)

ilar769200 karma

JEAN: Both my parents are computer scientists and we've had a computer since 1994. I was an only child so I played with the computer a lot. I didn't have that many games so I started making my own user interfaces in Visual Basic. When the Internet came about, I was really excited to talk to other people in the world because I was pretty bored. In middle school I was really into Tamagotchis and had a website dedicated to them. The social (or faux-social) aspects of computing were really compelling to me.

I hope to be a professor after I finish my Ph.D.

While I enjoy being a person in computing, it gets kind of lonely being a woman in computing. The experience of women in computing is different than the experience of men because of the way the world interacts with us, and so I find that there are few other people who can relate to my experience of the world. It's great to find other women in computing (or similar computational/male-dominated fields) with whom I hit it off. Some of these women are my best friends. (Some of the men in computing are also my best friends.)

Keep up the programming! It's an incredibly empowering skill. :)

where_what_now50 karma

As a man I too am saddened by how I can't relate to women about what I do for a living.

A different kind of problem of course but I hope more women continue to take an interest in this line of work.

ilar76965 karma

Neha: It just gets worse the more specialized you get. I have trouble talking to non-systems people!

ilar769109 karma

Elena: How did I get into programming? My dad sat me down with a student version of Matlab and taught me how to filter sound files from my favorite game. I hope to be a college professor in CS somewhere, after I finish my PhD program. I'm so happy you're getting into programming as well!

ilar76987 karma

Neha: My first brush with programming was my dad (a doctor, not a programmer) typing basic into our Tandy. I wasn't really interested. Eventually I took a class on Hypercard. Still wasn't interested.

I loved math, and didn't ever really intend to study CS until college. I actually don't plan on being a professor. I'd like to build the tools and infrastructure that enables the next set of amateur programmers to build scalable, correct, awesome things.

ilar76928 karma

Elena: @Neha: I want to hear more about those tools and infrastructure! Seems very relevant to my own research goals. :)

Adrock28 karma

Interestingly, all three of them got into it from their parents. I wonder if this is similar for other females. A lot of men I know started on their own

ilar7694 karma

Neha: My parents actually didn't encourage me to go into computer science at all. They REALLY wanted me to be a doctor and were very disappointed that I didn't take the MCAT.

ilar7694 karma

JEAN: Good point. I have thought about this a lot and it seems like given the discrimination that women face in trying to pursue something like computer science, there needs to be a balancing factor (parents who are already in the field) to get the women to actually stay. In an ideal world men and women would begin on more of a level playing field.

igorw151 karma

What is your favourite computer science paper, and why?

ilar769203 karma

JEAN: I have favorite computer science papers for many domains. A favorite favorite is Tony Hoare's "An Axiomatic Basis for Computer Programming," a seminal paper in software verification, the subarea of computer science that studies how to mathematically prove programs correct. I give a talk here that makes heavy use of Ryan Gosling to communicate the main ideas: https://www.hakkalabs.co/articles/axiomatic-basis-computer-programming-c-r-hoare#!

ilar76971 karma

Neha: Oh man I want to say Paxos but is that a cliche?

drincruz134 karma

I am a male programmer. I, too, would like to see more females in engineering. You ladies are doing a wonderful job in being role models for young girls interested in engineering, how do you think guys can help out?

cheers!

Edit: removed a comma

ilar76982 karma

JEAN: Great question! Men can be great role models for women too if they make themselves available and relatable. Growing up, some of my role models were men too--men who were doing things I found interesting and who I thought were nice people. Several of my mentors to whom I turn for both professional and personal advice are men. Part of it involved me seeking them out because of common research interests or something like that, but they also made themselves more relatable by opening up about their own lives and how they saw me as being similar to them. I think if you are visible to younger women and encourage, support, and champion them, you could make a big difference in their lives too.

alwayslurkeduntilnow108 karma

Hi. I am a teacher of Computer Science at a High School in the UK. I am trying to attract more pupils to the subject, especially girls (currently a male dominated clasd). What tips could you give me to spark their interests when it comes to recruitment?

ilar769177 karma

Elena: I never took a CS class in high school. It was AP CS, in Java, and just seemed incredibly irrelevant to me. I was coding in Matlab and C, doing pattern recognition and signal processing on a dataset of brainwaves posted by NIPS. I cared about the brainwaves, and the best way to extract information from them. I didn't care about programming itself. This is a long-winded way of saying that I think we can bring in folks (high school girls, for example) by showing them how programming is a critical piece of something bigger that they may want to create!

ilar76985 karma

JEAN: Glad you are asking this question! Something I feel strongly is that teachers should use examples in class that interest both genders. Many of the examples that had to do with the more interesting math in my classes talked about things like baseball and poker. I really don't care about either and for a long time I just thought maybe probability theory wasn't my thing.

Here are a couple of projects/units that I've seen that I think appeal to young girls: - In middle school, we had this "bakers' dozen" project in Precalculus class during which we got into groups and pretended to run bakeries, calculating and predicting the kinds of ingredients we would need and the profits we would make. - When my sister was in elementary school, they had a budgeting unit where they drew different kinds of life paths from a hat and then had to make budgets based on that. Projects like this that are relevant to life but also involve math really interest girls--and any socially focused child.

ayushidalmia69 karma

Hello, I am a female grad student and the one thing I find myself struggling is that there is so much information to consume. There is so much to share.

Read papers, follow twitter, follow conferences, Quora, manage blog, carry out research, RAship duties, TAship duties, family and my health. I find myself running and do not understand what to choose and how to manage things! I am sure you must have gone through this too. How did you learn to balance things?

ilar76974 karma

JEAN: If you list them all out, this does sound like quite a lot! The solution is the aggressively prioritize. At some point, I decided my health was top priority, so I never skip meals or exercise. (Although sleep is less important to me.) Then it's a matter of fitting everything else around it. Having some semblance of a regular schedule really helps impose order. During the work hours, research takes top priority. When I've had to TA, I sometimes put an upper bound on the number of hours I was willing to spend on it and forced myself to stop instead of being the best possible TA. When I was a younger student, I prioritized reading papers more, but these days I mostly spend time executing rather than trying to figure out what the rest of the world is doing. I think that is important for diving deep into some topic. Inspired by Donald Knuth's permanent email sabbatical (http://www-cs-faculty.stanford.edu/~uno/email.html), for a while I tried to work without email to see what it would be like. It turned out life goes on without following Twitter, Quora, etc. (And though it might seem like I am constantly blogging and doing things on the internet, a lot of this happens in bursts when inspiration strikes. I mostly do it as a break and I really don't prioritize it over other things.)

I also find having rules helps. I block Twitter and Facebook on my work computer between the hours of 9am and 7pm. I get my email delivered to my inbox twice a day, at 12:30pm and 5:30pm. I also have life rules about how I do plans: I really try not to cancel plans with friends once I make them, so I'll only make plans if I am fairly certain I can follow through, and sometimes I'll make plans on purpose to force myself to leave the office at a certain time.

As for figuring out what's important, meditation helps. Also sometimes waiting to do something, rather than rushing to do something out of anxiety, can help you figure out what's actually important versus what feels important in the moment.

ilar76966 karma

Neha: Oh man I know exactly how you feel. At some point Twitter became impossible.

I like to switch back and forth between thinking deep and wide. It's important to take time to really dig into a problem, and when you do that, it's best not to worry about the river of information. When you come out because you're spent, then you can handle the other stuff.

Prioritize the most important thing you should be doing instead of the most immediate. I think Cal Newport has a pretty good take on this in his blog (also a former CSAIL PhD student!)

DizzyNW59 karma

Do I need an undergraduate degree in Computer Science to pursue a career or a graduate degree in Computer Science?

ilar76972 karma

Neha: You don't need one. But if you don't it's helpful to have a background in something like math or physics. You just need to convince the admissions committee that you're capable of doing good CS research.

Sorte51 karma

Jean,

After your work on Jeeves do you think that privacy and security features will be a requirement for all programming languages in the future, or that these features will still primarily remain in the purview of development teams and the need of the program?

ilar76956 karma

JEAN: As more programs require the programmer to think about privacy, it will be useful for privacy and security features to be built into language, especially as these features become more mature. I see this as analogous to how languages with automatic memory management (Java, Scala, Python, etc.) became increasingly popular in the 90s. They dramatically increased programmer productivity and decrease errors related to manual memory management. Programmers could only afford to use these languages, however, if they could afford a 50% memory overhead. Everybody else still had to use languages with manual memory management like C. Systems languages like Rust are helping improve this situation. For privacy and security, I think we'll see the part of the coding community who 1) require privacy/security policy enforcement and 2) can afford the performance overheads switching over to some kind of automated management.

Valeka47 karma

Do you have any recommendations for someone trying to get into programming and artificial intelligence without formal training?

Also, what languages would you consider crucial for your programming?

Thanks!

ilar76957 karma

Elena: I learn the languages that give me the most leverage on a problem. There is no one best or most crucial language! Given the resources and support available online, I recommend Python as a starting place. This online course starts soon, and has a great lecturer, Prof. Guttag! https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-0#.VItJ0lfF-dA

blahdk44 karma

Hello, thank you for doing this AMA. I have three questions I would like to ask.

What would be a good thing to learn for those that are trying to get better at coding?

What each major coding languages such as C++, Java, Python, etc are good at?

Any good resources out there that are to improve software skills?

ilar76967 karma

I have a webpage on this! But it's directed towards people who are really, really beginners. Short answer is I like Python for learning how to code, and the book Learn Python the Hard Way.

Once you know the concepts in one language, it's easier to transfer them over to others. - neha

Edit: Here's the page: http://pdos.csail.mit.edu/~neha/code.html

T1Brit34 karma

What do you think when people like Elon Musk and Stephen Hawking make dire predictions about AI being malevolent?

ilar76940 karma

Elena: I'm not worried. I bought the book! http://www.robotuprising.com/home.htm

msbernst29 karma

What's the most valuable lesson you've learned from your respective advisors?

(Not that I have any vested interest in passing them on to students at another university or anything...)

ilar76928 karma

Neha: I learned to think critically about an undefined problem. And to have high standards for myself. Ultimately whatever I accomplish is for me, and I should believe in it.

I've also learned a TON about writing and giving presentations. We do a lot of practice talks in our group to prepare for presentations, and these are somewhat notorious for being... harsh. I think that's been key to getting better -- you can't make your work better without knowing what the problems are, and there's no need to sugarcoat it too much. I've developed a pretty thick skin!

theycallhimthestug25 karma

What are your parents like? Do they all have degrees as well, I'd imagine? What kind of economic backgrounds do your families come from?

I ask this because I'm in a (not unique) situation where I have a 3.5 year old daughter who isn't dumb. I'm also fairly poor. So here's my question I guess; this may be beyond your pay scale, but what can I do to break this cycle? The thing I struggle with is not having any point of reference to fall back on in regards to raising my daughter to be the kind of woman I want her to be, especially in regards to schooling.

A quick little insight into what I mean here:

I was enrolled in a gifted programme in public school (that's a whole 'nother discussion altogether now), and I'm 35 with a grade 10 education, if that. Grade 9 I won a Pascal math competition for my school, received a certificate for being in the 75th percentile for my entire country, got a 65 in math that year, failed it the next. The reasons for this are many, but my concern is making sure this doesn't potentially happen with my girl. The problem I'm finding with myself is not knowing what to do in order to limit that possibility.

How did your parents interact with you? How did they foster positive learning habits? How did they challenge you, because you were/are (assumedly) smarter than your average bear? How did they make learning "cool" so you didn't end up on okcupid with bleached blonde hair and bedazzled nails at 21 looking for a "sugar daddie or daddies" (sic).

I ask the economic question because growing up poor means I grew up around (mostly) kids with other poor parents, and those kids are now poor with their own poor little rug rats running around. I don't think this is any sort of ground breaking revelation here, but poverty on average begets more poverty, and this lack of knowledge I'm talking about is one of the reasons for that in my opinion.

Thank you if you read my novel and made sense of it. I don't think you fully grasp how much of an inspiration women like you are in a world full of Iggy Azalea wannabe's. The amount of questions an ama like this receives versus some propped up pop star is...disheartening, to say the least. Thank you again for this.

PS: since we're in a SMRT people thread, anyone that likes doing this type of thing, feel free to grade my post for errors.

It doesn't mean I'm wrong, it means I'm learning™

ilar76918 karma

Neha: Wow. This question is amazing, and I am in awe of what you're trying to do. You're inspiring!

My parents came from India, and were not particularly well off when they first had me. They STRONGLY encouraged me to do well in school. They put me in after school science programs, encouraged me to be good at math, the whole deal. Getting a B would cause a serious conversation.

I think two things are super important: 1) Instilling a sense in her that if she tries hard enough, she can solve any challenge put in front of her and 2) getting her around people who share the same goals. A friend group who share the value of wanting to do well in school and go to college can be really helpful.

ilar76917 karma

JEAN: It's great that you are thinking so hard about how to raise your little girl. She is lucky to have such a concerned parent!

Even though my parents both have graduate degrees in computer science, when we came to the US from Communist China in 1991 we had nothing. My father was a graduate student supporting the entire family on few hundred dollars a month. My mother waitressed in a restaurant. I got free lunch at school and my parents found all the free programs they could and enrolled me in them. (It also turns out many programs have financial aid if you are poor.) My mother figured out that I could get ballet lessons if she volunteered and that I could go to art classes for free. She also found after-school math and science programs for me to go to and we spent a lot of time at the library and the museums. (As I got older, my parents got good jobs and were able to provide more financially, but for much of my early education I grew up on these free resources.)

I think being poor matters less if you are involved as a parent and know where to look. I grew up with many children in immigrant families where the parents did not have much financially but knew how to give their children a good education. Many of these children are now very successful adults. So yes, it's possible to break out of poverty by looking for the right opportunities for your child.

skay25 karma

What is your favorite part about programming/what was it that got you passionate about pursuing it at this level?

ilar76986 karma

Elena: the power of automation! Seriously, programming makes me feel like a magician sometimes. :)

DanceExMachina22 karma

  • What do you think of the future prospects of DNA computing?

  • Is there any discussion of ethics in computer science at MIT? Do you think it's important?

  • What's the best way men in computer science can improve the situation for women in computer science?

  • Do you have any particular role models? Do you think role models are important or useful?

  • Jean, can you tell me more about your verification work? (I've done some work on probabilistic model checking and am interested in verification generally)

Thanks!

ilar76923 karma

JEAN: Great questions.

I have had informal discussions about ethics in computer science. I think it's very important as a scientist to discuss both the ethics of how the research is conducted and of the impact of the research. Though we would like to think so, science is not objective: both the questions we choose to ask and the ways we go about pursuing answers depends on our specific world views. And especially since in computer science we are building things that have huge potential to transform society, we should think about how those changes might look.

A great first step for men in computer science to improve the situation for women and other minorities in computer science is to become aware of the issues. Is there inequality in your environment? How does it manifest? You can talk to women, read about topics like implicit bias, and read about allyship. It's also great if you can become sufficiently educated to identify inequities, especially small ones, as they come up--and speak up. Often the people being discriminated against are not in the best position to speak up for themselves so it's great if you can do it.

I wrote a Quora answer about my role models here: http://www.quora.com/Who-are-some-examples-of-older-superstar-female-engineers-Post-40 Role models are incredibly important. We are much more likely to reach for something if we can see what the end goal might look like.

The biggest verification project I've done is Verve (http://en.wikipedia.org/wiki/Verve_%28operating_system%29), an operating system verified end-to-end for type safety and memory safety. We used first-order logic in Boogie (something like Pascal + preconditions, postconditions, and assertions) to build what we called the Nucleus, the part of an operating system that needs to be written in low-level C/assembly code. We then verified this with respect to an invariant that said the low-level code doesn't mess up the heap and the high-level code doesn't mess up the stacks. This allowed us to hook up the Nucleus, in addition with some verified garbage collectors, to C# code running on top and get end-to-end type safety and memory safety. The insights in this project were more about how to design a system for verification and leverage existing tools than about verification techniques.

I've also done some work in type-based verification for security with the Fine project. You can read my whole research statement here. :D http://people.csail.mit.edu/jeanyang/application/research.pdf

voltige7319 karma

Hi! Do you see regional/cultural differences in research trends, like west coast vs. east coast vs. Europe and so on? What are the opposing camps?

ilar76916 karma

Neha: No, not really. There's more differences in style between areas of computer science, not in the same area between geographies.

math90018 karma

Yay, I love this post. I’m a woman studying artificial intelligence as an undergrad. I’m having trouble narrowing my interests and deciding on what I should do after graduation. Right now I’m trying to focus on classes that go in-depth into probability and optimization models. What were the most useful classes you took as an undergraduate?

ilar7697 karma

Neha: I can tell you what I think would be useful to take right now:

  • Probability
  • Some kind of systems class -- operating systems, neworking, distributed systems
  • Machine learning! This is blowing up, due to the popularity of "big data". Buzzwords aside, there are a lot of insights to be gleaned from logs and user tracking.

SpyderCompany15 karma

As an aspiring student, who hopefully will be accepted to colleges in the upcoming months, what steps did you (any of you I suppose) take to establish a foundation in computer science and it's related studies? I've taken AP comp Sci and passed the exam, but my teacher was very loose in his teachings so I feel very unprepared to learn more about a topic I wish to better understand. This mainly concerns me as I want to study in computer engineering and I feel I should take it upon myself to learn it on my own before I go anywhere.

Oh and thanks for doing this ama as well! It's really neat to see how society and technology can evolve in tandem through stellar individuals :)

ilar76938 karma

Neha: My foundation came through classes (majoring in Math and CS in undergrad) and working at Google. I wouldn't worry too much about getting a head start -- the most amazing undergrad CS major I worked with didn't even start CS classes until late sophomore year, and before that had never coded. I think all that stuff about "having to start young" is ridiculous.

SpyderCompany8 karma

Wow that's such a relieving thing to hear! I've been really concerned that I would step into freshman classes and flounder just because I didn't know how to write full programs already. I think I'll check out some of those resources linked in the OP just to learn some stuff here and there out of personal interest.

Thanks again!

ilar76929 karma

Neha: Just a little warning: Some people might try to make you feel that way. I have noticed a lot of posturing at the beginning; just ignore it. There are some people who prefer to act like they know more than they actually do.

ruinevil14 karma

How fun is it to grade undergraduate programming homework?

ilar76939 karma

Neha: Not. At all.

minminminmin9 karma

Why. Not automate?

ilar7696 karma

We do automate! The problem is if they don't pass our tests, we have to figure out exactly why, and give them constructive feedback.

Automating grading proof-based problem sets would probably get you a decent research paper :)

ilar7698 karma

JEAN: I like it sometimes! Especially when there's a good test harness and it's in a fun language. It's fun to be able to influence how people think about programming. :)

fubu14 karma

Why did you all decide to attain a PhD? I chose to do research at my job and working at the same time over a PhD. I'm not sure if I made the right choice.

ilar76917 karma

Neha: Good for you! I wanted to do research in an environment where that was my primary goal.

dorfsmay13 karma

@jeanqasaur: Love your blog - thanks - keep it going even once you've graduated!. I'm curious about your views on Rust?

@ilar769: Views on current state of distributed DBs? Specifically RethinkDB, Oracle RAC, and other in that space... Also any chance of having nodes rejoining painlessly (regadless of which DB) in practice?

ilar76922 karma

Neha: There's a lot of FUD about distributed databases out there. We need to do a better job of getting precise definitions and cutting through the marketing speak. I think a lot of distributed databases out there right now give up consistency prematurely, but we're starting to see a shift away from that.

The nodes thing -- we're working on it!

ilar76913 karma

JEAN: Thanks! I haven't used Rust but I'm glad that people are working on making low-level systems programming easier and less error-prone.

NewNole200112 karma

Jean, it seems that functional programming concepts are being pushed more and more to "mere mortal" developers. I personally feel that the concepts and skills necessary to become a competent functional programmer just aren't going to be grasped by a vast majority of "mere mortal" developers.

"Mere mortal" developers are the ones who are writing simple enterprise custom apps/websites and the such. I don't use this term so much in a derogatory manner, as much as just as a statement of fact that not every developer is a rock star who can pick up techniques and technologies with minimal effort.

How do you see the necessary concepts being taught to the developers who develop enterprise and everyday websites? How will we enable these people to be successful?

ilar76921 karma

JEAN: Often concepts get taught to mainstream programmers (as opposed to a select set of "elite" programmers) through language constructs that are easy to grasp. We have seen functional programming concepts trickle into mainstream languages and tools for a while now. Beginning programmers in Python can, for instance, use anonymous lambda functions. Google's map/reduce system should be fairly straightforward for systems programmers to use for answering questions about large amounts of data. Apple's new language Swift even has fancier things from statically typed functional languages, such as algebraic data types and pattern matching. This technology transfer method is pretty typical: language constructs get invented and used by a select few and then eventually get picked up in mainstream languages, where everyone can then enjoy the benefits.

_Kwisatz_Haderach11 karma

Have any of you studied quantum computing? Do you think that in the near future as quantum computers are developed further, they will completely change the way we interact with computers?

ilar76913 karma

Elena: I have not studied quantum computing. There's so much to study! :) I'm staying curious, but also trying to stay focused.

ASteveDude10 karma

Elena: What made you decide to focus your research on CS education versus robotics?

Jean: What is a monad in three sentences or less? Also, why does functional programming make sense if arguably, the whole point of running a program is for its side effects?

Neha: I'm a new web startup with a reasonable amount of funding for the foreseeable future. My product is doing well and I expect it to take off in the next few months. What database do I use, and at what isolation level?

ilar76914 karma

JEAN: Great questions.

A monad is a structure that keeps track of your state for you. In a Python program or a Java program, the state is often intertwined with the program and you have to reason about everything together. A monad lets you factor out the parts of the program in which the state is changing from the other parts and deal with them separately.

Functional programming gives us a simpler--and arguably more elegant--way to think about programs. Things that happen in a functional program are more like math, with equations and truths about the world, rather than a sequence of actions that change some state of the world. When state is changing, we have to think about how that's happening and whether that's happening correctly. This often leads to making mistakes, since it requires keeping a lot more in our head. A functional programming paradigm simplifies this but allowing us to think of our program as a series of operations that turn one value into another value into another. By allowing us to factor out state, monads allow us to express even side effects as these transformations.

ilar7698 karma

Elena: Well, I spent a long time in robotics, and during that time the mathematical tools my lab was excited about using slowly shifted toward types of math I wasn't that interested in. Meanwhile, I was TAing undergraduate courses for the EECS department and seeing just how poor the division of labor was between TA and machine. Hence, my switch to Human-Computer Interaction!

redditaccount6910 karma

[deleted]

ilar76911 karma

JEAN: I often think of programming languages as applied philosophy, so perhaps you would be interested in this area of research. Check out the proceedings of one of our top conferences, Principles of Programming Languages, and see you like any of these papers: http://popl.mpi-sws.org/2015/

You may also want to read this book on Types and Programming Languages: http://www.cis.upenn.edu/~bcpierce/tapl/ There is also Advanced Types and Programming Languages: http://www.cis.upenn.edu/~bcpierce/attapl/

"Propositions as Types" may also be a fun paper for you: http://homepages.inf.ed.ac.uk/wadler/papers/propositions-as-types/propositions-as-types.pdf

Andromansis10 karma

My daughter is 10 months old. How do I get her excited about math and sciences?

I mean like, do I just teach her math and science and kung fu and tell her to punch anybody that says she can't do math and science in the face?

ilar7696 karma

Neha: That sounds pretty fantastic.

Expose her to lots of math and science, and tell her she can do anything she wants!

It's actually really hard to answer this question cause I was always interested in math.

ilar7694 karma

JEAN: I recently found the following two books that seem to be good for babies. ;) http://www.amazon.com/HTML-Babies-Volume-Web-Design/dp/0615487661 http://www.amazon.com/CSS-Babies-Volume-Web-Design/dp/0615555217

More seriously, giving her opportunities to study math and science seem to be the best way to go. Make sure she's exposed to role models. Help her grow a thick skin against people who doubt her. My mom also always told me that she was raising me to be independent and support myself. That was good for me.

Andromeda3219 karma

Hi ladies! (specifically Jean- greetings from another Ellis grad who you can likely guess)

Just wondering, what's the male/female ratio where you guys are? Are you satisfied with how things are, or think there are things to change there?

ilar76910 karma

JEAN: Hi! :) The MIT grad program is 20% women. I'd love for there to be more women in the program. It was so hard to find lots of other women to be friends with (and talk to about the unique experience of being a woman in science) that I co-founded Graduate Women at MIT (http://gwamit.org) in 2009.

skroll8 karma

If you had unlimited funding, infinite resources, and 100% control of an organization that would encourage women/girls/anyone to get interested in programming, and help develop their skills, what would you do? How would you structure it? What aspects would you focus on?

A few extra pointless questions:

  • Which of you use vim and why is it the best text editor?
  • Do you write your papers in LaTeX? (I assume yes, but heathens swear that it doesn't happen as much as I assume)

ilar7696 karma

Elena: Easy questions first. Yes, LaTeX is my choice for writing papers. I am not a vim fanatic/power-user, but I know how to use it to get by when I only have a command line to work with.

As for encouraging women/girls/anyone to try programming, I'd pair them with peers and mentors and create a fun location to meet and hack together on a project that's personally meaningful to them, and... makes the world a slightly better place.

Eskregliah6 karma

Hey! Thanks for doing this AMA, really inspiring, you guys are living basically my dream except I'm a 16 year old boy from Turkey. My question would be this: How do I get in MIT ? What would I need to do for them to accept me? How does the international student process work ? I'd really love to get some insight from actual members of the university such as yourself. Again thanks!

ilar7694 karma

Neha: First, I love your first sentence so much.

I'm afraid I don't know anything about the undergraduate admissions process! But good luck!

MrSmooove6 karma

If I had to learn one programming language and only one programming language, which would you recommend?

ilar7695 karma

Neha: omg NOT C++. It's great but it's not super useful unless you work on systems/infrastructure stuff.

Python! If you want to be super-employable, then Javascript!

WaffleSandwhiches4 karma

As a Comp Sci TA, how do I make sure I'm being inclusive? A lot of research out there sort of scares me into walking on eggshells. At the same time, there's a loooong history of mynogamy in the field.

ilar7693 karma

Neha: Thanks for thinking about this! If you're teaching the early classes, I think the most important thing is to shut down anyone who tries to act like they know everything, and might make other people feel bad about it.

Something that is really common in computer science (among both men and women) is imposter syndrome.

nishankk3 karma

My question is to neha, how much did you study when you were in +1 and +2 to get into mit, the competition even in india is cut throat to get into a good college. I am sure you may have faced sone of the stress associated with it, how did you manage it?

ilar7694 karma

Neha: I never went to school in India, so I can't speak to that. I've heard that getting into an IIT is insanely hard, and people who did do really well here.