Thursday, September 14, 2017

What should be my next step to becoming a better programmer?

What's your next step?

I'm guessing, but if you’re like most programmers, you’re already too involved in technical details, You may have mastered Python, Java, Ruby, C++, or a dozen other languages and platforms, but your ability to deal with other people is less than adequate.

Studies of programmers at work show that typical programmers spend 70% of the time dealing with other people. (Agile programmers may spend even more time). [See, The Psychology of Computer Programming]

- Do you ever misunderstand what you've been asked to do?

- Are you ever misunderstood when explaining what you're trying to do?

- Do you ever have fruitless arguments with your boss? With your coworkers?

- Do you ever have trouble dealing with people who are not as smart as you?

- Do you sometimes have trouble dealing with feedback about your performance?

If so, and you want to improve, perhaps you should devote some time to developing your People Skills.

At the very least, you'll learn how to solve "people problems" more efficiently, thus leaving you more time, in a better mood, to do the technical work of programming.

Next step? Take a look at this bargain bundle:

Sunday, September 10, 2017

False Urgency

What should I do with a client or boss who insists that a certain task is urgent, but it turns out to be likely a false alarm?

In your mind, subtract 10% from this persons trust account, then watch for the second occurrence. It might be a one-time mistake or it might be a person who thinks every little thing is "urgent."

If it happens again, tell him or her that you charge double (or triple) for urgent tasks. If he or she isn’t willing to pay, then find another client.

If you're an employee and this is your boss, you obviously can't charge them with money, so you have to find another way to make them pay. My favorite way was simply to ignore them and proceed at my normal pace, in priority order. I never got fired for doing that, particularly when it became evident to everyone that the urgency was false.

This is just one of the ways you have to train your clients and your managers if you want to be a successful employee, contractor, or consultant.

Thursday, September 07, 2017

Must There Always Be Inferior Code?

Some people claim that when you learn high software standards you will never again develop in inferior ways. Is this true?

I think you can arrive at a meaningful answer by using an analogy:

Some people claim that when you learn high medical standards, a doctor or nurse will never again treat a patient in inferior ways. Is that true?

Seen in this light, the answer is obvious. Most doctors and nurses will not treat patients in inferior ways—unless it's an emergency, like an explosion or a fire in which many people need saving in a hurry. If that happens, the doctor or nurse will return to those patients when the emergency has calmed down. Same in software.

But there do exist a few medical professionals who don’t live up to such high standards. They are, after all, human beings. Yet in spite of their inferior practices, some of their patients do get better. Why? Because humans have built-in healing mechanisms—but software does not.

Software with sick code doesn’t heal itself. Those programmers who develop in inferior ways will eventually produce troublesome code. But the key word is "eventually."

The inferior programmer may not be around any longer when the code's trouble makes itself known, so some inferior programmers can get away with hacky ways for an entire career.

It’s a good manager's job to recognize these inferior programmers and replace them and their code before the true costs of their inferior work become evident.

Some managers overuse the tactic of forcing programmers to code in a hurry, as if there's always an emergency. Just as in medicine, emergency treatment of code tends to produce inferior results. Managers who care only about the short-term will not do anything about their inferior programmers, but they, too, may move out before the consequences of their inferior management become apparent.

That’s why inferior programming practices persist. And, as long as programmers and managers are human, inferior practices will always persist. But they don't have to persist in your world. It's up to you. \

Code in haste, debug forever.

Sunday, September 03, 2017

Why is reading or writing something different from doing something?

First consider reading. Reading is (usually) a solitary activity, with no feedback. Without feedback, there's no check on what you believe you're learning.

Now, writing. Unless you put your writing in the hands of someone (or perhaps some computer analysis app), there's also no feedback, so there's no check on whether you wrote sense or nonsense.

When you do something, you interact with the real world, and the world responds in some way. With the world's feedback, you have the possibility of learning, confirming, or disconfirming something. That's why we strongly favor experiential learning over, say, lecturing or passive reading or writing.

If you want to teach somebody something, don't just send them to a book, or, even worse, tell them what you want them to know. Instead, figure out a way to have them experience the situation in which the learning applies.

After they've had the experience, you then might want to send them to a book where they can read about what they experienced.  Alternatively, you might ask them to write about their learning and have you read what they wrote.

You can try this out:

Step 1. Write a sentence or two about what would happen if you tried to move your desk six inches (15 cm) to the left or right.

Step 2. When you finish writing, get up and move your desk six inches (15 cm) to the left or right.

Step 3. What did you learn in steps one and two?

For a far more thorough answer to this question, see my four-volume series on Experiential Learning 

Then do some of the experiential exercises you find there.

Wednesday, August 30, 2017

How Does One Manage an Incompetent Manager?

How Does One Manage an Incompetent Manager?

The questioner does not say whether the manager's is their boss or employee, but I'll answer assuming they're the employee. If they're the boss, they should manage the same way they would manage any of their employees who is not competent to do the job they're paid for.

This is not just one question because there are quite a few different breeds of incompetent managers. To take just two examples, some are incompetent because they don’t interact with their employees at all, while others micromanage with a vengeance. It seems clear that you’d want to handle each situation in its own unique way.

If your manager is invisible, leaving you alone, just be thankful and go about your business. Believe me, you’re lucky.

For me, the first step in managing a micro-manager is to leave. Find another job, with different manager. A better one.

As for other managerial symptoms of incompetence, you can try working with the manager as one person to another, but realize that this amounts to taking on a second job. If you’re not a a trained psychologist, you might be better just leaving this one alone.

But if you decide you have the skills to manage your manager, do it the way a competent manager would. That is, concentrate on the question, “How is this manager interfering with the work we are being paid to do?” If their incompetence isn’t interfering in a significant way, maybe offer a bit of feedback, but only once, and then get on with your paying job.

In many cases, someone you perceive as incompetent can be a lot easier to live with than to fix. They may not even be as incompetent as you believe.

But if you're seeking advice on a particular pattern of incompetence, write me a note or comment. I will try to help you with specific actions to take.

Oh, and by the way, if you’re neither this manager’s boss or employee, then it’s none of your business, so just leave it alone. There are more incompetent managers in the world than you can possibly cure.

Here's a couple of books you might find helpful:

Sunday, August 27, 2017

Am I Boring, and What Can I Do About It?

I was asked, "Am I boring, and what can I do about it?"

The questioner explained, "Everything I have to say seems boring or unimportant. When I talk about my feelings it seems like I'm complaining or too complicated for others to understand. I don't feel like talking to anyone anymore. What should I do?"

I’ve heard this complaint many times, and much of the time, the person’s problem is not talking, but listening.

I advised him to devote some attention to what the others are saying to him and around him. Often they are trying to tell him why they seem bored, but he's not paying attention (which is a common symptom of “boring” people).

So I had him work on his listening for while and see what happened. He discovered some startling changes.

If you think you're boring people, maybe you’ll want to read

p.s. BTW, his question itself seems like he's complaining, and it may be too complicated for others to understand. As an exercise in learning to be less boring, try rewriting it so it’s not complaining and far less complicated.

Wednesday, August 23, 2017

Basic skills of a good programmer?

Many outstanding programmers were asked, "What are the basic skills required to be a good programmer?" Lots of good and useful answers were given to this question, such as, test before coding, use a particular tool, or use Agile methods.

For me, though, with more than 60 years of programming experience, the one thing that made me a better programmer was my ability and willingness to examine myself critically and do something about my shortcomings. And, after 60 years, I'm still doing that. You could say it's incremental development applied to myself.

I also examine my strengths (long-comings?) because I know that my greatest strengths can quickly become my greatest weaknesses.

For instance, one of my great strengths as a programmer was speed. If something had to be done quickly, I was the guy to do it. But the weakness in my speed was my tendency to omit the last few hours of testing that would make the project rock solid. I had to learn the importance of taking the time to do a precision job.

Many programmers do examine themselves critically, but then they work to improve their greatest strengths, to the exclusion of their weaknesses. That practice takes them a certain distance, but the nature of computers is to limit your ability, by highlighting your greatest weaknesses. 

A computer is like a mirror of your mind that brightly reflects all your poorest thinking. To become a better programmer, you have to look in that mirror with clear eyes and see what it's telling you about yourself.

Armed with that information about yourself, you can then select the most useful external things to work on. Those things will be different for you than for anyone else, because your shortcomings and strengths will be unique to you, so advice from others will often miss the mark.

Good programmers make good use of their best tools, and you are your best tool, so sharpen yourself.

See, for example, 

Tuesday, August 15, 2017

Must a Developer Know the Language?

We were asked, "Have you ever applied for a software developer job where you didn't know the language?"

My story is not exactly the same as others might have, for several reasons, but I think it does answer the question.

There are two phases to my story. My first job developing software was at IBM, in 1956. At that time, I didn’t know any programming language, largely because there really weren’t any languages other than machine code. So, I spent two weeks in a closet learning my first computer language.

Actually, it was three languages at once: machine codes for the IBM 704 and 650, plus the wired “language” for the IBM 607.

The second phase of my story takes place some years later, when I became a consultant. In that role, I have helped many, many clients who were using languages I didn’t know—even though I knew quite a few by that time, including LISP, Smalltalk, APL, PL/I, COBOL, FORTRAN, C, Pascal, Simula, several home-grown special application languages, and the machine code for the IBM 7090, 1410, 705, STRETCH, Dec’s PDP-1 and a few other machines. I had also studied in a bookish way quite a few other machines while doing competitive analyses for IBM.

I was able to help those clients largely because their problems seldom had much to do with the details of their chosen language(s). Instead, they were people problems of all sorts. The problems that did wind up with a language embodiment were usually easy to spot using my general knowledge of computer languages and typical errors people made in using them. That’s why I’ve always insisted that professional developers should know at least a handful of different language.

I think there's an analogy here with the term "mathematical maturity," something we might call "programming maturity." Here's how Wikipedia defines mathematical maturity:

Mathematical maturity is an informal term used by mathematicians to refer to a mixture of mathematical experience and insight that cannot be directly taught. Instead, it comes from repeated exposure to mathematical concepts. It is a gauge of mathematics student's erudition in mathematical structures and methods.

For instance, a mature mathematician is able to transcend notational differences, unlike my tutorial student who flunked algebra because he had learned to "solve for x," but said, "You didn't teach me to solve for y."

We could easily use most of those words to define "programming maturity," the ability that allows you to succeed in a developer job using a language in which you have no previous experience.

Monday, August 07, 2017

How Stressful is Software Engineering?

We were asked, "How Stressful is Software Engineering on Average?"

First of all, be clear. *Average* stress is not what an individual should be concerned about. Your concern should be about stress in your particular environment.

Second, you may be confused because of the widespread misuse of the word “stress.” Physicists say “stress” when they speak of applied forces. 

The way a system responds to those forces is called “strain.”

When you are the system subject to stress, you are a human being, not an inert piece of material. Therefore, you can learn to adjust the amount of strain you experience from the stresses in your environment.

Two people working in the same environment can experience widely different strains.

One person can be destroyed by a “stressful” environment while another can be inspired to work miracles. It’s your choice. Instead of worrying about the stress of your environment, work on the strained ways in which you respond to that environment.

Don’t be a victim.

Wednesday, August 02, 2017

Writing without the letter "A"

We were tested to see if we could write blog entries without the letter "A"

Of course we could write them. We could write lots of them. Indeed, I use this exercise in my writing courses, not just with the letter mentioned, but with every letter in English. Try it. Your writing will improve.

By the bye, some people wrote whole books without the letter E.
Weinberg on Writing
Try this test. Choose some letter, some difficult letter. Post some whole blog comment without using your letter.

If you would like to improve your writing, try

Oh, look. I unconsciously wrote the book title without the forbidden letter. It must be some terrific book. Multi-published reviewers think so:

"Don't write your book–build it with Weinberg's Fieldstone Method." - D. Poynter, writer of The Self-Publishing Manual 
"It's changed how I intend to write my next book." - P. D., children's writer
"Buy this book. Work through the exercises…" J.R., techie writer

Sunday, July 23, 2017

Get the Better You Bundles for Good Now!

It’s here! The Better You Bundles for Good is on sale now for four days only. Get over $6000 worth of personal development courses and books for only $97. There are over 140 products in this amazing bundle! If you are interested in improving your life, there has never been a better selection of resources at such an amazing price. Just a couple of the products will more than pay for the $97 price.

The best part is that 25% of the proceeds from the sale are going to support Courageous Kitchen, a charity helping refugees in Bangkok. Your purchase will not only make a difference in your life, it will also help some of the most vulnerable on the planet.
Take a look at the broad range of personal development resources included in the Better You Bundles for Good. There are books and courses on goal setting, motivation, health, meditation, stress, productivity, business systems, habits, procrastination, mindfulness and much, much more.
(Visit the website for the final list and more information.)
Courses and Resources
Effortless Manifestation Live Life by Design Not Default - Chris Spink - Value $1000
YOU 2.0: How To Instantly Upgrade Your Life - 10 Strategies That Work! - Derek Franklin - Value $95
There Is More Inside Self-Image & Attitude Development Program - S.Renee Smith Value $197
How to Create Your Someday Life NOW! - Lisa Broesch - Value $297
Zera Meditation 21-day Program - Theolyn Cortens - Value $267
How learning The 12 Universal Laws Will Change Your Life - Camillo Loken - Value $200
How I Earn $5000+ a Month Passive Income Selling E-books and Video Courses - Rob Cubbon - Value $199
Waking Up Productive - Dan LeFave - Value $197
Mindfulness for Success in 6 weeks - Change Your Destiny - Megan Jackson - Value $175
Public Speaking: You Can Be a Great Speaker Within 24 Hours - TJ Walker - Value $297
Systems Ninja 5-Day Series - Jenny Blake - Value $150
Get Shit Done: A No-Excuses Guide To Productivity - Dan Johnston - Value $113
HERO Society Membership - Cody McKibben - Value $111
How to be Present Whilst Presenting - Amy Botes - Value $100
Confidence Cure- The Key to Confidence No Matter Your Weight - Lauren Bromberg - Value $100
Relentless Solution Focus - Dr. Jason Selk - Value $100
Love Youself - A 30 Day Inner Bonding Course - Margaret Paul  - Value $99
High Performance. Everyday. Online. - Tony Wilson - Value $99
You Are Enough Toolkit - Cassie Mendoza-Jones - Value $97
Crystalline Light Code Activations and Workshop - Zoe Davenport - Value $97
Peace After Trauma - Carolyn Yoder - Value $97
Get Thi̶n̶g̶s LIFE Done: Introducing The Action Map System - Derek Franklin - Value $95
How To Create An Awesome Morning Routine: 10 Ways To Start An Amazing Day - Derek Franklin - Value $95
How To Break A Bad Habit - 5 Strategies That WORK! - Derek Franklin - Value $95
The Success Code - A Blueprint for Reaching your Goals - Lisa Metzgar, PhD - Value $55
How To Be More Confident - 13 Ideas For Becoming Unstoppable! - Derek Franklin - Value $95
Confidence Cure- The Key to Confidence No Matter Your Weight - Lauren Bromberg - Value $95
The Lunatic Gene. The Reason Your Life Will Never Make Sense - Adam Shaw - Value $25
Conflict Management: Find Resolution, Balance & New Insight - Alina Margineau - Value $90
Anger Management: Understand and Heal the Deeper Roots - Bertold Ulsamer - Value $85
Stop Self-Sabotaging Your Own professional Success! - Bertold Ulsamer - Value $85
Management - Leadership, Negotiating, Assertiveness, Sales - Chris Croft - Value $85
Your Daily Energy - Sherianna Boyle - Value $77
Personal Resilience In An Hour - Chris Johnstone - Value $70
Life Mastery - Be Happy, Healthy and Successful - Chris Croft - Value $70
65 LifeMaps (1-page tools for teaching powerful ideas related to success) - Derek Franklin - Value $65
STRETCH Risk Or Die! - Rhonda Britten - Value $60
Relax Into Life With Mindfulness - Teagan Fea - Value $58
From Procrastination To Productivity - Ms. Boom Shikha - Value $55
Boost Your Self Confidence - Fliss Kay - Value $55
Slim, Sexy, and Smart - 28 Day Weight Loss and Fit Program - Lisa Metzgar, PhD - Value $55
3 Beliefs that will Transform Your Life - Value $55
21 Days to Learn to Embrace Being a Highly Sensitive Person - Lauren Stewart - Value $55
Meditations on the Natural World - Molly Larkin - Value $50
Build strong connections in 21 days - Tyler Tervooren - Value $50
Plan Your Ideal Freedom Year in 2017! - Natalie Sisson - Value $49 -
Just-Write! Writing Worskhop - Debra Moffit - Value $47
The Complete Guide To Creating A Successful Life - Carl Pullein - Value $45
Starting, Managing, and Scaling a Successful Online Business - Rob Cubbon - Value $39
12 Day Detox - Total Transformation - Lisa Metzgar, PhD - Value $35
Morning Routine: My 5 Step System For Morning Ritual Mastery - Adrian Landsberg - Value $25
Goal Setting: My Exact Goal Setting Blueprint For Success - Adrian Landsberg - Value $25
Open the doors to Your Professional Success! - Bertold Ulsamer - Value $25
Supercharge Your Self-Confidence in 30 Days! - Scott Asai - Value $25
Build My Brand: Blogging, SEO, Social Media & Relationships - Rob Cubbon - Value $25
Improvement Accelerator Framework Kit - Giles Johnston - Value $25
Turning the Self Inside Out - Richard Longworth - Value $25
How To Be More Resilient And Feel Better Easily - Adam Shaw - Value $25
How To Increase Your Personal Energy, and Help More People - Adam Shaw - Value $25
Igniting Boundless Receiving - Panache Desai - Value $159


Brilliantly Better - Dragos Roua
Why You’re Stuck - Derek Doepker
Your Focus Formula - Diana Fitts
Don’t Be Your Own Worst Enemy - Self-Care for Busy People - Neil Thompson
Personal Development Simplified - Break Negative Patterns and Take Control of Your Life. Guaranteed. - Kshitij Prasai
Quit Your Job And Live - A Beginners Guide to Building a Location Free Income & Travel Hacking Your Way Around the World - Adrian Landsberg
How I Became Productive -12 Proven Factors to Productivity - Abder-Rahman Ali
Optimize for Victory - A Simple Approach to Overcome Challenges and Achieve Your Dreams - Lisa Kardos
The ​Mindful ​Walker - Rediscovering the Simple Path to a Healthier, Happier, More Peaceful Life - Alex Strauss
Powerful Confidence - Annalie Coetzer
Paths to Wholeness: Fifty-Two Flower Mandalas - David J. Bookbinder
Better Running Goals - Diana Fitts
Build Your Laptop Lifestyle - 10 Issues - Agnes Bogardi
Assess - Decide - Do - Natural Productivity Dragos Roua
Get Your Creative Projects Finished Now! - Eric Maisel
Take Your Power Back - Healing Lessons, Tips, and Tools for Abuse Survivors - Evelyn M. Ryan
At the Core of Every Heart: Reflections, Insights, and Practices for Waking Up and Living Free - Dr. Gail Brenner
Are Your Lights On? - Gerald M. Weinberg
What Did You Say? The Art of Giving and Receiving Feedback - Gerald M. Weinberg
The Millionaire Mentor - Unlocking the Secrets of Wealth Greg S. Reid
Her Blood is Gold: Awakening to the Wisdom of Menstruation - Ian Thorp
Parallel Worlds: A Transpersonal Autobiobraphy - Ian Thorp
The Dream of the Cosmos: a Quest for the Soul - Ian Thorp
What Next? - Diana Fitts
50 Steps to Freedom A Personal Journey from Depression to Joy - Stephen Connor
Alchemy: The Art of Transformation - Ian Thorp
How To Give a Shit About Your Health - Karina Inkster
21 Days to a Happy Clutter Free Life - Lauren Bromberg
I, Mammal: How to Make Peace With the Animal Urge for Social Power - Loretta G. Breuning, PhD
Letting Go of Difficult Emotions - Lori Deschene
The Rainbow Way - Lucy H. Pearce
The Impact of the Human Stress Response - The Biologic Origins of Human Stress - Mary Wingo, Ph.D.​​
The Ten-Year Turnaround: Transform Your Personal Finances and Achieve Financial Freedom in The Next Ten Years - Matthew Paulson
Long Term Person, Short Term World: How to Manage Time, Tasks, and Texts: Methods for Living an Ambitious, Authentic, Unapologetic Life: Goal Management and Personal Productivity in the Modern World - Michael Motta
Inspiration is a Habit - Turn Your Purpose Into a Profession - James McCrae
The Fountain of Youth is Just A Breath Away: Breathing Exercises For Relaxation, Health And Vitality - Molly Larkin
Procrastination - Putting Things Off and How to Stop Doing It - Neil Thompson
The Secrets of Consulting - Gerald M. Weinberg
What Lies Within You - Molly Larkin
The Tree of Life: Talks by Buntie Will - Ian Thorp
Active Listening - How to Communicate Better - Neil Thompson
Effective Writing - Neil Thompson
Job Interviews - Giving Yourself the Best Chance - Neil Thompson
The Morning Book; Daily Rituals For Sacred Living - Molly Larkin
Stress Matters Keeping Stress at Bay - Neil Thompson
Tackling Bullying and Harassment Developing Dignity at Work - Neil Thompson
Just Tell Me What I Want - Sara Kravitz
Getting a Grip on Time - Productivity and Life Balance Made Easy - Robyn Pearce
Self-Love - Stephen Connor
Weinberg on Writing - Gerald M. Weinberg
The Reluctant Messenger - Stephen Connor
What is Your What? - Steve Olsher
Wake Up Call - Thibaut Meurisse
Online Business Productivity - Timo Kiander
Agile Project Management For Busy Managers - Tony Riches
Tackling Low Self-esteem Building Confidence and Self-Respect - Neil Thompson
Get Your Money Where Your Mouth Is - David R. Portney
People Centricity: The Incredible Power of Putting Other People First - Stephen Hewett
About Time - 120 Tips for Those with No Time - Robyn Pearce
I Believe Therefore I Am - Claire McGee
Running For My Life: From Zero to Ultramarathoner - Dragos Roua
The Millionaire's Message - Bryan James
Effective Teamwork- How to Develop a Successful Team - Neil Thompson
You Can Move Mountains - J.F. Straw
Love is the answer: A Guide to Awakening the Heart and Stepping into True Authenticity - Zoe Davenport
Personal Growth Bundle - Annalie Coetzer
Exploit Yourself: A Master Class in Personal Networking Techniques - Bruce Wade
Vision to Reality - How Short Term Massive Action Equals Maximum Results - Honoree Corder
Personal Productivity For Busy Managers - Tony Riches
Turning Imagination into Results - Strategies to Elevate Your LIfe and Career - James McCrae
Simplify - 7 Guiding Principles to Help Anyone Declutter Their Home and Life - Joshua Becker
Dear God How Can I Heal So That I May Love - Margaret Paul
Shut Up and Write - The No-Nonsense, No B.S. Guide to Getting Words On the Page - Mridu Khullar Relph
Write Your Way Out Of Depression: Practical Self-Therapy For Creative Writers. - Rayne Hall
Tick-Tack - The Story of Your Time - How to Tame TIME and Make Him Your Ally! - Alina Margineanu
Jack and the Team that Couldn't See - Tony Wilson
The Lunatic Gene - How to Make Sense of Your Life - Adam Shaw
Getting a Grip on Leadership - How to Learn Leadership Without Making All the Mistakes Yourself - Robyn Pearce
Sleep and Sleep Disorders - A Brief Introduction - Neil Thompson
Getting a Grip on The Paper War - Managing Information in the Modern Office - Robyn Pearce
Working With Todoist - Get Started with Todoist so You Can Get Better Organized and Achieve Greater Productivity - Carl Pullein
Your Digital Life - Everything You Need to Know to Get Your Life Organised and Put Technology to Work for You - Carl Pullein

If you haven’t signed up for the FREE Change Your Life! ebook, I recommend getting it soon. 
Click Here to Get the Ebook
Dozens of contributors to the bundle have shared their best personal development advice. You’ll get a lot of value from that book alone.
I'm giving you this free ebook as a sample of the authors you will find when you purchase the Better You Bundles for Good. But whether or not you purchase, the free ebook is yours to keep and enjoy.
Don’t miss out on the Better You Bundles for Good. You only have 4 days!