AJ Dyrbye

Web Developer and Digital Humanist

Tag: frustrations

Child Themes, or, When Developing From Scratch Drives me Crazy

Over the weekend, I started work on my new spare-time project, developing a new theme for this site.

My current theme is, to put it mildly, driving me batty. It started life as a learner theme I developed in my course work for the SkillCrush WordPress Developer Blueprint. Though I’ve put a lot of work into it so far, there is a great deal left just to get it up to speed for what I actually need from my website. While I’d love to keep working on it, I’ve reached a point of diminishing returns: focusing on fixing it up is holding me back. It’s time to move on.

Thus, in the interest of Actually Getting Stuff Done on this website, I’m now working with a free, responsive preexisting theme that, rather than having to constantly bug-hunt and develop, I can adapt to my needs instead. In addition, I find it fascinating to see how a more established developer constructs a theme.

In my (admittedly still limited) experience, child themes are an entirely different kettle of fish than developing from scratch. I have found that it’s a process of discovering design decisions, and exploring what’s possible by trying out what I’d like to implement, and observing what works and what breaks it. It’s become pretty clear that while I can bend a theme to my own preferences, that theme can only flex so far – any changes I make have a ripple effect on the very character of the theme.

For example, I spent Sunday working on a child for Anders Noren’s Radcliffe only to abandon it. As much as I like the simplicity of the theme, it’s a single-column design. Radcliffe’s design is blog-forward, promoting visual hooks and strong titles to entice readers to click on a post. It’s got a beautiful navigation aesthetic for the top of the site, but it pushes all the widgets down to the bottom. Since I use widgets pretty heavily to welcome visitors, promote my social media presence and provide capsule information about what my interests and strengths are, I can’t afford to promote my blog posts above all else as the design intends.

With that in mind, I decided to try adding a left or right column, to blend the visual appeal of its body column with the sidebar I need to effectively convey who I am and what I’m about. Several hours of tweaking and codex-searching later, I discovered that adapting Radcliffe to accommodate just one sidebar isn’t practical the time I have allotted for this project.

And so, I learn and move on.

It’s hardly wasted time, however. The joy of WordPress is that if I find a theme I like, odds are good that the same designer has another one with a comparable aesthetic that suits better. In this case, I’ve simply selected a new theme with which to begin again: Hemingway, another of Anders Noren’s themes with a similarly clean aesthetic and a pre-established support for a two-column layout. It shouldn’t take more than an evening to transition the changes I made to Radcliffe over to Hemingway, and then I can move on to other things.

Aside from experimenting with sidebars, I’d merely re-implemented my landing page and was beginning on colours, fonts and layout for the rest of the site. I also have custom archive, post, 404 and portfolio pages planned, which should be much faster to implement now that I’m not having to reinvent the wheel. If I haven’t broken anything too badly by this time next week, I’m aiming to take it live.

And then, the real fun finally begins: adding some of that JavaScript functionality I’ve been learning. Speeding up my site’s load times. Designing a logo for myself. In short, doing all the stuff I couldn’t do because I was caught up on how much I still needed to do just on my learner theme.

Thank goodness for WordPress’ theme library, and its child theme support. With the shift in focus they permit, it’s not going to be long at all before I can start looking seriously at from-scratch theme development again. In the mean time, I’ll have a fully functional site I don’t have to cringe at.

Win-win.

The Circuitous Path

It’s been a long, meandering path to where I now stand. Finding a career job has been difficult, and despite my wishes to the contrary, is still a work in progress.

And yet, though the journey has been challenging and the way unclear, I am still glad for the experience I’ve accrued, and the knowledge I’ve gained along the way.

There’s the bookstore job, which I took on while I was finishing up the last few courses of my undergraduate degree. It made it possible for me to build my independence, and introduced me to people I never would have met otherwise. It also taught me how much I value working with my mind, that I thrive best with new challenges on the horizon, and how hard it is, financially and psychologically, to live on near-minimum wage.

There’s the utility company, where I worked in a variety of administrative positions on a term contract basis. It taught me how to function as part of a team, to be flexible and agile, that the planning and time management I relied on so heavily as an undergraduate is one of my greatest assets. I realized in this time how much I enjoy working with computer systems, and that I wanted to know not only the how but also the why of the systems I relied on daily. My time here made it clear to me that, as I was shuffled internally from one position to another according to need and long-term leaves, that I have a deep need to feel I belong and can make a lasting impact, but that the types of opportunities available to a BA in the utility business were not where I could see myself long-term. Here, I had the living wage, but still could not find the job satisfaction I craved.

And so, between the instability of the economy, the looming end of my contract with the utility company, and the limited opportunities available to me, I returned to higher education. In the final years of my undergraduate degree, the university began offering a Masters in Humanities Computing, and that knowledge had stuck in my mind like burr in the intervening years. It taught me that, by building up my computer skills, I could find a niche for my humanities background in the wider world. I learned basic programming, web markup and stylesheets, how servers work, how to integrate and manage a dataset stored in a database. I learned how to figure things out on the fly, to cope with demands that require specialized knowledge without a clear path to it. I learned to be the person mediating between the people with the ideas and the people who could build it. I learned new strategies for managing stress, and just how far a little communication can go to alleviate a hard situation. It reminded me once again how much I value working in a team environment, and showed me that, as amazing as I am in situations requiring self-motivation, I am even better when I have common goals and a support network.

Post-Masters has been challenging.

I’m fortunate, in that I’ve been able to continue with some paid project work I started as a graduate student. I’m even more fortunate that I was able to pick up a part-time web development contract, which spun out into a new web development contract. It’s reinforced how much I enjoy working with websites and building up the infrastructure that makes others’ work possible. It led me to deepen my knowledge of the WordPress CMS, which I am currently working with most.

However, that permanent long-term job has remained elusive.

It’s maddening, sending resume after resume out into the void and getting only a small number of responses in return. It’s heartbreaking to interview, to fall in love with a team and a role, only to have it go to someone else. It’s frustrating to watch the months accrue, to see no stability in sight, to have my capacity for long-term planning limited.

All I need to do is keep going forward. Send out one more resume. Tweak my web portfolio. Take that WordPress course. Go to that networking event. Spend more time with Photoshop and Illustrator. Fight back the voice that says it’s not enough, I’m not enough.

Do my best to make my own luck.

It will happen eventually. Not many people are permitted the smooth path from education to career. I have no regrets for how I got here, no matter how challenging it is not to see where I am going.

The time in between is the hard part, and what is life but a series of in-betweens?

On CodeAcademy as a learning tool

So, today I finally got back to my CodeAcademy account. I’m pleased to be making progress again, as I’d stopped in the middle of one of the later PHP modules, but I completed two steps before it reminded me of why I ended up stalling last time.

I’ve been using the site as a refresher and alternate perspective. I completed their HTML and CSS modules in short order; while it taught me a few things, it ended up mostly being a reaffirmation that I’ve at least got the basics down. The PHP modules have been a slightly different experience. The introductory modules almost entirely tread familiar ground, but I began noticing that I was having a harder time identifying and correcting problems than I was used to.

Once I was a few modules deep, I realized what was going on: I could have the problem solved correctly, but still produce an error because I wasn’t writing a string or variable name or whatnot exactly as the module had been programmed to expect. Human teachers aren’t hung up on these things, as it’s consistency that matters more often than not, so it took me a bit to realize when I was being failed for writing $somevalue rather than $someValue.

This wasn’t a big deal during, say, the Arrays modules. However, once I started getting to material that was new to me, particularly the Object-Oriented Programming section, a few concepts became exercises in frustration. I would get stuck trying to figure out where I’d messed up my code when I’d actually just used a letter case in my variable they hadn’t expected, or substituted my own string for their suggested wording where they were string-matching to ensure I’d echoed the right text. It began to drive me a little nuts, as I was often naming the relevant variables and whatnot consistently. The code would work, but not according to the lesson. Once I’d slogged through a handful of lessons with these types of snags, I took a break, and the break became weeks while I shifted focus first to my impeding thesis defense and then to post-defense finalization.

But, I still want to learn this stuff. Now that I’m no longer funneling most of my energy toward the university, I’m better equipped to persevere. I’m getting enough out of the modules that they’re worthwhile despite the occasional maddening extra layer of troubleshooting to contend with. I aim to go through at least the JavaScript and Python modules before I’m done with the service.

That said, I’m glad that I’m not coming to programming as an entirely new set of concepts. Getting classroom and work experience first has made it easier to work with the site’s quirks and the odd instructions that lack clarity.

© 2014 - 2016 AJ Dyrbye

Up ↑