Web Development for Artists: What You *Actually* Need to Know

Image from eDesignGuru

Universal basic income is probably not coming to America any time soon. So people need to make money, and often many jobs which make decent salaries require STEM (Science, Technology, Engineering, and Mathematics) expertise. Web development is one of the fastest growing industries today. Lots of artists have their own websites, and even will consult on the “look-and-feel” of websites (or, what we call web design) for clients, who usually use some service like Wix, SquareSpace, and Wordpress. These services come with limitations, which can make it frustrating to realize a good design.

Making art is always a question of how strong your craft is, which requires you to be familiar with whatever tools are necessary to make a piece. Craft can mean woodworking, ceramics, or it can be hyper-specific to a work like “How do I get mushrooms to grow in a gallery?” or “How do I make a wall of speakers play these sounds when I want them to?” Technology is an extension of technique. It’s just a question of learning to use the tools necessary for the task, and as an artist your process has already taught you how to do a lot of technical processes which outside of the art-making context could be understood as STEM skills. If you’re not sure you understand the link, think Jordan Wolfson.

And a secret for you before we join the rest of the readers: web development has so much to do with design and understanding where you want a viewer to spend their energy. You know how to do that way better than people without an art background. This will be incredibly valuable to you if you are making a website without using a service, and any potential clients will pay a lot for this powerhouse combo once your skills are honed.

Web development is the practice of creating a websites and web applications. This practice is often broken up into two sections, the frontend and the backend, with practitioners who can handle both being referred to as “full stack.” The frontend of a website is what we usually all think of as the website, designing and creating what a user sees and how that operates. This is usually done with HTML, CSS, and Javascript. The backend of a website is what needs to happen to supply the web browser with the information it needs to render. This is usually done with languages like Python, Javascript, Java, and PHP.

The web is a technology which we all use on a daily basis, and so its design informs how we understand our lives. For example, writing the algorithm which dictates your Instagram feed, or what happens on the screen when you like a post influences your behavior on a website. It doesn’t have to be all negative, so long as the design goals are good. Being a full stack engineer allows you to make those design choices at every step of building a website, creating digital spaces that align with your values. Web development is an engineering and design practice which directly influences our culture. Creating something people use every day, or delights them when they see it, or is a place they look to for inspiration is its own reward. But with information about users being gathered at every turn on the internet, it’s important to be extremely conscientious about what, and how you ask for data from the user so they can be secure and protected against the still wildly unregulated internet.

Web development is one of the few jobs out there that equally values breadth of knowledge, or generalization and specialization, or deep knowledge. People in the field call this “T” shaped expertise, which is great for someone who can balance details and the larger picture who may be bored in specifically general or specialized positions, making it a very unique and interesting position for someone well-suited.

If you’ve ever planned an event from what’s going to happen to how you’re going to get people to come, you can think of full stack development that way. First you have to figure out where you’re going to have the shindig, then what’s going to happen once people get there, and how are you going to keep people at your party instead of all the others? Where you’re going to have it is much like setting up your servers to respond to the URL or “place” of your website. What’s happening, such as where the food table is, where and what drinks people can get, and any other games and activity is much like designing the UI/UX of your website. And what keeps people at your website is the overall experience, coupled with how well you execute those tasks. If there’s a bar which runs out of ice, you’re in big trouble. If you try to pull data from a database and it doesn’t get onto the user’s web browser, it’s a very similar experience.

Break it down for me:

If you’ve been convinced enough about trying your hand at web development, here are some problems you may encounter on a daily basis, as well as some additional tools of the trade to become familiar with, broken down by each level:

As mentioned above, some common languages for front end development are HTML, CSS, and Javascript. You could also end up using jQuery, and bootstrap CSS. HTML isn’t technically a language, but you’ll need to be comfortable writing it. It’s always advisable to start with a plain or vanilla version of Javascript before using common libraries and frameworks like Node.js, React, and Angular. Frameworks come and go, and having vanilla Javascript will ensure you’re ability to adapt as common practices change over time. If you’re working exclusively on the front end some common tasks and problems you’ll run into will be: fully realizing a design from a PDF, Illustrator, or Photoshop file according to the specifications given by the graphic designer. “Fully realizing” here meaning pixel-perfect. Other problems will be ensuring behaviors load at the right time, like when you “like” a post on social media. The like count is updated, but nothing else on the web-page is reloaded. Controlling these loads will be part of your job, as will integrating information from the backend or third party sites and APIs in a readable and useable way for your clients.

Some non-language tools you’ll probably end up using are Chrome’s Developer tools, Github, collaboration tools like Slack, Discord, Notion, etc. Some classic resources include W3Schools, Mozilla Developer Network (MDN), and Stack Overflow. Some familiarity with Adobe’s suite may be useful depending on how heavily invested you are in design. Some knowledge of design concepts like typography, negative space, color theory, and visual hierarchies will also be useful if you’re editing content on the fly without the supervision of a graphic designer.

As we mentioned, common languages for back end development are Python, more Javascript, and PHP. Other languages you’ll find useful are MySQL or other database manipulators, and familiarizing yourself with manipulating APIs. Some knowledge of Django is also likely to come up if you keep doing it long enough. Containerization tools like Docker and Kubernetes will assist you, as well as being able to create virtual machines. Web infrastructure and knowledge of manipulating and configuring servers is an absolute essential. Some knowledge of networking engineering will make you more suited to make web sites which can function during slow or intermittent internet connection. Common issues you’ll run into as a back end web developer will be database management, load balancing, server configuration, API management (and even creation), and helping out if the website crashes due to high traffic. A backend developer is the reason when you look for genres on Netflix like “Reality TV” you don’t get suggested something like The Wiggles, because they manage the database and how it relates titles with other titles and genres. You can also thank them for when you search for “genre” and Ellen DeGeneres doesn’t come up.

The non-language tools mentioned above will also come in handy, instead of familiarizing yourself with design concepts, getting into low-level algorithms and programming will help you efficiently manipulate data at the minutiae. Writing Puppet scripts to automatically configure servers will save you time, as will strong bash scripting skills and shell navigation. While it’s unlikely you’ll be in many meetings with clients and designers, working on a team always means don’t skip the soft skills.

As a full stack web developer, you’ll need knowledge of both the front and back ends, as well as any necessary middleware to coordinate between the two. While full stack developers tend to have a strong suit on either the front or back end, they’re capable of doing either and are familiar with what’s necessary to do both. This is advantageous for a couple of reasons: you can transition quickly as demands in the marketplace change, and even set out on your own if you want to work for yourself. It also means you’ll be able to create web applications and websites from start to finish, managing data exactly the way you want to. When sites are taking data from clients all the time, in varyingly secure ways, your clients can be confident you’re only taking the cookies necessary from their users because you can show and explain the code which does that. You can also protect your users my anonymizing data.

Having varying skills always makes it easy to transition, a full stack developer could transition into machine learning or design-centric UI/UX design by learning some extra skills. Skills they’ll be well-positioned to learn because of their “T-shaped” knowledge base. Full stack developers would also be a prime choice for product and project management roles, as they would be able to converse well with both sides of the stack to ensure the project goes as smoothly as it can.

Feeling inspired? Check out the links in this post, and the links below to learn more.

Poet sowing lines of code to envision a new craft toward the future