reading-notes

Code Fellows Notes

View the Project on GitHub stephnitis/reading-notes

Engineering Readings

Act like you make $1000/hr

I found this article to be the definition of busywork and unfocused effort.

How to think like a programmer

Have a framework:

1. Understand

2. Plan

3. Divide

4. Stuck?

Practice

Solving Problems

1. Read the problem completely twice.

2. Solve the problem manually with 3 sets of sample data.

3. Optimize the manual steps.

4. Write the manual steps as comments or pseudo-code.

5. Replace the comments or pseudo-code with real code.

Any language you expect to be able to solve algorithm type problems in, you should know how to do the following things:

6. Optimize the real code.

A good way to know where to break a problem in half is to think about what part of the problem if already given to you would make solving the rest easy.

TopCoder Codility

The 5 Whys

1. Assemble a Team

Gather together people who are familiar with the specifics of the problem, and with the process that you’re trying to fix. Include someone to act as a facilitator , who can keep the team focused on identifying effective counter-measures.

2. Define the Problem

If you can, observe the problem in action. Discuss it with your team and write a brief, clear problem statement that you all agree on.

3. Ask the First “Why?”

Ask your team why the problem is occurring.

Your team members may come up with one obvious reason why, or several plausible ones. Record their answers as succinct phrases, rather than as single words or lengthy statements, and write them below (or beside) your problem statement.

4. Ask “Why?” Four More Times

For each of the answers that you generated in Step 3, ask four further “whys” in succession. Each time, frame the question in response to the answer you’ve just recorded.

The 5 Whys method also allows you to follow multiple lanes of inquiry

5. Know When to Stop

You’ll know that you’ve revealed the root cause of the problem when asking “why” produces no more useful responses, and you can go no further. An appropriate counter-measure or process change should then become evident.

6. Address the Root Cause(s)

Now that you’ve identified at least one root cause, you need to discuss and agree on the counter-measures that will prevent the problem from recurring.

7. Monitor Your Measures

Keep a close watch on how effectively your counter-measures eliminate or minimize the initial problem. You may need to amend them, or replace them entirely.

The Super Mario Effect

Discussion Questions

  1. What’s the one thing I bring to this career (and a potential employer) that nobody else can?

I think saying that nobody else can is a bit extreme, but I do believe that each individual has unique perspectives and capabilities for problem solving. I feel that my strengths are in my creativity, artistic eye, and my background in hospitality, which has provided me with incredible customer service skills, and abilities to anticipate the needs of customers.

  1. What are 3 things I’ll start doing to “un-stick” myself whenever I get stuck on tough piece of code, logic, or feature?

First and foremost is to take the time really break down and comprehend the problem I am trying to solve. Secondly, if I am stuck, taking time to reassess and try to view the problem in another light. Lastly, recognizing when to ask for help or research the problem further.