I’ve been reading many programmer blogs looking for hot tips and tricks. Several blog posts that seem to get the most reaction concern the different types of programmers. Some programmers are pragmatic and focus on solving business problems. They don’t keep up their skills and don’t do any programming over the weekend or in the evenings. Other programmers fancy themselves as software engineers and get deep into math. They like to learn new languages and spend all their free time programming or studying new technology. However, although the “software engineer” may be brilliant, he often refuses to focus on the business problem and may waste considerable time creating custom compilers or doing “bit twiddling“.
I don’t consider myself to fall into either camp. I consider myself to be an entrepreneurial developer. I find most career advice to be worthless because it is insufficiently cynical and I am very cynical about business. Don’t expect me to buy into the meritocracy and I don’t want to hear about teamwork or “thinking outside the box“. I think Dilbert is an accurate portrayal of the workplace. The best career advice I’ve read is to remember that you are not part of the organization. Your employer feels no loyalty to you. This is especially true for programmers who can be easily outsourced. You should always look out for number one and consider yourself an independent contractor supplying a service to your employer. This means you need to tend to your career as a business. You need to keep yourself marketable.
For example, if an opportunity comes up at work to take some training you should grab it. Don’t adopt the bad attitude that training is a chore or just more work. Training is something that you acquire and benefits your career. When you leave your company or are let go the training goes with you and makes you more marketable. Most companies don’t provide any training because they are not interested in investing in their employees. They know that there is no loyalty in this business relationship.
So it is important for a programmer to invest in his own training and build up his expertise. The lazy institutional programmer just does not get it. He feels too secure in his position and does not bother to learn new technology. On the other hand, I don’t think the “software engineer” is much better. He is too into the technical aspects of coding. I see a lot of this on the ASP.NET community weblogs where developers write about advanced language features. They don’t seem to take any interest in the online business opportunities for web applications.
I think there are several other advantages to the entrepreneurial mindset for a programmer or web developer. For one thing it keeps you from becoming lazy because you need to evaluate new technology for its business potential. It also keeps you from becoming bored because you are emotionally invested in running your career like a business. I would even recommend that an institution encourage the entrepreneurial mindset in its IT staff because it keeps them sharp. Unfortunately, some technology companies actively discourage creativity because they want ownership of anything the programmer develops. This can sometimes be taken to a ridiculous degree where every bit of code becomes company property that must be signed away. I can see how you may want to protect an entire application but most code is completely unoriginal.
Social broadcasting strikes me as being the hottest Internet Entrepreneur opportunity right now. All the participants are highly excited by the technology. They are pushing hard to take advantage of the opportunities and get very upset when anything threatens their plans (such as the encroachment of traditional media). I’ve seen an explosion of new web sites in this space. Unfortunately is is very challenging to do anything on your own because the technical requirements are heavy but I have some things cooking.