Netflix
Course Description
You need more than technical skills to have a solid and successful career. Gain tips on critical soft skills such as ramping up quickly in new roles, estimating project timelines, building authentic connections, and advocating for yourself. Explore practical techniques for working with legacy code, including refactoring and test-driven development. Get a 360-degree tour of what it takes to build a long-lasting career!
This course and others like it are available as part of our Frontend Masters video subscription.
Preview
CloseCourse Details
Published: September 17, 2024
Learning Paths
Learn Straight from the Experts Who Shape the Modern Web
Your Path to Senior Developer and Beyond
- 200+ In-depth courses
- 18 Learning Paths
- Industry Leading Experts
- Live Interactive Workshops
Table of Contents
Introduction
Section Duration: 6 minutes
- Francesca introduces the course by discussing the importance of preparation and opportunities in the software engineering field. This course covers topics such as making a good first impression, ramping up quickly in a new company, working with legacy systems, handling project execution problems, and getting promotion-ready.
- Francesca emphasizes the importance of asking questions as a new engineer and recommends requesting to shadow or pair program with a more experienced engineer to learn about the company's coding norms, testing processes, PR (pull request) process, deployment pipeline, and company-specific gotchas.
Developer Growth Essentials
Section Duration: 22 minutes
- Francesca discusses common time estimation problems and provides strategies for handling them. She discusses the importance of communication, gathering more information about the assigned task, and improving estimation skills to avoid missing deadlines.
- Francesca discusses the importance of creating feedback loops to ensure personal growth. She emphasizes the need to proactively seek feedback from managers and provide specific questions to ask, such as how to improve performance or take on more responsibility.
- Francesca discusses the importance of advocating for oneself in order to climb up the career ladder and secure promotions. She recommends creating a "brag doc" to document and showcase your work and achievements, as well as regularly communicating successes to managers.
Opportunities and Networking
Section Duration: 1 hour, 1 minute
- Francesca discusses the role of building relationships and trust with others, as connections often increase opportunities. She also shares a story about an engineer who, despite being talented, did not receive career growth opportunities due to his inability to collaborate and build trust with his manager and teammates.
- Francesca shares a personal story about how building trust and strong relationships led to career growth and opportunities. By consistently delivering outstanding work and fostering good relationships, she earned her manager's trust and was assigned to more projects, leading to a promotion and continuous growth in their career.
- Francesca shares their personal experience of falling into the mental trap of believing that good solutions speak for themselves. The lesson emphasizes the importance of understanding the needs of the users and involving them in the design process to create effective solutions.
- Francesca shares her experience with a project that was failing to spark adoption. To solve this problem she actively listened to individual engineers, uncovering their concerns and pain points.
- Francesca discusses the benefits of building connections early on, such as having support during difficult times and gaining valuable information. She also shares a personal story about how active listening transformed their socializing skills and helped them form authentic connections. She explains the concept of active listening and its role in understanding and making others feel heard.
- Francesca answers student questions regarding how to manage the early days in an office as a software developer. She discusses the importance of balancing building connections with colleagues and focusing on job responsibilities. She also provides advice on how to handle difficult team members and how to make the most out of one-on-one meetings.
Building Authentic Connections
Section Duration: 29 minutes
- Francesca explains that active listening involves not only hearing what someone is saying, but also attuning to their thoughts and feelings. She also provides tips for practicing active listening, such as filtering out judgment and using tactics like mirroring and labeling emotions to encourage further sharing.
- Francesca guides the participants through an authentic connection exercise. One person starts by giving a short summary of their journey into tech, and the rest of the participants take on the role of questioners. The goal is to ask questions that help understand the person's experience and feelings about their journey, creating a sense of authentic connection.
- Francesca takes on the story sharer role for an authentic connection exercise. She discusses her motivations for transitioning into tech, their passion for coding, the resources they used to learn, and their experiences with building projects collaboratively.
- Francesca wraps up a communication exercise and reflects on the key takeaways. She emphasize the importance of genuine connections, active listening, and creating a safe space for others to share.
Test Driven Development
Section Duration: 1 hour, 27 minutes
- Francesca discusses what is considered quality code and the importance of writing maintainable code. She covers tactics such as using descriptive naming, avoiding code duplication, and adding test coverage.
- Francesca introduces the Gilded Rose exercise, which involves working with a legacy system and making changes safely with tests. The goal is to add a new feature to the existing code without breaking any existing functionality.
- Francesca introduces the exercise and sets up the local environment for coding. She writes unit tests for the shop's default items, such as checking the name, sell-in value, and quality value of items in a shop. Francesca also demonstrates how to group tests using describe blocks.
- Francesca continues writing tests to check the quality of the shop's specialty items.
- Francesca refactors the code in order to prepare it for a new feature. She uses a technique called "seam" to safely inject the new code without breaking existing functionality. She also demonstrates how to use the debugger to identify and fix a problem in the code.
- Francesca demonstrates how to refactor code by extracting handlers for different items into a separate object. She also discusses best practices for deleting code and the importance of understanding the existing codebase before making large refactorings in a production environment.
- Francesca continues refactoring the code by extracting the handlers for different items into separate functions. She also introduces a new item called "conjured" and writes tests and code to handle its specific behavior.
- Francesca answers students' questions regarding Jest as a recommended testing tool for JavaScript and TypeScript, best practices when using if/else blocks, and options for refactoring the previously written tests. An overview of some key takeaways from the Gilded Rose exercise is also provided.
- Francesca provides a recap of the benefits of test-driven development (TDD), such as safer code changes, simpler solutions, and fewer bugs. She also discusses the importance of collaboration between engineers and QA teams and provides tips for learning and practicing TDD, including breaking the habit of pre-planning code and starting small with unit tests.
- Francesca discusses techniques for understanding and working with existing code. She also provides tips such as walking through the code line by line, using console logs and debuggers, and commenting out code to identify the source of a problem.
Wrapping Up
Section Duration: 7 minutes
- Francesca wraps up the course by discussing the balance between being authentic and staying positive. An overview of the course's key takeaways is also covered in this segment.
Learn Straight from the Experts Who Shape the Modern Web
- In-depth Courses
- Industry Leading Experts
- Learning Paths
- Live Interactive Workshops