<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Squirrel Logic</title>
    <description>The latest articles on DEV Community by Squirrel Logic (@squirrellogic).</description>
    <link>https://dev.to/squirrellogic</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F455912%2F8888d9d1-bf22-4c5a-8093-946b7b5ebadc.png</url>
      <title>DEV Community: Squirrel Logic</title>
      <link>https://dev.to/squirrellogic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/squirrellogic"/>
    <language>en</language>
    <item>
      <title>The Best Way to Name Design Files</title>
      <dc:creator>Squirrel Logic</dc:creator>
      <pubDate>Sun, 06 Sep 2020 20:19:48 +0000</pubDate>
      <link>https://dev.to/squirrellogic/the-best-way-to-name-design-files-1155</link>
      <guid>https://dev.to/squirrellogic/the-best-way-to-name-design-files-1155</guid>
      <description>&lt;p&gt;This is a complete resource on how to consistently name files for designers and artists that will work in all operating systems and under most circumstances.&lt;/p&gt;

&lt;p&gt;As a graphic designer and illustrator who has created art assets for websites, apps, and even video games, I've come up with a battle-tested system for naming files. File nomenclature (especially when it is for general usage) is a very divisive and opinionated topic. (I do look forward to having a good discussion in the comments to see if there's anything I missed).&lt;/p&gt;

&lt;p&gt;File naming does depend on the domain you are working in, but there are some fundamentals to good (and useful) file nomenclature systems.&lt;/p&gt;

&lt;p&gt;Here's the short version of how I name my files:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;category-file_name-tags.ext
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Examples:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;icon-email_moderator-dark-v01.png
icon-email_moderator-dark-v02.png
icon-email_user-dark.png
icon-email_user-light.png
icon-search.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;And the more humane version of that system (which I only use for certain type of documents):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Category - File Name - Tag - v01.ext
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;From that you can see how files are grouped based on their most significant category or attribute first. There's no spaces or illegal characters so that they work in pretty much every environment.&lt;/p&gt;

&lt;p&gt;So that's my nomenclature solution for most projects. I've included my methods and wisdom from other domains so you can understand why I use this naming system as my default, and how you can apply it's principles elsewhere. As with all file naming standards, there's going to be caveats and edge cases. So keep on reading.&lt;/p&gt;

&lt;h2&gt;
  
  
  Principles
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;You'll never know how your files will be used or where they will end up.&lt;/strong&gt; Therefore, the file names should support the widest possibility of applications, usages, and operating systems. In other words, your file name should work on as many platforms as possible.&lt;/p&gt;

&lt;p&gt;File naming conventions are often very subjective (unless you are coding), so lets start with some well-established rules before going into my personal preferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule #1: No spaces
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;There's a lot of reasons why you shouldn't use spaces in your file names.&lt;/strong&gt; Dealing with spaces in the command line can be annoying. Spaces render out as an ugly &lt;code&gt;%20&lt;/code&gt; in web URLs. It can be annoying for programming or writing scripts. They can cause human error since spaces are only indicated by a gap between letters.&lt;/p&gt;

&lt;p&gt;Perhaps you don't think you'll ever use the command line or have your files hosted on the web. Trust me, you'll never know the fate of the files you create, so it's better to be safe than sorry.&lt;/p&gt;

&lt;h2&gt;
  
  
  Rule #2: No capital letters
&lt;/h2&gt;

&lt;p&gt;Some capital letters look like other lowercase letters or numbers. For example, l vs I (lowercase "L" vs uppercase "i"), or O vs 0 (uppercase "o" vs. the number zero). Having all letters be lowercase removes most of the confusion.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Capital letters are also prone to human error when typing them.&lt;/strong&gt; How many times have you typed something like, "THank you." Yeah. Best to keep it simple, remove the possibility of error, and save an extra key stroke per word.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Some operating systems are case sensitive while others are not,&lt;/strong&gt; so you may run into a situation where two files are copied over each other and one file is lost, because one was named "invoice.pdf" and the other was named "Invoice.pdf". It's best to remove capital letters out of the equation to prevent that from happening.&lt;/p&gt;

&lt;h3&gt;
  
  
  When are capital letters okay?
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;In computer programming, capital letters might be required for your file names.&lt;/strong&gt; For example, a file name for a class may have to exactly match the class name, which would be in PascalCase (first letter of every word capitalized, no spaces).&lt;/p&gt;

&lt;h2&gt;
  
  
  Hyphens vs. underscores
&lt;/h2&gt;

&lt;p&gt;In my opinion, this is the most subjective part of file naming: when to use underscores or hyphens. It usually never matters which one you use, but there are some cases where you have to use one over the other.&lt;/p&gt;

&lt;p&gt;As with capital letters, &lt;strong&gt;when writing software you have to follow the conventions of the programming language or the framework you are using.&lt;/strong&gt; An underscore may indicate something special, especially if the file starts with an underscore. Frameworks will have a style guide that tells you when to use hyphens or underscores.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Underscores are a less safe to use for files that are uploaded to the web. Google recommends hyphens for URLs. I imagine that advice extends to file names as well (e.g. images),&lt;/strong&gt; but I haven't seen any opinion by Google on file naming for SEO purposes. &lt;strong&gt;Underscores are invisible if the text is underlined, such as a hyperlink on a webpage.&lt;/strong&gt; So all of that put together is why underscores are not recommended for the web, but it's a more loose recommendation.&lt;/p&gt;

&lt;p&gt;But what about files on your computer? I have a hard time reading a file name if it's separated by hyphens. I find underscores to be a much more readable replacement for spaces. For most of my life, I've been using underscores for file names (outside of a programming project which may have their own rules). I've used underscores for files that have been uploaded to the web, and I've never ran into an issue. I feel confident with using underscores instead of hyphens for file names as a general rule. And yes, my files have been accessed by Linux terminals, scripts, the web, and I've had good luck with them.&lt;/p&gt;

&lt;p&gt;The only time I've ever ran into an issue with underscores in filenames is when using Markdown to reference a file that started with an underscore. In Markdown the underscore is used to indicate when to start and stop italics. But that's the only time I've ever had a problem with it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The important part of file naming is that the nomenclature is consistent on a per-project or per-domain basis.&lt;/strong&gt; (By "per-domain" I mean that a software project may have different naming conventions for code than it does for the images that the code use. This is okay.) Just be as consistent as possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  My method for naming files
&lt;/h2&gt;

&lt;p&gt;So with all of those principles put together, here's how I name my files. I have a more "humane" version of this further down.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;category-file_name-tags.ext
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The most significant concept is first in the file name so files are grouped alphanumerically.&lt;/li&gt;
&lt;li&gt;Separate categories and tags with hyphens as the delimiter.&lt;/li&gt;
&lt;li&gt;Use underscores instead of spaces.&lt;/li&gt;
&lt;li&gt;All letters must be lowercase.&lt;/li&gt;
&lt;li&gt;When dates are used in a file name, they must be in the YYYY-MM-DD format, in accordance with the "most significant concept is first" principle.&lt;/li&gt;
&lt;li&gt;File names should be brief but descriptive.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Why do I use underscores for spaces?
&lt;/h3&gt;

&lt;p&gt;The biggest reason is readability. I find hyphens to be poor separators of words, visually speaking. Yes, underscores are harder to type, but if your file name is comprised of a lot of words, then you are probably naming it wrong. &lt;strong&gt;File names are not meant to be sentences.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A benefit of using underscores to separate words is that most user interfaces will treat underscores as part of the word if you double-click, or use SHIFT-CTRL-ARROWKEY to select the text. Essentially, this means that each category, tag, or name can be selected independently of the other very quickly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Categories
&lt;/h3&gt;

&lt;p&gt;Categories is a term I use to describe something that I want to group files into without making a new folder for them.&lt;/p&gt;

&lt;p&gt;Here's an example of some art assets:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;grass-cut.png
grass-dead.png
grass-long.png
grass-short.png
dirt-dry.png
dirt-wet.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;See how this alphabetized file list is so easy to read? The grass and the dirt files are all grouped together.&lt;/p&gt;

&lt;p&gt;Compare the above list to this list below, where we named them more traditionally with the adjective first:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cut_grass.png
dead_grass.png
dry_dirt.png
long_grass.png
short_grass.png
wet_dirt.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;See how the files are not grouped together? That is because we are not obeying the "most significant concept is first" rule.&lt;/p&gt;

&lt;h3&gt;
  
  
  Tags
&lt;/h3&gt;

&lt;p&gt;A tag is a term I used to describe a slightly modified version of a file. Things like version numbering, image size, or other aspects like if it's a light mode or dark mode for that image. I put them after the file name, again in order of most to least significant.&lt;/p&gt;

&lt;p&gt;In this example, you can see how I have tags such as "light", "dark", and "600" to help identify if a file name is supposed to be on a light or dark background, and if it's a 600 pixel wide image.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;shape-cube_silhouette-dark-600.png
shape-cube_silhouette-dark.png
shape-cube_silhouette-light-600.png
shape-cube_silhouette-light.png
shape-cube_silhouette-outlined-dark-600.png
shape-cube_silhouette-outlined-dark.png
shape-cube_silhouette-outlined-light-600.png
shape-cube_silhouette-outlined-light.png
space-distance-dark-600.png
space-distance-dark.png
space-distance-light-600.png
space-distance-light.png
space-position-dark-600.png
space-position-dark.png
space-position-light-600.png
space-position-light.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This provides a nice rhythm to the file names, making it easy to find what I'm looking for in a filename list.&lt;/p&gt;

&lt;h4&gt;
  
  
  Should a version number go before or after the tags?
&lt;/h4&gt;

&lt;p&gt;It depends. Always follow the "most significant concept is first" principle when figuring out what tags go in what order.&lt;/p&gt;

&lt;p&gt;My instinct is that the version number of a document will always be the last part of the file name, but there are times where you may not want that to be the case.&lt;/p&gt;

&lt;p&gt;In the case of a logo, where I have a dark mode and a light mode, I usually have the dark and light mode version in the same source file. For example, &lt;code&gt;logo-v06.afdesign&lt;/code&gt; is an Affinity Designer file that includes the artwork for the light and dark mode versions of the same art asset. My export options in the source file will add a &lt;code&gt;-light&lt;/code&gt; and &lt;code&gt;-dark&lt;/code&gt; string of text at the end of the file name, so the final will be the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;logo-v06.afdesign
logo-v06-dark.png
logo-v06-light.png
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Note that the version number is not last. That is actually the preferred scenario for me in this case where the &lt;code&gt;dark&lt;/code&gt; and &lt;code&gt;light&lt;/code&gt; files are inside of the source &lt;code&gt;.afdesign&lt;/code&gt; file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Make file names "sticky" by using two underscores at the beginning of the file name.
&lt;/h3&gt;

&lt;p&gt;When I have a file named &lt;code&gt;__readme.txt&lt;/code&gt;, the underscores at the beginning of the filename will sort it to the top of the list. I also use folder names called &lt;code&gt;__old&lt;/code&gt; so that they are sorted separately as well.&lt;/p&gt;

&lt;p&gt;Why do I use two underscores instead of just one? It's more noticeable. It's closer to one em's worth of length, and I like having the text indented out a little bit more.&lt;/p&gt;

&lt;p&gt;The only time this has been a problem is when using software that incorporates linking to Markdown files, such as the note-taking app Obsidian. Underscores are used to indicate italics, or two underscores to indicate bold. That means the text starts to format as bold if I link to one of those files.&lt;/p&gt;

&lt;h4&gt;
  
  
  Alternately, make files sticky by starting them with a string of zeros.
&lt;/h4&gt;

&lt;p&gt;This is the more future-proof method of making a file name sticky.&lt;/p&gt;

&lt;p&gt;When using underscores in a file name is inappropriate, or if I want to force a very specific ordering system, I'll use a string of numbers at the beginning of the file name.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;000-scratchpad.md
010-the-big-picture.md
020-choosing-your-tools.md
030-the-elements-of-design.md
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Any file starting with &lt;code&gt;000-&lt;/code&gt; is considered to be sticky, as it will always show up at the top of the list.&lt;/p&gt;

&lt;p&gt;I start my numbering at &lt;code&gt;010-&lt;/code&gt; and then increment each file by 10. That way if I need to insert a document in between &lt;code&gt;010&lt;/code&gt; and &lt;code&gt;020&lt;/code&gt; I can use &lt;code&gt;015-&lt;/code&gt; without having to rename every file in the directory. This is a system I have to use when writing structured content in Markdown because of how Markdown uses underscores for text formatting.&lt;/p&gt;

&lt;h3&gt;
  
  
  When I use hyphens instead of underscores
&lt;/h3&gt;

&lt;p&gt;When I'm working on web site projects, the names for pages and directories should use hyphens instead of underscores. The reason why is because it is the standard for URLs to use hyphens to separate words because they are easier to type. From a technology standpoint, Google treats hyphens like spaces, but underscores are treated as word characters. That is why the double-click and CTRL-SHIFT-ARROWKEY trick works to select a string of text like &lt;code&gt;file_name&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Google will drop the underscore and consider a word like "company_logo" as "companylogo". That might be a problem for SEO, but I haven't seen any definitive research or statement on how that applies to file names on the web, just URLs.&lt;/p&gt;

&lt;p&gt;I think that image names with underscores should always be fine though, even for web projects. To this day I use hyphens for images and I haven't ran into any problems or concerns. If you want an image to show up in Google image search, it may be prudent to use hyphens instead of underscores. But that's just a guess.&lt;/p&gt;

&lt;h2&gt;
  
  
  The humane version of my naming scheme
&lt;/h2&gt;

&lt;p&gt;Lets assume that you are not going to interact with a file using a command line interface, or upload it to the web, and you simply want your file names to looks as readable as possible in your folder view. You can use the same principles of the naming scheme, but modify it slightly to use spaces and capitalization.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Category - File Name - Tag - v01.ext
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;This follows all the same principles of my previous naming scheme, except that I don't use underscores, I use spaces and &lt;code&gt;-&lt;/code&gt; or "space hyphen space" as a delimiter between categories, file names, and tags. Categories and tags are capitalized. The file name can be title case or sentence case; whatever case makes sense.&lt;/p&gt;

&lt;p&gt;Advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It's a lot more readable.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Disadvantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The file names are longer.&lt;/li&gt;
&lt;li&gt;The files will create ugly URLs if those files ever makes it to the web.&lt;/li&gt;
&lt;li&gt;The files are more difficult to work with through a command line.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When do I use this naming system? If I'm reasonably sure that the files won't be accessed directly through the command line (since dealing with spaces can be a pain) and that it'll never be put on a web server. I also won't use this system if the length of the file names may become a problem. An example of this would be video or graphics software where it may show a list of art assets that are used within the project. That list takes up a lot of screen real estate, and if the file names are too long I won't be able to see the entire file name. The human-readable filename of &lt;code&gt;Category - File Name - Tag - v01.ext&lt;/code&gt; uses 6 more characters than my standard naming system, which increases the length of the file name by 20%.&lt;/p&gt;

&lt;p&gt;I do use this naming scheme on a semi-regular basis. I use it for text documents, talks, presentations, anything that I know won't get uploaded to the web anywhere (except contained in a ZIP file) or used as an art asset for a bigger project. In short, this is my lazy naming scheme if I want things to be readable. But if I'm doing something for a project, I'll stick with the more robust and condensed naming system.&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>design</category>
    </item>
    <item>
      <title>Learning Path For Artists and Designers Learning to Code</title>
      <dc:creator>Squirrel Logic</dc:creator>
      <pubDate>Thu, 03 Sep 2020 01:34:42 +0000</pubDate>
      <link>https://dev.to/squirrellogic/learning-path-for-artists-and-designers-learning-to-code-11dl</link>
      <guid>https://dev.to/squirrellogic/learning-path-for-artists-and-designers-learning-to-code-11dl</guid>
      <description>&lt;p&gt;So, you're an artist or graphic designer who wants to learn how to code. That pretty much sums up our lives at &lt;a href="https://www.squirrellogic.dev/"&gt;Squirrel Logic&lt;/a&gt;, and why we focus so much on artists. Personally, I've gone through several coding courses, books, premium video tutorial series, countless blog posts, and YouTube videos. And I survived.&lt;/p&gt;

&lt;p&gt;This is my guidance for every artist and designer who wants to learn how to code.&lt;/p&gt;

&lt;p&gt;Before we begin, there's a few reasons why you may want to learn programming:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reinvent yourself and do something completely different. 😢&lt;/li&gt;
&lt;li&gt;Learn how programmers build software to better collaborate with your team.&lt;/li&gt;
&lt;li&gt;Learn a new skill to create more valuable work and increase your income.&lt;/li&gt;
&lt;li&gt;Learn a new hobby that will be challenging and fun.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In addition, there may be some fields or interests you'll want to get into.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Someone who has no idea what to code, but just wants a change. 😢&lt;/li&gt;
&lt;li&gt;An artist wanting to create a game.&lt;/li&gt;
&lt;li&gt;A fine artist wanting to create generative art.&lt;/li&gt;
&lt;li&gt;A graphic designer wanting to create a website or web app.&lt;/li&gt;
&lt;li&gt;A graphic designer wanting to create data visualizations.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We are going to go cover the "why" and "how" for artists and designers who want to begin this path down software development, and what you need to consider before starting.&lt;/p&gt;

&lt;h2&gt;
  
  
  Be Honest With Yourself On Why You Want to Learn Programming
&lt;/h2&gt;

&lt;p&gt;I mentioned three common reasons why visual artists want to get into coding: learning for the sake of understanding the jobs of their teammates, learning to pivot into a new career, and learning to completely reinvent themselves. I'm going to cover the "reinventing yourself" reason first, because I think that last one is the most common and heartrending.&lt;/p&gt;

&lt;h3&gt;
  
  
  Completely Reinventing Yourself
&lt;/h3&gt;

&lt;p&gt;You may be the type of person who has given up on your career of becoming an artist or designer. You may have been doing it for a few years and have not made the income you wanted to. You may have seen the industry go in a route that you don't want to follow. Or maybe you feel like you just can't cut it, that you are not good enough, or that you are not the creative type. (Hint: programmers are just as creative as designers.)&lt;/p&gt;

&lt;p&gt;I have a few things to say to people who want to completely reinvent themselves.&lt;/p&gt;

&lt;p&gt;First off, &lt;strong&gt;I don't recommend that anyone should reinvent themselves completely.&lt;/strong&gt; Clearly you went down the path of being an artist or graphic designer for a reason. I recommend that you write down why you found your current career path so appealing to begin with. I'm certain it wasn't the money. Was it the type work, the idea of working on a variety of projects, or the artistic freedom? What was it that you thought you would receive, but didn't?&lt;/p&gt;

&lt;p&gt;Whatever it was, write down what originally drew you to that career path. You may be able to gain some insight as to why you are unhappy with your current career. Maybe you'll find that there's an easier solution to your unhappiness that doesn't involve starting over from scratch.&lt;/p&gt;

&lt;p&gt;It's also possible that you haven't had your big break yet, or maybe you need to level up just a little bit more to be employable or get a better paying position. Be honest with yourself, and most importantly, talk to other people about it. Find professionals in your &lt;em&gt;current&lt;/em&gt; field and get some career direction. They can help point you to solving the predicament you are in.&lt;/p&gt;

&lt;p&gt;Twice in my life I felt like I was a failure as a graphic designer/illustrator, and as a front end developer, only to get my dream job a few months later. Sometimes you are doing all the right things and it just hasn't paid off yet. Patience is important. It takes years for things to finally happen. Don't give up so easily.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;It is absolutely okay to pivot and take slight career adjustments, adding extra skills here and there, and changing your strategy just a little bit.&lt;/strong&gt; But be sure you understand why you are doing it. Don't change careers because you are panicking. Do it because it is part of a thoughtful plan. Do it because it's part of a grand strategy that lines up with what you want and not because you are reacting to failures in your current career. &lt;strong&gt;It is far easier to leverage things you already have than to drop it all and start over from zero.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The best programmers are the ones that solve problems first, and then program only when they need to in order to solve the problem. Follow their example. Only learn how to program if it's the only solution to solve your career problems.&lt;/p&gt;

&lt;p&gt;If you want to read more about choosing the right career path as an artist, &lt;a href="https://www.squirrellogic.dev/articles/advice-for-freelance-artists/choosing-a-career-path/"&gt;I wrote up an article about it here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning How To Program to Better Collaborate with Programmers
&lt;/h3&gt;

&lt;p&gt;I like this reason for learning how to code a lot because it helps you become more T-shaped (although I prefer being π-shaped, where you have two deep strengths). The more overlap of knowledge you have with your teammates by learning how the sausage gets made, the easier it is to communicate with you team and be more empathetic.&lt;/p&gt;

&lt;p&gt;You can use the same domain-specific language when talking with programmers, you can provide mockups that are more realistic and are easier for programmers to implement, and you'll also have a better understanding about why seemingly simple additions taking a long time to get done.&lt;/p&gt;

&lt;h4&gt;
  
  
  First: Listen to Podcasts
&lt;/h4&gt;

&lt;p&gt;If your goals is to better understand programmers, a good passive way to start doing this is to listening to podcasts. My favorite recommendation right now for artists and designers is &lt;a href="https://www.codingblocks.net/"&gt;Coding Blocks&lt;/a&gt;. They cover a lot more of the higher-level topics like architecture, strategies, what is actually important for a business, and so on. And the hosts have great chemistry. Scroll through the episode list and find topics you are interested in.&lt;/p&gt;

&lt;p&gt;It's okay if you don't know all the terminology. Google a few terms here and there if you think it's interesting or relevant. But just hearing programmers talk about their job and the stories they have will help you better understand how they work, and what type of tasks are more difficult for programmers and why. You'll learn quite a bit through osmosis.&lt;/p&gt;

&lt;h4&gt;
  
  
  Second: Learning How to Code
&lt;/h4&gt;

&lt;p&gt;The nuclear option for understanding how programmers do their work is to actually learn how to do it. I'll get into this part in more detail in the "Learning Path" section of this article, because the next steps depend greatly on what you want to learn.&lt;/p&gt;

&lt;p&gt;You may have done this already, but if you haven't, I recommend telling the developers on your team that you are interested in learning more about software development. Ask what learning resources they would recommend as a beginner. Asking them about your interest in their profession is a great way to increase comradery within the team. They may end up asking you about learning your artistic skills later on!&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning a New Skill to Create More Valuable Work and Increase Your Income
&lt;/h3&gt;

&lt;p&gt;You may be content with your career, but you feel like it's time to grow, be challenged, and do something new. Maybe you've gotten a little older, you have a family now, and you want to enter a profession that is in higher demand. These are good reasons to learn how to code.&lt;/p&gt;

&lt;p&gt;If you are doing it to pivot into a new career then you are probably going to take it pretty seriously, more than just "dabbling" in it. In that case, the most important thing you can do is to schedule regular times to do it, and &lt;strong&gt;have a bias towards books, premium videos series, online courses, and any educational content that has structure to it and took a long time to create, as opposed to someone recording a video and posting it on YouTube.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Learning a New Hobby That Will Be Challenging and Fun
&lt;/h3&gt;

&lt;p&gt;Another great reason to learn how to code. Who needs any other reason besides, "Why not?"&lt;/p&gt;

&lt;p&gt;If you are doing this as a hobby with no goal in mind, I recommend learning either Processing or p5.js. See that section below.&lt;/p&gt;




&lt;h2&gt;
  
  
  Learning Paths
&lt;/h2&gt;

&lt;h3&gt;
  
  
  A Serious But Good First Step
&lt;/h3&gt;

&lt;p&gt;If you want to start out on the right foot and have a high-quality, general introductory course to computer science, there's &lt;a href="https://online-learning.harvard.edu/course/cs50-introduction-computer-science"&gt;Harvard University's free CS50 course&lt;/a&gt;. It covers a lot of different fields of computer programming, and gives you a good bird's eye view of the field so you can narrow your focus later.&lt;/p&gt;

&lt;p&gt;It is a pretty big commitment though. It's a college course: 11 weeks, 10-20 hours per week. It's hard to recommend to anyone---especially artists---who only want to dabble in computer programming. I do recommend it for people who want to take software development &lt;em&gt;very&lt;/em&gt; seriously.&lt;/p&gt;

&lt;p&gt;If you only want to watch the lectures and not do the homework or reading materials, the &lt;a href="https://www.youtube.com/playlist?list=PLhQjrBD2T381L3iZyDTxRwOBuUt6m1FnW"&gt;CS50 Lecture videos are available here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Someone Who Has No Idea What They Want to Learn
&lt;/h3&gt;

&lt;p&gt;If you are very serious about learning how to program but you don't know what field you want to get into, &lt;a href="https://online-learning.harvard.edu/course/cs50-introduction-computer-science"&gt;Harvard University's free CS50 course&lt;/a&gt; is my recommendation. Again, it's a college-level course so it's a big time commitment, but it's the best and most thorough general introduction to computer programming out there.&lt;/p&gt;

&lt;p&gt;Otherwise, if you just want to dabble and if you are a visual person, I recommend either Processing (desktop-only) or p5.js (browser-based). The setup for both is minimal. With p5.js you can visit the &lt;a href="https://editor.p5js.org/"&gt;p5.js Web Editor&lt;/a&gt; and start programming without installing any software.&lt;/p&gt;

&lt;p&gt;I'm a big fan of recommending Processing and p5.js because of the quick feedback you get from seeing your code run. I'm an illustrator and graphic designer first, so writing code that created designs was a lot more fun than typing in text strings and numbers into a Python console.&lt;/p&gt;

&lt;p&gt;Now, you probably won't stick with Processing or p5.js for very long, but it's enough to get your feet wet and decide where you want to take your journey in software development. The principles you learn using one programming language transfer across all programming languages. So don't worry about learning "the wrong language" first. It all applies.&lt;/p&gt;

&lt;p&gt;See the links below for Processing and p5.js learning resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  An Artist Learning Game Development
&lt;/h3&gt;

&lt;p&gt;If you want to dabble in how video games are made, I think Processing or p5.js are good starts.&lt;/p&gt;

&lt;p&gt;If you want to get more serious about it, I would recommend either Unity (if you are doing 3D games) or Godot (if you are doing 2D games).&lt;/p&gt;

&lt;p&gt;The Unity game engine is kind of the industry standard for indie developers, and there's a lot of learning resources for it. Unity has a free version too.&lt;/p&gt;

&lt;p&gt;Godot is the better alternative if you use Linux, have a lower-end system, or slow/metered internet access. It is also a lot less frustrating to work with if you want to create 2D games. I think Godot is a better engine for learning purposes than Unity, but the amount of learning material available for Godot is not nearly as good as it is for Unity.&lt;/p&gt;

&lt;p&gt;There's still a lot of work that needs to be done on training materials for Godot if you are self-taught, but once the training material has caught up, I'll be recommending Godot for 3D games as well.&lt;/p&gt;

&lt;p&gt;See the Processing, p5.js, Unity or Godot links below for learning resources.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Fine Artist Wanting to Create Generative Art
&lt;/h3&gt;

&lt;p&gt;I strongly recommend Processing for this. Processing is much faster than it's cousin project p5.js. You can also export PDF and SVG files of the artwork for printing.&lt;/p&gt;

&lt;p&gt;See the links for learning Processing below.&lt;/p&gt;

&lt;p&gt;It's worth noting that Adobe Illustrator does have a scripting language, but I've found it to be too cumbersome for beginners. So if you are a graphic designer who wants to learn some code, avoid that for now and come back to it once you are comfortable with programming basics.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Graphic Designer Wanting to Learn Web Development
&lt;/h3&gt;

&lt;p&gt;Oh boy, are you in for a journey.&lt;/p&gt;

&lt;p&gt;The problem with web development as a field of study is that it's an umbrella term that includes a lot of programming languages, technologies, and subdisciplines. It's usually split up between back end (servers with no graphics, just data) and front end (displaying information and user interfaces in a web browser). But then inside of that you have a ton of other technologies. Front end alone is split up into HTML, CSS, JavaScript (three different markup/programming languages) and then a bunch of other supporting libraries, APIs, technologies, and standards. And on top of all of that you have your tooling (the tools you use to write code quickly), DevOps (the act of combining software development with IT operations, such as deploying your projects to a server), source code versioning, and so on.&lt;/p&gt;

&lt;p&gt;I'm just giving you a heads up that it's a huge topic of study and it may feel like you'll have to learn a lot of fundamental technologies before you can even create something useful. Just stick with it. The good news is that there's a good resource that covers all the bases.&lt;/p&gt;

&lt;p&gt;I have to recommend &lt;a href="https://www.theodinproject.com/"&gt;The Odin Project&lt;/a&gt;. It covers all the technologies and skills you need to learn, and it's free. Inside of The Odin Project's curriculum is &lt;a href="https://www.freecodecamp.org/"&gt;freeCodeCamp&lt;/a&gt;, which is a way for you to learn and practice coding on their website without having to install any tools. I enjoyed freeCodeCamp more and retained more information than any video series I purchased on programming.&lt;/p&gt;

&lt;p&gt;The Odin Project has 3 tracks: "Ruby" (which is a programming language used to write web apps, often touted for how beginner friendly it is), "Full Stack JavaScript" (a combination of front end and back end development), and Front End Only.&lt;/p&gt;

&lt;p&gt;If you are a graphic designer who wants to pivot their career and utilize design skills you already have while working with back end developers, I recommend the "Front End Only" track. If you want to create web-based projects from the ground up, including all of the server-side logic and data storage, you'll want to go through the "Full Stack JavaScript" track.&lt;/p&gt;

&lt;p&gt;Either way, you are in for a pretty big time commitment including hundreds of hours of learning.&lt;/p&gt;

&lt;h3&gt;
  
  
  A Graphic Designer Wanting to Learn Data Visualization
&lt;/h3&gt;

&lt;p&gt;I recommend Processing for this. You can export PDF and SVG files from Processing, so it is especially good for graphic designers who are working with print or static images. Processing is also great for installations.&lt;/p&gt;

&lt;p&gt;See the links below for Processing learning resources.&lt;/p&gt;




&lt;h2&gt;
  
  
  Links to Learning Materials
&lt;/h2&gt;

&lt;p&gt;When it comes to artists and designers learning how to code, I have a strong preference towards either Processing or p5.js. The mission of both projects is to teach artists and designers how to code. But it doesn't dumb it down. The code looks just like regular code. They've just added some default functions that you can use to easily draw shapes and pixels to the screen.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/c/TheCodingTrain/"&gt;The Coding Train YouTube Channel&lt;/a&gt; teaches both, and it is my favorite YouTube channel on programming. You'll learn a lot just watching his videos where he breaks down a problem on a white board and converts it into code.&lt;/p&gt;

&lt;p&gt;I also strongly recommending reading any book written by Robert C. Martin, affectionately known in the development community as "Uncle Bob." His books &lt;em&gt;Clean Code&lt;/em&gt; and &lt;em&gt;Clean Agile&lt;/em&gt; are especially good. As an artist and designer, if you want to learn how to do project management when the final product is not fully decided upon or will be a moving target (as in the case with any project), software developers have a pretty good idea on how to do that. Learn agile development practices and how it can be applied to the world of visual arts.&lt;/p&gt;

&lt;h3&gt;
  
  
  Processing
&lt;/h3&gt;

&lt;p&gt;Processing is a programming language that allows you to quickly create art and graphics using code. I found it to be a great way to get artists and designers into programming because it removes most of the barriers that prevent people from starting (tooling, confusing documentation, etc.). Just install the program and you can edit and run Processing programs (called sketches) on your computer.&lt;/p&gt;

&lt;p&gt;Processing is designed for artists. Once you learn it, the programming concepts and syntax will be very familiar everywhere else you go.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://processing.org/"&gt;Processing Official Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://processing.org/tutorials/"&gt;Processing Tutorials&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/c/TheCodingTrain/playlists"&gt;The Coding Train YouTube Playlists&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/c/TheCodingTrain/playlists?view=50&amp;amp;sort=dd&amp;amp;shelf_id=10"&gt;Learning Processing: A Beginner's Guide to Programming Images, Animation, and Interaction&lt;/a&gt;: A collection of YouTube playlists coving the very basics of computer programming and using Processing to learn these concepts.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/c/TheCodingTrain/playlists?view=50&amp;amp;sort=dd&amp;amp;shelf_id=9"&gt;Nature of Code: Simulating Natural Systems with Processing&lt;/a&gt;: This series is good if you want to get into game development and need to understand some basic physics and entity AI.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  p5.js
&lt;/h3&gt;

&lt;p&gt;p5.js can best be described as the younger sibling of Processing. It has the same mission: to make programming for artists and designers easy. Instead of it being a Java-based program that you install to edit and run code, and it's a JavaScript library. This means you can embed it into websites and run it anywhere.&lt;/p&gt;

&lt;p&gt;I find it easier to do larger projects in p5.js because I can use any IDE. The code editor that Processing comes with is limited, but it's good enough for learning.&lt;/p&gt;

&lt;p&gt;If you have future plans on doing web development, but you want to start dabbling in creating art through code, p5.js is my recommendation.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://p5js.org/"&gt;p5.js Official Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://editor.p5js.org/"&gt;p5.js Web Editor&lt;/a&gt;: You can write JavaScript p5.js code in a web editor without having to install anything. If you register an account you can save your code.&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.youtube.com/playlist?list=PLRqwX-V7Uu6Zy51Q-x9tMWIv9cueOFTFA"&gt;The Coding Train: Code! Programming with p5.js&lt;/a&gt; This is a great collection of YouTube playlists for learning how to program using p5.js for complete beginners. &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Unity
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://unity.com/"&gt;Unity Official Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://learn.unity.com/"&gt;Unity Learn&lt;/a&gt;: Unity's official course platform.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Godot
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://godotengine.org/"&gt;Godot Official Website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://docs.godotengine.org/en/stable/"&gt;Godot Documentation and Tutorials&lt;/a&gt;: I have to add that the documentation does assume you know a little bit of experience creating software. It's not a complete beginner guide. This is why I recommend learning Processing or p5.js first so you can learn some fundamentals. (Note that you can still make games in both Processing and p5.js.)&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://www.gdquest.com/tutorial/godot/learning-paths/beginner/"&gt;GDQuest: Make Games with Godot: Beginner Edition&lt;/a&gt;: This article provides a good learning path for people who want to go from zero to Godot. The article also links to another article &lt;a href="https://www.gdquest.com/tutorial/getting-started/learn-to/code/"&gt;Learn to Code&lt;/a&gt; which recommends learning Python first and links to learning resources.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Updating This Article
&lt;/h2&gt;

&lt;p&gt;If you are an artist or designer who wants to get into a field of programming that we haven't covered here, make a comment about it below and I'll try to add my recommendations.&lt;/p&gt;

&lt;p&gt;If you are a developer who have mentored designers and artists, let us know what learning resources have worked the best for your mentees.&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
      <category>learning</category>
    </item>
    <item>
      <title>How subscription-based software harms marginalized creatives</title>
      <dc:creator>Squirrel Logic</dc:creator>
      <pubDate>Thu, 20 Aug 2020 22:14:02 +0000</pubDate>
      <link>https://dev.to/squirrellogic/how-subscription-based-software-harms-marginalized-creatives-ac3</link>
      <guid>https://dev.to/squirrellogic/how-subscription-based-software-harms-marginalized-creatives-ac3</guid>
      <description>&lt;h1&gt;
  
  
  A quick note about reality and purpose.
&lt;/h1&gt;

&lt;p&gt;As with any advice, it doesn't always apply to you and your business. Lets go over some things to make sure you are getting the right takeaways from this article.&lt;/p&gt;

&lt;h2&gt;
  
  
  Know what your mission is.
&lt;/h2&gt;

&lt;p&gt;Your business goals determine when and how you make money. Investors play a big part of that. If your company's mission is to create short-term revenue you can ignore most of this article.&lt;/p&gt;

&lt;p&gt;This article is about human-centered business practices. The ideas in this article are about long-term gains in your customer's lives, and the economy in general. Making decisions that positivity affect long-term successes are the types of decisions you should be making.&lt;/p&gt;

&lt;p&gt;Of course there needs to be a balance, but there are ways to make sure you don't have to make a damaging short-term decision. If you make sure you have enough of a financial buffer and are frugal in your day-to-day operations, you will not need to make as many decisions that require short-term gains over long-term successes to stay afloat.&lt;/p&gt;

&lt;p&gt;When it comes to business models, over the last few years I have starting seeing these through the lens of an educator and designer. My main goal is to improve people's lives. I believe that economies are not zero-sum games, and that a rising tide raises all ships.&lt;/p&gt;

&lt;h2&gt;
  
  
  Generally speaking, subscription-based software brings in more revenue.
&lt;/h2&gt;

&lt;p&gt;It's true. When it comes to software markets such as phone apps, subscription-based services bring in more money. But that's an average of the entire industry. That doesn't necessarily mean a subscription business model will bring you the most amount of revenue for your software. A subscription model might provide fare less value to your customers, causing them to bounce and go to your competitors.&lt;/p&gt;

&lt;p&gt;In short, it doesn't mean the business model that on average brings in more money will be the best fit for your product. I think we can all agree that not all products should use the same business model.&lt;/p&gt;

&lt;p&gt;The subscription model is absolutely justifiable in some scenarios. In the case of software, if a customer is using a significant amount of server resources (more than just for authentication), then the subscription model makes perfect sense. Services like Trello, Notion, and Artlist are great examples. The monthly fee is justified because the customer is using a non-trivial amount of your server resources.&lt;/p&gt;

&lt;p&gt;When your product is storing data created by the customer, the freemium business model should be used, where there is a free plan and a premium plan with the rest of the features. Customers can try before they buy, which is good for conversions. But the important aspect about this model is that if a customer stops paying they will still have access to all of their work. &lt;strong&gt;If you chose to use a subscription model, as a business it is your moral obligation to allow customers to retain access to their work if their subscription ends.&lt;/strong&gt; Disable the features, but don't delete the customer's data. If you choose to delete user data, you must have well-tested ways for users to export their data in open/usable formats, and a long enough period for people to download it on slow connections.&lt;/p&gt;

&lt;p&gt;If the software's function is not to be a database for user-generated data (e.g. something besides Jira and Trello), and is primarily a creative tool where the servers are used for authentication only (e.g. Adobe Creative Cloud), you had better make sure that your customers are getting regular updates to their software. Instead of, you know...using those funds to create &lt;a href="https://www.adobe.com/products/photoshop-camera.html"&gt;apps that designers don't want&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Investors may pressure you to make your business subscription-based.
&lt;/h2&gt;

&lt;p&gt;This has become a trend I've been noticing. I've encountered products that had no reason being subscription-based. When those businesses were asked why they chose that business model, they said that their investors insisted. It makes sense. Subscriptions are a very stable sources of revenue, and it takes a lot to anger a customer enough for them to cancel a subscription.&lt;/p&gt;

&lt;p&gt;Products solve problems. How someone pays for your solution to that problem &lt;em&gt;is part of the solution you are giving you customers&lt;/em&gt;. You will probably had both the solution and the payment method figured out before an investor tells you to make your product subscription-based instead. &lt;strong&gt;So now instead of solving a customer's problem, you are solving your investor's problem. By making it a subscription you may be making one product for two completely different customers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The way customers pay for a product is a large part of their experience. It is part of the solution to a problem. If the business model hurts your customers, it can then become a new pain point that they didn't have before. What will the solution to that pain point be? Fleeing to your competitors, and sharing their poor customer experience with the rest of the world.&lt;/p&gt;

&lt;h2&gt;
  
  
  There are millions of un-tapped customers out there that will not buy a product because it's a subscription.
&lt;/h2&gt;

&lt;p&gt;"Subscription fatigue" is a real thing. When I see software with a monthly subscription, it's immediately a turn-off. I'm not paying \$15/month for a note-taking app. If all my software was subscription-based I would be broke! Most creatives today are multi-disciplinary, and they need a lot of software. As a creative who has subscribed to Netflix, Adobe Creative Cloud, Trello, JetBrains, O'Reilly Safari, Pluralsight, MediaFire, Discord, Microsoft Office 365, Elementor, and Artlist, I feel like I've hit "peak subscription." I'm always trying to find ways to cancel any subscription service I have.&lt;/p&gt;

&lt;p&gt;I'm not taking on any more recurring fees that are not directly tied to running my business. The value proposition has to be immense for me to subscribe to another piece of software. Historically, I'm much more likely to make a one-time purchase of $150 than to pay $10 a month.&lt;/p&gt;

&lt;p&gt;In user experience design, we talk a lot about friction. Friction is the enemy of design. Subscriptions can create an immense amount of emotional and cognitive friction. This is especially true in people that are thinking about how much a product costs over the course of a year. &lt;strong&gt;As soon as someone pulls out a calculator, you've lost the emotional battle for that customer.&lt;/strong&gt; You want people to feel good about purchasing your product, not research it and determine if your value proposition is worth the actual cost of ownership. Because chances are, it won't.&lt;/p&gt;

&lt;h2&gt;
  
  
  Who are hit the hardest by subscription software?
&lt;/h2&gt;

&lt;p&gt;Now, all of that has been from the perspective of people who are doing pretty good financially. There's a lot of creative talent out there who are not doing well financially through no fault of their own. I'm talking about teens, students, recent graduates, and marginalized people.&lt;/p&gt;

&lt;p&gt;A parent is more likely to make a one-time purchase to aid in their child's development than adding another monthly fee to their household budget.&lt;/p&gt;

&lt;p&gt;A mentor can make a one-time purchase to help a mentee out, but a mentor can't really commit to a recurring monthly fee.&lt;/p&gt;

&lt;p&gt;A low-income creative who has to save money to purchase software can make a one-time purchase and be done with it. &lt;strong&gt;However, a subscription would require them to change their lifestyle permanently to afford that service every month. If they can't pay, they lose it, and their investment vanishes.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Subscription-based software can prevent your customers from earning money.
&lt;/h1&gt;

&lt;p&gt;I had an experience where a freelancer I knew was having a difficult time making ends meet. &lt;strong&gt;They couldn't afford their Adobe Creative Cloud subscription that month. Adobe locked them out of the software, and they were unable to continue freelance work. Freelance was their only source of income.&lt;/strong&gt; Let that explode in your head for a moment. Because they couldn't afford to pay Adobe, they couldn't work to make money to pay Adobe again.&lt;/p&gt;

&lt;p&gt;Where are they now? Instead of renewing their Adobe subscription, they jumped ship. They are using Affinity Designer, Affinity Photo, and Affinity Publisher so that experience never happens again.&lt;/p&gt;

&lt;h1&gt;
  
  
  Alternative business models:
&lt;/h1&gt;

&lt;p&gt;So what are the alternative business models?&lt;/p&gt;

&lt;h2&gt;
  
  
  Purchase once, keep forever.
&lt;/h2&gt;

&lt;p&gt;There's the "purchase once" model. It's great for customers who impulse buy software (like me), but it's harder for software companies to get recurring revenue. If your software doesn't get upgraded very often, then this is a business model that matches your product well.&lt;/p&gt;

&lt;p&gt;This is also great for parents who purchase software for their children, and creatives who need to save money so they can have access to competent tools. As an art teacher on the side, this is the reason why most of my students purchased Clip Studio Paint as opposed to Adobe Photoshop. No economic hardship will ever prevent them from using the software they need to make a living.&lt;/p&gt;

&lt;h2&gt;
  
  
  Purchase once. Upgrades are extra.
&lt;/h2&gt;

&lt;p&gt;I think this is the best business model for creatives. ManicTime is a good example of this. I purchased it once, and decided not to renew because times were tight. I was still able to use ManicTime for its intended purpose for as long as I needed to.&lt;/p&gt;

&lt;p&gt;But after moved and set up a new business, I was able to justify the expense. I purchased ManicTime again for another year's worth of updates.&lt;/p&gt;

&lt;p&gt;Again, this business model may fall short if you are not adding enough extra value to the product over time, usually in the form of features. As for as the value that customers are receiving, it might as well be a "purchase once" model because your customers won't want to upgrade to get the new features. So don't expect the revenue of a subscription model if you are not updating your software.&lt;/p&gt;

&lt;p&gt;Adobe Photoshop is a good example of this. To this day I know people who are still using CS6 because Photoshop is not that much better than it was back in 2012. If you a creating a new piece of software with lots of growth potential, then the "purchase once, renew for upgrade" model is a good choice.&lt;/p&gt;

&lt;p&gt;Regardless of whether your software is updated regularly or not to justify the annual upgrade package, I think this business model for software should be the default one. It will allow your super users to continuing subscribing even if they are not getting much added value.&lt;/p&gt;

&lt;h2&gt;
  
  
  Have both subscriptions and perpetual licenses.
&lt;/h2&gt;

&lt;p&gt;A clear benefit of subscription software is that it allows customers to pay very little to start using very expensive software.&lt;/p&gt;

&lt;p&gt;When Creative Cloud first came out, I was fresh out of college and was making the decision to purchase the Adobe Master Collection, which contained every Adobe product for $2,600. The alternative was to pay $50 a month to get access to the same software. (As a CS3 owner, I was able to get a discount for the first year). For me, Creative Cloud was a no-brainer, even at it's full price for the second year.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If your software is very expensive, then absolutely give people the option to rent it.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The option to pay more and get a perpetual license without updates would be useful for creatives who don't need to be on the cutting edge of their tools. This benefits scrappy creatives who don't have a stable income and use their software only occasionally. Income stability is a huge issue right now in 2020, and likely in 2021. &lt;strong&gt;It would be best for business to accept what the new economic realities are going to be and provide solutions to these types of customers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;I can't stress enough how bad it is for creatives who can't create wealth anymore because they couldn't afford their subscription that month. It puts breaks on parts of the economy and it takes away the buffers creatives need to weather financial storms.&lt;/strong&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Fair pricing in a perfect world.
&lt;/h1&gt;

&lt;p&gt;I would love to see a system where software pricing would be like taxes: your annual income dictates how much you pay for software. This will let software companies charge similar rates but also allow more people to "grow up" with their software and adopt it as full-paying customers later. The problem with this system is how to prove that a customer qualifies for discounted pricing. Many companies already do this using the honor system by having individual and business licenses with the same features.&lt;/p&gt;

&lt;p&gt;A "software grant" that allows lower-income people to use your software would be a great benefit. &lt;strong&gt;Adobe, please do this. I don't think you can claim "Creativity For All" until you address how your subscription model affects low-income creatives, self-taught students, and recent graduates.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  What about student discounts?
&lt;/h2&gt;

&lt;p&gt;Unfortunately, these are going to be used less often as fewer people qualify for the discount. Currently, most software companies only give you a discount if you are a student at an accredited university. With 4-year colleges becoming less desirable, you will have fewer people qualifying for student discounts. &lt;strong&gt;Student discounts also alienates a large community of people who can't afford college.&lt;/strong&gt; Software companies should provide more opportunities for self-taught students, as it better matches the reality we are seeing in the world right now.&lt;/p&gt;

&lt;p&gt;And lastly there's the problem of what happens after a student graduates. The norm is that they lose the ability to use the software they learned in school because they have to pay the full price (you know, the price that assumes you have a job), thus preventing them from using their software to create income. Many recent graduates have to freelance between graduation and full-time employment. Please don't forget about them.&lt;/p&gt;

&lt;h1&gt;
  
  
  Why should it be easier for low-income people to purchase software?
&lt;/h1&gt;

&lt;p&gt;As a society, we need to amplify the voices of marginalized and underestimated people. We need to help those who have few opportunities to grow. It's such a big issue that we at &lt;a href="https://www.squirrellogic.dev/"&gt;Squirrel Logic&lt;/a&gt; have made it our mission to be a design and development agency for underestimated people.&lt;/p&gt;

&lt;p&gt;Think about how your business model will be contributing to the prosperity gap. Are you only providing services to the highest earners in our society, or are you providing a way for people to create new opportunities for themselves? &lt;strong&gt;If you provide more opportunities for low-income customers, it plants the seeds for them to become full-paying customers later. It gives them the opportunity to become middle class, which benefits you and the whole economy.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A rising tide raises all ships. Helping the marginalized and underestimated helps build your customer base and creates more paying customers.&lt;/p&gt;

&lt;p&gt;We know that the subscription model can prevent people from being able to continue making a living using that software. The good news is that there are alternatives for many creatives. This is especially true for graphic designers and video producers. Instead of Adobe Creative Cloud, you can get Affinity Photo, Affinity Designer and Affinity Publisher. For video and audio editing, you can get DaVince Resolve for free (their pro version is reasonably priced too).&lt;/p&gt;

&lt;p&gt;Instead of having a business model that alienates a wide group of people, consider creating more nuanced and effective business models instead, one that creates more opportunity instead of less.&lt;/p&gt;

&lt;p&gt;Do your research. Make sure your research is human-centric. Talk to potential customers who won't use your software, and find out why. If you listen to their stories, it will shed light on how your product can be a better solution for more people.&lt;/p&gt;

&lt;h1&gt;
  
  
  Are there other inclusive business models?
&lt;/h1&gt;

&lt;p&gt;There has to be. I'd like to know what else is out there. Have you seen a startup company implement an ingenious business model that has the benefits of subscriptions but doesn't harm lower-income users? If so, let us know.&lt;/p&gt;

</description>
      <category>subscriptions</category>
      <category>startup</category>
      <category>business</category>
      <category>product</category>
    </item>
  </channel>
</rss>
