Thursday, December 4, 2008

Crunch time declared over (almost)

Well, I just turned in my last assignment of my college career. Of course, I still have two exams next week, but i'm not worried. I am looking at a few different companies for after I graduate, and thats really all they care about.
Anyway, I am trying to figure out what I should do in my free time once I start working. I am a firm believer in continuous improvement and learning, and it needs to happen as much outside work as in. I will either be working on Java or .NET technologies at work, so I will have that covered. But what to do in my free time? Here are some ideas:
  1. Graphics technologies like OpenGL or DirectX
    • 3D screensavers
    • Study pixel shaders
    • Novel 3D networked application (3D browser that doesn't suck?)
  2. Web applications
    • Website that tracks progress toward a goal on projects
  3. Web comic
    • Maybe not a good one, but a good experience nonetheless
    • Programming webcomic? Should research existing ones first
  4. Deviant Art stuff
    • Learn about art more professionally - get used to Photoshop CS4
    • ACTUALLY READ the design books I bought a while back
  5. Web business
    • Create a Super-low cost business, and fail at it (well try not to)

Those are just some Ideas floating around in my head at the moment, but its so exciting to be choosing between these things. The world is my oyster! I just hope I don't hate my job so much that I am exhausted by the end of the day consistently. Oh well. More ideas to come (and maybe even a comic!)

Monday, November 24, 2008

Omaha Trip


The view from Omaha. Who knew that Omaha was such a big place! My trip to Union Pacific was great and I got to meet some really interesting people. I was a little worried at first, because the first thing I heard when I got off the plane was light country music, and then I saw a guy in a cowboy hat..

Once we got into the city, however, it was just like Chicago or Boston. Tall buildings, people always on the go, tons of restaurants and things to do. There really is nothing bad about Omaha. Housing prices are fairly low, gas is cheaper, people are nice, AND you can always have something to do. We will see if Union Pacific gives me an offer; it will be a tough decision.

Expensive dinner


Surf n Turf room service in Boston

Monday, November 17, 2008

Raytheon trip (Hyatt Hotel)

    I'm in Boston, MA right now getting ready to go on my trip to IADC (Integrated Air Defense Center) in Andover, MA.  Sounds fun! I don't have any interviews today; just touring Raytheon and then a formal dinner at 6pm.  Tomorrow I will go through a series of interviews and then be done around 1:30pm.

Check out the video below (this is the view just outside the hotel lobby).

Tuesday, November 4, 2008

Panda Express ... :(


Since when does panda express put advertisements in their fortune cookies??

Sunday, November 2, 2008

On Procrastination

In my last semester here at Michigan State, I'm working on a web development project with three other classmates. We are supposed to be ready to present our beta demo tomorrow for class, but since we have 9 groups and only 2 groups can present on a given day, it takes 4.5 class periods to get through them all. The professor doesn't post the dates that each group is going to present until the day before, in the hopes that everyone will be "done" with their demos even if their presentation isn't due for a week. Little did our professor know, we still had lots of work to do! We just found out that our project doesn't need to be presented until next Wednesday, and my teammates just sent a flurry of emails around to the effect of "whew! now we have plenty of time!" Something tells me we will be in the same boat next Tuesday night trying to scramble to get our beta demo working...

Procrastination is a huge problem. I have noticed time and again that when you give someone a task that they don't want to do, they wait until the last possible second to do it. I mean, I would understand if you ask someone under 18 to do a task and they try to get around it. They play by high school rules, and that's normal. You have no control, and you're constantly resisting so you can play video games. But what about when you are in college? When yo u start your career? It still happens!

I also know this to be the case with even professional developers. This is why agile seems to work better than waterfall. If you give them a task and then have daily status meetings, then they HAVE to get something done or they look like slackers. If you give them the requirements and then come back in 6 months, they will most likely not be done.
I think I partially alluded to the lesson i'm trying to get at here.

You need to set small, achievable, frequent goals for yourself and others.

Usually the only time that someone is going to say they aren't busy is if they actively have nothing to do. This means they have not only written off work-things to do, but they have also depleted their list of time-wasters and want you to entertain them. They are bored.

Therefore, the point is to be truly really busy when you are working - and work hard. And then when you have times of free time, you can really enjoy it. Obviously, you need to take breaks, but those 3-hour long StumbleUpon journeys are cutting into your productivity. It's way too easy to get distracted (especially when online, which is always).

I would suggest a good way to do this is to actually keep a list of things to do. I have a simple Google Desktop app as a to-do list. This isn't perfect because I can't see it across multiple computers. However, it works for me. I can see how much I really have to do, and plan accordingly (plus it really feels good to click that little checkbox and make the image shoot to the bottom :).

How do you keep from entering an infinite loop of Google Reader, Twitter/Friendfeed, email?

Friday, October 31, 2008

Interviewing Lessons

This semester has been brutal. I have 17 credits right now at Michigan State University (say what you will, its an awesome school) - and am planning on graduating in December. Why so many credits, you ask?
Well, back when I sent you my first post, I was working. A LOT. We are talking full time in Ann Arbor working for Toyota. It was actually a very interesting experience, but I rarely took any classes during the 16 months I worked there. I came into college with 18 credits (from Community College classes I took during high school and NOT the "accellerated" program I fortunately dropped out of, but that is another blog entry), but after taking basically 16 months "off", here I am working hard to graduate in 4.5 years. Anyway, looks like this blog is titled "Interviewing Lessons", so I guess I should talk about that.

The point

Since this is my last term, I have been interviewing like crazy. I probably should have been doing this during the Summer, but it is so much easier to do it after MSU's "Career Gallery" in early October. Tons of companies show up and each are receptive to my kinds of jobs. However, I have never really had a "serious" interview (except maybe for my NSA interview, but thats another blog entry ;) ), so its an understatement to say I learned a few things.
I have always dreaded interviews, or any sort of social construct that forces me to "prove myself", because I tended to freeze up and forget everything that makes me a valuable person. Since I learned a couple common tips about interviewing, I have changed from a person terrified of getting asked a tough question, to someone who looks forward to interviews to see if they can give me one that actually takes more than a minute to figure out. If you feel the same way as I did, then there is definitely one thing you can do to change that and take control of your emotions.
The thing to do, if you are planning to be a Software Developer, is to get the book Programming Interviews Exposed: Secrets to Landing Your Next Job. It has been key to me getting up to speed with the types of questions to expect. Generally the questions are really easy if you are at your computer with Google and a compiler at your fingertips. However, when you are being choked by your tie, sweating profusely, and asked to jump through hoops by writing code on a whiteboard, it helps to be confident.
I made the mistake of not doing any sort of "brushing up" of my skills or even looking up common questions. Just because you are a senior in college and have developed large systems in multiple programming languages, doesn't mean that you know how to do a simple command line program they ask you. If you paid attention in class, really all you need to do is look through the book during lunch and try and solve the problems before reading the solution. It will awaken that "algorithms" part of your brain that you may have let atrophy while developing "real world" systems.

An example

One question I found particularly interesting was a light switch problem. You have three light switches connected to three light bulbs in another room. The problem is to determine which light bulbs go to which switches. You can't see the light bulbs from where you stand, and you only get to go into the room with the light bulbs once to check. The first thing you try to do is flip one on and then check. Well, now you know one light bulb and switch, but what about the other two? You are screwed. Obviously this isn't the solution, so if you'd like, go ahead and try to figure it out before going to the next paragraph.


Got it yet?...


The solution given is that you are supposed to flip two lights on and then wait for 5 minutes. After waiting, turn one of the lights off and go into the room. Now, you can determine which is which by one light bulb that is on, one that is off and warm, and one that is off and cold. Tricky, huh?
The point is not necessarily to solve the problem in an interview, but to show the thought process you go through. Talking through your problems helps you not only to show the interviewer that you are smart and analytical, but actually helps you to solve it. So just sitting there and telling the interviewer that it can't be done is bad. All you have to do is realize there is a trick to it and break down your assumptions. Doing this alone should at least help you make some progress and show the interviewer that you are able and willing to methodically work at a problem even if it is tough (or seemingly impossible).

Conclusion

This really helped me to think in the right way for my interviews, and since I got this book, I have been "knocking them out of the park", so to say. I hope this little bit of advice keeps you from dreading your interviews, and makes them exciting challenges that can always be solved if you get all those mental cylinders running.

Monday, April 21, 2008

first post!!!!11

Yeah, first post on myself. I feel proud. Well, anyway, this is going to be a blog about my experiences in Computer Science and Software Engineering. Maybe a little like Coding Horror. You can never have enough opinions, right? I have ideas and opinions bursting from me like a baby alien hatching from its human shell, so I will be logging them here. Feel free to join in on the discussion by comments or email.