Tuesday, June 30, 2009

people that you meet

The crowd at the conference
photo by Stephan Ridgway by use under cc license

Recently, I was having a discussion with an unemployed software developer. I will refer to him as X (just so we're clear, "X" is not his real name).

X had a few words to say about taxes and the attempts to nationalize health insurance; he was against both. I didn't get to dig much deeper because we were in the midst of discussing something else, but I did disagree with him immediately on the latter point, since I am perfectly happy to try nationalizing health insurance. He later mentioned to me that while he was unemployed, a huge part of his health insurance was being covered by the government-run stimulus plain. He seemed to be happy about that.

X told a story about a guy he knows who is on disability, who gets all of his health care provided for by the government, and who, in addition, is taking off for a three-week vacation. I wasn't quite sure what the moral of his story was. But it sounded a lot like he was ranting about how such people cheat the government and steal his tax money.

X is taking a few weeks of vacation in August. He indicated that he was planning on drawing unemployment compensation while he's on vacation. I urged him not to, pointing out that it's illegal and unethical.

While discussing these things, I tried to keep polite when disagreeing. My natural tendency in such situations is to avoid conflict, neither disagreeing or agreeing, and to move the conversation along away from hot-button issues. And later, I try to avoid getting into discussions with the person. Possibly I'm overly non-confrontational (<sarcasm>is that because I'm female?</sarcasm>), but I don't see any point in getting into random arguments with strangers. I'm not sure what to do in this case. I met X at a professional meeting, and was hoping that he'd be a good networking contact, but I think I was mistaken. This most recent conversation gave me a pretty big "ick" factor. How picky should you be with your networking contacts, anyway?

Saturday, June 27, 2009

how to stay current

Another method that I use to attempt to stay current is to attend professional meetings. These can be pretty informal; for example, a few developers may organize a meetup without any agenda. I've also attended Java User Groups on and off for a long time. The ones I've attended have been pretty crowded (perhaps 100 people), and there's always a speaker with slides. I like those because I can get an introduction to new technologies that I don't have the opportunity to use on the job.

With these kinds of meetings, normally you don't have to pay cash money - but you are paying with time. Overall, I think it has been worth it to attend most of the meetings I've been to. I try to attend something at least once a month. It keeps me on my toes, keeps me motivated.

I've even gone so far as to pay my own way at a professional conference! This can get pretty expensive, but again, I think it's worth it. For one, I got pretty psyched about Java development after my last conference - it was highly motivational. Of course, the feeling didn't last indefinitely, but I think it had an overall positive effect on me. Part of that effect came from hanging out with a number of enthusiastic developers, people who really seem to care about doing their work well. For another, the speakers were really good! While the free meetings I've attended have had reasonably good speakers, in comparison these people really blew me away.

I'm going to try to go to one of these meetings at least once a year. Hm, I'm just reviewing the schedule for this year's OSCON... it looks so cool! I wish my company would pitch in something for events like this.

Thursday, June 25, 2009

how to stay current

It's hard to put in extra hours outside of work, studying and practicing to get better at my job. I've become kind of rusty.

Here's one trick that helps. I skim technology articles and keep an eye out for an unfamiliar term. I keep track of the terms on a whiteboard, and research them when I have time, maybe read the wiki page about it. I can do this while eating breakfast, two birds with one stone.

It has been helpful in building up my jargon vocabulary, which hopefully will make me sound more confident and authoritative. Or at least help me understand wtf an interviewer is asking about.

Here are some items from my whiteboard:
  • common closure principle Your classes should never change. But sometimes they have to. In those cases, your system should be designed so that related changes will only affect classes within the same package.
  • command patterns
  • runtime weaving
  • dynamic proxies

Tuesday, June 23, 2009

interview practice

boy in suit
photo by david wiley, by use under cc license.
I've done enough interviews over the last few years to learn that you can never practice for them too much. But I rarely spend time thinking about broader professional questions while I have a job. When I'm employed, I'm usually in one of two modes: impossibly overworked with no time for training, or deliriously enjoying pure non-work fun during a slow down.

However, since I've been thinking about starting a job hunt, it seems reasonable to put in some preparation. I'll use this page to post links to resources that I'm finding handy.
  • five essential phone screen questions by Steve Yegge. These great questions are motivated from the interviewer's side of things.
  • get that job at google by Steve Yegge, again. This blog post discusses interview preparation for a broad range of questions. What he describes would take months or possibly years to get through if you didn't already have a CS degree. But it helps to know what to expect and cram as much of this as possible.

Monday, June 22, 2009

about me

I came to software development from another discipline. I had done a whole lot of programming in my previous field, but it was a means to an end. When I decided it was time to do something else, I looked at my skill set, and decided programming was my best bet. It was reasonably lucrative, and I wouldn't need to go back to school. All I needed to do was find a job.

I had never done object-oriented programming professionally; all of my previous work had been done in a couple of procedural languages. I had read that OOP was how all modern development was done, so I set myself to learning Java.

It took a while, but eventually I found a job as a Java developer, at the tail end of the dot-com boom. During my first year at that job, I spent a lot of my spare time studying the craft of programming in this new language. I was pretty motivated. Even though I wasn't exactly passionate about Java development, I enjoyed it and I wanted to get good at it. I was looking to become highly skilled in my field. I was surrounded by people who didn't seem to care one way or the other about professionalism. That attitude kind of surprised me.

Then the economy went south, and I became another unemployment statistic. I took the first job I could find at a shop that didn't have much truck with modern software development. My Java skills went rusty, and I became depressed and cynical about my "career" as a developer. I stopped studying or doing anything outside of work to improve my skills - what did it matter? I was not encouraged to do so, and any financial reward coming from such practice was a vague hope at best. I had become one of those employees who don't really care about professionalism.

A couple of job hops later, I've begun to feel a little more interested in my career. I'm doing Java development, once again, and it's a lot more fun than using mumbledy-mumble which I worked with in my last job. I've begun reading some technical books when I'm at home. I'm hoping to take a step up with my next job. I can see that probably won't happen unless I can blend in a little more with the people holding CS degrees.

I'm not sure exactly what I want. My motivation to improve started out, mainly, with a desire to earn a better salary. I'm guessing that there are some holes in my knowledge that need to be filled before that will happen. But I also want to do more challenging work. I think I'm a pretty solid developer, but I'm getting tired of doing the same old stuff over and over again. That may mean I'll have to leave this field behind. But maybe I can breathe some new life into my career; it's worth a try, anyway.

Sunday, June 21, 2009

any women out there?


I'm a female software engineer.

I follow a few blogs that are written by male software developers. Today, I had a vague interest in reading something written by a woman who does software development. I follow Female Science Professor's blog, and I was looking for something similar, something written by a software developer. So I went to google and typed in the four search terms "female", "software", "developer", "blog", like this: female software developer blog.

A bunch of results came back, but the first page did not contain a single blog written by a female software developer. At the bottom of the page I saw this:

Tip: These results do not include the word "female". Show results that include "female".

Which was kind of a weirdly ironic experience. So I plussed the term female, and still couldn't find what I was looking for. Mostly I found business news, articles pertaining to concerns about the lack of women in programming, and a bunch of job postings.

Well, I couldn't really complain. I am a female software engineer, and I don't blog about my work. I know why, too. I don't want to be harassed. And I don't want my employers or coworkers to know every detail about what I think.

But I'll give this a try, and attempt to be as anonymous as possible. Maybe in doing so, I'll find some gals out there who are blogging up a storm, so many that I can just nuke this blog and go back to lurking. Let's see.