Writers & Entrepreneurs … Find, Then Delight in Your Blushing Bride, the Muse

Is your muse hidden, nowhere to be found?  Has she grown tired of seeing you lick your war wounds.  Or has she escaped your, figuratively speaking, drunken tirades that you delight in when you’re feeling infinitely insecure, seeking refuge in some other great vessel.  Is she a he?  Is she a cause?  Is social justice, perhaps fighting the patriarchy, your light?  Or has the muse of your passion tree not yet born fruit.

Maybe your muse is like a delicious Colorado peach, just not yet in season but waiting to be playfully plucked.  Before you achieve greatness, you must identify your muse.  Your muse is that which lights your fire and excites you to get out of bed at 3 AM, despite Fido giving you an evil eye for disturbing his sleep.  The muse may pull you even from your real-life naturally naked bride during your hedonistic honeymoon.  The muse is that perpetually powerful and fierce force.

Step 1.  Identify your muse.  What spurs you to smile, cry, yell or fight?  In a hundred years time, how would you like to be known?  Are you hopeful of becoming a healthy healer, gushing-with-ideas guru or titanic-sized thought leader?  You can find the root of your muse, namely, by flushing out of your mind that which pulls at your heart’s desire?

Pull harder if you need to.  Ask your family of friends and friendly family for clarity, too?  But trust your gut.  Only you know wherein lies the muse.  You can beckon her but not they.  For they don’t know your spirit, your soul or your inner workings.  Only you can shine a light on that.  And when you find her, she will most naturally be in repose au naturel and waiting for her lover — you.  (This was added to wake up the male readers!)

Beyond a query of the deep recesses of your mind, look at your surroundings.  Artifacts of what she had for breakfast and likely lunch will be evident.  Put on your discoverer’s hat and investigate these territories.  What bodacious books are on your beautiful bookshelf?  What art or posters are on your walls juxtaposed with your favorite female nudes? (I’m assuming you’re French. Ha ha.)

Where do you currently invest your time and treasure?  What cause would you spill blood for or have?  When you’re ecstatically elated, what triggered this?  Angered by societal and social matters?  Ask a social justice warrior if they’ve found their merry muse?  You’ll see it in their acts, at least for the ones that have found her.

When you find your muse, she will punch your creativity into high gear, and your innovations will spill over.  Writer’s and/or entrepreneur’s block, etc., no more.  She will be your nuclear fuel.  Mars awaits.  Strap in because there’s no off switch.

Step 2.  Nurture and make love to your muse.  Yet now you’ve found her, and she is beautiful.  So now don’t lose her, because she may be foolishly finicky and not want to waste time with someone who would sinfully squander her gifts of gold.  Water the garden of love for her, pull those weeds, and stay focused on the mission guided by your muse and mistress.

Take care of yourself as not to burn out.  So take your new bride out and love her.  She is yours as long as you lavishly heap love on her.  And don’t be naughty or neglectful or you’ll wake up in the night all alone, once again, with nothing but wonderment and wishes. All that will be left will be your memory of her and the echo of your still voice in that dark chamber of your inconsolable mind.

The muse is our gift from above, but she must be cherished, nurtured, and loved on a daily basis or suffering will result.  She drenched you with her light, hope and dreams that they may be fully transformed to you.  It’s time to stop the silly suffering and win at life and with your art and innovations.  Your impact.  There is no more time now for drunken eyes and thoughts — no self-pity.

Now take your muse to the corner bistro and show her off.  You’re now a richer person than Donald Trump.  As with her by your side, no one can claim a better life.  Your impact on the world will be known.  Just keep watering that garden and the fruits shall soon bear.  Trust in that.

Advertisements

When or If You Criticize Someone, Do This

Being critical of things, people, services or brands is the American way — OK, the way of the world.

Like what newly married husband hasn’t said to his wife, “Honey, you weren’t in top form tonight. Is everything OK?” Yeah, not the best post-coital convo. Or dinner conversation like, “Honey, did you forget to salt the matzah ball soup? It tastes bland. And oh, by the way, my mom is coming over tomorrow and wants to help you arrange the furniture. That’s OK, right?” As she proceeds to chuck a bagel at you.

Well, if you feel the need to critique, especially a person, here are a few tips to be most effective. And stay away from critiquing the Mrs. — ever! Well, unless you have really good healthcare.

  1. Criticize the ideas or behavior, not the person.
  2. Value the relationship and the feelings of the person you’re criticizing over the message.  Make sure your criticism is constructive, not destructive.  Blogging, for example, is a form of social media — I think of it like long-form social media opposed to micro-blogging, like Twitter.  The operative word, however, is social. So in the social media spaces, be gentle — especially with those whom you don’t know well.
  3. Ask yourself, would Buddha or Jesus — insert other guru or perhaps Gandhi, Mandela or MLK — say what I’m saying … in the way that I’m saying it?  If not, consider how they might say it.  So, sure, 99% of others don’t do this you say.  I say resonate higher and be a model to others.  Words matter and how you say or write them matter.  Words can be weapons.
  4. Recognize the law of reciprocity (kind of like karma).  If you want greater _____, serve others first and the rest will follow.  Is your critique serving them or tearing them down?  Either your critique will bring you closer or push you apart.  There’s rarely a middle ground or neutrality.  All the spiritual gurus speak of love, reducing suffering and healing the world — uniting yourself with your fellow man or woman.  Is your critique doing that?
  5. Put yourself in the other person’s shoes.  Try and develop empathy.  Would you want to receive such a critique?
  6. It is not the intent of your critique but the perception that matters.
  7. If you’re commenting on a forum or blog, read your comment before posting it in the worst possible tone — same when tweeting or emailing.  Because that’s the tone most likely to be perceived by the reader.  Online communication lacks nonverbal cues, tone, etc.
  8. Preface your critique with something positive or affirming.  Similarly end your critique with the same.  Hence, sandwich your criticism in kindness.
  9. As much as is possible, criticize in private, not public.  Of course, online, this is all by definition public and expected on forums, blogs, etc.  If a serious conflict occurs, however, you should go private and in-person if possible, phone or worst case use email to try to resolve it.
  10. Assume the person you want to critique is already suffering and doesn’t need any undue pain.  I can assure you they probably are.

Constructive criticism isn’t designed to wound, but to help.  To serve.  Don’t try to destroy someone who most likely is already suffering by heaping on your destructive criticism. Develop compassion and empathy.  Play your part in healing the world.

So in the case of commenting online, try to have SOME positivity.  A comment that is 100% critical would appear too negative to the reader — it doesn’t feel good. Us geeks hang out a lot online. We need to improve our etiquette in this space. We are the worst offenders of online behavior. We all need to file down our tongues and get Buddha-like. Doesn’t his following say you shouldn’t even harm a mosquito?

Anyway, although we can often learn the most from our strongest critics, if the message isn’t packaged well, it is often lost on the receiver.  If you offend, you likely won’t influence.  You likely will create more distance with the person and create more suffering.  And the world doesn’t need more suffering.

If you wound someone with your criticisms, you only increase the likelihood of getting wounded in return.  Hurt people, hurt people.  In other words, the hurt person may seek revenge.  The cycle of conflict requires one to break the cycle and not contribute to it.

Caveat:  I want to clarify a point before leaving this post.  There are times where your ideas or message must be of the highest priority, and the feelings of the receiver, second.  Say I love robbing banks and you are challenging me on this.  You say, “It is wrong, immoral, etc.”  Then I say, “Stop it, you’re hurting my feelings to try to shut down the debate.”  So, yes, there are times where your ideas or message must come first, and the feelings of the receiver, second.

Yet, most of the time I believe it’s best to be mindful of the person’s feelings and put them first.  I believe you will have more influence with that approach.  The reason you have a favorite teacher or professor, etc., is likely more than just they had great ideas.  Often it is because they cared about their students AND had great ideas, etc.  Great leaders also care about those they lead. Caring about the feelings of others is actually win-win.

10 Reasons Why You Need a Programming Blog

Blogs have been around for a long time, but how many of us programmers have blogs?  And for those of us that do, how many are active and kept up to date?  Most people who start a blog find out it’s a lot of work.  For one, it might have been years since you’ve done anything in the way of writing other than send out some tweets or emails.

Writing long-form blog posts, in particular, requires lots of time with your butt in the chair.  There are no short cuts.  I think this is in part why platforms like Twitter — and other microblogging platforms — have become so popular.  It’s simply easier to maintain an active timeline in Twitter than to keep a blog current on WordPress.  With this post, I want to lay out some reasons why you need a programming blog.  There are many reasons but here are ten:

  1. Employers love them.  When you go looking for a job, which in this economy might be frequent, having a blog is the best marketing tool you can have.  The days where you showed up with a hard copy of your resume are mostly over.  Sure an employer can go to your GitHub profile and look at some of your open source code, but nothing compares to a few blog posts that describe your code.  Lots of new hires are surprised about how important communication skills are to employers and for obtaining upward mobility in the workplace.  For many jobs, they are crucial.  For programmers, this remains to be very important as well.  This is important, in particular, for those candidates who are to be tapped for leadership roles.  You might say, “I’m not interested in a leadership role.”  You might not be but your employers are going to always be looking for future leadership for their organization.  Finding a young person with strong leadership and communications skills, who also rocks it in the technical department, is the purple squirrel, which is so sought after by the hiring folks.
  2. You are forced to keep up to date.  Having a programming blog, as mentioned, takes some work, especially initially to get it all set up and to learn the ropes.  If you don’t have a programming blog, you can stay up to date on technology, etc., but you may be less likely to.  You would have to make a coordinated effort to buy some of the latest books on programming as well as attend programming conferences.  When you have a programming blog, you want to keep it fresh.  You start to get readers who are waiting to see what you have to say.  You don’t want to let them down, so you are going to be more likely to go out and get ideas to write on, read other blogs on the topic, read books and attend conferences, etc.  Again you don’t have to have a programming blog to stay up to date and sharpen the saw, but it will become more likely that you will naturally do it.
  3. You will end up networking with readers and other bloggers in your domain.  Most programming bloggers also write code.  Some of these people you may end up guest posting on their blog or vice versa.  Or you may even end up starting a company together.  To my understanding that is how Stack Overflow was formed (between Joel Spolsky and Jeff Atwood).  Even if you don’t end up starting a company with one of your readers or peer bloggers, you likely will help strengthen your professional network.
  4. You may be able to parlay your writing into a consulting or speaking gig.  If your ideas are sound and well laid out, you may find a company will contact you to interview you.  Or perhaps a conference organizer seeking out a speaker in the topics that you write about on your blog will contact you.  Many consultants and speakers started out as writers.  In fact, it can be difficult in some areas to find a consulting gig without having written at least one book on a given topic.  Think about people who are consultants in software management and software process related fields as well as those who speak on the topic.  Most probably published some of their work before they were noticed.  Many likely have a blog on their topic of expertise, as well, or at least they blog somewhere.
  5. … or you may parlay it into getting published with a brick-and-mortar publisher or perhaps as an indie publisher on Amazon, for example.  Nowadays before a publisher will even consider a new writer, in probably 99% of the cases, they are going to want to see that you already have somewhat of a readership.  They will want to see that your ideas have already resonated with an audience and that your writing is solid.  And guess what?  Likely you’ll need to go on a book tour, which entails giving a short speech about your book.  Speaking/writing and often even consulting go hand in hand.  Not that it’s to say you could never find a publisher to take you on without already having a blog and readership but it’s much less likely.  A publisher is not going to want to take a chance on a new writer without a body of work and a following.  They may take a chance but again not too likely.  There are simply too many quality writers/bloggers out there with readerships to take a chance on someone less established.  Besides, being an indie publisher (blogger), you show gumption and what publisher wouldn’t appreciate that.  The love of writing — a deep passion for the written word — is probably the number one characteristic shared be all writers across various domains.  And nowadays being a good programmer requires writing and promotion, or your software likely won’t get noticed.
  6. Keep abreast of web technologies, SEO and CMSs.  Before I started blogging, I knew about as much as the average techie about the web, which is to say a fair amount.  But now I’ve learned a lot more.  I’ve learned about static vs. dynamic sites and things kind of “in between” like Jekyll generated sites on GitHub, etc.  I’ve learned about the ins and outs of WordPress  … and Jekyll, too.  I’ve investigated other open source CMSs like Joomla and Drupal as well.  And I’ve learned more about the pros and cons of the different hosting options. But few of these things I would’ve learned by just reading an article or two.  I needed to roll up my sleeves and try out various CMSs, plugins, themes, etc.  I needed to try different hosting accounts, etc.   All of this is a learning process.  And as you learn, you just may start to explore more about web technologies, which would be a good thing.  I further explored by writing a web crawler in Python, wrote a static website generator in PHP, a webapp calculator in JavaScript and more … all for fun.  And sure it takes some time but the payoff is huge. To say nothing of what you will learn about SEO, social media and social media analytics, too.  You too will get hooked on the web and more excited about learning new things, which will benefit you both at work and with regards to your blog.
  7. Your writing will improve — likely even your speaking.  Before I had this blog, I thought writing s*cked … and it showed.  I had comma splices and run-on sentences galore.  I didn’t think it was a big deal.  Frankly, I thought it was a badge of honor as a techie to have less than stellar communication skills.  Before I got too far down the blogging path, I did a mental inventory of which blogs I enjoyed reading and why.  It quickly occurred to me as to what are the major ingredients of a good blog: programming-rich topics, well written and fun and/or at times entertaining, too.  Many bloggers whom I liked tended to also be a bit sassy/sarcastic and/or opinionated, too, although not too much but certainly not bland in their writing.  They had a specific topic or niche, but they also had some variety as well.  Well, in order to improve on your writing, you can start by getting a copy of Strunk and White’s book, the Elements of Style.  After you start writing your blog, you likely will notice holes in your knowledge, and you’ll need to go out and fill them.  You’ll start Googling grammar topics and probably end up buying a couple of more books on writing.  And when your writing improves, so in some ways will your speaking.  This isn’t obvious but if your writing skills are subpar your speaking skills will be less powerful.  As you learn to be a better writer, you’ll learn — or relearn — about active and passive voice, verb agreement, verb/subject collocation, subject/object differences, etc.  You just might even master the dreaded who/whom debacle to which formal English remains married (see how I used formal English there!).  So when you are preparing your slides or going over what you want to say for a meeting or speech, you’ll be able to say it with more eloquence, impact and power.  Think of some of the most powerful communicators in American politics (Pres. Obama, Pres. Bill Clinton, Sen. Ted Cruz, Sen. Marco Rubio, etc.)  All of the aforementioned speakers have very strong communication skills.  Think of MLK, JFK and Pres. Ronald Reagan, too.  Strong communicators can make big impacts in the world — even getting credit for shutting down the United States government (ha ha).
  8. You’ll be able to more effectively promote your code or open source projects.  Promoting your open source projects can be a challenge.  I don’t know how many times I’ve seen open your projects on GitHub or another similar platform and there are zero people who’ve downloaded the project.  And nobody but the original author appears to be working on the code.  An open source project that isn’t promoted to some extent will be severely limited in getting exposure and, hence, take off.  Just like what startup companies have to deal with, you need to market your product.  Even open source projects need to be marketed to be the most successful they can be.  Say you write a post about your new open source project, you may just find that one of your readers will want to help you build out your code base.  If there is any possibility for monetization, you might have just found a business partner, too.
  9. You’ll expand on your creative skills and have fun.  Coding has lots of need for creative skills.  There are often a hundred different ways to write code to solve a problem so creativity matters.  When you write blog posts, you likely will want to add some humor, tell a story or add what is called “flash fiction.”  This forces you to expand on your creative juices and exercise your brain in ways likely different than you’ve experienced before.  You’ll learn about similes, hyperbole, metaphors and other forms of figurative speech to add color to your creative writing.  You can quickly see when a blogger doesn’t introduce some story telling or figurative language; the writing is much more bland and dry.  A great example of an awesome technical writer/blogger is Joel Spolsky.  Although Joel is one of the fathers of tech/software blogging, others came before him, but none probably as good.  When you read Joel’s writing, you can really tell he is knowledgeable, smart and having fun with his writing.  Joel is, figuratively speaking, my writing mentor, an influencer.  I found out about him after seeing this video on YouTube a few years ago.  That’s when I discovered his blog and started reading his work.  (He also has some writing on Inc. as well.)
  10. You will learn more and clarify your thoughts on topics.  There is nothing like writing about a topic that forces you to flesh out your ideas on it.  There are many posts I’ve done where what I thought was going to be the gist of my argument ended up being rather different.  It was only after writing about it that I was forced to think about every angle more clearly.

Well, there you have it.  Those are just some of the ways in which having a programming blog may benefit you (beyond benefiting your readers).  It takes time to maintain a good blog, but the results are worth it.  If your writing skills are rusty, they will get a little better after each blog post.  Just develop a habit of trying to write at least one blog post per week.  Many people consider one blog post per week to be the absolute minimum you must have in order to maintain an active readership.  Some bloggers shoot for one post a day but that can be difficult to maintain, especially if you are working full time.  Just remember to have fun with it, blog consistently and your readership will grow in time — but be patient.

Can You Google to 6-Figures and Become a Programmer

There’s a lot of chatter on the Internet as of late about how to become a programmer. It can be summed up as follows, namely, in order to become a programmer you just have to learn to Google. As in Google whenever you get stuck doing anything.

Now most of the people don’t argue that you don’t need a formal education, but they do seem to suggest the formal education is almost just to tick a checkbox on the job application form.

There tends to be two major schools about education as it pertains to a career as a programmer: Google away to programmer bliss or go to school and then grad school until you nearly drop dead of old age before you enter the workforce.

Of course there are areas in between but many people do fall into one of these two camps. The former camp suggests that you can just Google away when you get stuck on the job. In other words, everything you need to know is out there just a few keystrokes away. Yeah, sure it is.

For one, this isn’t completely true. What you will find on the net are lots of research papers and a mix of blogger content. Some books on algorithms, for example, are in the public domain, but the better ones still aren’t unless they’re outdated.

If you’re trying to implement a certain design pattern in your application, you unlikely will find free content that’s legal beyond academic stuff or that from bloggers.  Unless you are well read up on the academic journals, you probably should skip them.  Now for design pattern stuff, you may find some bloggers who have some good stuff.  But what about something more complex?  Oh, and can you trust that the blogger is correct.

In my opinion, there is no substitute for a good book by a reputable author on the topic. Some bloggers are sharp and should be respected, but it’s up to you to figure out which ones are worth their salt. If you are in a pinch (of salt) and trying to get something done, do you really have time to spend trying to discern which blogger is most credible?

Sure Stack Overflow and related forums for programmers are godsends, but they aren’t silver bullets either. We programmers still need to know the fundamentals, and there’s no substitute such as just being a good Googler.

Now I’ll concede.  Many of the people who say you can Google your way to programmer bliss have a point.  There are times when Google is a programmer’s best friend.  I’ve noticed this, in particular, on web and mobile development projects.  There are so many libraries and idiosyncrasies that frankly aren’t covered at all — or little — in college.  But a lot of the experts in the field, including maybe even the library author, may have a blog entry or more that covers your problem with a workable solution.

College is great for learning about linked lists, compilers, graphics programming, OS development, etc.  Yet when it comes to NodeJS or any other non-C/C++/Python or Java language, you will be out of luck.  Although there are some academic programs, often at two-year tech schools, which cover web and mobile development, the vast majority of traditional academic 4-year colleges stay away from the bleeding edge stuff.

Hence, programmers learn to quickly use Google and Stack Overflow after graduation.  But what would happen if you had a programmer who didn’t understand the fundamentals of computer science?  My guess is they would stumble around and never come up with the best solution despite their best Googling efforts.  How can they be critical of what results came back from Google?

Admittedly, many of the people chatting about the merits of Googling and coding don’t suggest you don’t need a college degree.  Yet they still are assuming at some level you really don’t get much from it other than again that tick on the job application — and maybe find some new geek friends who also get exited when Linus does a kernel update.  Or maybe at a minimum they think just learning some of the vernacular of programming is enough.

Of course not all programming jobs are created equal.  Some really do require tons of education and others less so.  I would argue that the easiest programming probably falls under web and mobile development and some of the hardest is on OS development and computer languages.  Yet, web and app developers still need to understand algorithms and how languages at some level are implemented.  Not knowing some of these basic things can limit your ability to be a good developer.

So although I believe there is some merit to the notion we can make it pretty far with just using Google and visiting Stack Overflow, there is still no substitute for understanding theory as well.  And the best place to learn theory is in a traditional four year college.  Besides you never know as you might want to go on and get a PhD and work on being a really arrogant egghead — and do math proofs in your sleep.

So if you want to earn 6-figures as a programmer, you would have better luck if, for starters, you went to a reputable graduate school and took up computer science or a related field — and worked your butt off.

You could sum up this post by saying there are no shortcuts in life or silver bullets.  Instead, you will need to commit to doing lots of hard work, academic studies, lifelong learning and perseverance to be successful as a programmer.

Are You a Washed-Up Programmer?

My wife and I recently watched a film called Rewrite.  The lead actors were Hugh Grant and Marisa Tomei.  Hugh plays a washed-up screenwriter. It was years since he had a big hit.

He essentially was coasting and hoping for another one.  I couldn’t help but to feel sorry for him.  It made me think though: what would be an indication that a programmer is washed up?  So that was the inspiration for this post.  Thanks Hollywood!  Well, after some thought I came up with a few things.

Programmers, like many people from different professions, have two options regarding their career.  They can remain technical and continue up the chain to become a software architect.  Usually those people are also technical leads and have a lot of influence with the business — especially if it’s a software business.

Yet, of course, the other option is to go into full-blown management.  That is, put on a suit and hang out with the tie-wearing folks.  From my various work experiences, few programmers seem to want to go down this latter path.

Most seem more than happy staying technical.  Others aspire to start businesses, but most seem rather content staying technical within their organization.

So this post is more geared to the guy or gal who plans to stay technical and hence still cares if they are washed up or not.

Here are a few questions you can ask yourself to find out if you’re a washed-up programmer.

  1. How much do I know about functional programming?  This has been very hot the last few years.  OO used to be hot but now more so it’s functional programming.
  2. Have you read more than two programming-related blogs in the last year?  How many posts in the last month?
  3. What is the last book you read about software development?  Has it been years since you’ve read anything about software?  Maybe the first edition of Code Complete?  That might mean you are stuck in 1993, and it’s time to get your mullet cut.  If this was the last book you’ve read, you get one demerit.
  4. Do you putz around with any of your own software in your free time?  For example, working on an open source project.  Either your own or helping with someone else’s.  If you are too busy to start your own, just contribute to someone else’s.  I’m sure they would love the help.  Problem solved.
  5. How many lines of code do you write in a typical week?  >100?  >1000? Or are you in meetings most of the day?
  6. Are you in any software or programming meetups or study groups?
  7. When a younger programmer talks with you about programming over lunch, do you change the topic to baseball (or cricket if you’re in the UK or India)?  If you answered yes, again, one demerit.
  8. How many programmers are you following via RSS or Twitter, etc.?  Just following Kim Kardashian?  I get it but come on!  You can follow her AND other programmers.  I would hope that you follow two or more programmers or blogs, at least.

If you can affirm, to some extent, 4 or more of the questions, then you probably are in good shape.  If you can only affirm two or less, then you might be in the washed-up category.  In that case, you need to hit the books and study — sharpen the saw.

I can also hear you say what about the slick east coast software management consultants.  I’ve read every one of their books, at least twice!  OK Mr. Cosmonaut, you get two demerits.  Look those guys, most are guys as it’s basically a cigar-smoking old boys’ network, write that stuff to a management and executive-type audience.

Sure the little guys often are the foot soldiers of a software process initiative such as Agile, but it’s the higher-ups who buy into it and dole out the money for the consultants to fly in.  Most will need three plane tickets, by the way.  One for him, one for his wife and the third for his mistress, who gets stuck in coach.  The consultant also loves getting frisky with the air waitresses — OK, that’s what he calls them.

So, if you are a software consultant and want to know what your competition is up to, great, read those books until your eyes bug out.  But for most of us terrestrial programmers, we need to learn from other like-minded peers — i.e., real programmers.   Most of the consultants are in their consulting ivory towers and haven’t touched a line of code in 20 years, probably was even COBOL no less.

So I think the best places to find blogs are on GitHub (GitHub pages).  That is the biggest geek hangout every invented.  OK, it’s a tossup between GitHub and Stack Overflow.  Those programming blogs on GitHub pages can be ridiculously technical.  Frankly too much so if you ask me — more by and for domain experts than for regular programmers trying to learn a new topic.

OK, sometimes you should indeed be reading other domain experts.  But there are times you should be going outside of your domain and learning completely new areas.  Often learning something new and fresh is the most fun thing you can do.

Anyway, there are some really good blogs on GitHub pages that are geared to a less specialized audience, too.

I won’t cite specific blogs as part of the fun is finding a blog and blogger you really connect with.  Find blogs that cover the latest features of Java, Scala or Clojure.  Look into Haskell blogs, too.

Haskell is super hot now.  Think of it like a better, new, and sexy kind of Lisp.  Even JavaScript related blogs could be useful.  JavaScript has turned into a pretty neat little language with real handy functional constructs.

Are you planning to start a web-based business?  Well, Node.js and Ruby might be worth learning.  Ruby was hot.  Seems like in the not-so-distant past every start-up in Silicon Valley used Ruby.  Actually, I think it’s still fairly hot.  Wow.  That language took off quickly after Ruby on Rails got big.  Is Node.js the new thing?  I don’t know.

I would certainly follow it but don’t neglect Ruby if web development is of interest to you.  Jekyll is in Ruby — I believe it spawns Python so Pygments can do its code syntax highlighting.

I’ve just started building an old-school blog covering C, algorithms and data structures.  I hope to cover a lot of the fundamental algorithms and data structures, their proofs, and the code in C — geared toward practitioners.  Informally, I’m a disciple of Knuth.  Never met him, but I’ve studied under people like him in grad school —  Caltech, Stanford, Harvard and MIT PhDs.  I can hear you asking?

(Back to our program…)

Of course, I could do the usual thing and recommend you start a blog, too.  And you know what?  I don’t think that is necessary.  I do believe it’s a good idea, though.  In particular, if you have the time.  If you do this, pick a niche and try to own it.

So the truth is only you can truly answer if you are so-called washed up.  This list I provided may give you some clues though.  Either way, if you didn’t do so hot on the list, just take that as a hint to dust off your college books, read some programming blogs, and continue to sharpen the saw.  You’re never too old to learn or relearn.  Maybe you won’t catch as many cricket games, but it’s for a good cause.  YOU!

P.S. Skipping just one cricket game will save you at least 6 hours of time.   Imagine how much reading you could do in that amount of time.

P.P.S.  You could also lurk on Stack Overflow as I often do.  I’m too afraid to join, afraid I’ll become addicted, so I just lurk.  Join if you are more adventurous and have more self-control.

Get a Credibility Boost Using the Power of Oral Citation and Specificity

We all know how important citing works is in a research paper that we write.  Back in school, our teachers made sure we did this.  Even in blogging, it can help give your post more credibility.  Yet, I notice very few people use oral citation.

That is to orally cite the works of leaders in their field — to cite actual published works.  There are many opportunities to use this approach.  Whether in a meeting or when giving a presentation, there are times when citing the works of others can really have an impact and give a credibility boost.

I remember working with my former academic adviser.  After I graduated, I worked with him for one of his consulting clients doing some speech recognition work.  When he was pitching ideas to the client, he would quote the works of others off the cuff.

My adviser had a PhD, previously worked under Noam Chomsky at MIT, and was a prominent academic in his field.  He has made great strides in prosody in speech science.  (Prosody can be summed up as the rhythm, timing and intonation of speech.)  Hence, he’s no slouch, just the opposite; he’s a really smart and accomplished person.  He’s an expert in speech science, linguistic theory and effective communications.  He’s far from your de facto standard academic.

He would not just quote the author, but the title and even, at times, he would quote a specific page number.  Specificity, often, really matters and can give more credibility, too.

Say you ask me how many followers I have on Twitter, and I say I have hundreds.  Yet I just started blogging.  Are you going to believe me?  Maybe.  Would you believe me if I told you, back in my single days, I used to date Kate Moss, and we spent hours locked up in a hotel room in London doing illicit drugs — and more, much more. Let’s just say it involved a copy of the Kama Sutra.  Well, it never happened.

Back to my Twitter follower analogy.  What if I said I have 355 followers?  With that level of specificity, it seems more credible.  We can do this when we work on our resume, too.  Watch, I’ll show you.

Instead of saying on our resume that we improved capacity say something like we improved capacity by 35% — just sounds more credible when you assign a number to it.  (Of course, the number should be accurate.)  Even when you fill out your taxes, do you put that you donated $500 dollars to charity or $495?

Common or typical rounded numbers often flag Uncle Sam that your numbers are made up.  (Especially large simple and rounded numbers like 1,000 or 10,000.)  Rounding to the nearest dollar when doing your taxes is fine.  In fact, I think most tax software does this automatically for you.

However, if you round more than that on your taxes, you might get audited.  If you fail your audit, you’ll end up with a cellie who likes to make you the inner spoon at a federal pen.  And you much prefer being the outer spoon, uh, with a girl!

So, whenever my professor used oral citation, it was always very impressive.  I also recall hearing lawyers argue cases in front of the US Supreme Court using this same tactic.  I have a strange hobby of listening to lots of congressional debates on CSPAN and cases being argued in front of the US Supreme Court  — weird, I know.

Anyway, using oral citation always makes them sound so knowledgeable and prepared, which is no surprise since they ARE in front of the US Supreme Court.

Any, my tip then is to use oral citation when you’re in a meeting or giving a presentation and need to amp up your credibility.  And don’t be afraid to be a bit specific.  Maybe say something like,

“According to Mary Gallagher’s seminal work on function points, The Function Point Bible, we know that function points are really hard and few understand them, but they can be useful in the case of XYZ!” Don’t be surprised if some of your audience members are drooling over your presentation skills and mastery of oral citation.

I personally think adding page numbers in your oral citation is excessive.  My former adviser may have went too far at times, but that’s just me.  Anyway, I hope this short post gives you something to think about and you consider this tip.

Should You Get an MS in Software Engineering

Followers of my blog read about software management principles in software development among technical articles. A natural question one might have is, should I go get an MS in software engineering, too? Would this help advance my career?

I think the answer to that is what are you looking for in your career? If you want to be a technical lead or go-to person, you don’t need such credentials, in general. If, however, you want to lead a large group, many larger companies won’t promote you unless you have such or similar credentials.

Most companies mid-size to small though probably won’t care too much either way. In fact, many will think you will be too expensive to keep on their payroll or you will soon leave after getting hired — for greener pasture. Greener pasture being a large Fortune 500 company with deep pockets and an amazing benefits package.

You will hate to hear this but part of earning an MS in software engineering is networking. It essentially is the MBA of software. Many of your peers will be or soon-to-be high ups in their organization.

I often think of it as software management finishing school. It is not uncommon to be promoted within a year or so after earning such a degree (don’t count on it though). Getting this credential signals to higher-ups that you are at least open to leadership roles. Many students in such programs will work full-time and take the courses at night or on the weekend.

There certainly is something to be said for having a cohort of motivated people to get energy and ideas from. In fact, many start-ups form after graduate school (or more likely during — think the founders of Google).

Before all else I would suggest you work on being a great programmer — being the go-to guy or gal first then work on leading others. If in your mid-to-late twenties you decide the credential could help you get more noticed, than I say go for it.

The key take-away is that you shouldn’t think about it as a union card — a must have. I say that since my former adviser in grad school always told me the PhD is the union card for doing research. He was right, by the way, but that is another topic. An MS is rarely a union card (i.e. required) in order to get promoted — or hired for that matter.

For many companies though, an MS is a distinguishing feature and lowers the risk for hiring and promoting (in the eyes of higher-ups and HR). What companies want is a super smart technical person (that is human capital to companies). However, what they are used to are at most strong individual performers who know .NET like the back of their hand but don’t know the name of the person in the next cube.

Companies want both technical gurus and leaders, and if they can find it in the same person, they truly hit the jackpot and will hang on to you at all cost. It is a myth to think they are mutually exclusive. The best approach to learning, whether academic or not, is to approach it for the sake of learning, to acquire the knowledge to better yourself, and to write better code. Knowing more algorithms, more languages, and more technology means you will have a greater chance of being the go-to person. (Having great soft skills is also important to being the go-to person.)

Having a deeper knowledge of software means you can ask more questions and sometimes answer them. You will be able to attend a conference and steer discussions at the workshops based on your ideas. Next, you may be invited to speak. Leaders lead.

They lead even on their first day of the job. They lead by knowing better ways of doing things, by understanding things deeply, by having confidence and courage, by knowing diplomacy — the art of working well with others (aka soft skills). The end result is influence. With influence you can persuade and leave your mark.  Influence doesn’t just come about from being giving a big title.  It comes from true leadership — more in a future post on this.