Tips for being a better listener from a former helpline volunteer

The Internet has a wealth of great articles with a wealth of useful advice on supporting your fellow developers, colleagues, and most critically, yourself, as you progress through your software engineering career, or whatever path you find yourself upon. This really motivated me to write my own post on this topic, one of which is close to my heart.

For a bit of background, whilst at university, I became interested in volunteering and mental health. In British, Irish, and other European universities, many students volunteer for a local Nightline – a listening service staffed by fellow students who volunteer their time supporting the wellbeing of others in their respective communities by providing a listening ear and a source of empathy when often most other services are unavailable. As a volunteer with my university’s branch, I’ve since contributed well over 1100 hours to peer support, and an additional 200 in training other volunteers – so I’ve certainly learned a thing or two!

With that in mind, here are 5 tips on being a better listener, and how you can better support others! This is a long article, I apologise, but I promise that you will learn something from it!

Please note: This is not advice or guidance on how to support someone in a crisis. Please consult a mental health first aider at your organisation, or immediate medical assistance in an emergency.

1) Make better use of Active Listening

Active Listening is the act of conscientiously listening to someone, providing feedback, and giving someone space to talk freely without judgement or advice. Three key techniques encompass this:

Summarising

Repeating back something that someone said to you to demonstrate that you are listening to them. This can take the form of literally echoing back what they’ve said:

“I’m having real trouble understanding linear search algorithms.”
“Trouble understanding linear search algorithms?”

Or can be in the form of a summarisation – summarising what they have said to you – providing an opportunity to ask a question and be empathetic.

“Thanks for telling me about what you’re going through with your new colleagues, in particular with the name-calling. Can you tell me anything more about them?”

(Open) Questioning

Again like with the example above, asking open (so questions that cannot be responded with merely yes or no) questions to encourage someone to talk.

“How is it making you feel?” “Have you spoken about this with anyone else?” “What actions have you considered?”

Encouragement

Use affirmative noises, noises like “mhm” and if the conversation is face-to-face, actions such as nodding and maintaining eye contact can help let someone know that you care and that you are listening. Don’t keep checking your phone! If someone needs more time to talk or find their words, remind them that they can take all the time they need. Remind them that you won’t judge them.

2) Don’t immediately look to problem solve

If you’re talking with someone and they ask for your advice, or for guidance on what they should do, it’s a good idea rather than to attempt to solve their problems for them, to give them an environment in which they can come to their own answer independently. You can help guide them to potential outcomes without giving your own opinion.

What do I mean by this in action? Let’s role-play.

Colleague:

I’m having trouble keeping up with my workload and it’s causing me a great deal of stress. Honestly I don’t know what I should do.

You – good answer:

I’m sorry to hear that you’re feeling stressed. Would you like to talk to me more about what’s on your workload?

You – poor answer:

You should probably talk to your supervisor about that; there’s not really much I can do to help you there.

As you can see, the first answer is empathetic and offers an opportunity to talk about the problem more. The second answer breaks interpersonal rapport and will often make the other person not want to talk about what they’re going through since you’ve already provided a solution. Chances are – they’ve already considered that anyway.

Furthermore, there might be further underlying reasons for them wanting to talk. They have initially mentioned workload, but by probing further into their situation, there may be other underlying causes, perhaps a bereavement, illness, etc. that might be contributing to the difficulty keeping up with their workload.

3) Use their language

Of course, I don’t mean a language itself (like French), but rather what words and terminology someone uses, you should mimic naturally when you speak to them.

Believe it or not, we tend to do this subconsciously anyway (code-switching) but making an active effort to live in their world and use the terminology that they use can help you build a rapport with someone and to let them know that you are attentively listening to them. This also helps you avoid making any assumptions, as you’re only using words that they have given you.

For example, if someone wants to talk to you about a problem they’re having with their partner, then use that word. Don’t substitute it with boyfriend, girlfriend, wife, husband, whatever, and vice versa. It should go without saying, but this extends to people’s preferred pronouns also.

Exceptions apply. You don’t need to use phrases or words you feel uncomfortable with, or that are derogatory. If in doubt, ask.

4) Avoid using the word ‘why’

The term why can sometimes feel judgemental or confrontational. Consider the two examples:

With why:

Why do you feel that way?

With an alternative phrasing:

What makes you feel that way?

It seems simplistic and almost nit-picky, but you will find that many active listening programmes will encourage avoiding the term.

5) Understand the difference between sympathy and empathy

Sometimes we use the terms interchangeably in the English language – but they are different emotions. Empathy is vulnerable and requires a commitment to coming down to someone’s level to experience their emotions and experience as they do. Sympathy, is simply: “that’s too bad.”

The best explanation for this comes in the form of a short animation by Dr Brené Brown. I implore you to give it a watch!

Conclusions

From this article, I hope that you are able to understand a little about Active Listening, how being non-directional and non-judgemental can aid your conversational skills and support others, that your choice of vocabulary can seriously matter, and the dramatic difference between empathy and sympathy.

These skills can be lifesaving and will help you in your everyday job, your interpersonal relationships, and even with your own wellbeing.

Remember these golden words: If in doubt, ask!

Thank you so much for reading.

PHP and Composer on the Windows Subsystem for Linux

In this guide, I’ll be showing you step-by-step what you need to do to install the Windows Subsystem for Linux, and then both PHP and the Composer package manager.

As a prerequisite, this requires an up-to-date version of Windows 10. Windows 8.1, 7, and below are unsupported. I will write about setting up PHP environments under legacy Windows versions in a later article.

Step One – Installing WSL

First, use your start menu or Cortana search bar to search for “windows features” – the first option provided will be a tool to add or remove features to your Windows installation. Select this.

Once the dialogue appears, scroll down until you can find Windows Subsystem for Linux. Tick the box and click OK. Windows will download and install this functionality, and may require a system restart afterwards.

Step Two – Installing a Linux distribution

After a restart, we can now choose a Linux distribution. Open the Microsoft Store app that you can find in your start menu. On the app, search for linux to bring up a list of available distributions.

You’re free to choose whatever distribution I want, but for a beginner, it’s my personal recommendation that you install Ubuntu as it’s well supported, easy-to-use, and does not require any complex configuration. Click on the one you want, and choose either Get or Install – depending on your system’s locale. Once it’s downloaded, the button’s text should change to Launch and Ubuntu will appear in your start menu. Fire it up.

Step Three – Installation and UNIX username

After opening the app, it will take a few minutes to install. This can take a while on older systems, but fret not, it will finish!

After a short while, it will prompt you to set a UNIX username. This should be a single word, all lowercase, with no spaces or symbols. My name is Oliver, so oliver is fine. Then set a password. This does not need to be the same as the password you use to log in to Windows. Don’t forget, your password won’t actually appear as asterisks as you type it, but it’s definitely there – it’s normal on these platforms.

Once that’s done, you’ll be presented with a command line and information regarding the system information.

Step Four – Installation of PHP

Before you install PHP, you might need to refresh Ubuntu’s repositories. I know this sounds complicated but think of it like Ubuntu checking an app store for what’s available. Type the following command to do this:

sudo apt update

It might prompt you that there are updates available, but you can take care of that later. Once the update is done, we can install PHP. Type the following command:

sudo apt install php

Sudo (short for superuser do) allows you to run commands as an administrator (root) – which is necessary for installing new software. Apt is Ubuntu’s package manager – necessary for pulling in said software. It will prompt you for the password you set earlier.

The package manager may be different if you installed a different Linux distribution. openSUSE for example uses Zypper instead.

Give the package manager some time to install and configure PHP and all of its prerequisites. Once it’s done, you can check that it’s fully installed using the following command:

php -v

This should print PHP’s version to the screen. As of this time of writing, Ubuntu installs PHP 7.4 by default. My output looks like this:

PHP 7.4.3 (cli) (built: May 26 2020 12:24:22) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Installing Composer

All this talk of package managers, when yes, PHP has its own package manager! If you’re familiar with JavaScript and/or Node.js, you’ll have definitely encountered NPM or Yarn, which perform basically the same functionality.

PHP’s package manager is called Composer, and this can be easily installed at the command line in the same way you did PHP:

sudo apt install composer

Similarly, you can check the version and status of Composer using

composer -v

Your output will look similar to mine, along with a long list of commands and some ASCII art:

Composer 1.10.1 2020-03-13 20:34:27

Now Composer will be available at the command line for you to install global packages with, or to install local dependencies outlined in a project’s composer.json file.

Optional: Install the Laravel installer and add Composer binaries to PATH

First, install the Laravel installer using Composer:

composer global require laravel/installer

After this is installed, you should normally be able to type laravel to access its installer, but you should get an error. Why?

By default, any software you install globally via Composer won’t be instantly accessible from your command line, because Composer’s directories have not been added to your PATH. If you’re not sure what this is, don’t worry – in a nutshell, this is information that tells your terminal where it can find the programs that you type in (like apt or php) so they can be run. Windows has this too.

To fix this, you need to open your aliases file in a text editor. We’ll use Nano, but feel free to use something else:

nano ~/.bash_aliases

In this file, type:

export PATH=~/.config/composer/vendor/bin:$PATH

Press CTRL+O to save, and CTRL+X to close Nano. With this change in place, we need to reload Bash’s configuration. You only need to do this once.

source ~/.bashrc

Now, your Composer global applications will work. Type laravel to confirm this.

Conclusions

By following this guide, you should be able to install the WSL under Windows 10 with Ubuntu, and have a functioning installation of PHP and Composer ready to go. I hope that this helps.

Please leave your comments below and if you found this useful, please let me know!