Learning how to learn is an invaluable skill in both one’s personal life and professional career. Continuing to learn new skills keeps you sharp, expands the types of work you can do, and ensures you continue to enjoy your work and hobbies.
A couple of general tips:
- Embrace ambition. In my experience, the projects best suited to personal development are the ones slightly-to-somewhat beyond your current capabilities. If a project is too far outside your realm of experience, it can become frustrating, but a project that’s too familiar doesn’t leave much room for growth.
- Acknowledge your limitations. All projects require time, and some may also be physically or mentally taxing. Pick a project that’s feasible based on your existing priorities and commitments.
- Perfect is the enemy of done. If you draw a bird every day for a year, you’ll have learned a lot more about drawing birds than if you’d spent the whole year reworking a single drawing. This is the “quantity over quality” approach, and it works well if your goal is to learn a skill. Alternatively, if you’re working on a single large project, give yourself a metric of what “done” looks like and celebrate it.
- Build an interdisciplinary toolset. My degree is in graphic design, but I taught myself coding because I kept running up against barriers I couldn’t surmount using the tools at my disposal. The more tools you have, the more ways you can approach a problem, the more unique projects you can create, and the better the odds are that you have just the right tool for the job.
I’m a book designer at Esri Press, and in this article I’m going to showcase four projects I learned a lot from, two at work and two in my personal time. Each includes the impetus for the project, an overview, some of the resources I found the most useful, and my top tips and takeaways for continuing to learn.
Learning at work
On the job, we don’t often have the luxury of choosing our own projects, but that doesn’t mean there’s not room for growth. Sometimes an opportunity is handed to you, such as by a new company policy or team goal. Other times, it’s up to you to take the initiative.
Creating accessible ebooks
Impetus: Soon after I joined Esri Press, I was tasked with learning how to produce ebooks. At the time, our ebooks were being created by an external vendor, and the team wanted to bring this in-house. Additionally, customers would occasionally ask about accessible versions of our ebooks, which we didn’t have, so I was asked to look into that as well.
Project: When I began, I knew virtually nothing about either ebooks or accessibility, so this started out as a research project. I dove into every resource I could find, though it soon became clear that this topic was devilishly complicated. The accessibility standard was complex, the documentation was jargony, and beginner resources were thin on the ground. I ended up taking copious notes and writing down click-by-click instructions for every step of the highly technical process. But this project was about more than learning the steps by rote: it was about the rules, because the steps varied each time depending on the content of the book.
Once I’d learned the theory, it was time to put it into practice, as I began investigating the ebooks our vendor had created and started making my own. It was slow going at first, but the more ebooks I created, the faster I became, eventually writing and incorporating scripts and GREP expressions to speed up the process even more.
Lastly, as I deepened my knowledge of accessibility, I came to appreciate that it was more than a set of rules and guidelines: it was a mindset. Now that I was thinking about our workflows from an accessibility-first point of view, I could see snags and inefficiencies and begin to ideate ways to improve them. In this way, what started as a project to improve our product (ebooks) ended up also revising and streamlining our team’s workflows.
1. The print page, with two headers followed by paragraphs. Two small images and their captions float in the margin. A link is represented by bold text and a link icon.
2. The ebook page. The two images have been moved into the text flow so that they immediately follow the paragraph that references them. The link is now underlined.
3. The ebook page as HTML. Headers, paragraphs, and italic are marked up with the appropriate HTML tags, and the figures include alt text. The hyperlinked URL of the link is visible, as are invisible page breaks derived from the print edition.
A page from Telling Stories with Maps by Allen Carroll in the print book (1), ebook (2), and the ebook’s back-end HTML (3).
Resources: WCAG 2.1 AA official documentation, Lynda/LinkedIn Learning courses, attending conference sessions, attending free webinars of the Book Industry Study Group, consultations with the Esri Accessibility team
Tips and takeaways:
- Take notes. My first Word doc of notes was 24 pages long and covered every possible minutia of ebook production. Over time, I shortened this document, cutting out parts as I memorized them and adding quick-reference notes.
- Find a way to be passionate about it. I firmly believe that everything in this world can be interesting if you care about it enough. When I started this project, I had no particular interest in accessibility and had only a vague sense that it was something used by blind people. As I learned more about it, especially from experts in the field, I came to appreciate how much good it did for so many people, which in turn provided motivation to keep learning.
- Pass it on. After completing my research and refining the ebook production process, I wrote a detailed guide and taught the method to my fellow Esri Press book designer, ensuring that what I’d learned would continue to benefit the team in the future.
Automating tasks with Python
Impetus: Transferring a book from Microsoft Word (where it’s written and edited) into Adobe InDesign (where it’s laid out) can be a hassle, so a few years back our team created a Word template with custom styles. With Word styles, authors and editors could tag each phrase and paragraph as a header, sidebar, and so on, which in turn imported into InDesign as InDesign styles. That was one problem solved, but then we encountered the same problem in reverse. Sometimes, when a finished book was ready for a new edition, the author would ask us for a final Word doc that they could work from. This meant that we had to export the book from InDesign back into Word—a workflow that InDesign does not support. The crux of the problem was the styles: the text could easily be copied from InDesign and pasted into Word, but there was no way to map the InDesign styles to the Word styles. After spending many hours manually converting styles, I decided that there had to be a better way and set out to find it.
Project: In several aspects of my job, I’d started noticing simple, repetitive tasks that seemed ripe for automation. The problem described above was one such quandary that convinced me it was time to work smarter, not harder. I knew some JavaScript, but these problems involved software rather than websites, which meant I would need to learn another language. After some basic research online, I decided that Python had the right blend of flexibility and user-friendliness. I started by reading an introduction to Python book, which gave me a broad, formal overview, and then moved on to online tutorials and small test projects. Once I’d gotten my feet wet, I was ready to fumble my way through a real project.
The first step was getting the book’s text out of InDesign while preserving the InDesign styles applied to each string. InDesign has an API, but I knew dealing with that was beyond my current skill level, so I decided to export to HTML instead. This was easier to work with, and each HTML tag conveniently exported with a class name derived from the applied InDesign style—precisely what I needed. Then it was a matter of parsing the HTML using Python. Another online search turned up the BeautifulSoup library, which allowed me to step through each tag in the HTML tree and decide what to do with it.
Next, I had to convert the classes into the exact names of the Word styles (for instance, “H1” in InDesign became “Heading 1” in Word). These would need to be altered slightly for each book, so I decided to store this information in a CSV file so other teammates using my script could work in Excel rather than Python.
Now I just had to write each string, with its associated Word style, to a blank Word doc. More research here uncovered the Python-Docx library, which allowed me to control Word with Python. With the core of the project now functioning, I added additional features and shared my script with the team, transforming what had been a painstaking, error-riddled manual process into one that could be completed in just a few minutes.
1. InDesign with its paragraph styles such as “H1” and “Figcaption.”
2. HTML code, which includes the InDesign style names as classes. Spaces in the InDesign style names have been converted into hyphens.
3. CSV file with two columns. The classes are in the first column, and the corresponding Word styles are in the second.
4. The final Word doc, with its paragraph styles such as “Heading 1” and “Caption.”
The four main steps in my script, demonstrating an export of Designing Map Interfaces by Michael Gaigg. The book begins in InDesign, with its InDesign styles (1); then it is exported to HTML, with the InDesign styles preserved as classes (2). Next, I create a CSV file that maps each class to a Word style (3) and finally run my Python script to generate a new Wod doc with Word styles (4).
Resources: Books from the Esri Library, W3Schools’ Python tutorial, a Python class offered through Esri, Google and Stack Overflow for troubleshooting
Tips & takeaways:
- Beware scope creep. The simplest way to design this project would have involved the InDesign API, but I knew that learning it would add a great deal of time to a project primarily about learning Python. While I eventually did learn the API, by declining this opportunity I was able to focus on the stated goal and complete the project in a timely fashion.
- Diversify your search for resources. The location of the best resources will vary by project type. For coding projects, the internet is a great option, though I also found value in printed books (more robust) and in-person classes (live Q&A sessions). And don’t discount the value of a knowledgeable friend or colleague!
- Guess and test. When it comes to coding, this is a tried-and-true method. Learn to read and understand error messages, and if at first you don’t succeed, try, try again. There are no medals for getting it right the first time.
Learning at home
At work, learning new skills is about creating better products and assisting the team; at home, it’s about doing something you’re excited about. If you’re not happy to work on your hobby at least eighty percent of the time, then perhaps a new hobby is in order.
It’s important to remember that your hobbies are, ultimately, just for you. Free yourself from concerns about marketability and respectability and work on projects that inspire you—even if they’re a bit silly. So long as you’re creating something or solving problems, you’ll learn and grow along the way.
All this to say, my current hobby is Dungeons & Dragons, and here are two of my nerdy projects about it.
Bookbinding and illuminating a grimoire
Impetus: Years ago, I saw a museum exhibit on the late fantasy author Terry Pratchett, and one of the displays included an enormous, leather-bound book inscribed with fantastical magical drawings. This was probably either a prop (in which case only the open pages were illustrated), or a collaborative work by many fans. But I, in my hubris, saw it and thought, “I want one of those. (I could never afford one of those.) Hm. I can bookbind. I can illuminate. I could make one of those.” This dangerous thought lingered with me until the Covid-19 pandemic, when I decided to make it my quarantine craft project.
Project: This project leaned heavily on skills I already possessed (for instance, I’d done bookbinding in high school and college), but on a scale I had never previously attempted. Just creating the book took a month and involved manually tea-dyeing each of the book’s 192 pages, hand-stitching the binding, and even dyeing the leather. Because bookbinding was an existing interest of mine, I was fortunate enough to have most of the tools on hand, including antique finishing tools that I used to emboss the front and back covers.
The greater part of this project turned out to be filling the pages with illumination. At the time, I was playing a wizard in a friend’s D&D game, and wizards learn new spells by writing them in their spellbook. Since I now had a spellbook of my own, I decided to fill the first section of blank pages with illuminated versions of my character’s spells. I had created a few illuminated pages before, always in historical styles, but decided to be more experimental with this project, tailoring each page’s visual style to the spell’s flavor.
I started each page by ideating and sketching out potential designs on scratch paper. Once I had a design I liked, I recreated it in pencil on the page of the book. Next, I used a calligraphy pen to ink everything in black, and then added other colors using ink, markers, or watercolor. Lastly, I added gold or silver leaf to add an extra shine and sparkle. Because each layer needed to dry before the next could be added, and because my hand would lose its steadiness after a few hours, each page was the work of multiple days. In the end, it took two years to illuminate just 33 pages. Finding the time and motivation to keep working on this enormous project was a significant challenge, but the end result was well worth it.
A process video showing the creation of the grimoire (first) and a flip-through of the illuminated pages (second).
Resources: Previous experience, YouTube videos on historical and fantasy bookbinding techniques, books on calligraphy styles
Tips & takeaways:
- A journey of a thousand miles begins with a single step. The ambitious scale of this project made me leery of attempting it, fearful I would not finish, but I’m glad I took the opportunity to start when I had an opening in my schedule. Even though the project is technically unfinished (as eighty percent of the grimoire remains blank), I am very happy with my progress thus far and look forward to continuing to work on it on-and-off for many years to come.
- Break it down. Binding a book like this has about 50 individual steps, but once I had outlined them all, I grew more confident that I could succeed. Because, while the overall process seemed extremely difficult, each individual step appeared quite easy.
- Show it off. While not every personal project needs to be shared with others, I was eager to share this one with my D&D friends, which motivated me to keep working. I also decided early on that I wanted to make a process video and do a final photoshoot, which allowed me to share my work online and made the project feel complete.
Coding an interactive data visualization
Impetus: D&D is a game with a lot of rules. Each spell, monster, and magic item has its own rules and statistics, and the typical way of sorting through all this data is with lists and tables. The first time I saw someone truly attempt a visualization of some of this data was edwardsch’s Spells of D&D 5e infographic, which looks at the overlap of spells between casting classes. I was impressed by its design and interactivity, such as its filters and animated pop-ups. I had created some data visualizations before, but they had always been static; now I started thinking about how I could make an interactive visualization to explore other aspects of the D&D ruleset.
Project: Whereas creating a grimoire was ambitious but within my wheelhouse, it took me quite a while just to figure out how to start this project. My first visualization idea was for a “wheel of spells” (below), where every spell in the game was sorted based on school and spell level and displayed on a radial graph. However, just determining the angle of each school’s wedge required rather complex math, and making the visualization interactive meant I had to consider how all of this was going to work in JavaScript—and I was very rusty with my JavaScript.
The data was in Excel, so I started there, cleaning it up for maximum consistency and confusing myself with math until I was able to create a normal 2D graph of the spell data. Curving it into a wheel was an entirely separate challenge, involving much handwringing and struggling with trigonometry, but eventually I triumphed. Next, I made the background image, which was quite easy given my design experience, and then I just had to make it all work in HTML and JavaScript. This process took just as long, with the largest challenge being ensuring that the spell dots appeared in the correct position and behaved responsively. From there, I added colors, links, pop-ups, filters, and other bells and whistles to make the visualization more useful.
I had done what I had set out to achieve, but rather than rest on my laurels, I decided that, now that I had a process, additional visualizations would be easier to make, so I did it all over again another eleven times.
1. The “wheel of spells” data visualization, with each spell represented by a dot. The user can filter which spells are displayed by selecting a button for each of the spellcasting classes in D&D.
2. A data visualization displaying magic items in D&D organized by category and rarity. The user can hover over each magic item’s dot to summon a pop-up with the name of the item.
Two of the twelve data visualizations, the “wheel of spells” (1) and an overview of magic items (2). The interactive versions are available on my portfolio website.
Resources: W3Schools’ JavaScript tutorial, Google and Stack Overflow for troubleshooting, my sister’s assistance with Excel and trigonometry
Tips & takeaways:
- Learn just enough to achieve your goal. When trying to truly learn a new skill, you should of course learn it robustly. But when you’re just tinkering around for fun, the “just enough to be dangerous” approach can take you quite a long way. Rather than attempting to fully relearn JavaScript, I muddled my way through by only learning the bare minimum needed to make it to the next step.
- Proof of concept. Though I initially had ideas for many visualizations, I limited myself to working on just one, the “wheel of spells,” seeing it all the way from the start of the process to the end. This proof of concept made the creation of additional visualizations faster and easier and gave me the confidence to expand the scope of the project once I’d achieved my initial goal.
- It doesn’t have to be perfect. By the time I was working on the final visualizations, I’d come to the realization that my method was deeply inefficient and the coding overly complicated. However, it worked. Rather than redoing everything, I satisfied myself with being happy with the project as it was and decided that, if I ever created additional visualizations in the future, I would implement a new method then.
Browse Esri Press books at esripress.com, or view my portfolio at victoriarobertsdesign.com. Happy learning!