/ten_percent_practice

programming practice for continuous improvement

Primary LanguageRacket

Ten Percent Practice

Continuous improvement is easier with practice. Practice is easier when you are subject to clear expectations.

As a member of HYFN Local engineering, you are expected to spend ten percent of your time at work practicing to improve yourself as a programmer.

Ten Percent Time

By ten percent of your time, we mean:

  • Pick one hour per workday.
  • Missing one day of practice per week is expected, missing an entire week is not.
  • Turn off distractions, including Slack and your email client. If there's an actual emergency, someone will physically find you or call your phone.

Practice

By practice, we mean:

  • Writing code to solve problems from books or online courses, and checking it in
  • Translating code from a language you know well to one you don't (or vice versa)
  • Helping someone else who is stuck on a practice problem

Practice does not mean:

  • Just reading or watching a video without solving any problems
  • Copying code examples
  • Doing someone else's work for them

Checking in code

We want everyone to practice on their own interests, but also be able to see others' work, so we're using a single master branch:

  • Make a folder in the root with your name.
  • Pick a book or course, make a subfolder named after it.
  • Add a readme.md in the subfolder with enough information for someone else to find the book / course.
  • Check in code at least once per practice session.

There's no need for a pull request unless you're modifying this document.

Feedback

Ask for help. Feel free to read what other people are working on and ask questions.

Do not force unsolicited help. Do not criticize.

Resources

We will help you get access to the resources you need, whether that's buying physical books, a Safari digital books account, or online course fees, up to $500/year. Talk to your manager.

Suggested starting points

If you do not have a formal computer science background:

If you do not have experience with a reasonably modern statically typed language:

If you want to learn more about data science: