Mails to my mentee #1-3

Last year, I volunteered with the mentoring program run by MIT’s office of minority engineering. I was connected with a sophomore studying computer science.It was actually my second year with the program, but the first go around went nowhere. Last year, I was determined to take the initiative to make it better by sending regular mails on some topic I thought would be useful to him. This is the first couple of those: When I do interviews I always ask the same two questions. 1 write a function that reverses a linked list in place. You should use only a constant amount of extra memory 2 write a function that computes x to the y power. Where y is an into. That’s it. I’ve only had one person breeze through them. The majority probably only do one. The second one was taught in 6.001. 6.01? A friend of mine just switched from Intel to Google. He told me this book is great
http://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X Googling, it appears to be available in PDF. Not sure if that’s pirated. Haven’t read it myself Have a good week Here’s the second: When we talked before, I mentioned (I think) that in classes like 6.005 (6.170 in my day), source control is mentioned but not stressed. I feel it’s a critical part of practical programming. To that end, I recommend that you try to do some basic GIT operations on some files. The dotfiles in your unix account would be a good start. git init git add .emacs git add .cshrc git commit and so on. I also recommend these readings: http://longair.net/blog/2009/04/16/git-fetch-and-merge/ http://stackoverflow.com/questions/21437260/what-does-it-mean-to-fetch-from-a-clone-that-is-not-a-remote the first couple chapters of this book: http://git-scm.com/book/en/Getting-Started To augment that: http://www.joelonsoftware.com/articles/fog0000000043.html and if all that isn’t enough, I suggest you become comfortable with the diff and patch commands. They have existed since the beginning of unix time (as in when I was a little kid and before) but I only learned to use them maybe 5 years ago. I wish I hadn’t waited that long. As it happens, many MIT classes expect students to submit problem sets/projects via a GIT push.   And a third:
As you make your way through MIT towards a career, I think it’s important to think about how you want to impact the world.
here are some of the people that I admire. Most of them are not programmers, but they have carved out a niche with an approach that can be learned from.
http://www.joelonsoftware.com I agree with everything he’s written. 
this entry is relevant to the stuff I’ve been saying about how I interview: http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
http://paulgraham.com/articles.html In particular, he has good thoughts on starting your own thing (not that I’d know. I’ve always worked for Intel)
http://www.eevblog.com I like the way he expects and appreciates excellence. you can learn a lot about designing stuff.
http://www.theamphour.com/ The guy from eevblog does a podcast with someone else interviewing people doing cool stuff.
https://www.youtube.com/user/w2aew It’s EE stuff but he teaches really well, I think. Can help with 6.002 an 6.003

Leave a Reply

Your email address will not be published. Required fields are marked *