Thursday, February 10, 2011

Learning LUA

So I have this little secret. I let a few people in on it, but mostly I've kept it close.

A few months ago I applied for a job at Blizzard. It was a position doing pretty much what I'm doing now for my current employer: .NET internal tools development.

I wasn't sure I truly wanted the job for a number of reasons, not the least of which was that I'd have to move halfway across the country and leave behind pretty much all I've known for my whole life. I was born and raised in Colorado and while I've lived in several cities during my 30 years here, I've never live outside the state. Hell, I've never lived more than a 15 minute drive from I-25.

I'd also have to convince Norfin that moving to SoCal would be awesome. Or at least tolerable. (I'd have to convince myself, too. I love having seasons.)

Nevertheless, I thought, "Hell, why not? Let's see where this goes."

The problem was that I approached the application process with that "I don't even know if I want this" mindset stuck in the back of my head. Which meant I unintentionally half-assed the whole thing. I believe I had every qualification that they were looking for, but about 5 weeks after submitting the app I got a form rejection email.

Granted, rightly so. I can see that now. But it pissed me off. Lit a fire, if you will. It would have been one thing had I gotten to the interview stage and then got rejected. It still would have stung, but I would have accepted that. But I didn't even get that far and, dammit, I'm better than that.

I've kept a casual eye on their job board since, and while some .NET dev positions have shown up here and there, I'm getting the impression that if I really want to put myself in a good position to get an interview, I need to learn LUA.

I've thought about doing this before. When I'm working on something that I can see value in, I enjoy programming, even in my leisure time. The problem was mostly that, every time I had an idea for an addon (which is the primary entry point for LUA programming), a quick search turned out at least 2 people that had already done it. I hate reinventing the wheel, especially just for the sake of doing it. So I've never really gone anywhere with it.

At times I've opened up my current addons and poked around in the code to see if I could follow what was happening. Once or twice I've fixed a small bug or issue that I found. But nothing major.

I had some Amazon gift certs laying around (thank you, credit card rewards), so I nabbed the 2nd ed. of World of Warcraft Programming. I haven't thumbed through a programming book this thick since college. (Or even during college, if I'm being really honest.) I'm gonna start playing around, learning some stuff, and seeing what I can find.

I have a hard goal of getting an interview at Blizz by Summer '12. Again, whether I get rejected at that point or don't but decide that it's not the job for me, that's fine. I just have to get that far. I need to prove to myself that I really am that good.

I do have an idea for an addon to get started with. I don't even care at this point whether or not someone's already done it. I can't worry about that. I need a starting point.

I have a goal and I'm going to get there.

13 comments:

  1. I agree with your frustration of everything already being done. I'm an amateur programmer that knows my way around VB.Net, Java, and ASP.Net relatively well (I have an associate's degree in software application development and almost done with my bachelor's in IT). But I'm stuck in a job that doesn't really have anything to do with programming or creating software. Just lots and lots of SQL/Report writing. Anyways, I wish an opportunity would open up for a programming job starting out for me and I'll certainly be looking once I've got my BS.

    WOW, completely went off topic. What I was going to say was I thought I had a really neat idea a month or so ago, or so I thought it was neat. I was really excited about it and began a little research about LUA. My idea was to create an application (in vb) that allowed a not so knowledgeable person create addons for WoW. I was stoked..until I started searching online and found a fantastically good version that wasn't so much an application (what I wanted to do) but an entire IDE that turned Visual Studio into an environment specifically to create WoW Addons. =[

    (http://addonstudio.codeplex.com/)

    ReplyDelete
  2. Heh...I stumbled across that while looking for an IDE plugin that would work with Lua. Coding in an editor that doesn't understand the syntax (i.e., Notepad *shudder*) drives me bonkers and I wanted to see if there was something else out there like this.

    ReplyDelete
  3. It shouldn't really matter if it is already out there, just make it. There isn't a single addon out there that can't be improved upon in some way (feature, usability, maintainability, performance, customization, interoption with other addons, etc.). I have one addon that I use just to modify other addons, to make them work the way I like.

    I would recommend the Lua for Windows editor (http://code.google.com/p/luaforwindows/). The addon Studio for Wow would be great, but it is two years out of date (updating that might be a good thing to work on too).

    One side note, the name of the language is Lua not LUA :-P

    ReplyDelete
  4. How about a simple addon for kitties that tells you that the boss is at 25% health and you can make use of nom nom er Blood in the Water..

    ReplyDelete
  5. Heheh...that would probably be much simpler for a starting point than what I currently use. Of course, just about every class has some sort of "Execute" mechanic now, so there's room to play there.

    Currently I use Power Auras for that.

    ReplyDelete
  6. It shouldn't, you're right. The difference is my goal. Previously my goals were to create addons for a specific purpose. Learning Lua was just a means to an end in doing that. When I found addons that already did what I needed, it satisfied the goal without any extra work on my part.

    Now my goal is specifically to learn Lua. Creating an addon that fits a need I have is just a result of doing that. So now it really doesn't matter.

    And yeah, I realized after I made the post about the LUA/Lua thing. I just didn't feel like going back and fixing it. :-)

    ReplyDelete
  7. Screw all this stuff, you need to practice not geeking out completely at the mere mention of Metzen.

    ReplyDelete
  8. Hmm, you're a computer science person in Colorado... any chance you went to CSU? I always like finding "small world" connections in the blogosphere and I was in their CS department for my master's, 04-06...

    Good luck with the programing: LUA is a fascinating language, not that I've worked with it but I have looked at it some. How can you not when you're a programmer who plays WoW?

    ReplyDelete
  9. As a matter of fact, I did. '99-'04 for my BS in CS.

    ReplyDelete
  10. Metzen? Where? Here?! OMGhow'smyhairisthereanythingonmyfaceorinmyteethilookokayright?

    ReplyDelete
  11. Interesting! So while we probably shared the same professors I'd have come in just after you left. Small world, and good school too - I'd say that on that front you should be prepared for whatever Blizz will throw at you down the road.

    ReplyDelete
  12. If the guys at Blizzard so this post and what you were doing and how you felt about the whole interview process, the fact that you've already applied and failed - I don't see how they would give you the chance to waster their time again.  Move along, nothing to see here.

    ReplyDelete
  13. The language is called Lua, not LUA. :-P

    ReplyDelete