Skip to content
Sophia's self learning plan, OKR style, on launching a career in software engineering
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information. add people Feb 10, 2020

OKRs for Self Learning

Sophia's self learning plan on launching a career in software engineering, Objectives and Key Results (OKRs) style.

The OKRs methodology is for anyone who wants to set up an ambitious and measurable plan to achieve their goals, any goals. The resources below are for anyone who wants to explore or start a career in software engineering or software development.

Self learning is still (and is always) in progress! This repo is actively updated with new resources and learnings.

What are OKRs?

Objectives and Key Results (OKRs) is a strategic planning tool used by many tech organizations such as Google to establish cross functional team alignment, which ultimately helps move the needle closer to achieving the organization's mission.

Objectives are ambitious goals. If your objectives make you feel uncomfortable, that's a sign you're setting up your OKRs with a healthy amount of rigor!

To determine objectives, ask yourself, "Where do you want to go?".

Key results are measurable and specific milestones that directly contribute to the objective. Key results are outcomes, not activities.

To determine key results, ask yourself, "How will I pace myself to see if I am getting there?".

While OKRs are typically used by organizations for strategic planning to create alignment between teams, I've adapted OKRs for my own goal setting and tracking for my self learning journey on becoming a software engineer.

For more information on OKRs, here's Google's guide on OKRs, an easy to read and comprehensive overview of how to create and use OKRs.

Table of Contents

Why use OKRs?

  • Focus and accountability over three month increments.
  • OKRs are not a task list. When designed right, ambitious OKRs help keep you motivated and track your progress!

How to use it

Feel free to use my OKRs spreadsheet as a template for your own self study plan.

Steps to determine your Objectives and Key Results:

  1. Brainstorm possible objectives, using the question, "Where do you want to go?", as a starting point. Ask yourself "What does wild success look like?" to think big.
  2. Narrow down your objectives to 5-6.
  3. Brainstorm possible KRs, using the question, "How will I pace myself to see if I am getting there?", as a guide.
  4. Narrow down and prioritize KRs that will get you closest to achieving your objective. Aim for no more than 5 KRs per objective.
    • Reminder: KRs are not a to-do list!
  5. Get validation and feedback on your OKRs from those who can give constructive and value additive feedback through their own experience or expertise.
  6. Get started on crushing your OKRs!
  7. Update your OKRs weekly to track your progress.
  8. Reflect monthly and adjust OKRs as needed throughout the quarter. OKRs are not set in stone!
  9. Do a retrospective at the end of the quarter to apply learning to your next set of OKRs.

Online Curriculum for a Broad Programming Foundation

Free Online Learning Resources

Paid Online Learning Resources

These are paid online resources I found monumental to my learning journey.

Overview of Software Engineering

Blogs and Articles

GitHub Repos


Tools and Other Helpful Resources

Tech Websites

Online Communities

People to Follow

Account Medium Content Type
Code Drip Youtube Straight to the point video with tips on interviewing
Traversy Media Youtube Short and clear tutorials
Tenzin Youtube Tutorials and career guides
WesBos YouTube Tutorials
Florin Pop Youtube Tutorials and live streams
Gaurav Sen Youtube Channel on System Design
Mayuko YouTube Life in tech
javinpaul DEV Learning and interview resource recommendations
Ali Lady Bug Podcast Career Advice
Tania Rascia Written Blog In depth written tutorials
Chris Ferdinandi Newsletter and Blog Tutorials and career advice
Chris Ferdinandi Newsletter and Blog Tutorials and career advice

Conferences and Events

  • Write/Speak/Code - 3 day conference designed by marginalized gender technologists for marginalized gender technologists.
  • CodeLand
  • FreeCodeCamp Bay Area Meetup - If possible, find a FreeCodeCamp meetup near you.
  • Google is your best friend! Find events through queries like "Women in Tech Events in SF", "Tech Event in [insert your city]", etc.

San Francisco Specific Meetups

Questions for Coffee Chats

Coffee chats are a great casual way to build your community, learn, and hear first-hand experiences. If you're stuck on what to ask, here are some questions to help get the conversation started:

  • What does a day-to-day look like in your role?
  • Can I get your feedback on X?
  • What are some challenges you face in your work?
  • What is something new you are learning right now?
  • What are your goals for your career / next career move?
  • Do you have advice for a self-taught dev?
  • What do you enjoy doing outside of work?
  • Can I reach out to you in the near future for feedback on X?
  • Is there anything I can support you in?


Just start building something, anything! If you're struggling with projects, start small. This will allow you to build your skills and project size incrementally.

Document your project with a well written readme. Here's a guide by PurpleBooth.

Some ideas for projects:

Work on projects with other developers:

Contributing to Open Source Projects

Push out of your comfort zone, get validation and/or feedback by contributing to an open source project.

Productivity Practices

Learning Methods

In your learning journey, you'll likely come across written, video, audio or other types of resources. Try out different mediums and find out which enable you to learn most effectively.

Interview Prep Resources

Websites for Coding Practice:

Practice Interviews:

General Guidance:

Front-end Resources:

Questions to ask at the end of your interview:

Resumes And Cover Letters

Job Search


Job Boards:

GitHub Repos:

Talk to real people, find recruiter emails:



Inspiration for this repo is from Jwasham's Coding Interview University.

Thank you to my friends and dev community who have continuously supported, encouraged, and inspired me throughout my journey!

Michelle, Alex, Diana, Scarlett, Andy, Mimi, Cat, Eric, Rachel, Donald, William, Melissa, Jessica, Mark, Andrik, Valerie, Audrei, Dani, Kate, Rafael, Ola, Ming, Chance, Jim, Tilde, Estelle, Yanet, Lori, Angela, Pearl, Judy, Jamil, Jeffrey, Chloe, Novella, Jeff, Alissa, Sandy, Tieshia, Sarah, Ben, Rahat, Matthew, Denise, Akshar

You can’t perform that action at this time.