Archive for March, 2008

It’s As Easy As Working Your Ass Off

Posted on March 27th, 2008 in Opinion, Programming | Comments

In the past couple of weeks, I’ve gotten incredibly addicted to Twitter, the micro-blogging, social-networking, chatting, or whatever you want to call it tool that’s been a huge hit in the past year or so. I had my account for a while, but never did anything with it. Recently I’ve just started following people and it’s just plain fun to see what these people are doing most of the time. I’m connected all the time now, so feel free to follow me! If you still don’t know what Twitter is, see a pretty cool video called Twitter in Plain English.

Well, I’m not here to talk about Twitter, although I’ve gone on and talked a fair bit about it. This post does have something to do with Twitter. I’ve been following a lot of people from the Rails community on Twitter (Geoffrey Grosenbach, Obie Fernandez, Dave Thomas, Jamis Buck and Rick Olson, among others). Some of the things they say are funny as hell (such as Obie’s “Po-po made me pour out my beer :( “), but for the most part they’re interesting stuff from these people. Most recently what I noticed is all the stuff these people actually do. They travel a whole lot, they meet a lot of interesting people and work on a ton of cool stuff.

My first thought when reading these comments are “Damn, these people are lucky to be doing all this stuff.” But in reality, I think they didn’t get lucky all of a sudden. Well, probably they had a little luck, but nonetheless it’s not pure luck. It seems like these people actually worked hard to get where they are now, and are probably still working hard to keep it going.

I always wondered why I couldn’t be the one working on awesome stuff, traveling to cool conferences and all that jazz. But making an honest assessment of myself, I definitely don’t work hard enough to earn these things. And it’s disappointing, because I know that if I put more effort into what I currently do now, I can achieve these things as well. Instead of picking up my Nintendo DS and playing The Legend Of Zelda: Phantom Hourglass for one or two hours straight, I could be starting formulating plans for some interesting ideas and projects I have in my mind. Instead of being on IM and chatting about non-significant things with people I don’t know in real life, I could be reading a book that will expand my knowledge. Instead of checking my RSS feeds every 20-30 minutes (like I obsessively do sometimes for no apparent reason), I could be helping with an open source project.

These are just a few of the things I can tweak to make more time for these things. I’m seriously going to try to change these things, even if it means less sleep and less playing Zelda – although I can’t promise anything when I get my Playstation 2 and Guitar Hero games sent from Puerto Rico, those games are more addicting than heroin. Anyway, I really want to start putting an honest effort to get myself more known out there, to do lots of things that other people will use, and to just help in any way possible those things I enjoy the most.

If you think like I thought before, it’s time to take a good look at yourself and see if the problem is that you’re truly unlucky, or if the problem lies simply in yourself.

“Women in Development”? How about just “People in Development”?

Posted on March 19th, 2008 in Computer Science, Opinion, Programming | Comments

For some reason, I wasn’t too much into podcasts until recently, when long trips in the subway made me find something constructive to do while traveling to work. So I’ve been downloading a ton of podcasts that have been out there for a while now. My favorite has to be Ask A Ninja – it’s just hilarious. But as far as tech podcasts go, the Ruby On Rails Podcast is one I’ve been going way back to download and listen as many as I can.

One particular podcast (or rather, two podcasts which were from the same interview, just split in two) that caught my attention was a roundtable discussion about women in development (Part 1 / Part 2).

I found this discussion interesting, as I have to admit I haven’t encountered that many female developers myself. During my university days, I probably saw less than 10 different females taking Computer Science courses during my nearly five years there. Half of those were in the introductory programming courses, from which they rapidly switched their major when they realized they didn’t like it. The other half stuck around, but most of them didn’t seem to enjoy it much. It could probably be due to the fact that they were female.

No, I’m not saying that because they’re women, they immediately shun all types of advanced technology or science courses. I say this because in one course, I was paired with a female student for a class project. At the end of the project, while at the library finishing up on some details, she said she was surprised during this project with me, When I asked why, she said that in every Computer Science class, in every single project she’s been teamed up with boys, the guys either dumbed down what was given to her to work on, or she would be constantly be getting hit on. This was the first time someone from the opposite sex seemingly treated her as an equal, which I did.

This is a sad truth in those academic fields where men outnumber women greatly. They’re either perceived to be dumb, or simply viewed as a potential mate. And I honestly never viewed one of these girls who took classes with me like this. Okay, maybe once I took a liking to one girl, but I still would’ve liked her no matter which major she was, so I feel like I’m clear of all charges against me. I’m not sure if this has to do with the extremely-low number of Computer Science students who are female, but I’m suspecting this has something to do with it.

Trying to put myself in their shoes, I’m sure it’s difficult to deal with these things when all you want to do is just learn and be a software developer like any other. Still, I find it somewhat odd that the women need to start off groups like DevChix and PHPWomen. It’s cool to see enough females get together and form these groups and get recognized for it. But I think these groups just label them as a different breed of developer, instead of just trying to get themselves being viewed as equals. Or maybe these groups are really necessary to combat all the obstacles I mentioned that women in this field encounter. It doesn’t seem like there’s an easy way for this behavior to end.

In any case, I’m all for the females getting their voices heard, showing the world what I have known all along: women are awesome developers. Their genetics don’t have a damn thing to do with their abilities, so stop viewing them as “that programmer chick”.

Don’t be proficient in just one programming language

Posted on March 13th, 2008 in Opinion, Programming | Comments

I just read a post by Joan Planas Illas titled “Be proficient in one programming language“. In this post, Joan gives some advice that developers should stick to one programming language, get really good at it, and make a career out of it. He does offer some good points, such as software development not being just about learning programming languages, and how employers actually prefer if a prospective employee is well-versed in the programming language they’re looking for.

But for me, those who follow the advice of just mastering one programming language are usually day-coders: those who only think about software development from 9 to 5, nothing else. Don’t get me wrong, I’m sure there are a lot of day-coders who are awesome at what they do. But usually these people don’t have much passion for what they do. They’re happy being in their own groove, not expanding their knowledge, and just do their job because it pays well and nothing more. These are probably the worst types of software developers any company can hire. No passion almost always leads to a sloppy job.

But the best software developers I’ve seen show an insatiable amount of curiosity to learn every single thing out there. Of course, it’s not possible. While I don’t have any sort of scientific proof to back me up on this claim, I’m fairly sure there’s a direct correlation between how effective a programmer is with what they’ve learned. A person who reads and stays up to date with different programming languages will have a broader vision on how to get things done. A person who only knows one thing will most likely know only how to solve problems the way their language does. Sadly, a lot of programming languages have their own conventions on doing things their way, which sometimes isn’t the right way to do. These bad habits are then embedded to the developers, who are unfortunately ignorant to recognize there are better ways of solving a problem.

I have yet to meet or read about a kick-ass or famous software developer (well, at least famous in my mind and geeks around the world) who is an expert with just one programming language. Martin Fowler didn’t just stick with C. Yukihiro Matsumoto didn’t stay with C++. Zed Shaw definitely didn’t ‘get married’ with Ruby. These are just a few examples. But just think of any well-known software developer, and one common trait they’ll have is that they at least have experimented with many programming languages, and I’m sure that helped them be as knowledgeable as they have been.

So if you have the time, get to know a programming language of your choosing, preferably one that interests you and not one that all the ‘cool kids’ are using so you need to learn it too. Once you get a firm grasp of that language – not master the language, there’s a huge difference – take the time to learn a new one. For example, if you know Ruby pretty well, get into Python. They both are similar, yet have different ways of doing things. Just don’t choose Ruby and stick with that for the rest of your life. You’ll earn no real benefit at all, and when the next big thing comes along, you’ll be get left behind. Unless you’re happy with that, day-coder.

Original developers and non-workaholics beware

Posted on March 8th, 2008 in Opinion, Programming | Comments

Here in New York, I’m working at a start-up company that is a few months away from their initial launch. This is a refreshing change of pace from where I used to work. In my previous job, I was the sole programmer, but not for a company whose main purpose was build software. Now, I’m part of a group of people, where we’re all working together to complete a software project. It’s an interesting experience for now, and I know it’s going to be an awesome experience for me.

As many of you should know, working at a start-up that hasn’t launched yet is hard. Really hard. Trying to build something that hasn’t been done yet will definitely have its setbacks, and there’s a high risk involved in the whole deal. Just a look at TechCrunch’s so-called DeadPool, start-up companies who had to shut down for one reason or another – usually because they didn’t have enough money to finish. Also, since these companies aren’t actually generating any revenue while building their product, most of the times there’s not a whole lot of people working at any given time. That means a ton of work for those involved.

Of course, I’m not saying start-up life is bad. On the contrary, it’s been fun and exciting for me. I’m doing what I want to do for a company that has a great idea that, if all goes smoothly with no major bumps on the road, will enjoy massive amounts of success. And being one of the main persons to actually have constructed part of that success, it means there will definitely be rewards down the road. With this being said, lately I noticed a couple of articles with some people saying some… Well, I’m tempted to say ’stupid things’, but I’m not one to pass judgement, especially to those I don’t know personally.

The first one comes from Mike Mason, a software consultant, who advises start-ups to fire their original development team when the company has a successful launch. Of course, now that I’m part of a dev team who’s with a start-up that hasn’t launched yet, I definitely wouldn’t want to be fired. But this article offers absolutely no valid points whatsoever as to why firing the original people who helped get the company to the “Promised Land” is a good idea. His main gripe is apparently this:

The problem I’ve found when working at startups-turned-enterprises is that the guys who built v1 of that web site are now running the IT department.

Yeah, this is a problem, definitely. But guess what? Who put the developers in charge of running IT? It’s not the developers themselves – it’s management. Why on Earth would a manager put a software developer in an IT role – a main position, at that – if they’re not actually qualified to do the job? In this case, the developer who built the first version of the site should stick around, possibly as the lead developer for newer hires, while they’re making their product better. For IT, hire someone who’s actually qualified for what you want. That way, you have someone who know about your codebase actually working with code, while someone who knows about IT tasks can focus on that. Like the ol’ lightning rod him, Zed Shaw, said in his blog about this post:

If you want to fire someone, it’s management. Fire the assholes who focused on making everyone cram for some shitty demo to moron VCs instead of focusing on the quality of the mother fucking code in the first place.

You just gotta love Zed, even if you don’t agree with him most of the times. If you read Mason’s blog post, he also has some more ‘advice’, like “Hire an expensive consulting company to help you build your systems better, and allow Chief Architect dude to ignore their recommendations” and “The minute you’re successful, plan to rewrite your software from scratch“. I admit I haven’t had years of experience in the software development world, but honestly, it seems like this is just a plain bad idea mentioned by Mike here, and just reeks of being counter-productive to the entire company.

Another article I read that left me wondering what the hell the author of the article was thinking was written by Jason Calacanis, CEO of Mahalo, some human-powered search engine, who wrote some tips on how to save some cash when running a start-up. Most of the ideas sound really good, and I agree with most of them. But there was one item that caused a lot of debate around some other sites. Here’s the original quote, as apparently the author noticed he put his foot in his mouth and edited it to sound “less harsh”:

Fire people who are not workaholics…. come on folks, this is startup life, it’s not a game. go work at the post office or stabucks if you want balance in your life. For realz

Whoa, so if I work for you, you’re going to fire me if I don’t work 12 hours a day, at least six days a week? For realz? Sorry, but I definitely wouldn’t want to EVER work for you, even if you pay me ten times as much as I’m earning now. This idea of being a workaholic is just plain idiotic. Overworking leads to so many problems, it’s not even worth it to mention all of them. Stress, bad productivity, bad decision-making, all of these are caused by people working more than they should.

It’s sad to see that in this day and age, there are still people who view borderline slavery (i.e. making them work way too much) as the only way to be successful. People like these shouldn’t be running companies at all. It’s not about how much you work, it’s how smart you work. David Heinemeier Hansson over at 37Signals’ Signal Vs. Noise blog gives his take on this, and brings up some great points to do, what he says, “Fire the people who are workaholics!

Of course, after a backlash around the Internet, especially in TechCrunch’s aptly-titled post Calacanis Fires People Who Have A Life, Calacanis back-peddled and wrote a follow-up post where he said didn’t actually mean it that way, and that he meant that the TechCrunch headline should be “Calacanis fires folks who don’t love their work”. This, I can agree with a bit more, but still, the post was just plain back-peddling, even if he doesn’t want to admit it.

Calacanis goes on to ask two questions: “Can you have a life and work at a startup?” and “How do you manage stress?” The first one is easy: Yes, I can. I’m currently working in a start-up, and still have more than enough time to explore New York City, keep in touch with my friends and family, work on personal projects, and even write long, interesting blog posts. The second question, about managing stress, it’s also easy: Don’t be a workaholic. If you work all the time, if work is your life, of course you’re going be stressed. Take some time away from work. Go do whatever relaxes you (please don’t say work relaxes you, you liar). Take one day off, it won’t be the end of the world or your start-up. Come back feeling refreshed and hopefully stress-free.

Working and/or managing a start-up is definitely no easy task. But don’t think that working all the time or firing your original people because they’ll run the rest of the operation to the ground will help. Work smart, keep your good people around and treat them well, and you’ll see that your start-up will be successful. As long as your idea is good and you have the funding, of course!

Keywords do work!

Posted on March 7th, 2008 in Funny Stuff | Comments

Just wanted to write a quick post this morning about something amusing I found. I was checking out my site’s stats through Google Analytics (which is a great free service, by the way – I just wish they would make it a real-time stats tool, even if I have to pay for that service), and found this in my ‘Keywords’ Traffic Sources:

My Site’s Traffic Through Keywords

Of course, I don’t have any porn on this site (sorry, please be redirected to one of the trillion other sites out there that do have some), but I simply have a post titled “All the porn you want! (Not really)“, which was a post about my experience with the Akismet Plugin for this blog.

Lesson learned here: If you only care about numbers and want to boost traffic to your legitimate website (without caring that you’ll only attract horny people who will immediately click the Back button once they realize you have no porn), just add the word “Porn” in your blog post. That being said, I’ll refrain from using the word in this blog. Who knows what those people are looking for?

Why don’t you have a blog?

Posted on March 4th, 2008 in Opinion | Comments

When I was in Puerto Rico, I started this blog because I thought that virtually all programmers out there had their own blog somewhere in cyberspace (or whatever people call the Internet nowadays). Since I was searching for a job, I thought this would help me get at least on par with others in the job-seeking market. Even though I already have a job, I decided to keep this blog active as a hobby, since I do like writing about anything that interests me.

Currently, the company I work for is looking for more Ruby On Rails developers to help with the development and maintenance of ths site we’re making (note: if you live in New York and are looking for a job using Rails, contact me and I’ll let my employers know about you). It hasn’t been easy, since it seems that seasoned Rails developers – although I don’t consider myself a ’seasoned vet’ – are scarce, probably because they already have jobs elsewhere. But that’s another topic I’ll write about soon.

In my case, my boss asked me to check some sample code from someone out. After checking the code, I was curious to see who the person was, so I searched on the Internet (which I truly implore all employers to do when scouting prospective talent) to see what kind of profile this person had. There were some posts of him asking some questions about Ruby and Rails, a mostly empty profile at Working With Rails, but nothing else. No web site, no blog, nothing. I found it weird that a person with years of professional programming experience has nothing that they regularly maintain.

Sneaky spy that I am, I also checked some previous employees at this company, and to my surprise, none of them had blogs or anything else that they keep up-to-date. It’s really surprising that in this day and age, when blogs, websites and domain names are so cheap (or even free) to acquire and maintain, that they don’t spend a couple of minutes to set something up.

Of course, I’m not saying that you need to set up a blog or website if you’re a programmer. It’s definitely not a requisite. But in an era where your electronic identity is more important than ever, it’s a great thing to have for many reasons. Like I did, you could be job-hunting, or looking for work on the side. Having a place where people can freely go and checking out your work (or your personality – something that’s overlooked a lot) is a bonus. It’s like a pre-screening, but you’ll have the advantage over others who don’t have sites set up. Provided that your site is decent, of course. If I were an employer looking for a web developer, and found that their website was full or animated GIFs, MIDIs and scrolling marquees, I would most likely pass.

I think the primary reason for people not doing this is probably their perceived amount of time they think they need to spend maintaining a blog or website. To be honest, it takes virtually no time at all. My usual blog posts take around 15-20 minutes to write up, since they’re just thoughts that come to my mind during the day, and I take the time to write them up later on. I don’t need to sit down, write a first draft, think how I’m going to write my blog, etc. I just sit down and do it. I also don’t feel the need to update the blog every single day. It’s not about quantity, but about quality. If you can write a kick-ass blog post every two or three weeks, I appreciate it more than reading a deluge of uninteresting blog posts every day.

If you’re a developer who wants to make a name for yourself, either for professional or personal reasons, I really suggest at least creating a blog (it’s not like you have to pay – Blogger and WordPress are two good starting places) and trying to write something from time to time. Not only will prospective employers thank you for it, I believe it’ll also let you grow as a professional.