Mark Freedman’s Blog

Productivity through technology, and other related topics.

Archive for the ‘General’ Category

Magic Music Passion

Sunday, October 11th, 2009

MagicMusicPassion.com

I haven’t posted in months, due to many reasons, none of which anyone probably cares much about. ;) Recently, though, I started a new blog, which is focused on music. You see, I’ve noticed that my blog was losing focus, jumping from topic to topic. But a recurring topic was music; enough so that I thought it was time to separate that part of the blog into Magic Music Passion.

Besides, my articles on this new site are shorter, since the music is the focus. This, along with my recent Twitter habit, is allowing me to work on becoming more concise with my writing. Which is a good thing, IMO.

I’ll steal what I wrote in my “Hello World” post on the new blog, to explain what I want to accomplish there:

I’m hijacking the default sample “new WordPress blog” post to welcome you to share one of my passions — that edge of the musical world where magic lives. The kind of music which takes us to a place and time we can usually only travel in our hearts and our minds. The music that takes us to another level of consciousness. A place where some people use drug as their vehicle, but where we use the most natural drug of all — music.

Join me in sampling some of the most magical music I’ve ever been privileged to have experienced. And in turn, I look forward to sharing in the music that makes you feel the same.

There are no boundaries in the music that takes us there. I’ll begin the conversation with a lot of the most special music that I have ever experienced, both in song and in album, from classical to pop / rock. But feel free to continue the conversation in whatever music touches you.

I’ll see you where magic meets music…

I will continue to post here on my main blog, sometimes cross-posting, but it will focus more on things other than music. This means technology topics from the point of view of someone who has been in the business for over 25 years, spending much of the recent past in leadership roles. It will also focus on related topics, such as education, community, and productivity. But until I get back into practice, I’ll continue to exercise my writing chops on the new blog for a bit longer, and get some of that out of my system.

Thanks for hanging with me.

http://MarkFreedman.com/wp-content/plugins/sociofluid/images/digg_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/reddit_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/delicious_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/twitter_48.png

There is Always a Need for Good Software Developers

Wednesday, April 29th, 2009

What I’m about to say does not pertain to everyone having trouble finding employment in software development during this difficult time, but DO NOT fall into the trap of automatically believing that you’re one of the exceptions.  It’s likely that you’re not.

How to Become a Highly Paid Corporate Programmer (Photo by seizethedave)

People have been asking if I had any advice for software developers who find themselves out of work due to the economy. I think they’re looking for consoling words, but instead I’m going to provide a reality check.

A few months ago, my company was searching for a couple of developers.  So for the first time in over a year, I started interviewing developers again, starting with the phone tech. And I was very discouraged at what I experienced, even after filtering out candidates from the resumes we received. The quality of candidates have always been a very mixed bag. After all, as Joel Spolsky makes abundantly clear, “The great software developers, indeed, the best people in every field, are quite simply never on the market.” But the drop-off of overall quality has been significant. If you don’t want to find yourself included in that group, I recommend you come to terms with the following…

Reality Check # 1: If your phone tech runs 15 minutes or less, you’ve failed. And most phone interviews last less than 15 minutes. I’m not exaggerating – 9 out of 10 people I interview are off the phone within 15 minutes. If you don’t care enough about your craft, you’re probably hurting the company you’re currently working for. If you don’t care about preparing for your interview, then not only should you second guess your career choice, you should also work on changing your attitude before considering another field.

Reality Check # 2: If you don’t take the time to think about what you’re doing, you won’t be much help to a company that cares at all about quality. If you can’t answer why you’d choose one technique or technology over another, or show critical thinking, you’re probably not providing enough value to your company. You risk being one of the next to be laid off, if you haven’t been already.

Do Heads-Down Coders Still Exist?

Some people claim there’s a place for "heads-down" coders, but if I just described you in the previous section, you wouldn’t even fit that description. Even heads-down coders need to make internal decisions every day. You’re likely doing things the way you do because perhaps someone once told you to do it that way, or you learned it from the book you’ve read on the topic (telling you "what" you need to do, but not "why" you’d choose to do it that way). You could be hurting your company and don’t even know it, or care.

And that’s the part that’s most frustrating. It seems that most "developers" I’ve interviewed don’t really care. It seems they think that all they need to do is throw out some textbook answers to questions, and it’s good enough to prove that they’re programmers.

That is completely wrong.

Resumes are Virtually Useless

I don’t believe the resumes I see anymore. They’re virtually useless. They’re just there for the collection of people I may need to call and filter out over the phone, because all they do is list technologies the person may have used at one time or another. And I don’t even believe that. Sometimes they just list buzzwords they could give one line definitions of, if asked.

I once interviewed someone who claimed to be a C programmer, but when he showed up for the face-to-face, he admitted, while looking me in the eye, that he only watched his roommate program in C! I’m sure many people have stories like this one, or the one where a friend interviewed someone, and only found out at the end of the interview that the person he was speaking with was actually the roommate of the person he meant to interview, but the other guy wasn’t home yet! The “candidate” went through the entire interview, and then confessed “as a matter of fact” at the end of it!

Your Job Could Be Outsourced to Someone Who Cares

Reality Check # 3: People complain about jobs going to another country. Well, if you’re going to claim you’re a developer, but you don’t take an interest in your career, then your job could definitely go to someone who’s not afraid to really think. I have rarely met a quality developer who lost their job to outsourcing and had been unable to quickly find another development job – even in this climate. True developers are in very short supply, and do not stay unemployed for long.

If you don’t want be another "outsourcing statistic", you owe it to yourself to show dedication to your career, and learn how to truly “think". It may be difficult to imagine, but some people actually act like thinking hurts. People aren’t taught how to think in school anymore, and I doubt they ever have. I was rarely taught “critical thinking” at school in the 60s and 70s. I learned on my own, from my parents, and from books. But I run into too many people who assume they’ve learned everything they need to know by the time they graduate. This is the difference between "book smart" and "common sense".

Take Responsibility

Reality Check # 4: Your career is your own responsibility – nobody else’s, institutional or otherwise. Show me a company that hires non-critical thinkers, and I’ll show you a company to avoid investing in. If you entered this field because you’d heard you can make a lot of money, but then you didn’t take the time to learn the "whys" and "whens" to do things, and all you did was "memorize" the "hows", you’ll be quickly found out. You can’t hide behind that. And then you may wonder why you don’t earn what you expected, or why you’ve been downsized.

You Can’t Hide

Reality Check # 5: It shows up in many ways. It shows up at meetings, when someone asks you how you’d implement something, and you use a generic answer, like, "I’ll write a module like I did for that other project, and just copy the code and change some strings." Or someone will ask for a feature, and you’ll just nod your head, maybe take a note or two, and never question a thing about their business. And then the stakeholder will wonder why you aren’t asking questions, and lose confidence.

During an interview, I’ll find out within a few questions if you’re just a "pretender". And if you think you can look up the answers while on the phone, and I hear paper rustling in the background, I’d know you haven’t been keeping up with the field – because if you had, you wouldn’t even be rustling through papers – you’d be clicking the mouse or typing! Even if I didn’t hear keyboard or mouse activity, I’d still know quickly, because you wouldn’t be able to answer the follow-up "why" or "when" questions. This is not multiple choice.

No Excuses

Reality Check # 6: What shocks me is that if someone made any attempt at all, it’s impossible to avoid accidentally finding the key information on these topics even if they tried. There’s so much information out there, anywhere you’d click would lead you to discussions explaining, discussing, and debating the whys and whens. We’re drowning in it!

If someone isn’t even learning by accident, then they just don’t care. I’d much rather hire an inexperienced developer than someone who just happens to know some facts about programming. I’d much rather hire someone who shows some passion for our field.

You chose this field.  And even if you can’t get passionate about it, your life truly does depend upon understanding why things are done the way they are in our field, and how to make choices in your approach to a problem.

Don’t use the excuse that you don’t have enough time because you have kids, or you’re busy with other things. We’re all extremely busy. This stuff is fundamental. If you can’t make the time for this, you’re wasting every moment. A moment that someone else, somewhere else, is not wasting.

What Top Companies Look For

Why do you think companies like Microsoft and Google are famous for their non-technical questions? Some people think it’s because they’re looking for the smartest people. I’d challenge that and hypothesize that they’re not just looking for the smartest people. They’re looking for people with the capacity for learning. It doesn’t come from knowing facts. Even if you clean toilets for a living, you need to make decisions on how to do it the best way possible.

Like those companies, we’re not looking for people who know everything.  There’s way too much to learn.  We’re looking for people who aren’t afraid to think. Who aren’t afraid to make a decision and stand by it. Who can research their options and make an intelligent choice based upon the situation. Who care enough to understand the fundamentals, but also know how to learn about what they don’t know. Only about 10% of the people I’ve interviewed have shown a desire to do so. Is it that they just don’t know how to handle an interview? There’s so much information available about that, so I don’t give them a bye for it. So many people are just willing to settle. To just to get by. Everyone gets physically lazy at times, but that’s just fatigue. In my opinion, actual laziness is the lack of desire to think.

The Interview

Obviously, some people just don’t interview well. Many are very nervous on an interview. Hell, I’m nervous giving an interview. That’s excusable, understandable, and never plays into my decision for consideration. But you can almost immediately tell the difference between nervousness and dedication.

Any company choosing to not bother even speaking to 90% of the pretenders out there should dominate their industry. Why do you think Microsoft, Google, and Apple are where they are?

Once you get past the first 15 minutes of an interview with us, where all we ask are the foundational questions, the next part involves asking for concrete examples of when you had to actually make decisions. Sounds simple, right? Well, at least half of the people who make it past the first part can’t do this. The third part is where we try to dig into why you chose this field to begin with, and to gauge your dedication to the craft.

If you can get past those first two parts, we’ll usually call you in for a face-to-face. This is where we’ll find out how well you can fit our team, and how you implement what you know. This is why we’ll give you an actual programming exercise. We really don’t care too much if you finish the task. We just want to see how you work. We learn a lot just by observation.

If you aren’t going for an analyst or architectural position, we’re still going to ask you questions that require analytical thinking. Maybe back in the 70s and 80s companies could get by with heads-down, don’t ask questions, locked-in-a-room coders. But these days there are so many things to consider beyond specific programming tasks, that everything you do requires some level of analytical and critical thinking. I feel that’s the most important and rewarding part of being a software developer. If you remember the simple point that programmers are actually problem solvers who use technology as the tool for solving them, you’ll understand why everything I’ve mentioned in this article is so important.

It’s sad to see so many people just sleepwalking through their career. If you care at all about your career and the field you’ve chosen, you should have little problem getting or keeping a job, even in this economy.

Resources

Ok, so I’ve smacked you in the face and woken you up.  Now what?  You’ve decided that you really do care, and that your job is in a tenuous position.  Where do you turn?  The good news is that there’s an abundance of resources available; more than you can even handle.  Sometimes the flood of information can be overwhelming and off putting.  But I’d start with the resources that’ll help you keep your finger on what’s most important.  You normally won’t get into detailed learning with the following, but they’re invaluable for making you aware of what’s important in our industry, and will direct you if you’re interested in a deep dive.  I’m focusing on the .NET development community here, because I work mainly with Microsoft technologies. But there are so many resources out there for all technologies.

Since there are many directions you can go with your skills, it’s important that you keep up with what’s happening.  Then you can choose what you want to dive into.  You can make a great living specializing in just a couple of technologies.  But you can’t even get there until you become aware of what’s out there, and what’s in demand.  Look at the topics discussed.  Do a bit of research before attending a user group meeting or listening to a podcast.

Local user groups: almost every large city has an active user group nearby. These are invaluable, not only for keeping up with the field, but also for networking. I help run two of them: the Fairfield / Westchester .NET and the Fairfield / Westchester SQL Server user groups, both in Stamford, CT.  You can also visit the following websites to find user groups and events in your area:

Podcasts: there are many podcasts that have their finger on the pulse of the industry. I can’t even imagine how much of a positive impact these resources have had on my career and my life. Based on my average commute, I’d lose around 500 hours per year if all I did was drive during these hours. But instead, I spend about 3 "working" months a year in "school" in my car. That’s three entire months! Here are the podcasts I regularly listen to which have been an enormous benefit. I can’t imagine where I’d be without them:

  • .NET Rocks! - the twice weekly, leading podcast for .NET developers, hosted by Carl Franklin and Richard Campbell.  If you’re a .NET developer, and you listen to no other podcasts, you must listen to this one.  This may be my single most valuable resource for keeping my ear to the ground about the latest Microsoft development tools.
  • Hanselminutes - a weekly, straight-to-the-point show with Scott Hanselman. Scott currently works at Microsoft, but started his podcast before then, and is well known in the development community.  He discusses many topics developers would be interested in; mainly centered around Microsoft technology, but often expanding to other, cooperative technologies.  He also discusses cultural topics that are of interest to many developers.
  • RunAs Radio - if you want to have a better understanding of the infrastructure and related technologies that make up the environment your applications run in, or if you just want to have a better understanding of the people who developers often seem to have challenging relationships with, I highly recommend listening to this podcast. At least it could help you understand and gain a bit of respect from your IT support team.
  • Stack Overflow - two of my favorite technical bloggers, Jeff Atwood and Joel Spolsky (one of my heroes), recently teamed up for a venture called StackOverflow. Their site is the number one site to visit if you’re looking for development answers.  I can’t begin to do justice describing the value of this site, and what makes it so special. You’ll have to see for yourself.  They have weekly phone discussions that they make public via this podcast.  I highly recommend it, just for their insights on development and the field.  It’s a bit uneven and not as polished as the other podcasts I mentioned, but it’s still extremely valuable.

Once you’re ready to dig deeper, there are so many more resources.  It gets old when I ask candidates how they keep up with the field, and the common response they think I want to hear is just, "I visit the MSDN site often."  That only shows me that they’ve kept their head in the sand for a long time.

  • Coding Horror - this is Jeff Atwood’s blog.  Jeff is one of the founders of Stack Overflow.  He always posts insightful and opinionated articles about our field, and even if it’s not about a specific technology you use, it’s about a topic that developers can relate to and find value in.
  • ComputerZen.com - this is Scott Hanselman’s (of Hanselminute fame) blog.  It’s another great resource, especially if you develop with Microsoft’s tools.
  • ScottGu’s Blog - although Scott Guthrie doesn’t write too often, his posts are usually detailed, and very timely, coinciding with new development technology releases from Microsoft.  You’ll often find info beyond the documentation, even before the gaps are filled in by books and other articles.  And you’re usually getting the info straight from the source.
  • StackOverflow.com - as mentioned above, this is an invaluable resource for developers.
  • Search .NET - a great custom .NET search tool by the famous Dan Appleman, where he targets expert articles on .NET
  • Google.com or Live.com - although "google" is now a verb, it isn’t the only search tool out there, and I do owe a lot of my career to Microsoft. So I’m also referring to Live.com here.  I often use search engines as my first resort when looking for info, and I’m amazed when candidates don’t even mention it as a resource. Baffling.
  • Twitter - start following key players in our field.  You won’t get much more timely than seeing what top developers are reading and discussing.  As a matter of fact, since I’ve used Twitter on a regular basis, I’ve stopped relying on my RSS subscription feeds almost completely.  If you want to see who to follow, start with who I follow from my account – MarkFreedman, and who those people follow.

There are so many other resources, I won’t even attempt to expand on this list here.  Just check out the links on some of these other sites.  There’s just no excuse for not keeping up with our field, and preparing for a new job. You just need to have a bit of desire and care for your career. If you need help working on your resume, just google it. There’s so much info out there.  I haven’t had to make use of these resources lately, so I can’t really recommend one over the other.  But I can recommend an article by my daughter.  Her resume tip article targets recent college graduates, but everyone could benefit from most of her tips.

Good luck!

http://MarkFreedman.com/wp-content/plugins/sociofluid/images/digg_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/reddit_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/delicious_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/twitter_48.png

The Day I Met Pete Rose

Monday, November 5th, 2007

Yes, what he did was inexcusable, and you may not think much of him as a person, but as a baseball player there are few who played the game harder and with more enthusiasm than Pete Rose.

I had the privilege of meeting him (read: buying his autograph) last weekend in Las Vegas. I’ve never done that before, much less cared about ever getting autographs, but I also never had the opportunity to meet someone of Pete Rose’s stature before. I was at a couple of his career highlight games, so that added to the aura. Of course, when you’re a Mets fan, and attend dozens of games each year in the late 1970s, you get a larger opportunity to see the opposition reach career milestones against your team. I was there when he tied Tommy Holmes’s National League hitting streak record of 37 games on his way to his 44 game streak in 1978. I was also there when he hit three homers in a game.

Pete Rose 1

My father worked for a time in Vegas, and actually met Pete Rose about a dozen times. He doesn’t think much of him at all, and considers him surly. Maybe because it was the end of his day of signing and posing and he was more relaxed, but he was quite nice and jovial with me as we discussed where I lived and my wife’s camera, and we had a few laughs.

Pete Rose 2

Pete always loved and appreciated the game he played. I’ll always remember his positive comments about being part of one of the greatest games in history, although his Reds lost that game 6 to the Red Sox in the 1975 World Series.

As a man, perhaps he doesn’t deserve entry into the Baseball Hall of Fame, but as a player, he certainly does.

http://MarkFreedman.com/wp-content/plugins/sociofluid/images/digg_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/reddit_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/delicious_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Separate Blogs Coming Soon

Monday, March 13th, 2006

I haven’t posted for a while, partly because I was a bit troubled about the variety of unrelated topics I had under a single blog, and wanted to be ready to commit to splitting them under separate blogs before posting again.

Over the next several weeks, I plan on splitting this into three separate blogs. This one will remain as a personal blog, where I’ll post general observations about life, and articles about personal growth.

I will have a separate blog under CoolTechU.com, which will contain technical articles about .NET and other related topics.

I will also have a separate blog under U2BloodRedSky.com, which will contain articles about U2 live recordings and collecting, and music topics in general.

I’ll post next, when this is complete.

http://MarkFreedman.com/wp-content/plugins/sociofluid/images/digg_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/reddit_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/delicious_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/twitter_48.png

Why Hoaxes Work

Saturday, July 30th, 2005

I am constantly amazed why e-mail hoaxes still work, even to this day. Haven’t we been warned for several years now to look for the obvious signs of an Internet hoax? Haven’t we’ve been informed of sites like www.snopes.com and www.hoax-slayer.com? Then why, oh why do people continue to pass around such garbage?

Human nature. People get excited or intrigued by an interesting e-mail, and due to what — the gossip gene? — they send it out to all their friends, aquaintances, and even strangers in their address book to share this exciting news. Seriously, it is understandable, being a human being myself (or so they say).

But, please, people — please check these sites BEFORE sending it out to the world. And look for the tell tale signs of a hoax — large letters, some text in color, and outrageous statements, such as — “This won’t happen again in our lifetimes!”, or “Send this to all of your friends and family!”. Those are glaring hints that this is a hoax.

I never trust anything sent to me with a long list of recipients (another thing — please do NOT include every recipient of your “spam” in the “To” or “CC” fields. Sent it only to yourself, and place all other addresses in the “BCC” field so that you aren’t giving out everyone’s e-mail address to everyone else). I have learned to never trust any such messages, and always check these sites (and do a newsgroup search) before passing any such e-mails around. Even then, I often play it safe and don’t send these e-mails around.

http://MarkFreedman.com/wp-content/plugins/sociofluid/images/digg_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/reddit_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/stumbleupon_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/delicious_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/facebook_48.png http://MarkFreedman.com/wp-content/plugins/sociofluid/images/twitter_48.png