Blog
Developing Drupal 8 website from the perspective of Drupal Junior

For a novice developer, it is extremely important what technologies is he going to work with at the beginning of his career, because it will, in most cases, determine his further professional development. Why to choose Drupal, what tools and technologies you will be using at the beginning and what online resources could help you learn it?

Just a few months ago, I was actively engaged in WordPress and Joomla website development. But, as I got a chance to work on a new platform and in a good team, I decided for Drupal development. It was my first significant contact with this platform, although I previously had some academic experience.

This January I started working for the company ACTO Team, which is, as far as I know, one of only a few businesses in Serbia that are significantly engaged in Drupal development (as well as a number of freelancers and enthusiasts). What makes this company different from other local IT businesses is that in addition to ongoing commercial projects a lot of time and resources are invested in Drupal community activities. This was the most interesting fact I learned about this company and one of the main reasons why I applied for a job.

The first project that I worked on was to redesign the company's website, given that the existing site was outdated in content as well as in functionality and design. On this project I was responsible for front-end development and my colleague Aleksandar handled back-end development, all under the mentorship of our team leader Vladimir.

What, where, how…

This site is based on Drupal 8 with an accent on using the latest web technologies and their latest versions, which is the company's commitment from the very beginning. For local development, we used LAMP environment, with integrated Apache server, MySQL server and support for PHP. We also used Acquia Dev Desktop in the early stages of testing development environment on Mac, but we gave up on this as we decided to switch to Linux Mint and there isn’t an official Linux version of this great app. Project was hosted on GitLab repository, so everybody in the team could have a current development version. We used Composer for installing Drupal and managing all dependencies. Various Drupal development and management tasks were executed with Drush, a command-line shell and scripting interface for Drupal. Finally, all the functionalities developed locally were tested on a development server.

Site's theme is based on BS Base theme, developed by our team member Ivica. The biggest Drupal 8 innovation for front-end developers is definitely use of the Twig template engine that provides a simple and concise syntax for building HTML templates. Twig was mostly used for overriding base theme and core templates, and defining new ones. For preprocessing CSS and extending its functionalities we used Sass, as its name suggests, syntactically awesome stylesheets. A great job in compiling Sass to CSS was done by Gulp, a JavaScript tusk runner which proved to be very useful tool in the automatization of some tasks that are often repeated. Bootstrap front-end framework, along with its HTML, CSS and JavaScript code, was used to build user interface components such as carousel, buttons etc.

Drupal-word-cloud
Credits: drupalmodules.com

Some of the above-mentioned tools and technologies I first encountered working on this project. Solving real programming problems and tasks helped me improve specific programming skills further.

Despite the great help from my colleagues and Google search, I also found very helpful the official Drupal.org documentation provided by Drupal community around the globe. Drupalize.me, an online paid service that I would recommend to every Drupal beginner, also has more than enough video and written tutorials that can be of great importance to Drupalistas worldwide. This online learning asset is developed by experts with real Drupal development expertise from the Lullabot company.

Last, but not least

What I found interesting about Drupal is its possibility to use for complex, highly customized websites requiring scalability and complex content organization. It is known for its powerful taxonomy and ability to tag, categorize, and organize large content. Also, there is a large number of modules, mostly free of charge. Its orientation on improved security is the fact why more developers are deciding for this platform.

My first experience with Drupal 8 and Drupal was generally extremely positive. I learned Drupal basics, and a lot about other "related" technologies and now I'm ready to work on new, more complex projects and to raise my tech skills on a higher level. On this blog, I will share with you some of my future experiences with Drupal. I'm also planning to start my own blog about Drupal for beginners, so I can share my experiences with someone who is planning to start developing, or hasn't decided yet for Drupal.