Thursday, October 27, 2016

All I Ask is For Everything You've Got

Empty? When working out with my lifting partners, I have a saying I use before a hard set.  "All I want is everything you've got".  What I mean by that is that I don't expect you do more than you are capable of, but exactly everything you have to offer right now.  If your aiming for 8 reps, but you fail at 7, I am happy because you pushed to your limit.  If you quit at 7 because it's getting hard, I'm going to be disappointed.  I know I'm not alone among coaches with this idea.

Work shouldn't be much different. , I know we can't be at 100% intensity all the time at work, this is more like a long trail hike than like a heavy set of squats.  You need to know what your current capabilities are and at what pace you can maintain. On the whole, though, you know when you've left work and you didn't reach your potential for the day.

Recently I was doing some jogging with a friend and we were moving along at his pace which at the moment happens to be slower than mine.  He was apologetic that we had to go so slow, I couldn't have been happier, he was pushing himself hard to improve and we have a whole lifetime to move faster.  This friend also happens to be a mentor in our profession and has on many occasions taken the time to teach me at the cost of his own productivity.  I'm often apologetic to him for not knowing or not understanding quickly and he has been patient with me while still pushing me to get better. It turns out he's a good coach. As such he inspires me to do more and better work, by both demonstrating how and encouraging me to push to personal limits.

If you are anything like me you are your harshest critic, but that is what drives us to get better.  Perhaps from time to time we need to take a moment to cut ourselves some slack and evaluate ourselves against what our current capacity is, rather than against what our ideal self is.  However, when you  get done with that reflection it's time to focus on doing a little better tomorrow.  I'm not saying we should be complacent, but be understanding of the fact that we are on a journey.  Accept where you are, understand where you want to be and work hard to take the steps to get there.

Professionally, giving it all is something I often struggle with.  I come into work in the morning with grand dreams of all I want to accomplish for the day, and I may crank out a Pomodoro or two, but before you know it I'm shooting the breeze with a colleague, or procrastinating from an ugly task.  What I'm working on is giving myself the reminder to give what I've got, and don't be afraid to struggle and even fail.

The thing to remember here is that not every lift in the gym, nor every run, nor every day at the office is going to be a Personal Record (PR), but that is no reason you shouldn't do all you are capable today.  All I Ask is For Everything You've Got.

Waiting For Haters

Haters Gonna Hate
Haters are an indicator of making an impact.  For this blog I've not yet gotten any haters yet, but I know if I stick with it, they will come.

If you want to be my hater I'm looking forward to hearing from you. If I can make a request it would be that you blog about it, selfishly I wouldn't mind the traffic, but also you might as well practice writing yourself.

Honestly, I am generally too lazy to be a hater myself, but I won't rob any of you the opportunity if you have the drive. Who knows if you are good enough maybe I'll return the favor.

I haven't had a whole lot of controversial topics with strong opinions, so this will cut down on my haters. I'm sure however that with persistence I will find some.

I'm not saying I'm so tough that you can't hurt me. In fact, I'm sure some of you are proficient enough you'll be able to ruin my day. Some of the haters will just attack me, calling me names  (fat, stupid, bald, ugly etc.) Others will disagree with my ideas and opinions , and heck you might truly be right.

At any rate, I'm tentatively looking forward to it for now.  It is scary to put myself out there for criticism and being open to public scrutiny. I wouldn't write something if I didn't believe it, but that is no guarantee that I am always right.

Monday, October 24, 2016

How To Go The F To Sleep

sleep
NSFW Samuel L. Jackson Reads Go The F to Sleep

https://www.youtube.com/watch?v=nDGKK6y8OtQ

Ok, that's great for kids, but how do I as an adult get to sleep.  It's actually worse for adults because we don't have someone enforcing good sleep habits, and we have the freedom to make bad choices.

Good quality sleep is where our brain recovers from all the work it did during the day.  There is a saying in bodybuilding that you don't grow in the gym, you grow during recovery.  The same is true for your brain, it's not the learning and working that makes the brain improve, it's the good quality sleep and recovery that gets the brain gainz.  Think about a time where you started working on a new skill and just couldn't quite get it, then after a good night sleep that same skill was all but automatic.  That is your brain getting better during recovery.

I've assembled a list of tips in no particular order.  These tips are not my own, I've borrowed them from many other sources, but they do work.  For other resources feel free to search sleep hygiene.

1.  Go to bed at the same time EVERY night.  Yep, even weekends.  It's not fun it's not glamorous, but like I said you are an adult, so you get to do boring grown up stuff like go to work, pay taxes and go to bed early.

2. Make you bedroom a place where only two things happen sleepy time and that other thing that consenting adults do.  For now let's just focus on sleep.  What this means is you don't do things in this room that aren't sleep.  No television, no laptop, no smartphone, and even no reading.

3. Get your bedroom as dark as possible.  Go the full nine yards here.  Blackout curtains, cover up the screen of your alarm clock, if you must have your phone by you, put it in a drawer.  You should literally (the real literally) not be able to see your hand in front of you face.  If there are too many complicating factors, such as uncooperative spouse, get a sleep mask which is not at good as pitch black, but better than nothing.

4.  No stimulants nor alcohol near bedtime.  No caffeine, nicotine or alcohol around bed time.  Stimulants of course make sense, but alcohol while it might help you fall asleep, will give you a worse night sleep.  Feel free to look that up.

5.  Control your lighting throughout the day.  In general what this means is that you want a lot of blue light in the morning preferably by getting real sunlight and as little blue light in the evenings as possible.  For the morning you can also get a full spectrum light or a blue light that are treatments for seasonal affective disorder but also work to just get better sleep.  At night, you should get a blue light filter for your screens such as f.lux for your computer and there are similar apps for mobile devices.  Alternately you can wear orange or yellow glasses that block the blue light.  For more information on blue light and sleep check this out https://www.scientificamerican.com/article/q-a-why-is-blue-light-before-bedtime-bad-for-sleep/

6. Set up a winding down routine.  You may need to find out what works for you, if it's reading fiction, listening to a book, watching a relaxing show (with your blue light filtering in action).  You'll need to find out what works for you, but there are certainly bad choices, such as vigorous exercise (especially if competitive), arguments, overstimulating entertainment.  Anything that's going to give you a shot of adrenaline is a bad idea.

BONUS SECTION:

7.  Take a magnesium supplement.  Magnesium is a mineral that most Americans are deficient in so in addition to getting better sleep you'll be helping out your bones.  Two warnings, first work your way up on doses magnesium in large doses can have a laxative effect, so just add a little bit at a time to find out where your sweet spot is. Secondly and less problematic, magnesium supplementation can give you very vivid dreams for the first couple of weeks you use it.  Just be prepared for it and enjoy it.  I'm not sure the mechanism for this, but there is a lot of anecdotal evidence on it.

8.  Keep your bedroom cool.  60 - 67 degrees Fahrenheit is the optimum for best sleep.  Just think of those evenings in early fall when you keep the windows open and sleep like a baby.  That's the kind of temperature we're shooting for.

9. Get exercise, but not close to bed time. Getting some daily exercise aids in getting better sleep.

10. Watch what you eat before bed.  This is not about physique goals, but rather about sleep quality.  If you eat foods that cause indigestion before bed, you might be signing up for a rough night.  This will vary a lot from person to person, but things to watch out for are spicy food and dairy.

Try some of these out, and please Go the F to sleep.



Tuesday, October 18, 2016

Take Care of Yourself First

"Coach Gabavics isn't that selfish?!"

If wanting to do the very best I can at as many things I can is selfish, then I guess, yes I am selfish. However, let me share with you a frequently used, but very appropriate analogy.  On an airplane, when the oxygen masks drop they tell you the immediate thing you need to do is put your oxygen mask on first and then help others.  If you don't take care of yourself first, you will be useless to help others.

DSCN4745

Analogy 2:
Let's think of it like a vehicle, you need to do the routine maintenance (exercise), quality fueling (eating right) and fluid changes (sleep) in order to keep the machine that is you running efficiently.

If you run low-quality fuel that the car isn't really designed to run on it won't be able to run well, the body works like that too.  If you park your car all the time just not moving it much it can get what's referred to as Lot Rot, our bodies are designed to move and with neglect, you will lose the ability to do things you once could.  That one is, literally, use it or lose it.  If you don't change the fluids on your car it'll do fine for a little while, but with enough time, only bad things are going to happen.  You can cut your sleep short for a little while, but do it enough, your performance is going to suffer.  If your car breaks down, it's no good to you at all, in fact, it's not an inconvenience that you have to deal with. The same thing happens if you get ill from neglect, you won't be able to help anyone and in fact, you become a drain on others.

This happens in life too, and I can speak to this from a place of experience.  After I got married and started to settle in to work life and married life, I was eating like junk, not sleeping enough and not exercising, because I was "too busy".  My main hobby was watching TV.  My work suffered because I was always tired and had constant brain fog.  I didn't really want to do anything. This absolutely destroyed my health I just kept gaining weight and then eventually was diagnosed with Multiple Sclerosis.

The reason you need to do it is that keeping your body maintained is a force multiplier.  When you are in good physical condition (not fitness model shape here) you will have more energy to work and have the stamina to concentrate for long bouts.  If you are eating a healthy diet, you will be fueling your body and your brain so that you can think clearly during those long bouts.  Thus you will be able to do better work and more of it.  When you are done with work you will still have the capacity to live a good personal life.  This is not about vanity, looking healthy is a nice side effect of being healthy, but it doesn't need to be the goal.

Stack on top of that good sleep habits.  Yes, you will give up some time to get good sleep, but again this is where the quality of your output will far outweigh the quantity.  Sleep is crucial to your brain and your body, this is not a secret, but it comes up over and over.  So I will hammer on it over and over until everyone I know complains about having too much energy and too much clarity of thought. (If you have little kids, you have a harder road, but do what you can to get as high of quality sleep as you can.)

Now, I'm not going to tell you what to eat, what type of exercise to do, nor exactly how many hours to sleep.  I will write posts later on different modalities of training and eating that I am a fan of, but I don't know what your preferences are.  What I will tell you is that you need to find what works for you and DO IT!

The point of this is that you take care of yourself first so that you can take care of others better.  It's not selfish, in fact, it's selfless.

Monday, October 17, 2016

Find Your "Why"

Why
What is your "Why"

So you have a goal you'd like to achieve.  Great!  You might even have a plan for how to achieve it. Even better! Now comes the tough part, answering why.

Your "Why" is your north star, it's the thing that can guide you when you get lost.  When you are deep into a struggle and you want to quit or you are faced with a choice that could take you towards your goal or away from it, that is when you need a guide to keep you going.  That guide is your "Why".

Your "why" will work best if it is personal, and if it fits with who you are.  If you want to lose weight, but the reason you want to lose weight is because your significant other says you're starting to look chubby, that is an external "why".  That external "why" is doomed to failure and probably resentment.  When you are faced with donuts on Monday morning, is the fact that your partner doesn't find you attractive going to be a good enough reason to pass on them?  How about when there is cake on Wednesday or bagels on Friday?  Eventually, that kind of "why" just isn't going to be good enough.

Now same goal, but internalized.  You see yourself as an overall healthy person and that is part of the identity you have in your mind of who you are.  That being part of who you are means you take ownership of doing what it takes to achieve you goals.

You see yourself as a good father.  So you need to be healthy enough to play with your kids.
You see yourself as a smart developer.  So you need to stay up to date on current technology and have a deep understanding of your current technology too.
You want to be respected by your peers.  You need to have respect for yourself and that confidence will command respect from others.

Finding your "why" is usually a lot deeper than finding your goal, and frankly that why might cause you to re-evaluate your goals.

So you want to get a promotion?  Why?  So you will have more respect and more money.  Why is that important to you?  You grew up poor and were picked on and told you'd never accomplish anything.  When you accomplish that promotion will that actually fill in the void?  Probably not, because you will still have a chip on your shoulder.  So what really is the problem?  You were told you were garbage and deep down you believe it too.  What can you do to get past that?  You will need to learn to believe that you are worthwhile and accomplished.  How can you do that?  By getting your promotion, but not to shove it in other peoples faces, but because you are confident, accomplished person that deserved that promotion.

You see the goal didn't change, heck respect and money are honest and worthwhile goals, but the "why" turned out to be much deeper and much more personal.  When this hypothetical person is grinding the long hours and hard work, when they look at why they are making the sacrifices, they aren't coming from a place of greed or anger (which is fleeting), they are coming from the core of their being.  The "why" is basically, "because this is who I am".

One could argue that you should say "this is who I want to be", but I think of it more like Michelangelo carving the statue of David.  (loose paraphrase) "David was always there in the marble, I just took away everything that was not David."  Who you truly are might not be apparent to the rest of the world, but it's still there it just hasn't been fully uncovered yet.

I've heard the quote "If you understand your why, the how will work itself out".   That seems to sum it up pretty well, it's not some magic technique that will get you where you want to be, or at least not by itself.  There needs to be a reason behind it, a strong why will overcome any technique flaws, or at least prompt you to find better techniques.

Now if you'd like to read well written articles about this check out:

Forbes

LifeHack.org

Success.com

Tuesday, October 11, 2016

How's That Working For You ?

Sisyphus
"I would really like to lose weight, but I can't give up my chocolate bar".  "I want to get better at developing, but I don't have time for training."  What that boils down to is that "I want to do exactly what I'm doing now, but I want different results".  Yes that old definition of insanity.

Now here's the real question. How's that working for you?

We are more like a third party library than like source code.

If you want to change something about yourself you will need to change your behaviors.  You have to change the inputs to get a different output.  Yes there are hacks you can do to squeeze a little more out of the system, but those are supplemental.

Once you figure out what your goals are you need to come up with a plan to accomplish them.  Then you need to actually do the thing.  The big step one is that you need to be honest with yourself.  What do you want?  Is it achievable? If so how?  Are you willing make the sacrifices needed to accomplish it?

What do you want?

Physical things.  Do you want to run a marathon, bench 300 lbs or have 6 pack?
Are you built for any of those things?
Are you willing to put in the work?
Are you willing to sacrifice time, comfort and health?

Do you want to start a startup, get a high paying tech job or be CEO?
Are you built for any of those things?
Are you willing to put in the work?
Are you willing to sacrifice time, comfort and health?

What are your goals?
Are you willing to sacrifice what is needed to get there?

The magic of honestly answering "How's that working for you?" is that it is good to have that validation for things that are working just as much as for things that aren't.






Friday, October 7, 2016

The Three Tools For Improvement

tools

As I see it there are three main tools to improvement.

  • Learning
  • Practice
  • Application


These three things need to be balanced at least until you have really mastered something, then you actually get to go into the fourth tool innovation.  Let's not go there yet.

Why is balance important?

Learning is great, but without practice, and application it's just theoretical.  Practice is great, but without learning you'll stay in the same spot and without application you are sharpening a sword you never cut with.  Application is important, but without learning you will be stuck doing the same thing and without practice you won't have a chance to improve your weaknesses.

Depending on where you are on your journey there will be a bigger focus on some parts over others, but it's important to touch all of them.

I recently started playing table tennis and let me tell you I was horrible at it.  I'd never played it before and barely understood the rules.  Now I'm not going to say that I'm a great player, but what I can say is my game has improved faster than a lot of my colleagues that had been playing longer than me and the primary reason for this is that I did learning and practice, while all they did was application.  I watched YouTube clips on how to do different serves and shots as well as watched game play for study.  I found partners who would just do training where we would just work on one thing over and over.  On occasion I would play a game too and thus get application.  My colleagues were only interested in playing competitive matches.

If you are only doing application you can't really afford to take chances on new things or if you do, you are gambling on luck.

OK, now what the heck does that have to do with developing software.  The rules are pretty much the same here.  I'm sure you've met a developer who's been in the game for a long time and their code still looks they same as it did 10 years ago.  They may even be exceptionally good at getting things done, but they are using a screwdriver as a chisel.  They might be really good at doing it, but if they would take the time to learn how to use the darn chisel they could be even better.  They are completely focused on application.  Hey, that's what we get paid for.

You may have also met the developer who is super interested in the new hotness every week, and can tell you the differences between all the JavaScript libraries and that guy couldn't code his way out of a wet paper bag. All learning, no practice and no application makes you at best a know it all.

Now the trick is that you need to figure out what is lacking in this three legged stool of learning. Once you do that you need to get after that, you might even need to overcompensate for a while.
I can tell you the place that I am lacking in the development realm is with practice.  I do a lot of learning and I do application at work, but I don't spend enough time just practicing coding, and mastering the skills I'm learning.

So with this post I'm going to try to do some code katas and think up a side project for myself.  I will give an update post on that at a later date.

What are you going to work on?






Tuesday, October 4, 2016

Three Levels of Code Cleanup

cleanup

Here are three levels of Cleaning up a codebase, starting at what should be mandatory minimum, up to being a steward of your codebase.

Pitch In:  Don't check in any new garbage code.  Give yourself a code review before check in.

I know you are busy and you don't always have time for cleaning up everyone else's mess.  What I'm saying here is at least clean up your own trash.  You might not have enough time to leave it a better place, but what you can do is make sure your stuff isn't increasing the problem.

Give yourself a code review.  Before you do a check in do a compare to the previous version and see if you can see anything out of place.  Do you have any unused variables, any have excessive spacing, are there huge methods that should be extracted, is it Clean Code, is it following the DRY principle?  Yeah this is the same stuff you'd do in a code review for someone else.  As a bonus, by doing this you're actually getting practice at doing code reviews.


The Boy Scout Rule:  In addition to not adding garbage, you can pick up some litter.

Leave the codebase better than you found it.  If we all do this as much as possible the codebase will get better with time instead of becoming fragile legacy code that nobody wants to touch.

We've all had that time where we were in such a hurry to get something checked in thinking that someday somebody will come back to clean it up.  Well that day is today.  You've opened a file to make a change, before you check it in  it's time to make the file as good as possible.

This can be as simple as making sure that white space and indenting is consistent and removing unused references.  This could also be as complex as doing refactoring if something is really out of whack and you understand it.  Clean it up to make it the code you'd like to read.  Again it's like doing a code review, but on  the entirety of the files you touched.

Code Gardening - Going above and beyond and looking around for problems.

This is taking stewardship of the code.  You actively look for places you can fix problems.  This isn't a rewrite where you do it all from end to end, but it is more than just going where your tasks happen to take you.

Look around a little bit for problems and pluck those weeds.  This can be a major endeavor or just a way to make sure that as you do a go to definition and you see something out of place you fix it, even if it's not related to your current task.  As stewards of the codebase we try to make it better all the time.

Quick pointers for cleanup:

• As much as possible keep your task work and your cleanup work separate.  This makes it easier to get any accidents out of the code base.  Separate commits/check ins for clean up tasks and project tasks when possible.

• Especially if you are going to do a complete reformat of an entire file.  Do the format only and make that a check in with a comment stating that it's just reformatting and no logic changes.  Doing something like CTRL-K, CTRL-D in Visual Studio will make tracking changes next to impossible.  So go ahead and do it as a standalone check in.  Then any subsequent changes with the format in place will then be trackable.

• If there are unit tests on the code you've cleaned up, run them before checking in.  I know you'd NEVER check in without building, but running tests give you an extra layer of safety. Hopefully, you didn't mess anything up, but it never hurts to give it one more check.

• Don't be afraid to fix things.  If it's very complex make sure you get a code review, but we have source control for a reason,  we can get back to where you started in short order (especially if you've kept your cleanup tasks separate).

• Use, but don't abuse tools.  Tools like ReSharper can do a great job of doing cleanup, but you don't want to unleash them without supervision.  If you do the automatic cleanup on a directory, you may make yourself very busy trying to undo all the problems it can cause.