Showing posts with label professionalDevelopment. Show all posts
Showing posts with label professionalDevelopment. Show all posts

Sunday, September 10, 2017

Should Bad Code Be Illegal?



A junior developer on my team asked me a rather interesting question recently.

If you were able to make laws, would you make bad code illegal?

I have a reputation where I work as being rather hard-nosed about not allowing hard to understand and maintain code into the codebase, so my answer surprised him.

No, I would not make bad code illegal, and there are very good reasons for having this opinion.

First, everyone writes bad code before they write good code. Whether it’s your first time coding in general or just your first time coding in a new language, with a new framework, etc, you are going to write bad code. I’m sorry. It’s just a fact of life.

Nobody starts out writing amazing code. Not me, not you, not Uncle Bob (in fact, Uncle Bob is open about the fact that he was a horrible developer when he started, just like the rest of us). We all get better by writing bad code, learning from our mistakes and pain, and, if we’re lucky, mentors helping us to see where things can be improved.

Second, “bad code” is rather subjective. What standard are we using for what “bad” code is?

Is it code that costs the business unreasonable amounts of money due to being full of bugs and difficult to maintain? That’s not a completely terrible definition because we can tie it to some external benchmark, but it’s still probably a bad idea since there is a risk/reward factor of why decisions were made at the time that may not be known at some later date.

Is it code that Developer X (whether me, Uncle Bob, or Joe in the cubicle across the hall) would look at and give a laundry list of things that need to change? For any given code, you can find some developer that would find flaws in it – whether it is inefficient, or it doesn’t implement their favorite pattern, or any number of other complaints.

Is it code that, six months from now, you will look back at and wonder what the heck you were thinking when you did it that way because there are so many better ways to accomplish what this code does? Here’s a hint. This should be most of your code. You didn’t know as much 6 months ago as you do now.

Third, sometimes bad code is necessary.

Yes, you heard me. There are times that it makes sense to write bad code.

If you are writing a script to perform some one-off function that you are seriously never going to use again, pretty doesn’t always matter that much. If writing code for 5 minutes and then throwing it away can save you hours of work, go for it. I’ve done it before, and I can almost guarantee that I will do it again.

Sometimes you need to fix a catastrophic flaw in a mission critical piece of software, because the company is losing millions of dollars per minute while the flaw exists. In that case, you have to do whatever you can in order to fix the issue, release the patch, and *then* go back and make it maintainable.

The same is true if we are in a startup where the money is limited, time is fairly short (as it is generally a function of money in this case), and we need to get a Minimum Viable Product out in front of users so we can start making money. This is another case were “Make it work, then make it better” can be the correct (and sometimes only) course of action.

We may not like it, but sometimes getting it to work right now is the right choice. These situations fall under the heading of consciously taking on technical debt with every intention of paying it back later and this is a very important business decision. If it’s a matter of “We can release it now and be able to make payroll” vs “It will take another month to make it perfect and we’ll be unemployed by then”, well, the choice is fairly clear then isn’t it?

Thankfully, most of the code we write doesn’t tend to fall into those categories, so we can make the effort now in order to make the code clean and maintainable, but we can’t ignore that those possibilities exist.

Making a law that is, on the whole, completely subjective and capricious is a just plain bad idea. As a general rule, when we write code that isn’t amazing, at worst we lose time in figuring out what is going on and/or fixing some bugs. Nobody generally dies from bad code (there are cases this is not true, but they are not the norm), and we can always make a conscious effort to improve it once the crisis is averted.

On the whole, yes, we need to strive to write clean, maintainable, bug free code, but we can’t be completely inflexible. If you want to make it a crime to write bad code, make the punishment be to learn how to write better code. I think that’s a fair sentence.
 

Current mood: Calm
Current music: Midnight Oil – Beds Are Burning

Tuesday, April 08, 2014

In The Beginning



In the beginning, there was a television. To the television was attached a Tandy TRS-80 CoCo. Then he said, let there be code. And there was code, and it was in BASIC. He was a child and found the fact that he could make a computer do things to be really cool.

As a teenager, the internet was laid open to him. HTML was discovered and there were many horrible mistakes made, including the dreaded animated gifs of flaming skulls and spinning things. The land was known as GeoCities, and it was eventually cast into perdition for its sins.

Then was Java made known unto him, and, though he tried, he found it confusing. This was the first age of Java, so he was not alone in this.

Lo then did he graduate high school and make his way to college in an effort to learn to do this shit properly.

There did he learn of many things – Pascal and Prolog, C and C++, Scheme and Assembly, Socket programming, the creation of data packets, and stack traces among many other skills and pieces of arcane lore.

He paid the campus ferryman with his toils as a sysadmin where he applied logic to a place of chaos known as a non-profit. All the while, using his position as an excuse to do things programmatically so as not to have to run around the hilltop known as The Ridges as often.

Then did he return to Java, and he found it…okay. After all, with a background in object oriented programming, data structures, and the like, Java now made much more sense.

Upon his path, however, he decided that Java was not the right tool for him, so he endeavored to learn C#. Additionally, in order to wipe away, or at least atone for, his past sins of using Perl, he also learned Ruby to an extent that would allow himself to get into (and hopefully out of) trouble on occasion.

He walked the paths of desktop development and eventually began to work in order to master the arts of web development as well using the MVC framework. So, then, did his past of using HTML and CSS come back to him (though, thankfully, the flaming skulls and spinning things did not), and that is where he stands as of this day.

Current Mood - Tired
Current Music - Shades Apart - Stranger By The Day

Thursday, February 06, 2014

My Take on Professional Codes of Conduct at Conferences


 

Preface: Please keep in mind that I am not trivializing sexual harassment or sexual assault. I have loved people who have been victims of sexual harassment, sexual assault and even rape. I myself have been a victim of sexual harassment and sexual assault.

I am offering an open, honest opinion from someone who has not only the right to an opinion as a person, but a sense of perspective as the victim of and friend of victims of sexual harassment/assault. You are allowed to agree or disagree with me as your conscience so dictates.

 

Recently, there’s been a lot of push to force software development conferences to have a code of conduct.

Honestly, any code of conduct that could be adopted for a professional conference could be limited to “Be a professional” or “Don’t be an ass”. We’re all supposed to be there to learn new things, maybe to meet new people, see old friends, and generally grow as professionals and individuals (male, female, gay, straight, bi, black, white, red, yellow, green, polka dotted and everything in between).

A lot of what sparked off the recent debate was an incident that happened at a regional conference a year or so ago (and I will admit was completely unacceptable. In fact, it was horrifying, honestly).

However, a conference code of conduct wouldn’t have done anything to prevent the incident for a few reasons:

 

1) It only came to light *months* after it happened (if you don’t say anything, nothing can be done by the organizers. I know some of the organizers and you’d be hard pressed to find a better, more caring group of people. If they had known, they would have done what they could.).

2)It happened before the conference even started, and not at the venue (it occurred at a bar at the resort the conference was held).

3) Having a code of conduct doesn't stop people from doing bad things. People stepping in and saying something while it happens or before it has a chance to happen does.

 

Having a Code of Conduct that prohibits unprofessional behavior at a professional venue is the conference version of security theater. The only thing it does is make people “feel” safer (and that’s, honestly, a disservice, because *life* isn’t safe and we need to be aware of that. It lets us better prepare for when things do go wrong – and given enough time, chances are something will happen to all of us).

It’s the equivalent of a store having a sign up that says “Don’t steal stuff or we’ll call the cops.” It should be common sense and, code of conduct or not, most conference staff that I have known will deal with any problems that arise.

 

Is there a solution?

 

Yes, well more or less, but like most real solutions, it’s not easy. The best solution is to be responsible for ourselves, to be decent people, and to look out for each other.

That last item is the big one. So many people now “don’t want to get involved” when they see something bad happening. There are a lot of reasons for this – Sometimes people don’t feel like their stepping in will solve anything. Sometimes they are afraid to say anything. Some of them even think that someone in a position of power should be taking care of it.

I have news for you: You need to swallow your fear and speak up when you see it happening anyway. It’s your duty as a member of society to help each other and that includes stepping in and asking if there’s a problem if something looks fishy.

We’ve become far too isolationist as individuals and have become conditioned to “let someone else deal with it”. That needs to change.

I’m not saying to lynch someone you see doing something questionable. Step in, make sure things are okay and then respond appropriately.

Yes, I’m a fairly large (some may say frightening looking) guy. Yes, I’ve been a victim of harassment and assault. No, I don’t think a Code of Conduct will change anything. Changing ourselves will. The demands for a Code of Conduct are just another cry to make it someone else's problem.

I do my part. If I see something “off”, I see if there is a problem and work to resolve it. I ask that others do the same. It’s the only way things will get better.

 

Current mood: contemplative

Current music: Coldplay – Charlie Brown

 

Monday, May 20, 2013

Your Code Sucks


 
I’ve seen a few people that I know berate people for the quality of their code and say things like they should just go and deliver pizzas.

You aren’t your code. Code is an expression of the skill, mindset, and situation facing the person who wrote it at the moment it’s made. Nothing more. In fact, it may be the chaining together of those factors from several people as the code is maintained.

There may be things about the situation that you don’t know. Maybe the person was under insane time constraints. Maybe they were thrown into a technology they had no experience with. Hell, maybe they were just having a bad day.

You may not like maintaining the code – I know I don’t, but I try not to berate the person doing it because I don’t know what lead there. (If I know the person in question and know that they just don’t care, that’s a different story)

There are a couple of appropriate responses to “your code sucks”.

  • Where can I improve?
  • Yes, it sucks. So does everyone else’s. I’m working to improve. Are you?

Improvement is the important part.

Yes, my code sucks. It always will, but it gets better every day.

Does yours?
 

Current mood – tired
Current music – 10,000 Maniacs – Candy Everybody Wants

Wednesday, May 01, 2013

Learning




After a couple of false starts, I started digging into learning ASP.NET MVC a couple of months or so ago.

First, I decided that I also wanted to learn webforms, just in case.

Don’t look at me like that. I learned the error of my ways after my eyes started to bleed and hands began reaching out of the walls for me. Though I’m not sure that was caused exclusively by webforms. That may have been caused in part by my recitation out of a book of really odd Latin poetry that I ran across…

Either way, I stopped trying to learn webforms, so mission accomplished. Now if the really creepy looking guy would stop making faces at me in the mirror when I try to shave, that’d be great. Oh, wait, that’s me. Sorry.

Next, I tried just diving in by starting with Professional ASP.NET MVC by Galloway, Haack, Wilson, and Allen.

This, for me at least, was kind of a mistake. The first couple of chapters were okay, but the first chapter on the topic of Views was full of hand waving and a sense of go screw yourself. It all kind of boiled down to “I’m not going to discuss the code. I’m just going to go off on tangents that you don’t need right now.” (This is a pet peeve of mine)

That’s not to say that the book is bad. It’s actually quite good as long as you have a rough idea of what’s going on (which I didn’t at the time). Otherwise, it got a bit frustrating. I'm going back over the book now, in fact.

I ended up going online to find the music store tutorial that was mentioned in the book and working through that first. That worked a lot better for me, but it could just be that I’m a bit slow. Who knows.

Going on the premise that I learn a lot better by playing with something once I’ve figured out the basics, I decided to rebuild my website with MVC. After all, it was just static pages, so I wouldn’t have to worry much about the M portion of things.

As a result, I got a decent grounding in the use of Controllers and spent a small mountain of time re-arranging the structure of the website to comply with the MVC principles.

Of course, I also got to do some much needed housekeeping, so that’s a plus. It just took loads of time because there were probably 40 or so pages.

In all honesty, most of my frustration was dealing with CSS3 (the site’s last incarnation used CSS2 and a lot of things have changed) and getting all of the settings right (both on my end and on my hosting provider) to get web publishing to work from Visual Studio.

The site isn’t “finished”. I’ll probably always have things that I want to do to it, but it is published. The visual changes are fairly minimal. Mostly, the menu has just moved to the top instead of running down the left side. However, things are a lot different on the back end.

Now I get to move on to more complex stuff.

Current mood: tired
Current music: David Gray – Babylon


Tuesday, April 16, 2013

I'm Not an Expert


 
I’m not an expert. On anything, really.

Don’t get me wrong. There are things that I’m good at, but I wouldn’t call myself an expert on them.

Part of the reason that I don’t consider myself an expert on anything is that I’ve done so many varied things. I’ve never settled into just one area of development (or anything else).

I’ve had a lot of hobbies, interests and jobs that range from martial arts, to carpentry, blacksmithing, gardening, cooking, and (obviously) software development (among many other things).

That kind of spread isn’t exactly the sort of thing that screams “I’m the greatest person in the world at one thing.” It does, however, lead to being able to look at problems from a lot of different angles and helps you come up with a solution to something you may have never seen before.

I sometimes get asked what my specialty is by people who won’t take “I don’t know” for an answer, and the only thing I can think to say is that I’ve learned to ask questions that get me the answers that I need.

I may not know a thing, but I can generally figure out a way to find the answer.

I suppose that you could say people like me specialize in being generalists, but I think we just suffer from a combination of ADD and having to take on multiple roles. Somehow, it works out, though.

Current mood: thoughtful
Current music: Goo Goo Dolls – Give a Little Bit

Sunday, December 30, 2012

Motivation


It’s generally really easy for me to keep going if I’ve already got a bit of momentum, but if things have derailed me and caused me to focus elsewhere, Newton’s First Law decides that it also applies to motivation and proceeds to kick my backside.

Translation – if I stop, it takes real work to get going again.

It’s also fair to say that, for me at least, large tasks are intimidating, but breaking them into smaller chunks makes them more manageable because it lets me just consider the current step and leave subsequent steps for a little later.

Big = difficult. Little = easier. Makes sense, right? Less stuff, less to be overwhelmed by.

Or, to paraphrase my sifu a bit “Concentrate on now right now. Later will come when it is time.”

A few years ago, I found a way to motivate myself when learning something new from a book or video as well as when working on projects. Thankfully it plays into the fact that I’m a big fan of marker boards (I have several in my office to help keep myself organized and to brainstorm) so it doesn’t take any additional expense on my part.

I write the name of the book or video series on the marker board and then put down the chapter or video numbers. As I work through it, I erase the numbers for the chapters that I’ve covered.

 
This does two things:

First, it lets me keep track of where I am. This is especially helpful if I’m doing a video series or a web-based lesson plan.

Second, it lets me see that I have actually been making progress so I don’t get lost in the feeling that I’m never going to get anywhere in what I’m doing (I’m pretty sure that I’m not the only one that has this problem. It’s downright overwhelming to look at how much you have to learn, and every time you learn something, it shows you other things that you need to learn).

Some people will prefer to strike through the numbers or put a check mark next to them after they’ve finished, but I prefer to erase for one very simple reason – it lets me actually SEE the list of things I need to do shrink. If the numbers are still there, the size of the task never visually changes so my brain still says “Hey, there’s still this daunting list of things that we have to do.”

If I erase the numbers, my brain goes “Wow. We’re making progress! Maybe we can do this thing after all.”

Yes, it’s a stupid psychological trick, but in my case it works.

I guess that means it’s not so stupid after all…

 
Current mood: undecided
Current music: Adam and the Ants – Room at the Top

Friday, December 09, 2011

Ebook Pricing





This started off as a bit of a mini rant on twitter the other day, but I thought it deserved to be fleshed out a bit as well as updated since some other information came to my attention this afternoon.

I love my Nook and take it pretty much everywhere. I consider it a great way to carry not only a book or two to read for pleasure but also a way to carry and access my programming books when I’m not near my bookshelf.

My major complaint is how much the ebooks cost in comparison to their paper counterparts. Sure, they knock a couple of dollars off of the price, but for books that cost $20-40, that’s really not much of a savings.

This isn’t just a whine on my part. Logically, ebooks should be cheaper. Think about it – they require no paper, no shelf space, no transportation costs (other than an internet connection) and can be replicated essentially forever (or at least until a publisher’s claim to the book ends and it reverts to the author)

I’m not complaining that programming and technology books are expensive. Given the amount of work that has to go into them, the limited market, and limited shelf life of most technologies (unless we’re talking about something like the K&R C book), they have to be relatively pricy in order to make a profit. I understand and accept that. We all need to make a living.

What I’m complaining about is the price difference, or rather almost lack of one, between the traditional paper books and the matching ebook. In some cases, as @jbehren pointed out, sometimes the ebook can cost more than the paper one (which is ridiculous unless, perhaps, you are paying to get a copy before the paper book even hits shelves and you just can’t wait).

The question, then, is what is a reasonable price for an ebook as compared to the paper one? Of course, the publishers would claim that their current prices are reasonable, but I disagree. Taking into account the savings caused by the lack of materials and associated costs, I’d say probably about half the price of a paper book.

Books are fairly pricy to write, but most of the cost is in the actual manufacture, shipping and storage. At half the cost of the dead tree edition, there should be enough money to still make a decent profit on the endeavor.

The half price range was sort of my gut feeling for a while, but today it was more or less confirmed by O’Reilly. For people that have an account at oreilly.com, all of their ebooks are buy one, get one free with coupon code (just look in your account under the heading Membersip).

Additionally, they will sell you an electronic copy of most of their books (bundled in multiple formats, not just PDF) for $5 if you register the paper version with them. It only applies to O’Reilly and MS Press titles so I can’t get epub copies of my Pragmatic Programmers books, but it’s a great start. (For the record, I got the PDF version of the Programming Ruby book cheaply when I bought the paper version during the Pragmatic Programmers special a while back, but PDFs don’t always scale well on smaller e-readers so availability in a variety of formats is a great plus).

I cheered when I saw the $5 electronic copy “upgrade” option, because, to me, that’s sort of the sweet spot for that service. I would gladly pay an extra $5 to have lifetime access to an ebook version of programming books that I own. In fact, I spent some time today registering my O’Reilly books so I can buy the epub copies later.

I don’t know if this is a limited time offer or one which they always have, but it is sort of telling as far as book pricing goes. It’s also something well worth taking advantage of.

Current mood: tired
Current music: Smashing Pumpkins – Cherub Rock

Saturday, October 09, 2010


I don’t mind being wrong.

A few months ago, I was gifted with a couple of free one-month subscription cards to TekPub, an online learning site. For a while, I basically ignored them because I was busy with moving, studying, playing with code, etc. I’ll even admit that the idea seemed a little silly to me – sitting watching someone else code on a recorded video.

Since they expire in a couple of months, I finally got around to trying one of them.

I’ll be the first to admit that I was wrong for ignoring them until now. It’s a good resource. In fact, at times it feels a little bit like being back in college and being walked though some of the things that I’ve been trying to get a handle on.

The videos are actually, from what I’ve seen so far, rather high quality from an educational standpoint.

I started out with the Linq videos since that was one of the many things that I’ve been trying to pick up lately. To be honest, it felt like I was writing backward, drug addled SQL statements in the beginning (using the SQL-like syntax). Add to that the fact that the method syntax made no sense to me, and it ended up being like pulling teeth.

Seeing someone use the method syntax instead of trying to muddle through it myself made it a lot more understandable. I’m not a master at it now by any stretch, but I can at least work my way through it, which is a major improvement. Mastery, after all, will come with use.

The “This is what it looks like. This is what it means. This is what it does. This is how it works, and this is what happens if we change it” approach cleared up a lot of things for me on the subject. Also made me miss a couple of my favorite profs a bit =]

That alone made it worth taking the time to register and check it out.

Now I find that I prefer the method syntax for the most part because it’s much less repetitive and, once you get used to it, fairly easy to read. It also has the advantage of being “new” to my mind, so my brain doesn’t try to look at it like SQL code and make me second guess myself.

I don’t think I’ll be picking up the $200 annual subscription just yet, but then I still have another month after this one, so that may change. I can, however, see myself picking up additional months as they have more topics that interest me.

I don’t mind being wrong as long as I can recover and learn from it.

Current mood – tired
Current music – Shades Apart – Valentine

Saturday, September 11, 2010

Equal Rights

Tonight, something that I believe strongly in came out in conversation. It started with Jim Holmes tweeting regarding an article written about another developer that I follow and have chatted with in the past:

“Disagree with Women-Only anything in IT. Why put up more walls? #fail RT @RWW Women-Only Programming Classes http://rww.to/aU9kme


I happen to agree strongly with this, and said so. One of the devs that follows me, however, was of a different opinion and tried to justify the opinion, only to be shot down not only by Jim, but by me and even by my girlfriend, Karyl.

He went through a number of arguments, trying very hard to find something, anything, that would validate his claim and basically ignored anything that was used to counter him. Some of them, and my more lengthy responses (which, naturally, would not fit on twitter) are here.

“In this instance, I can understand it. The men are the main deterrent to potential female programmers. Plus, then they can focus on the material rather than deflecting awkward advances the whole time.”


I disagree. The deterrent to potential female programmers are the potential female programmers themselves. Women are not the only people that get hit on in college or while trying to learn or work. The number of classes that I was in where female classmates were trying to get me to go out on dates with them was rather high and I still managed to do all of my work. Besides which, most of the women in my CS classes (with a few exceptions) were under the impression that anyone who spoke to them was trying to hit on them and that really wasn’t the case.

From my personal experience, the women in the other engineering disciplines tended to be more driven than the ones in CS and were a lot more fun. There were more girls that dropped out of the CS program because it wasn’t “fun” or it was “hard” than because people were hitting on them (In fact, I can’t think of any of the girls I knew in those classes that stopped doing it for that reason).

“So, you're saying you don't think women should be allowed to have male-free anything?”


Are men allowed to have men only anything? No? Then there’s your answer. I believe in Equal rights. We are not getting into this “some people are more equal than others” mindset. That is a crutch and causes people to strive less if you constantly tell them “Oh, that’s okay. You’re a [x], we’ll lower the bar for you.”

Screw that. I want a professional in *any* profession to be held to the same standards as any other professional in that profession regardless of gender, skin color, or any of the rest of it.

To which I got the response of asking me how many men I’ve known who have been raped.

Bad question. And this made me very glad he wasn’t in the same room with me. I have good impulse control, but rape is not a woman only issue and it is not something I take lightly (nor is abuse in general).

For the record, I’ve known two that I can think of. Men who are raped undergo the added stigma of nobody believing them because, of course, rape can’t happen to men. Ask Karyl about her friend who was raped and was accused of being the one who did it instead. It has literally ruined his life.

Add to this the fact that many domestic abuse shelters will not accept men (who can be, and more often than you would believe, are victims of domestic abuse) and you start to see why this is a hot button topic for me.

Rape is not funny. Rape is not something that should be used as an argument against equal rights. Rape is also not just something that happens to women. I’ve known women who have been molested and raped as well and I don’t find it funny from either end. In fact, the woman that I loved more than anything else in this world was raped so I think I have some insight into how absolutely fucking horrible it can be (no pun intended and strong language more than justified).

“I've never been in a situation where I felt uncomfortable because the group was dominated by women.”


I have. It was not really fun. I’ll tell you something else – that group of women was more openly sexist and offensive than I’ve ever seen a group of guys be around a woman.

I’m not excusing guys who try to coerce women into doing things against their will. That sort of thing is, in my opinion, inexcusable, but it is not limited to guys. It’s not excusable from anyone, male or female (and, trust me, it happens with both).

Jim, the other voice of sanity, stepped in stating that he didn’t buy the attitude that all male programmers did was make passes at female programmers (and I agree).

This prompted a rather predictable response by our new “friend”:

“I'm not saying we do. All I'm saying is that if that FEAR is keeping one woman out, and the fem-only class lets her in, its a win”


No. What is keeping that person out is their own fear, not reality. If you are uncomfortable learning around men, how will you feel when you get out into the real world and work on development teams which, nine times out of ten, contain men as well as potentially other women?

“I theorize that by becoming exceptional in their trade, the unease when dealing with men is lessened due to being capable devs”


You become exceptional through practice and work. That involves working with and around other people, including men. You do the work and learn from it. You also learn from the people around you. That’s how you get better at anything (not just software development).

“By that logic, a group of women is not capable of creating great programs?”


No, by that logic, people who are afraid and never strive are not capable of creating great things. Letting yourself be afraid of your very surroundings and letting that fear control you means that you will never do great things and, in fact, may not do anything at all.

Greatness is accomplished by carrying on in spite of your fears (or sometimes even because of them). Giving up and going home because they let the boogey men in their head control them never really got anyone anything.

Am I afraid sometimes? You better believe it. However, I do my best to work through it. Sometimes it works. Sometimes it doesn’t. But I’ll tell you that it’s better than letting what *might* happen rule my life.

You’ve got to try for yourself. Nobody else is going to do it for you, and even if they did, it wouldn’t mean nearly as much to you as it would if it was your own striving that got you there. Others can, and hopefully will, help you along your way, but you have to keep striving and push yourself to find your true boundaries. Then you have to work to break those boundaries.

I went on to explain why I have some of the views that I do – the fact that I’ve known women who were great and men who sucked (and the other way around), that I’ve taught and trained with martial artists of both sexes with various skills and skill levels, that I’ve known victims of domestic violence (both male and female) and that I don’t subscribe to the mindset of “men are evil and scary and need to go away” because that cheapens everyone’s accomplishments.

“My experience is that I'm an arrogant asshole, and I understand why a woman (or man) wouldn't want to be in a class with me.”


Finally something we can agree on. However, that’s a problem with you and not a problem with all men. All men aren’t like you (and for that I’m thankful).

In all honesty, folks, I don’t care if you’re a man or a woman. I don’t even care if you’re green and furry. I believe in equal rights, but that means equal responsibilities as well. If you want to bridge the [gender, racial, whatever] gap, stop using that thing as a crutch and strive. *That’s* the way to give people positive role models. Role models are created out of overcoming adversity.

You can’t create positive role models out of people that you let have an easier time than everyone else. Greatness is taken and achieved, not given and people need to realize that. It requires striving, not going easy on someone because they’re somehow different (whether real or only perceived). That only perpetuates the “I can’t do it because…” mentality.

"Freedom is something that you need to actively acquire. It’s not something that’s given with no strings attached. To be free means to take responsibility, and to prepare yourself for what’s to come."
- Charles Beams, "Eureka Seven"
The same is true of equality. In fact, equality and freedom are often very close to one another.

Don't beg for things. Do it yourself or else you won't get anything.

Current mood: grumpy
Current music: Eve 6 – Inside Out


Monday, May 17, 2010


Mentorship and Community

If you ask some of the people who know me well, you’ll find out that I’m pretty big on community in both professional life and life in general. Personally, I view it as a way to help others, be helped, and be exposed to things that you might not otherwise consider.

Since I graduated from college, it has seemed like, professionally, I’ve been on my own. I’ve had friends, but it felt like I had no sense of professional community.

From my viewpoint, it’s like I’ve been trapped in some sort of insular bubble and the only direction and inspiration for “what do I learn next” has been stumbled upon by either bare necessity of a project I’ve been working on or through running across a mention of something in an article online. This is, to be honest, a Sisyphean task and, after a while, it starts to become discouraging.

I’ve missed the sense of community, knowledge sharing, and mentorship that I had while I was in the last couple of years of high school and throughout my time in college. Due to the exposure to other people and their ideas, my own ideas seemed to flow much more smoothly and I worried less about making mistakes because there was always someone that I could bounce ideas off of or go to for advice.

Professional development seems to be so much more difficult when you feel like you’re doing everything on your own. Add to that the fact that we are inherently social creatures, and being on your own can be nerve wracking.

Last night, I had a realization: I seem to have found that sense of community and mentorship again. And it’s on…Twitter?

Okay, to be fair, it’s in person as well since I get to see a lot of the people I talk to at least once a month, but the bulk of conversations occur over digital medium (twitter, email, and Live messenger primarily).

Roughly a year and a half ago, I found CONDG online when I went looking to see if there were any .NET developer’s groups nearby (I know. Novel idea.). Their most recently listed meeting at the time had a twitter link for the presenter, so having just gotten twitter a few weeks before, I clicked on the link and checked out their stream.

It just sort of went from there.

Now I’ve gone from basically knowing nobody in the field in this geographic area (since most of my college friends in CS were from other parts of the state/country/world) to knowing a number of them and feeling much more like a person again than I did a year or so ago.

It’s nice to be part of a group of people who help each other out, offer advice, chat, joke around and hang out together on occasion, and, when needed, give a kick in the ass to get you going again.

I’ve missed the camaraderie and exposure to new things and viewpoints. Maybe even more than I realized. It’s also nice to know that I’m not the only one that experiences self doubt about their abilities and worries about failure (Even if Phil Japikse does use it as an opportunity to make a good-natured joke at my expense heh).

I try to give back as well, but I sometimes worry that I take more than I give in return. I honestly hope that isn’t the case, because they’ve all been great, and I don’t want to put any of them out. I also don’t want to feel like I’m being a bother

What brought on this realization? The feedback from my last post, mostly sparked by the first commenter, who called me arrogant. I got tweets and emails from a number of people that I follow and have met with advice and constructive criticism on both the post, aspects of my professional development, and my resume as well as assuring me that the post was not, in fact, arrogant but generally fairly sensible.

I appreciate the support, advice and critiques. Some changes have already been made to the resume (paring down some of the older experience, breaking out skills by skill level, etc) and others are planned.

As a (rather large) added bonus, I’ve started to feel a lot more social over the last year. I view this as a great thing because I basically used to be a social butterfly (as difficult as that may be for some people to believe).

Thanks again, guys. You’ve been great and I hope that I am able to return the favor in at least some small way.

Current mood: humbled
Current music: Bush – Swallowed