Features:

Product manager diary: What I learned taking an intro course in web development

Spending a month building coding skills gave me the language—and confidence—for better communication across teams


A monitor displaying HTML and CSS code for a website.

(Photo by Pankaj Patel on Unsplash)

A few months ago, I wrote in SOURCE about learning to work with development teams and software vendors as a new news product manager. My next step at the time: taking an introduction to web development course to improve my understanding of coding, and in turn, improve my communications and collaboration with these teams.

So, after a brief hiatus and a four-week intensive introduction to HTML, CSS, and Bootstrap, I’m back and here to say I’m now completely fluent and capable of end-to-end building and deploying my own websites.

Just kidding. But I did go through the entire process of building and deploying a basic website in that month, and in doing so, I met my goal: becoming more fluent in these languages and frameworks.

My knowledge of development to this point had been mostly learned on the fly through product-focused roles and working with engineers. I hadn’t done structured learning around coding before—I could improvise a few lines of HTML, figure out where to place scripts, and understand basic purposes for languages, but for most scenarios I had to rely on guesswork. I didn’t know enough to make many simple website fixes by myself, nor did I fully trust my decisions involving code. As someone who works with small newsrooms or teams with few resources, this was important to me to learn.

The curriculum

My monthlong course involved asynchronous daily learning and a synchronous weekly session where we’d work on group exercises. Every week, we focused on a new language, starting with HTML, then moving to CSS, and later to the Bootstrap framework (which adds JavaScript and interaction to the mix) before bringing them all together in the final week.

The majority of my classmates were career-switchers looking to upskill or software engineers looking to refresh their learning. My instructor, a software engineer himself, joked that I, a product manager, was taking the course because I didn’t like writing tickets for work that was worth just 1 or 2 story points. (He was right, for many cases.)

The first week was about HTML, where I had the most comfort going in. In previous projects, I had figured out bits and pieces of HTML to change colors, create simple automations, and add markup to documents. Building more muscle memory with writing HTML wasn’t daunting, and I found that understanding the basics helped me connect bits and pieces of the language that I’d had exposure to but didn’t know the “reason” behind. For example, I laughed when I learned that the term “anchoring” items on a page came from the HTML element anchor tags.

Taking time to understand the formal structure of the language, like learning the differences between div and section elements and what semantic and non-semantic referred to, felt like working with kitchen utensils for the first time after having watched professional chefs make meals from scratch. The same proved true for the CSS week: I learned about classes and IDs, when to use internal vs. external stylesheets, and the “cascade” of specificity (I’ve been playing the CSS diner online game to entertain myself as I practice.)

In the last part of the course, which focused on Bootstrap, I continued to discover how much I already knew about putting the building blocks of a webpage together—and continued to be surprised by complexities I didn’t know about, too. One of my biggest takeaways was a more nuanced understanding of developing for different viewports. As a product manager, I’m versed in planning for mobile vs. desktop screens, but learning about breakpoints and how to navigate viewport sizes in my browser helped me better understand conversations I’ve had with developers about requirements for numerous screens. And walking through the process of pushing to Github gave me more admiration for those with the fragile process memorized and down to a few swift keystrokes.

My takeaways

Learning the structure of the language and how it interacts with others is key.

My biggest revelation from this course was a firmer understanding of the use cases of each language and framework. After the CSS week, I recalled a time when I was asked to make a decision on my preference for using CSS vs. Javascript for a new feature on one of our news organizations’ products—at the time I didn’t know enough about the pros and cons of each. If I were asked now, I could answer, and if I take more advanced coding courses in the future, I’d focus on the different applications of those languages and structures.

ChatGPT changes the game, but not completely.

Some may be skeptical of the utility of taking an intro-level coding course in the age of ChatGPT. A year ago, when I had little knowledge of web development fundamentals, I attempted to use ChatGPT to write a few lines of code for web pages I was working on with mixed success. ChatGPT could create elements for me, but I didn’t know how to prompt it to interact with all of my project requirements. During my web development fundamentals course, I sometimes used ChatGPT to help me identify missing element names or finish a few lines of code. Now I feel like I’m a better prompt engineer for ChatGPT, using it to help me make small adjustments, find the proper name for elements, troubleshoot and finish short lines of code.

Confidence really is everything.

I spent a portion of my four weeks in the web development course confirming things I knew and connecting points of my knowledge about code. Before, I had some knowledge and lacked the confidence to utilize it; now I see myself not second-guessing decisions I’ll make in working with developers.

Conclusions

Between my last piece for SOURCE and writing this one, I changed roles from working in an organization with established product and engineering teams to a tiny organization where I am one of five regular staff members. What I learned from this course is useful in both settings. In my prior role, where I worked with multiple internal and external development teams, the added fluency and confidence about coding decisions would have helped me write tickets, host scrum meetings, and plan projects. In my current role, being able to write a few lines of code to refine features and processes will make several parts of my work more efficient.

In a recent conversation with a new development team I was onboarding to our organization’s tech stack, I had to describe a set of integration requirements, along with possible programming languages to use. I spent less time in that conversation (if any at all) questioning my descriptions, and knew that I was communicating accurately about the possible approaches and which ones I saw as most beneficial for our project.

For early-career or product managers who haven’t had an opportunity to learn coding in a more formal environment, I’d recommend a similar low-intensity development course. Advancing or brushing up on knowledge like this could be helpful for product managers working with developers, product managers who may be the only ones with their title in an organization, or product managers preparing to take on a large organizational project, like a redesign.

Credits

  • Madison Karas

    Madison Karas is a product manager at the Tiny News Collective. She’s worked at several nonprofit journalism organizations, including The Baltimore Banner, News Catalyst, and Resolve Philadelphia. She likes biking, traveling, and learning new things.

Recently

Current page