The vicissitudes brought forth by the changing seasons, months and years present a unique opportunity at each fissure: either bridge the gaps to complete one’s goal, or ascend into a completely new set of circumstances and potential. The latter represents transition — be it from university to a career, or from one’s current career to another. In other words, stepping from the known into the unknown.
Welcome to your first year as a user experience (UX) software developer. The first step from the known to the unknown will undoubtedly be accompanied by a plethora of questions, including these two: How will my knowledge transfer? What sort of hurdles can I expect to encounter along the way? Let’s get to business.
How will my knowledge transfer?
Transferring knowledge from college or from a different field to UX engineering falls under three categories, two of which we will dive into deeper. The first is general professional growth and knowledge. Anything from communication skills, scheduling, sales, working with or managing a team all translate as seamlessly as one may expect. The second two are learning how to learn and the fundamental knowledge of computer science/software engineering.
Learning how to learn, because new projects change a lot
Learning how to learn, in the way that works best for you, is the most important transferable skill in the UX development field, in my opinion. There are some fundamental technical problems that occur frequently, but with changing tech stacks, requirements and improvements to technology, or — in the case of legacy requirements, “shortcomings” — new challenges are more than abundant. Additionally, there are a variety of ways to solve for such problems, for better or worse. The skill of learning how to learn ultimately is unique to each individual, but the principle stays the same: review what you know, try to learn what you don’t, and fill in the gaps through various means.
Fundamentals of programming: data structures, abstraction, problem solving
Fundamentally, any technical skill in programing will be applicable as a UX developer — some more frequently useful than others. Universities tend to require a variegated set of computer classes. Boot camps may focus on specific web technology, and self-learning depends on, well … your focus. A boot camp may teach precisely the tech stack for the job you’re looking for, as well as fundamentals of managing data, manipulation and styles, all of which you’ll find yourself using in day-to-day developing. In university, a lot of typical fundamental programming skills are acquired — even if you’re studying C or Assembly language. Modern-day UX development takes places in a much higher tier of abstraction; that is to say, we don’t typically need to manage memory, garbage collection, segmentation faults and the like. However, the principles from data structures (e.g., arrays, sets, maps, hashes), as well as an algorithm that, for example, may focus on searching (breadth-first search, depth-first search, binary search), all have applicable use cases in UX development. Perhaps you need to create a front-end search or filter. Then again, maybe you’re managing data returned from an API call and you need fast access and iteration. As a new developer, you may have a wide breadth of knowledge but haven’t yet mastered one piece of tech or a specific concept. However, your transferable technical skills and “learning how to learn” methodology will help you develop the skills to be a great UX developer over time.
What hurdles will you encounter?
Your first year will undoubtedly be somewhat of a whirlwind of new adaptations and things to learn. Looking back at your first year, you might be surprised how much you’ve accomplished. So, what kind of hurdles and challenges can you expect and plan for coming in as a new UX developer? Team expectations, code as a piece of a larger picture and your development flow are three things that come to mind.
Balancing client expectations vs. dev expectations vs. design expectations
Your team, on whatever project you’re a part of, will have different business requirements, research requirements, design inputs and so on. Working with both clients and internal teams can be tricky for first-year UX developers. On top of learning a lot of new technology, there is the added facet of team cohesion and expectations. To give a simple example, say the business team wants a search feature for a client’s app, the research team finds a popular use case for a search bar, and the design team creates the designs for said search bar. So, is the development task as simple as taking the design and creating a search bar? Possibly … but it is important to know more behind task to make sure the development properly relays user needs and expectations from each discipline. Do we know what exactly users are searching for, and do we have an API set up for a proper search query? How do we handle excessive data? Do we need to incorporate a pagination component? And, do we know where the search bar is expected to be on the page for both desktop and mobile designs? All are things that help move the development of the project forward while balancing expectations and requests.
Fitting your code into a larger piece of the project
Another challenge first-year developers face is fitting new code into the larger project. At university, for example, you may have done one or two projects with other developers. But, more often than not you were on your own, and so your standards are the standards. Fitting your code into a larger project as a UX developer, or frankly any type of developer, is a bit of a learning curve.
Additionally, each studio will have its own set of code standards. Linting, editors, testing, abstraction, variable declarations, and so on and so forth. It will take a bit of time getting used to, but there are tools — typically with an editor — that help make your code “studio standard.” No matter the hurdle or challenge, keep track of your progress over time and you will see small wins each day.
Advice, or things I wish I knew
Each improvement gained over time will give you a bit of motivation to keep improving. How do you know you’re improving? It’s often hard to track progress in development because tasking can be wildly different, and obviously skill set and time in the field also change that metric. Though, all things considered, making time to track your progress will reward you in the future.
Track your progress — it will help you understand how far you’ve come
It could be a notebook, software, a spreadsheet or simply notes on your computer. Regardless of how you decide to keep track of your progress, don’t limit it to only development milestones. Of course, creating a web component, implementing testing or learning a new technology are all things to track. However, also consider other work items that improve the business, your own growth as a well-rounded developer, and the team. Perhaps it’s assisting with another team’s input or feedback. Perhaps you’ve attended a conference and have knowledge to bring to the table. Or maybe you’ve gotten involved in recruitment, or played a larger leadership role with a business client.
Not knowing is expected, so keep that in mind when solving problems
Not all growth will be exponential or linear — sometimes growth is logarithmic. That being said, don’t be down for not knowing “all of the things.” Being new quite simply means there is more ground to cover. Keep your mind ahead and focused on those small wins each day.
At any rate you’ll improve, and be able to see the progress made over time. After all, the problems themselves are half the fun of development. Perhaps your small form input and styling component will be a piece of cake in a few weeks’ time, but there are always bigger, more exciting problems to tackle ahead. Embrace that challenge willingly, and you’ll get a bit stronger each day.
Why I love UX development and you will, too
I wasn’t always a developer. In fact, I’m quite green. Up until this past year I’ve worked in sales and as an educator. However, I can say that I’m excited to wake up, boot up my computer, and get to coding and working with my teammates. Being able to see the evolution of a design, help build it out and see it live on the web is magical. Taking raw chaos, ordering it under some set of parameters and seeing it come to life. Taking knowledge gained over time, overcoming the hurdles, and tracking where I was, where I am and where I’m going couldn’t be a more exciting path to set forth being firmly planted halfway between the known and the unknown. That’s why I love UX development and you will, too.
Photo by Bryan Aument