Sigur Ros concert in Boston, MA
i don't do bad sauce passes
Three Goblin Art

pixel skylines

blake kathryn
taylor price
AnasAbdin
Lint Roller? I Barely Know Her
ojovivo
YOU ARE THE REASON
Game of Thrones Daily
Keni
Cosimo Galluzzi
dirt enthusiast
wallacepolsom
One Nice Bug Per Day

Kaledo Art

roma★
PUT YOUR BEARD IN MY MOUTH

⁂
Xuebing Du
seen from United States

seen from United States
seen from Australia

seen from United States

seen from Czechia
seen from New Zealand

seen from United States

seen from United States

seen from France

seen from Switzerland
seen from United Kingdom
seen from United States

seen from United States
seen from United States
seen from United States
seen from United States
seen from United Kingdom

seen from China
seen from United States

seen from United Kingdom
@computationaltheory-blog
Sigur Ros concert in Boston, MA
This past spring, I spent 5 months or so (20 weeks) training for my first-ever marathon. I'm a college student, so this experience was simultaneously a huge gift and a huge pain. It was amazing for a bunch of reasons, but one of my favorite things was that it was a time of significant personal growth. It's incredible how much strength it takes to keep running when your body is exhausted and pained. It can really shape you. For example, that endurance spilled over into my academic work. Because I had trained my mind and body to keep pushing through exhaustion, I found my mind persisting through my schoolwork with the same determination. I attribute my success this past semester to this persistence.
I also loved that I didn't have to think about going to the gym. I'm the kind of person who always wants to go, but can't always bring myself to go running or lifting. I even loved miles 14-18 on my long runs, because my body would be in a completely different state of being that only endurance running could bring it to.
On the downside, training was tough on my social life at some points. I felt disconnected in a way, especially when I would have to go to bed early on a Saturday night. However, I thought it would be more difficult to drag myself out of my dorm to go on long runs on Sunday mornings - but actually I found it (mentally) easier to do 16-20 milers than the 6-10 milers. All in all, I'm so glad I had this experience - it's definitely going to be something I'm grateful for for the rest of my life.
In Copenhagen for Spring Break to visit my girlfriend :)
I remember this one day, I had just begun my run, and I was about to descend down this pretty grueling hill. A few other runners were passing me, chugging up that incline, and I (in my instinctive way) tried to make eye contact with each one. While the majority just stared straight ahead, focal point on the top of that hill - understandable - one man connected with me. I smiled, he smiled, and then he gave me the thumbs-up. The thumbs-up. Why it charged me with such a wave of endorphins and positive energy I'm not entirely sure, but it stuck with me. Ever since then, I've always made a point to do the same for the other friendly runners I encounter out there. I don't know what you would call it, but it's possibly the best thing that has happened to me since Kinesio Tape and GPS run trackers.
8-miler along Jupiter Beach today!
Programming Interview Tip #4
Review some basic algorithms. If you need some inspiration, you can visit Top Coder and check out their tutorials. In fact, Google refers their interviewees to this site for practice. Also consider mastering some basic algorithms, such as the Greatest Common Denominator (GCD) algorithm and some sorting algorithms (especially either selection/insertion sort and merge sort, as the first two are easier but merge sort is faster). Finally, knowing some tree traversal algorithms (or at least the difference between breadth-first and depth-first traversal/post-order, in-order, and pre-order) would never hurt.
Programming Interview Tip #3
Review important key words and operators of the language you'll be programming in. For example, you should know about the bitwise operators and what they do, or (in python) how to make a list versus a dictionary. A list of Java keywords can be found here and a list of Python keywords can be found here (note: these are for version 2, not version 3).
Study Abroad
While much of my blog is about computer science and running, I also consider this a space to write down my thoughts. Currently, I'm thinking a lot about study abroad options for next year. I'm fortunate enough to go to a school with amazing connections world wide, where it is seemingly the norm for students to study abroad in a different country for part of their Junior year. In fact, staying at school for your entire Junior year is often referred to as "JY-Stay". So I've always thought I'd go abroad for at least a semester, but now I'm not so sure. Here are some of my concerns:
Programming Interview Tip #2
Do not just reread your old data structures code, nod your head, and tell yourself you understand it. Recode it! It takes maybe half an hour tops to rewrite a basic implementation of a binary tree, and, even if you know trees like the back of your hand, it will never hurt to redo it. In the first tip I mentioned being able to BS better if you studied your definitions and implementations. Recoding will remind you of some of the little details (for example, the fact that stacks and queues are interfaces, so you need to implement those interfaces if you are coding class implementations...).
Programming Interview Tip #1
Study at least a little bit (1-2 hours is ideal) every day for the two weeks before your interview. If your interview is scheduled less than two weeks in advance, then start ASAP. Or if you know that you're going to be interviewing soon, start right now. It never hurts to begin reviewing your basic data structure definitions and implementations, because you can be almost certain that you will be tested on them in many ways. So starting early = acing that quiz, or at least being able to BS better if you get completely lost.
Programming Interview Tips
So I recently applied for internships with some cool tech companies, and ended up landing a place in Google's Sophomore Engineering Practicum for next summer. I'm absolutely stoked! But, looking back on the process, I know I felt like I had very little idea of what to expect. I hard core stalked any blog I could find on the matter, and only a couple (especially http://ecarmi.org/writing/google-internship/) actually satisfied my curiosity. So I'm hoping to shed a little bit of light on how to prepare for the process.
I've decided to post a series of programming interview tips (of which this is the intro... duh), and I hope they help. I aim for these posts to be short, sweet, and hopefully to the (helpful) point. Disclaimer: I am only a sophomore in college, so my prep was probably (er, definitely) not as extensive as it needs to be for a job interview, or even for other internships. So just look at this as a starting point :)
Computational Theory Diagram :)
Linked List
My last posts covered some of the fundamentals of programming. This one is going to tackle something slightly more advanced: linked lists.
A linked list is useful because it is, in essence, a resizable array. The idea of a linked list is to have each element, called a node, have a "next" (and, in our/most cases, "previous") pointer. The first element in the list is called the head and the last element is sometimes called the tail, but I won't include a tail in my implementation. There are various ways to implement this, but I'm going to start with a basic linked list and then move on to some of the more tricked-out variations in other posts.
(this site too!)
For all those programmers out there who want to familiarize yourself with common interview questions, check out this YouTube account! It covers a lot of really useful, cool stuff. Or if you just want some new challenges, this is a great place to find them.
Lion male with golden mane, Serengeti, Tanzania (by Mogens Trolle)