From CS to product design

Tips for technical students looking to pursue design

Shana Hu
5 min readFeb 29, 2016

Lately, I’ve been reflecting a lot on my own journey from studying computer science at UC Berkeley to pursuing a career in product design. I’ve realized that making a transition from engineering to design can be confusing and intimidating given a lack of advice and resources. Some friends in similar positions have asked me for advice, so I thought I would share some thoughts based on my personal experiences.

Career tips

Build a portfolio. Work on projects in classes, clubs, and research groups. If those aren’t options, carve out time every week to work on a project just for fun. You can also choose an interface, an organization, or a process you want to improve and design/implement a solution. Make sure to document your design process! Write up a case study that showcases not just your end result, but the steps it took to get there.

Tailor your applications. Submitting your existing engineering resume for a design position will often pigeonhole you into the engineering hiring pipeline, so make sure to have a separate resume tailored specifically for design. Unless you’re looking for a more technical design position, don’t prioritize programming skills and coursework. Instead, highlight your design experience through various projects, leadership in student organizations, and any relevant work experience.

Understand your options. Not all design-related positions are the same, and not all companies look for the same type of designer. If you want to focus on design work and code as part of your job, look for a company that’s flexible and encourages their designers to use whatever tools they like. Flexibility regarding tools usually means that the team will embrace your ability to code as a great way to test and validate designs. If you want to focus more on coding and less on design or higher-level product thinking work, look into dedicated prototyping or UI engineering roles.

Explore. Because there are a variety of career paths available, internships are a great chance to explore. Try a big company as well as a startup, a design position where you don’t code as well as one where you do. Try prototyping. Try engineering. Try PM if that’s something you’re interested in. You’ll rarely get more chances to deep dive into certain areas for three months, so take advantage of it. I personally did internships in web development, prototyping, and product design — each of which was instrumental in helping me learn about my interests and strengths as a technical designer.

Take some time off. If you have the option of graduating early or feel like your school’s curriculum isn’t teaching you what you want to learn, I highly encourage you to consider taking a semester (or two) off school to gain more work experience. I chose to do a product design internship during the fall of my senior year instead of graduating early, and I absolutely believe I’m better prepared to enter industry because of it. Working at a large company during the fall nicely complemented interning at a startup during the summer, and I gained valuable experience working with a real product which came with challenges like scalability, privacy, and internationalization.

Technical tips

Keep building things. While it’s important to sometimes step away from coding to hone your design skills, I think it’s also good to keep up your technical skills and learn new frameworks and languages. Go to hackathons, find CS courses which interest you, and build silly apps for fun.

Prototype. Learn how to quickly build, test, and validate your ideas with different tools like Framer.js, Processing, HTML/CSS/JS, native Android and iOS, and other technical stacks. Prototyping is an essential part of the design process, and being able to build things in high fidelity allows you to better understand the relationship between user experience and underlying technology early on.

Work closely with your engineers. Understanding details and limitations of implementation will help you establish healthy communication with the engineers you work with. Prototyping also helps by clearly demonstrating specific interactions to engineers. If you’ve been working in the appropriate stack, you may even be able to translate some animations or transitions directly into production code.

The not so obvious

Take diverse classes. I find it valuable to supplement my technical education with a more humanist perspective. Most of my favorite courses have been from outside the CS department because they’ve exposed me to diverse viewpoints. I’ve taken a theater class where we analyzed American plays about intersectional cultural experiences. I’ve conducted ethnographic research in an architecture class about the social use of space. This semester, I’m learning about the historical importance of books and their effect on modern typography, while pulling prints with a 19th century Albion hand-pull press. Though these classes may seem tangential, they have been instrumental in expanding my worldview and developing a sense of empathy, an essential component of being a designer.

Surround yourself with great people. It’s important to build and maintain strong relationships with people who will guide and support you throughout your career. This can mean keeping in touch with an awesome mentor, but also making friends with similar passions and goals. I have a great group of friends who I met through internships, and we still talk almost every day. We turn to each other to learn skills the others may have more experience in, to get feedback on what we’re working on, to support each other during job hunting, and also just to share what we’re excited about.

Pay it forward. Because my school doesn’t have an official track for product design, I sometimes wished there was a structured way to learn certain design skills, and I knew that many of my peers must feel the same way. So I began to teach other students what I do know through workshops, DeCals, and teaching assistant positions. Teaching has helped me consolidate and build on my existing knowledge, as well as practice important skills like organization, public speaking, and leadership.

Appreciate your background. Being able to understand both worlds of design and development is an incredible asset regardless of what type of position you end up pursuing. Don’t regret not going to design school. You’ve learned more than just how to code. You’ve learned a mindset. You bring an ability to break down problems into modular parts, a drive to design efficient and elegant solutions for any edge case, and an empathy for engineering that will take you far in terms of cross-disciplinary collaboration.

The most important lesson

All those late nights I spent struggling to debug programming projects and working on problem sets instilled in me an attitude of sheer doggedness. I learned that no matter how complicated or intimidating something may seem, I can and will figure it out. That sense of persistence is something you’ll take with you whatever you choose to pursue. So if your heart is set on design, go for it. There’s nothing stopping you.

Shana Hu is a graduating senior at UC Berkeley who has previously interned at Facebook, FiftyThree, and LinkedIn. She teaches UI design and development to undergraduate and graduate CS students and likes to letter in her free time.

Want to get in touch? Say hi at hello@shanahu.com

--

--