Technical Milestones to Assess Job Readiness
In her book You Belong in Tech, Anna Jean McDougall provides a list of questions for aspiring web developers to assess if they are ready to start applying to junior positions and internships. I’m using this list here to track my job readiness.
If you want to know what I’m working on right now, please see my Now page.
General skills
Can you build a project without referring to a tutorial? (Search engines are OK!)
Yes, I can. Building projects without referring to a tutorial is an important part of both The Odin Project and Frontend Mentor.
You can find the projects I’ve built on my GitHub profile.
Can you explain that code to someone else?
Yes, I can. I explain some of my code in the READMEs that are included in the GitHub repositories for my projects, in the solution retrospectives on Frontend Mentor, and in my response to community feedback. All of this is in writing. I haven’t had the opportunity yet to talk about my code.
You can find my GitHub repositories with their READMEs on my GitHub profile and the retrospectives to the solutions I submitted on Frontend Mentor on my Frontend Mentor profile under Solutions.
Can you look a another person’s code and explain line-by-line what’s happening? (Again, perhaps with some gaps for specific methods you’re not familiar with.)
Yes, I can. For every solution I submit to a challenge on Frontend Mentor, I give at least one detailed code review to a community member who has solved the same project. This is in writing. I haven’t had the opportunity yet to talk about another person’s code.
You can find the code reviews I have given on my Frontend Mentor profile under Comments.
Can you reliably use Git to clone, push, branch, and pull code?
Yes, I can. I use Git and GitHub in all my web development projects, for version control and to share my code. I have also forked and cloned repositories with coding exercises that are part of the curriculum for The Odin Project. I have not used Git yet to work collaboratively with a team.
Are you familiar with some of the terminology of clean code, such as DRY, KISS, or the Single Responsibility Principle?
Yes, I am. DRY stands for ‘Don’t Repeat Yourself’. It emphasizes the importance of avoiding code duplications. KISS stands for ‘Keep It Simple, Stupid’. It prioritizes simple solutions over complex ones.
The Odin Project covers the Single Responsibility Principle in a lesson on OOP Principles in the JavaScript Course. I haven’t reached that lesson yet.
Front-end development
Can you explain the difference between flexbox and grid in CSS?
Yes, I can. Flexbox and grid are both CSS layout methods. Flexbox positions items in a two-dimensional way, either in rows or in columns, and is best used for content-first designs where the layout follows the flow of the content. Grid places items three-dimensionally in rows and columns. It is best for layout-first designs where content is placed into a structured layout and its position is precisely controlled.
Have you used a CSS framework (eg Tailwind, Bootstrap, Material UI, etc)?
No, not yet. The lesson Frameworks and Preprocessors in the Intermediate HTML and CSS Course of The Odin Project advises not to use CSS frameworks at this point in my learning journey and to focus on building a strong foundation in plain CSS instead. Frontend Mentor covers CSS frameworks as part of the learning path Advanced CSS Techniques. I haven’t reached that learning path yet.
Can you send a GET request to an API and use the data it returns?
No, not yet. The Odin Project has a lesson Working with APIs in the JavaScript Course. I haven’t reach that lesson yet. Frontend Mentor has a challenge has pulls data from an API in the learning path JavaScript Frameworks and Libraries. I haven’t reach that learning path yet.
Can you create a form and send the data in a POST request?
Yes, I can. I learned how to create forms in the Forms sections of the Intermediate HTML and CSS Course of The Odin Project. Frontend Mentor has challenges with forms in the learning paths JavaScript Fundamentals, Introduction to Web Accessibility, JavaScript Frameworks and Libraries, and Introduction to Front-end Testing. I haven’t reached any of these learning paths yet.
For a project where I created a form, see my GitHub repository for The Odin Project | Sign-up form.
Are you familiar with the basics of at least one front-end framework or library (eg Vue, React, Svelte, Angular, etc)?
No, not yet. The Odin Project has a React Course. I haven’t reach that course yet. Frontend Mentor has a learning path JavaScript Frameworks and Libraries with six challenges. I haven’t reach that learning path yet.
Back-end development
Can you explain the difference between a controller and a service layer?
No, not yet. The Odin Project has a lesson Controllers in the Express section of the NodeJS Course. I haven’t reach that course yet.
Can you set up a connection to a database?
No, not yet. The Odin Project has a lesson Using PostgreSQL in the Express section of the NodeJS Course. I haven’t reach that course yet.
Could you create a game in the console?
Maybe I can. The first version of the game Rock Paper Scissors that I created in the JavaScript Basics section of The Odin Project’s Foundations Course was played entirely in the browser console. I added a graphical user interface for the game in a later lesson.
Can you explain what inheritance is?
Yes, I can. In JavaScript, prototypal inheritance allows an object to inherit properties and methods from other objects. Each object has an internal property [[Prototype]]
that either references another object or is null
. This forms the prototype chain. If an object doesn’t have a requested property or method, JavaScript moves up the prototype chain until it finds the property or reaches the end of the chain.
Can you look at a database schema and explain the relationships between entities in simple terms?
No, not yet. The Odin Project has a Databases Course. I haven’t reach that course yet.