Editor’s Note: Nick was our uber-talented Software Developer Intern this summer at The Resumator. In addition to making huge contributions to some exciting, high-level projects, he wrote this great blog post about lessons learned from his time here. You can check out the rest of his thoughts (and portfolio) here. Thanks Nick – we hope to see you around The Resumator office soon!
Friday marked my last day as an intern at The Resumator. Over the past several months, I have had the opportunity to do what I love with some of the most talented people in Pittsburgh. To say that it was difficult to leave is an understatement. But, we’ve got to do what we’ve got to do.
As I was reflecting on the experience, the lessons I learned started to materialize. Rather than try to make sense of them in my mind, I decided to write about some of the important ones. I never really write about anything like this, so bear with me. I’ll try to keep it casual – I don’t want this to turn into some boring essay.
Lesson 1: Take Breaks.
I’ll start with one that I didn’t particularly address, but as the summer progressed, its importance became more apparent.
I can’t tell you how many times I spent an hour or so trying to get something to work at the end of the day, only to give up, come in the next morning and rewrite the entire thing in ten minutes. Sometimes, its healthy just to turn your brain off, take a break and let your subconscious do some thinking.
Breaks are physically healthy too. I payed several visits to a physical therapist these past couple of weeks to address my poor posture. Part of it is definitely related to sitting in front of a computer all day.
Lesson 2: Do Something Wrong.
Alright, I don’t literally mean screw up on purpose, but rather embrace your mistakes.
I can recall several distinct mistakes this summer, and in every case, I learned something from them. Rather than beat yourself up over something that went wrong, figure out what happened and you’ll almost always learn something in the process. In fact, I believe that by making a mistake, you actually come out with a more comprehensive understanding of the topic.
Lesson 3: Ask Questions.
This is one of those lessons that is probably included in almost every standard advice-giving list, but it turned out to be one of the more important ones for me this summer. And when I say ‘ask questions’, what I really mean is ‘search for answers’.
I love solving problems. That’s one of the main reasons why I am in Computer Science. But as a problem solver, I tend to convince myself that I can figure something out without the help of others. Most of the time, this works. I figure out the problem without too much trouble, learn something along the way and life goes on.
However, I have learned that there is a fine line between solving a problem and wasting time. Chances are, somebody else has experienced your problem, so why not ask them how they solved it? Ask a good teacher, and you will most likely be rewarded with more knowledge than you bargained for. And if you don’t know a good teacher, find one.
Lesson 4: Take Shortcuts.
This was a big one for me, and although I got a little better at it by the end of the summer, I certainly didn’t master this lesson.
It is in my nature to do things the right way. And not just the right way, but the best way. I think most people can relate. I mean, that’s how I was brought up, and that’s certainly what they teach us in college. However, out in the real world (of software engineering specifically), I have learned that the best way is not always the initial right choice.
Don’t get me wrong, I’m not implying that we should do things the wrong way, but sometimes, it makes sense to take shortcuts. For example, there are times in which one aspect of a project will take hours to complete. Rather than spend valuable time on that, finish the easier stuff first, and come back to that hard part when it becomes relevant. This way, if the project changes along the way, you have minimized any wasted efforts.
In addition to frontend design, this lesson also directly applies to optimizing code, a process that has become engrained in me over the past several years of my formal education. Donald Knuth once said, “Premature optimization is the root of all evil.” I am beginning to realize how true that statement is.
Lesson 5: Never Stop Learning.
As I was picking up some donuts for the office on Friday, I was talking to some guy who was behind me in line. I ended up explaining my saga to him and expressed my reluctance to go back to school. I told him that I wished I was a couple of years older so I could continue working. After the guy assured me that nobody can take away your college education, I realized that he was right.
But, it’s really more than that. There are many stages in life – some big, some small. College is a pretty big one, and I don’t want to give that up. We work our entire lives, so before I get to that stage, I am going to make the most of my college experience.
One of the most important things I have learned over the years is to treat everything as if it is a lesson. There is something to learn from every experience in life, whether that experience is college or an incredible summer internship I will never forget.