So, you work on the non-technical side of the website, and you’re moving towards programming. Great! It can be a long journey, but it’s definitely doable.
Learning to program can be a long jump from where you are now. Let’s consider some stepping stones that will allow you to move gradually towards where you want to be. I’ll show you how you can expand your existing skill set and create an opportunity for yourself to practice various technical skills—while you are still in a content-related role.
While writing this article, I realized that in my career, I followed a similar path. Over those years:
- My first IT job was copying content from PDFs to a website.
- In the same company, I started helping in PHP programming.
- I moved to another company to program in C#.
- I started freelancing in website building with Joomla and then Drupal.
- I was hired for a Drupal project that never got started. Because I was part of the frontend team, they assigned me as a JS programmer to another project.
And that’s how I got back to programming.
As you see, there is an overlap between:
- content creation
- website building
What is content and what roles relate to it
Content is everything that is published online. This article is most relevant for content in the form of text published on websites. Audio, videos, or posts on social platforms are content too, but either the medium (audio or video) or the platform makes it difficult to use tools mentioned in this article.
Who could use these tools for their job:
- content author—person writing the articles
- editor or proofreader—person reviewing the articles
- content marketing specialists—especially as you try doing more with the content directly on the website
- customer relationship managers—for creating newsletters in HTML
From what I’ve seen, people working on the content often use user-friendly tools. They are great for getting things done, but they don’t give you much room for growth. If possible, as you aim to transition to IT, you should try moving away from them.
Great value for money. A text editor that lets you get work done easily. Most people are familiar with the interface. It’s online-first, and with comments and suggestions, it works very well for collaboration.
What You See Is What You Get. These are editors that abstract away the format of the text you edit and display it in a way similar to what the user will see. It simplifies the work of a content creator. As for downsides, it allows for ugly tricks such as adding empty paragraphs to the place where a new-page or some margin would be more appropriate.
Below are some tools you may already use and will definitely want to check out if you want to get into frontend or programming in general.
Depending on what system you use for storing the content, it can be possible for you to edit directly HTML. It will be more complicated than using a WYSIWYG editor, but you will be able to:
- Get used to quirks of talking to the machine—one unclosed tag, and the whole page falls apart.
- Have more control over how the content is structured in HTML—for example, you will be able to create many paragraphs or one big paragraph with new lines. *Have the opportunity to use all the features of HTML, not only what the editor allows you to do. So, you will be able to embed things with iframes, adding anchors for deep links or using tags in a semantic way.
Language compiled to HTML that is very popular among programmers. It’s more concise than HTML, and it limits your options to the point where you have less possibility of shooting yourself in the foot while achieving almost all reasonable use cases. Example of markdown:
# Title Some paragraph. * item of unordered list, * another one
You can use Markdown:
- on GitHub and GitLab—if you add a file with an md extension, it will be displayed as an HTML on the repo page. If you create
README.md, it will appear on the main page of the repo, for example.
- on the Hashnode blogging platform.
- on the dev.to blogging platform.
- for custom pages built with Next.js or many other similar tools.
CMS from the user perspective
Any content management system (CMS) will allow you to expand your understanding a bit. You can learn it as a user and use this knowledge as you learn to build websites with it.
What CMSs are worth learning? I’m not the best source of advice here because the last time I worked in that space was 10 years ago. However, I can say that in general, whatever is used in your community is a good bet. Below are some CMSs I was using that are still around:
- WordPress—the most popular one. It started for blogging, but thanks to plugins, it allows building any website.
- Joomla—I never liked it too much, but I had some website-building clients using it.
- Drupal—Allows for a lot of customization: designing your own data structure and program interactions for within the website’s admin panel.
What are some purely technical skills that could be somehow adjacent to content creation?
The version control system of our age. If you intend to become a programmer and still don’t use Git, I recommend learning it as a priority.
Even if you use Git while working on one-person projects, there's a chance you're missing important skills such as:
- efficient work on different branches
- rebasing as an alternative strategy to merging
- squashing commits
- aspects related to using Git for team collaboration such as pull/merge requests
Are you interested in learning more about Git? Knowing how it stores data helps a lot in understanding plenty of its quirks. You can read more in my article how Git stores data.
CMS from the configuration perspective
Managing content on WordPress is one thing, but setting up WordPress from scratch is another thing. I don’t remember meeting anybody excited about becoming a website builder, but:
- there is a market for people doing it
- it allows for delivering a lot of value to the customers
- it can be a step along the way towards your bigger goal of becoming a frontend programmer
Taking care of a project that runs on a CMS gives you a lot of learning opportunities. For example:
- Custom templates will require HTML and CSS. Or even user interface design if you try doing everything yourself.
- It can be a place to use small JS applications.You wrote an app for showing the weather? You can embed it on your travel blog!
- Try setting up a database or HTTP server with PHP from scratch on your machine—this alone can be a real challenge. As a programmer, you will be expected to have some experience with setting up the server and the database locally. Trying it out with an open-source project makes sense: you can start while still learning, and the open-source project will have much better documentation than what you find in companies.
- DevOps is a whole career related to setting up servers and environments.
- Setting up a server got easier recently thanks to containerization—plenty of things are available as Docker containers. Do you want to take shortcuts while building your practice website? You probably need to add Docker to your learning list.