Monday, July 17, 2017

Get the Free “Change Your Life!” ebook

Do you want some great actionable tips and advice on how to improve your life from many top personal development experts (including me)?


You can download the free ebook “Change Your Life!: Experts Share Their Top Tips and Strategies for Reaching Your Highest Potential” by clicking the link below and signing up to the mailing list.



There are many great personal development tips from dozens of authors and course creators. I’m sure you’ll get a lot of value from the free ebook and I’ve included my own best advice as well.


The free ebook is part of the Better You Bundles for Good promotion at the end of July. There will be dozens of courses and ebooks, worth thousands of dollars, all for one low price. If you are serious about becoming your best self, you won’t want to miss this opportunity. The Better You Bundle only lasts for 4 days so make sure you check your emails to be notified of the sale.


The best part is that 25% of the proceeds from the sale are going to support Courageous Kitchen, a charity helping refugees in Bangkok. As little as $100 per month can get a family off the streets in Thailand, so we can make a big impact with this promotion.


Here is the link for the ebook again.
Get the Ebook


Enjoy the book!

Thursday, July 13, 2017

Guaranteeing a Consulant's Future


I'm frequently asked, "What is the best thing a consultant can do to guarantee his or her future?"

Start by recognizing that there's no way to guarantee anything about the future. If a giant asteroid hits the earth, I doubt that many consultants will survive.

A giant asteroid may be unlikely, but, for example, a giant world-wide Depression is a possibility we've already experienced more than once.

"What about joining one of the large, established consulting firms?"

Yes, there's a certain stability in an established firm, but nothing guaranteed. Lots of consultants get themselves fired from such firms, and the firms themselves sometime fold.

The same dangers apply to founding your own firm. There's some safety in numbers, but no guarantees. By and large, you have to take care of your own future for yourself. There's a few strong things any consultant can do to help ensure their future, but again, nothing is guaranteed.

Definitely save your money. Although you cannot absolutely guarantee anybody’s future, having financial resources will come as close as anybody can come.

Money in the bank will even guarantee your present—protecting you from the temptation to take the kind of unwholesome assignments that kill a consulting practice.

However, there’s one thing even more important than money. Health. Make it your first priority to do whatever you need to do to remain healthy.

Think of it this way: You are the number one tool of your consulting business, so never compromise your health for your business. You cannot receive a second body to replace the one you were given, so take care.




Sunday, July 09, 2017

Survey: The Worst Error Message


I participated in a recent survey. The question was:

What's the Worse Error Message You've Ever Seen?

This was my contribution, which received thousands of up-votes:

A graduate student brought me an error message that said:

THIS IS AN IMPOSSIBLE ERROR. THIS ERROR CANNOT OCCUR.

IF THIS ERROR OCCURS, SEE YOUR IBM REPRESENTATIVE.

I told the student I wasn’t the right person to see, but he should see his IBM representative.

He said, “But I’m my IBM representative.”

—————————-

I'd like to collect some of these lousy error messages for my book, ERRORS.

If you've got a good (i.e. bad) one, please share it with us in a comment to this post.


Thanks for contributing.

Tuesday, July 04, 2017

Significant Change in Five Minutes

Some people seem so eager to improve their situation that they're in a big hurry to be told:

What can I learn in 5 minutes that can change my life?

If I thought they were able to learn from people telling them things, I would tell them this:

Stop trying for instant, effortless changes in your life.

But, most people probably won't learn this from me telling them. Instead, they will probably have to have some experience that could change their life.

From my telling, they might learn about something, but not really learn, in the sense of putting something new into action. Learning about something is not the same as learning to do something.

Generally, only experiences can really teach people things that would change their lives.

For instance, they might be in an auto accident that would leave them blind, or quadriplegic.

Or, perhaps they would come home one day to discover that their spouse has left them for someone else.

Or, maybe they would be fired from a job they thought was totally secure.

Or, they could win $100,000,000 in the lottery.

Such learnings would change someone's life in five minutes, though they would be followed by many more changes—call them aftershocks.

If that is what they're looking for, they don't need accidents or surprises. They could arrange a life-changing experience for themselves. Parachute out of an airplane. Compete in a triathlon. Volunteer for a month in a soup kitchen or a veterinary hospital.

I suspect, though, that people who ask for five-minute changes are looking for some other kind of change—no pain, no effort, but just something positive and perhaps wonderful, like eating strawberry ice cream instead of vanilla. Well, if that's their desire, they can forget it. It's not going to happen.


I hope you've learned that lesson in the five minutes it took to read this note—but you probably didn't.



Thursday, June 29, 2017

Improving as an Agile Developer

The question was posed: "I'm on an Agile team, and I'm undoubtedly the least experienced member. What could I do to improve my software development skills?" Here's what I answered:

There are many things you can do to improve, and I’m sure you’ll get some good answers. If your Agile team is worthy of its name, you will certainly improve by working with them, reviewing their code, and having them review yours.

From my point of view, however, there is one thing to do that underlies all the other suggestions, and especially learning from your teammates:

Never pretend you know what you don’t know.

Always be ready to ask for help in learning new things.

You may think you have to look extra smart and experienced to impress your teammates, but it’s quite the opposite. Just show your willingness and eagerness to learn. Besides, your Agile teammates will always figure out if you're faking.


Some people might not value this approach, but they’re not people you want to associate with. They’re probably pretenders themselves. They're certainly not good Agilists.

Sunday, June 25, 2017

How do I get better at writing code?

Nobody writes perfect code. Anyone, no matter how experienced, can improve. So, you ask, how do I get better at writing code?

Of course, to get better at writing code, you must practice writing code. That much is obvious. Still, just writing the same poor code over and over, you're not likely to improve by much.

Writing is a different skill from reading, but reading code is necessary if you want to improve your writing. As with writing natural language, you build up your skill and confidence by reading—and not just reading your own output. So, find yourself some examples of good, clear code and read, read, read until you understand each piece.

Be careful, though. There’s lots of terrible code around. You can read terrible code, of course, and learn to analyze why it’s terrible, but your first attention should be on good code. Excellent code, if possible.

Where can you find good code? Textbooks are an easy choice, but be wary of textbooks. Kernihan and Plauger, in their book, The Elements of Programming Style, showed us how awful textbook code can be. Their little book can teach you a lot about recognizing bad code.

But bad code isn't enough. Knowing what's bad doesn't necessarily teach you what's good. Some open source code is rather good, and it’s easy to obtain, though it may be too complex for a beginning. Complex code can easily be bad code.

Hopefully, you will participate in code reviews, where you can see lots of code and hear various opinions on what’s good and what’s less than good.

Definitely ask you fellow programmers to share code with you, though beware: not all of it will be good examples. Be sure the partners you choose are able to listen objectively to feedback about any smelly code they show you.

If you work alone, use the internet to find some programming pen pals.

As you learn to discern the difference between good and poor code, you can use this discernment in your reading. After a while, you’ll be ready to start writing simple code, then work your way up to more complex tasks—all good.

And date and save all your code-writing examples, so you can review your progress from time to time.


Good luck, and happy learning!

Wednesday, June 21, 2017

Goals for Beginning Programmers

The question was, "What are some goals a beginning programmer should have?"

I’d have to disagree with those who answered, “Pick a language.” Instead, I’d say, “Pick at least two languages.”

I agree that you should avoid the “holy war” about which language is “better,” but the way to do this is to train yourself to be multi-lingual, or at least bilingual.

Pick two languages that are as different as possible, and do all your practice programs in both languages. Then take some time to figure out how each language has influenced your thinking about the program.

We’ve used this method for several generations of beginning programmers with remarkable results. One of our goals was to train programmers who could move into a new job where they used a language the programmer had never seen before.

Within two weeks, the programmer would be able to match the shop’s average.

Within four weeks, the programmer would be the best in the shop.

And within six weeks, the programmer would be teaching the others how to be better programmers.


Quite simply, our students achieved these ambitious goals, thus giving themselves a terrific advantage in the job market, with prosperous future careers.