Tag Archives: Computer Science

How to Eliminate the Stress While Working Towards Your Goals

There’s no failure in a scientific experiment. You either achieve your goals or you find out what doesn’t work and gain experience.

Lately, “intelligent people feeling miserable” became a popular blog topic. It’s a bait topic to make miserable people feel better about themselves. “I feel miserable, so I must be intelligent.” And let’s face it; most people feel miserable about themselves, because pessimism is ingrained into our brains.

Pessimism had its evolutionary advantages back in the day. You might be better off feeling pessimistic when you see a lion instead of trying to pet it. The flip side of pessimism is to feel miserable.

Pessimism is not necessarily productive when it comes to working towards your goals. It makes you feel miserable. If you keep feeling miserable, you’ll give up on your goals eventually, unless you have world class self-discipline. There’s a way around pessimism though.

Define Your Goals as Scientific Experiments

The way to eliminate all negative feelings about your goals is to define them as scientific experiments. You can do that by carrying out the following steps.

  1. What is the outcome you want to achieve? Specify the outcome you want to achieve.
  2. What are the conditions of the experiments?
  3. Which actions are you going to take to achieve the outcome?
  4. Formulate the outcome and conditions as a hypothesis you will test.
  5. Carry out the test.
  6. Evaluate and report your results.
  7. Update your experimental design and repeat.

Define the Outcome You Want to Achieve

When you define the outcome you want to achieve, be as specific as possible. This definition must be measurable without any doubt. Imagine you are a scientist. When a group of scientists look at your results, they should be able to assess your results without any doubts and decide unanimously. Instead of stating your goal as “getting rich,” state your goal as “having a net worth of ten million dollars within ten years from now.” The first definition of your goal, “getting rich,” is vague. The second definition of the goal, “a net worth of ten million dollars within ten years from now,” is precise. A panel of economists would agree unanimously whether that goal is reached or not.

Define the Conditions of the Experiment

Under which conditions are you going to execute the experiment? How long will the experiment last? Which actions are you going to take? What is your plan for each day, week, and month? For example, if your goal is to lose weight, what will be your daily meal list? What will the amount of each meal be? How many calories are you going to consume in total each day? What will be your daily and weekly exercise regimen? How long is the experiment going to last? How many pounds do you expect to lose every week?

Keep the Feedback Loop Short

When designing your experiment, keep the feedback loop short. That way you can evaluate your results and update your experimental design faster. If you have a long term goal, you can break it down into smaller parts with the divide and conquer algorithm and the reverse engineering method.

Evaluate Your Results

Once the experiment is over, it’s time to evaluate your results. Did the actions you planned result in the achievement of your goal? If not, why not? Were you able to carry those actions out? If yes, how close were you to the achievement of your goal? You can ask these and other questions to analyze the results of your experiment.

Update Your Experimental Design and Start Again

As you see, there’s no failure in a scientific experiment. You either achieve your goals or you find out what doesn’t work and gain experience. Once you find out what doesn’t work, then you can update your experimental design according to your experience and start a new experiment. Just keep repeating until you succeed. Even success is not a reason to stop your experiments. Once you succeed, you can set another goal and apply the scientific method to that goal.

What are the benefits of applying the scientific method to your goals?

When you apply the scientific method to your goals, you work in a well-defined framework. There’s no room for procrastination, deviation from the initial plans, and arbitrary decision-making. Everything is well-defined and clear. You either follow the experimental plan or not. If you can’t follow the plan, then you need to evaluate at the end of the experimental period, why you could not. If you followed the plan but couldn’t achieve your goal, then it’s time to come up with another plan towards the achievement of your goal.

There is no failure in scientific method. All you have to do is to formulate hypotheses and to verify them with experiments. Either the experiment passes or you find out that the action plan you came up with doesn’t serve the goal you have set. Then it’s time to update your action plan and continue working towards your goal until you succeed. When there’s no failure to working towards your goal, there is no stress, and there is no feeling bad. This type of approach to your goals eliminate all the bad feelings about them. It puts the focus on what you can control instead of what you can’t control. That eliminates the stress as well.

Optimize Each Area of Your Life with Multi-Objective Optimization

In the last two posts, I have discussed how we can apply the concept of algorithms and the divide and conquer method in our lives. Both concepts help us maximizing our effectiveness, by focusing on a single problem and action step at a time. This increases clarity and decreases error-proneness and waste of time.

What is multi-objective optimization?

In today’s post, I’m going to discuss how we can apply another computer science concept, multi-objective optimization, in our lives. Multi-objective optimization involves finding solutions that are optimal for multiple criteria. When the process is complete, a decision maker decides on one of the solutions.

A typical example is to find products that are optimal for price and quality. We find different products that have different price and quality levels. In this context an optimal product has the highest quality on each price level. Then we choose one of the products that is on a price level and has the quality that we are comfortable with.

How can we use multi-objective optimization in our lives?

The first step to use multi-objective optimization in our lives is to determine which areas of our lives we want to optimize. The first step is similar to the divide and conquer algorithm. Instead of trying to solve the big, hard problem of optimizing our lives, we try to solve the smaller, easier problem of optimizing a single area of our lives at a time.

For example, you might want to optimize health and fitness, family, career, saving, investments, and travel. Please make your own list of life areas that make sense to you. Once you have your list, pick one of your life areas. Now, imagine there is nothing else in your life and you want to optimize your life according to that life area. How would you do that? How would your life look like?

“Now, imagine there is nothing else in your life and you want to optimize your life according to that life area.”

For example, if I wanted to optimize my life according to health and fitness, I would do a cardio workout for an hour every day in nature. I would work out in the gym four to five times a week. I would only consume healthy foods. I would never consume anything that isn’t 100% healthy such as alcohol, caffeine, any deserts, and so on. I’d sleep at least for eight hours every day. I’d stay away from stress, and so on.

Thought Experiment

The goal here is not to be realistic. This is more of a thought experiment than creating a realistic action plan. The goal here is to imagine everything else is taken care of in your life, you have no other obligations, and the only thing you have to optimize in your life is the life area that you are working on. This eliminates all the excuses, limiting beliefs, and mental barriers.

“Multi-objective optimization inspires you to recognize what’s possible for you. Once you see what’s possible for you, then you can find a more realistic solution.”

In some cases, it’s beneficial to try to implement a solution that is as close to the ideal solution as possible. That way you will immerse yourself in that solution. Once you experience what is possible for you, then you can gradually decrease the intensity of that solution to reach a solution that is in balance with the rest of your life.

Optional: Focus on a Single Goal for a Month

For example, when I picked up working out again six months ago, I worked out twice a day for six days a week. The first workout was a cardio in nature and the second workout, strength training in the gym. Gradually, I decreased the frequency and intensity of my workouts to bring them in balance with the rest of my life. Nevertheless, that experience showed me what was possible for me in the area of fitness. That helped me find a solution that was a conscious choice and not a solution that was limited by my mental barriers.

“Implementing the ideal solution in my life helped me find a solution that was a conscious choice and not a solution that was limited by my mental barriers.”

An optional part of the multi-objective optimization in your life is that you can dedicate a certain period of your life to a certain area of your life. For example, you can dedicate a month to your health and fitness and live the most optimal version of your life with respect to health and fitness. Or you can dedicate a month to your family, to socializing, to travel, and so on. That way you will know what’s possible for you in that area of your life and make a conscious, balanced choice later. That choice won’t be limited by your limiting beliefs.

Summary

You can optimize your life by focusing on a single area of your life at a time. Make a list of your life areas and pick one. Come up with an optimal solution for that area assuming that the rest of your life will be taken care of. This eliminates all of your excuses, limiting beliefs, and mental barriers. The next step is to find a less optimal solution that is more balanced with the rest of your life. Optionally, you can commit a month or more to the optimal solution to immerse yourself in it. Then you can gradually decrease the intensity to reach a more balanced solution. That way you will experience what’s possible for you in life.

Which area of your life are you going to optimize next? What’s the optimal solution for you in that area?

How to Tackle Overwhelming Challenges Effectively

This principle is so simple that it sounds obvious. However, most of us overlook it in practice and become overwhelmed in the face of challenges.

The algorithm concept from computer science involves breaking down large tasks into action steps. Using algorithms improves your effectiveness by increasing clarity and decreasing error-proneness and waste of time.

The divide and conquer algorithm is one of the most useful computer science concepts that you can use in your daily life. It involves dividing a big problem into smaller problems and then solving those smaller problems one problem at a time. This principle is so simple that it sounds obvious. However, most of us overlook it in practice and become overwhelmed in the face of challenges.

Suppose that you want to optimize your life. That’s a huge challenge. You can divide it into smaller problems and solve one problem at a time. In this case, you can divide your life in different areas and focus on each area separately. You can divide your life into private and professional. You can divide each area further into subareas. For example, you can divide your private life into family, health, and hobbies. You can divide health into diet, exercise, and stress-reduction. The more clear-cut your problems and action steps are, the more effective your solutions will be.

Focus on a Single Problem at a Time

The key point in divide and conquer is that you focus on a single problem at a time. Suppose that you want to optimize your life and you divide your life into several areas. The next step is to pick one of those life areas and focus on it. For example, you might want to focus on your diet for a month until you adopt a healthy diet. Once you adopt a healthy diet, you can work on building a habit of physical exercise for a month. This way of approaching challenges is way more effective than trying to solve all of your challenges at once.

Focusing your time, energy, and attention on a single problem at hand is way more effective than trying to solve all of your problems at once.

Summary

Dividing big challenges in your life into smaller challenges and complex tasks into simple action steps will maximize your effectiveness. You can apply the concept of algorithms in general and the divide and conquer algorithm in particular to your challenges and tasks. The key here is to focus on a single challenge and action step at a time.

Whenever you feel overwhelmed by a challenge, divide it into smaller problems and tackle each problem separately.

Which challenge are you facing right now? How can you divide it into smaller parts? Which part do you choose to solve next?

How to Maximize Your Effectiveness

Using some simple computer science concepts can boost your effectiveness in life. They are very simple to use. You can use them with a pen and paper if you want to.

The notion of algorithm is a fundamental concept of computer science. Algorithms are also extremely useful in our daily lives, private as well as professional. An algorithm is simply dividing a task into several smaller tasks. It has a well-defined set of inputs and output. It gives you clarity about which step to execute at each time. You can think about it as a plan with precise action steps.

A cooking recipe is an algorithm. It has a list of inputs, an output, and action steps. The inputs of a recipe are the ingredients. The output is the dish. The action steps are the steps that you take to cook the dish.

What are the benefits?

Every time you write down the action steps to complete a task, you actually write an algorithm. Writing an algorithm for a task might sound like a waste of time to you if you aren’t familiar with the concept, but it has a lot of benefits.

Writing down an algorithm provides clarity. It eliminates confusion. You exactly know what to do at each step. You don’t need to think or hesitate what to do at each step, which saves a lot of time and energy once you are in execution mode.

Working from an algorithm enables you to focus on a single step without worrying about the rest. It eliminates the need to figure out what to do next after completing each step.

Writing an algorithm takes some time to think through the steps. It prevents you from making decisions in the heat of the moment. Both of which reduce your error-proneness.

Algorithms save time. This is especially true for repetitive tasks. Instead of trying to figure out what to do each time, you simply go true the steps.

An Example from My Own Life

I have an LLC that requires weekly, monthly, quarterly administration. Even though I have this LLC for seven years by now, I don’t know every step I have to take by heart. These administration steps are not my core competency. I prepared a list of action steps, basically an algorithm, to execute every week, month, and quarter. I just go through this list every week, month, and quarter without thinking much about it or trying to learn it by heart. Even if I learned it by heart, I’d worry weather I remembered all the steps correctly or forgot a step. Now, I have complete peace of mind knowing that I do what I have to do, because these steps are outlined clearly in front of me. I use Evernote for this type of note taking. It’s a free tool for most purposes and has sufficient features to satisfy my needs.

As you can see you can write algorithms for a one-time complex tasks, as well as repetitive tasks. I prefer to write down the action steps no matter how simple a task is, unless it’s a single step task. This gives me the opportunity to reflect upon how to do it properly in advance, so that I don’t choose a less efficient way to execute the task.

Level of Details

If you have a very complex task at hand, algorithms are especially useful. You can always choose the level of details in an algorithm. If you have a complex task at hand, divide the task into five to seven action steps. If the action steps are not precise enough, you can always take an action step and write an algorithm for that action step. You can break down an action step into further action steps. You can go into as much detail as you want. At the end, you will have a set of algorithms that consist of further algorithms and each algorithm is simple enough to be understood, maintained, and executed easily. Computer programs are written this way and why should you not apply the same principle to your everyday tasks?

Summary

You can apply the concept of algorithm in your life by breaking down bigger tasks into smaller action steps. Writing an algorithm for a task in advance helps you think through the process in advance. Having an algorithm during the execution gives you mental clarity which action to take next. It eliminates confusion, hesitancy, waste of time, and error-proneness.

If you have done the exercises in the posts about finding your direction and perspective in life, you can apply the concept of algorithms to your answers. If you haven’t done them yet, what are you waiting for? Do you need some motivation?