One thing that you are looking forward to in 2021?

Part two of our “What is the one thing that you are looking forward to in 2021” question we asked our 2020 authors.

I am incredibly? strangely? naively? optimistic for 2021. 2020 for the WordPress project ended with a bang: a release made entirely of people identifying as women and non-binary. I look forward to supporting and mentoring contributors to the project.

Francesca Marano

I’m looking forward to seeing what new things the community can do with PHP 8. On a more personal level, I’m looking forward to seeing my friends and colleagues in person when possible.

Oscar Merida

My mother, the retired school teacher, used to tell her students that “you’re not losers, you’re choosers” when they would complain about their lot in life. Sometimes the options we are able to choose from are terrible ones, but you can get back some control of your circumstances by realizing that they are still just choices and in the future you can work to make sure your options to choose from are better.

Chris Hartjes

One thing that gives me hope for 2021, that I am most looking forward to, is “Change”. Change can be scary when we don’t know where that change is taking us. We’re stepping out of our comfort zone, our established routines, facing the uncertainties in life without a safety net. But change can also be an opportunity to learn, to improve, to grow; not just as developers, but as individuals.

Mark Baker

I hope in 2021 that this isolation reminds people of the greatness of their communities (no matter how they define them). And, when we can get together again, I look forward to a renewed sense of gratitude and compassion for those we have been missing for so long.

Josepha Haden Chomphosy

Hugs! Lots and lots of hugs.
Seeing people again without having to do the weird but necessary “we have to stay 6 feet apart”-dance.
Being able to have a beverage of choice in a relaxed atmosphere to discuss the world in general, PHP, pet projects and pet peeves with old and new friends.
Meeting people again from around the globe to share ideas, to agree and disagree, to enrich our own views with views we never even considered.
Being able to loose the constant watchfulness for keeping distance, face-masks etc.
But more than anything: HUGS!

Juliette Reinders Folmer

For 2021, I am looking forward to enjoying free time to do what I like besides programming: walking, reading and walking. Thus, I hope to refresh my mind to be able to enjoy programming in PHP even more.

Rubén Rubio Barrera

I look forward to the opportunities that are ahead in the new year, when the vaccinations will permit more freedom and certainly for people and companies to make bigger decisions. Since PHP is still one of the driving forces of online communication and e-commerce, we as PHP developers will have a lot of interesting challenges to look forward to in the new year.

Stefan Koopmanschap

For 2021, I’m looking forward to a return to normalcy. I eagerly await the restoration of normal life – dancing, live music, attending baseball games, and large social events; With Biden and Harris taking the reins in late January, I’m hopeful we’ll be back on track soon. Having someone at the top, who cares about the people, who’s willing and able to lead the country, is more important than ever.

Andrew Woods

One thing that you are looking forward to in 2021?

For the last two posts of this years edition, we asked our 2020 contributors “What is the one thing that you are looking forward to in 2021”

In 2021 I am looking forward to conferences. Not because I learn a lot from them (I do) but because I connect on a real level with my friends in the community. 2020 has taught me that there are limits to virtual. As humans, we need to connect in real life and conferences give the World Wide Herd the chance to do that.

I urge every PHP developer to make it a goal to attend one in-person conference in 2021. Get out there reconnect with old friends and connect with new ones.

The hope of conferences is what keeps me going. I hope to see you at one in 2021.

Cal Evans

2020 had shown us how resilient we are as a species. We’ve been through hell, and we’ve found ways to deal with it. We’ve learnt so much and I’m looking forward to us all using those learnings in 2021. Whether it’s to be more open about our mental health, knowing that you don’t need to be tied to a desk from 9am – 5pm, or simply creating a new exercise routine. The year of hell has forced us onto what I hope to be a better path for us all

Daniel Shaw

I’m looking forward to seeing friends again. All my friends are remote where I live, so being able to meet up for a chat and a cup of tea sometime next year will be wonderful!

Rob Allen

For 2021 I’m looking forward to creating more content in the form of e-books and video courses. My goal is to help as many junior PHP devs level up as I can 😉

Mauro Chojrin

I’m looking forward to seeing what new things the community can do with PHP 8. On a more personal level, I’m looking forward to seeing my friends and colleagues in person when possible.

Oscar Merida

Growing in the community

At the start of 2014, I knew very little about software development. I was only a couple of weeks into learning PHP in order to build a project for a friend and I had no idea where this project would take me. I certainly didn’t think I’d end up changing my career at age 30 (for the second time) and making a living as a software developer.

One of the first things I noticed pretty quickly about the PHP community and developer communities, in general, is that they liked to get together at local meetups and also at conferences. I could tell that these were a great way to learn from other developers and also a great way to network. As an introvert, I was very apprehensive at the thought of attending a meetup group or a conference but I also really wanted to connect with other developers directly. The problem here, was at the time I lived in Abu Dhabi and there were no meetup groups for PHP in Abu Dhabi or Dubai. I joined the virtual user group Nomad PHP but knew it wasn’t quite the same as having a local user group to attend. When I moved back to Ireland in 2015 I immediately got involved with PHPDublin in order to get connected to a local community.

It was through spending time in the community that I started to get involved with Open Source projects, namely which I contributed to and then helped to run, as well as a couple of my own projects. I feel that this community involvement has led to me progressing quicker in my new career than I would have if I did not get so involved. The biggest gain I have found from this fantastic community is the network of like-minded people whom I can reach out to for assistance with issues.

Whilst I most definitely class myself as an introvert, through attending conferences and meetup groups, I’ve learned a wealth of knowledge that I otherwise would have struggled to understand. I feel that I can honestly say that without the support of the PHP and wider software development communities, I would not have grown into the developer that I am today.

Recently, a student in a coding Bootcamp asked me why I love contributing to open source and doing what I can to help others learn. The simple answer is that through others contributing before me, I have managed to learn and grow as a developer and now have a career where I feel I can really make a difference, and giving back is the absolute least I can do.

To those involved in helping others learn in the community, thank you!

A Perfect Storm

We’re nearing the end of the year and when I look back at 2020, aside from all the turmoil in the world, more than anything I feel very, very tired.

It largely feels like I have been running from one open-source crisis to another since May/June. Crisises which were outside my control, but had to be tended to anyway.

No matter that a Composer plugin I’m a co-maintainer of was prepared for Composer 2.0 well in advance. When Composer 2.0 was released into the world this October and prevailing CI systems updated quickly, there were still lots and lots of projects which hadn’t updated to the new version we released in June, resulting in support requests and emergency update rounds for various projects.

Along the same lines, while the latest PHPUnit was prepared for Xdebug 3, a lot of real-world projects are not using the latest version of PHPUnit. Again, when the prevailing CI systems were updated to use Xdebug 3 quickly after the release, emergency fixes were needed to prevent projects from being completely blocked by CI code coverage runs failing.

And when Travis finally broke down, and even though they are still not owning up to it, stopped supporting open source, again, there was a scramble to move all CI builds for all open source projects to other CI platforms, which again took huge amounts of time, under pressure, as progress in projects was blocked while the CI wasn’t running.

And let’s not talk about PHP 8.0…

Or actually, maybe we should.

From an open-source maintainer point of view, PHP 8.0 is, not to put too fine a point to it, a nightmare. Don’t get me wrong; I love all the new features and I compliment and thank everyone who has contributed. I can’t wait to start using the nullsafe object operator or union types once projects I work on drop support for PHP < 8, but that will be another few years at the very least.

In the meantime, I had to prepare projects, or help prepare projects for the fall-out. And fall-out there is.

Combine the engine exception changes with union types, which now allowed for adding lots of new type declarations to PHP internal functions, and you get a release that throws fatal errors on code that worked perfectly fine without even a notice or a warning in previous PHP versions.

Top that up with changes in return types for some pretty commonly used functions and you get code that may end up doing the complete opposite of the originally intended behaviour, again without any warning or notice in previous PHP versions.

And while static analysis tools can guestimate where there may be problems in your code, as these changes are all related to the run-time value and type of variables, the only sure-fire way to detect these fatal errors and behavioural changes is to run the tests on PHP 8…

This brings its own problems as lots of open source projects which – for their own reasons – support a wider range of PHP versions than just the latest and greatest, were still using PHPUnit 5/6/7 to run their tests on PHP 7.4 due to the addition of the void return type to fixture methods in PHPUnit 8.

So, instead of being able to focus on fixing their PHP 8 problems, these projects now first have to find a way to get their tests running on PHPUnit 4 to 9.3+ and have to pay the technical debt they had built up from not doing so earlier.

A small project like PHPUnit Polyfills, going from first public mention to over 50.000 downloads in just eight short weeks, testifies to the amount of projects which are scrambling to make their test suites PHPUnit cross-version compatible.

And that’s for the projects which have tests.

The unfortunate reality is that a significantly large number of projects do not have unit tests or when they do have tests, those only cover a small portion of their codebase.

So, again, instead of being able to focus on fixing their PHP 8 problems, these projects now first have to raise their code coverage by writing additional tests.

And let’s not forget the difference between testing the happy path versus the unhappy path. A significantly large number of tests in projects only test the happy path, while the problems created by PHP 8.0 lie mostly in the unhappy path.

So, again, instead of being able to focus on fixing their PHP 8 problems, projects now have to write even more tests to make sure the unhappy path in their code is sufficiently covered.

Are you feeling the pain yet?

And don’t even get me started on named parameters in function calls. A change that was voted in late July, suddenly makes parameter names in function declarations part of the public API.

This means that every single function declaration in the public API of an open-source project has to be reviewed for those parameter names being suitable for public use, as as soon as PHP 8 came out, changing any of them will now be a breaking change.

Now doing this for your own small, 5.000 lines of code, pet project may be a one-day job, but having to do this for a 500.000 line codebase in one of the most extended pieces of software in the PHP world, where nearly everything is public API, in just four months… well, you get my drift.

Of course, you may say: “but a project can indicate it is not compatible (yet) with PHP 8 in the version constraints in their composer.json“. You are wrong. As that presumes that the software will be installed via Composer, which for projects with a large non-technical userbase is rarely the case.

Open source projects, which basically are expected to be cross-version compatible by the release date of a new PHP version, now have to break with the past and actively declare themselves incompatible or “alpha-compatible” with the latest version of PHP for the time being.

And that is presuming those projects even keep track of changes in PHP ahead of a release and don’t just look at the changelog or migration guide for the first time once the release has come out.

With all that going on, the barrier for updating legacy code to use a more modern PHP version has gone up exponentially and for some, may even have become insurmountable.

I believe PHP is doing itself a huge disservice by not making these changes opt-in. It feels like it’s lost touch with a significant part of its user-base and that the impact of these changes has been grossly underestimated.

Yes, these changes are all nice and dandy when you work in a closed-source environment, where everything is under your control, you only have to deal with one PHP version at a time and get paid to write tests for the code you write.

However, for the majority of unpaid, overworked open source maintainers, working on software that is extended in ways they never imagined when the project started, these changes are a huge additional burden to carry, especially with the added time-pressure of having to be ready in time for the release of PHP 8.

I have seen beautifully coded projects, which are largely unused and some of the ugliest code I’ve ever seen is in projects used by millions.

Historically PHP has always been a very forgiving language. Now, that “contract” with the dev users has been broken.

Why force a “one way” of coding upon everyone? Why, when things are a significant break with the past, not make things optional?

I’d be the first to take that option. But the whole thing about it being an option is that it puts the power in the hands of your users, which is where it belongs.

While I laud the progressiveness of the changes in PHP 8.0, the reality is that 40.0% of all PHP servers still run PHP 5, 53% of that PHP 5.6, which means 47% still run on PHP < 5.6. *

There is just a hell of a lot of legacy code out there.

It’s all nice and dandy to believe that everyone has always named parameters in a sensible and descriptive manner and that everyone uses strict type checking and strict_mode already. It’s a wonderful illusion to believe that everyone manages their dependencies with Composer using strict version constraints. The reality is very different and I live in that reality.

So I join Derick in asking: please, please have some more emphpathy.

Let’s try and be kinder to each other. Take a moment to gauge the workload a proposed change will cause for maintainers of open source projects. Not just for your own small pet-project, but for the big, huge projects which run the internet.

Consider whether it is realistic to expect them to push EVERYTHING ELSE to the side and get every contributor they can scramble together to focus 100% on fixing the fall-out caused by your change, knowing that even then, chances are they would still not be ready in time for the release of PHP 8.0. If that’s the case, then maybe, just maybe, your change should be an option and not be forced upon the world.

I wish you all time to reflect and hope that 2021 will bring some light to the world again.

PHP Community in the Time of Covid-19

For me, 2020 started out as a great year. A company trip to Marrakesh (where I went ziplining for the first time ever); attending the annual PHPBenelux conference; being accepted to speak at PHPDay in Verona; and giving two talks at ConFoo in Montreal, followed by a week touring around the provinces of Quebec and Ontario. Three continents in three months: the world felt such a wonderful place.

It’s true that there were stories on the news about a new virus that was affecting people in some countries; but at the time it didn’t seem that it should be a cause for concern, it would be contained like Ebola had been contained. Within a week of my return from Canada, the company that I was working for decided that there was some risk of contagion from working in the office, and sent everybody to work from home. Then the government issued guidelines recommending working from home wherever possible, and to avoid public transport, for people to limit shopping trips. But even then, it didn’t seem likely that it would be for more than a few weeks.

I was lucky: having replenished the contents of my fridge the day after my return from Canada, and having just bought a big pack of toilet rolls, I could survive a few weeks of working from home. Even in an office environment, we work in an industry where online communication is normal – e-mail and slack channels for team communication; GitLab for the code repository and the CI pipeline; Cloud deployments to GCS; Jira for ticketing; Confluence for documentation; VPNs for secure remote access – so the move from an office to WfH isn’t technically difficult. Just add Google Hangouts for stand-ups and sprint planning/retrospectives and remote meetings. Some people enjoy working from home: I’ve always preferred working in an office, with people around me, but I could adapt for a week or two.

But as those weeks soon became months, and the whole world went into lockdown, it became clear that Covid-19 wasn’t something that would easily be contained.

PHP User groups also stopped meeting, in compliance with national guidelines and restrictions. Around the world, the wave of PHP conferences and events that normally fills the Spring months started to postpone, and then to cancel. Sadly, some of these events may never happen again. The majority of PHP conferences are community events, run by individuals or small groups, just trying to break even on costs to keep ticket prices low, often with the organisers risking their own money in up-front deposits for the venue. And as the months of restrictions lengthened, the conferences that normally take place in the Summer and Autumn months were keeping a close eye on the situation in case they had to cancel as well.

I’ve always tried to attend local user group meetings and conferences when I can. They’re not simply a way to learn about new tools, new approaches to coding, new features of the language, or the framework or CI tools that I use every day, and new skills to apply to my work; they’re also an opportunity to meet with other developers, to share war stories, chat about the problems we all face in work, and perhaps find solutions; a chance to get to know the people behind a social media nickname; and perhaps to work together with others on an Open Source project. Whether it’s attending presentations or participating in hackathons and the (in)famous “hallway track”, I have learned so much from user groups and conferences and met so many incredible people that have helped shape me and improve me as a developer.

2020 seemed to be having other ideas – the year that had started so well was turning into a nightmare – and the months of restrictions dragged on from Spring into the Summer and Autumn.

But as it did so, conferences and user groups began to react to the new normal and to adapt.

I’m based in Amsterdam, and my local conference is the Dutch PHP Conference that normally takes place at a venue about 20 minutes bicycle ride from my apartment. DPC 2020 chose to go online, broadcasting video of the talks (and making tickets free of charge). I did get to give my talk at PHPDay Verona (although sadly I never got to see that beautiful city) through video from my apartment. WeCamp, the intensive week on an island in the middle of a lake in the Netherlands, where I was a coach last year, turned into a virtual one-day online conference (incredibly, still including the pirate game in an online format). And last week I attended SymfonyWorld online.

User groups to have turned virtual, hosting video events. PHPBenelux has been meeting virtually for the last few months, and I gave a remote talk at PHPMinds last month.

We are an industry that works with internet technologies, so it seems so natural that we should turn to the internet as a solution for virtual conferences and user groups. And there are some real benefits as well. It means that attendees don’t have to travel and find accommodation in a new city for an event, but can attend online conferences anywhere in the world (always being aware of timezones, of course).
Event organisers don’t need to worry about the venue and food (which requires large up-front deposits before they know exactly how many people will buy tickets). Events that have been single-track until now can go multi-track online. Of course, you need the bandwidth to broadcast the event (and using a service like Hopin to provide this carries its own costs), and your attendees need the bandwidth to watch and listen. Events can attract speakers from all over the world without worrying about the costs and logistics of international flights, visas, and accommodation.

There are still lessons to be learned in how online events can try to recreate all the best features of an in-person conference or meetup, and these events are still experimenting with ways to improve the online experience, but they can also capitalise on some of the new benefits that the use of technology can provide.

For speakers, there’s no direct feedback from the audience during their talk, no way of knowing if a joke has been appreciated, or whether they are talking at too high or too detailed a level for their audience, to adapt their talk if necessary. Providing a chatroom alongside each talk allows the audience to ask questions, which the “room” MC can feed to the speaker, or bundle up to ask at the end of the talk. And as all presentations can be automatically recorded, they can be posted publicly online later for the benefit of those who couldn’t attend the event live (with the presenter’s permission, of course).
Or talks can be pre-recorded, with the speaker actively participating in the chatroom, answering questions and interacting with their audience; but neither fully recreates the experience of speaking in person in front of a live audience. Pre-recording talks is something new to many regular speakers, and will take some getting used to (at least for me). I’ve already invested in a better webcam, but probably need to get myself a green screen, better microphone, better lighting, and a/v editing software as well.

Group breakout rooms can provide some elements of a hallway track, although it doesn’t have the same “feel”; and it isn’t easy to just break open a laptop and work on something together.

Many conferences pride themselves on their “social”, which is always a good way to meet and chat with the other attendees; although many “socials” revolve around the bar, which isn’t so good for people like me who don’t drink alcohol. In recent years, conferences have often combined the social with something like a games evening, playing board or card games with other attendees; and this is an area where online conferences have an opportunity to excel.

SymfonyWorld ran each talk twice to cater for attendees in different timezones, which meant that it was possible to attend talks that would otherwise have clashed in the schedule (kudos to all the speakers that attended both in the chat to handle Q&A); and also provided a special room that hooked you up with another (random) attendee to chat, making it easier to meet new people. I know that they also ran a hackathon as part of the conference, but I didn’t attend that so I can’t make any comment about how successful it was online.

As we look toward the New Year, and the expectation that Covid restrictions will be with us for several months more (at the very least, despite the announcements of vaccines) then these virtual events will remain the lifeblood of the PHP Community for much of 2021.

The online experience will improve further as events experiment and learn from each other about what works best, discover how to overcome the logistical problems of online organisation, how best to use the new benefits that a virtual event can bring, and how to improve the user experience for attendees. Speakers will learn to adapt their talks to the new medium.

I don’t have any figures to back me up, but I would imagine that the costs to run an online conference should be cheaper. Venue and food is always a large part of the expense for face to face events, together with the travel and accommodation for speakers. Sponsors are always necessary for a community-driven event to help offset those costs. While using a service like Hopin isn’t free, I can’t believe that it would be as high, even with some of the “enterprise” extra features of the platform.

Perhaps community conferences (especially those that still charge for tickets) can start paying speakers to help offset their costs of preparing and giving their talks, to offset the time and effort (and financial investment) of adapting to the online presentation, helping to attract new speakers, and a more diverse line-up… I’ve just received an e-mail from GrUSP (the confederation of Italian PHP User groups that organises PHPDay (and I do still want to visit Verona some day) saying that they will be granting each speaker a sum to cover the costs of preparing and giving their talks. Pre-recorded talks also make it easier to add captioning (or even subtitles in another language), making content easier for both a speaker and an audience who may not have good foreign language skills. While this does add extra cost, I believe that it is a real benefit in making presentations available to a broader audience.

So a big thank you to all the event organisers that have adapted to make their events virtual despite all the difficulties that 2020 has brought, which allow me to keep learning and improving myself. And there are still costs involved when running an online event, especially to provide those additional features that help make the event more interactive; and sponsors are still important to help reduce those overheads, particularly for events that are ticketed as free events. So another big thank you to all the companies and businesses large and small that provide financial support to organisers of online conferences and meetups.

And a final thank you to all those individual members of the PHP Community (who I have met through conferences and user groups) that have reached out to me and helped me survive this year.

Take time for yourself

Now more than ever, the lines between work and not-work are blurred. Home working, Slack on our phones, the need to keep up with technology and a million other reasons means that disconnecting is hard! I’m self-employed and the feeling that I should be working is very real and strong.

At the beginning of the pandemic, when the UK went into its first lockdown, I struggled a lot. I found it hard to concentrate on work and it seemed that I wasn’t getting enough done. I spent more time at my computer to make up for it. As you can guess, this did not result in more or better work.

It was difficult, but taking time for myself was the key to re-balancing my life.

I was surprised by how unproductive it felt to read a novel or play Switch when I felt that I should be working. I’ve done it before. One of the reasons that I went self-employed was to give myself flexibility, after all. Somehow I had forgotten how to do this in the latter half of 2019 onwards; there was always something more important to do.

However, it is important to take time for yourself. Your health will suffer and there is a risk of burn out. Some form of exercise is good for the human body and while it can feel abstract, activity and general fitness makes a difference to our mental health too. This is the magic of endorphins which generally lift our spirits. Motivating myself to exercise regularly remains something I continue to work on, but I see the benefits when I do.

Many articles have been written on burn out, so I will not labour the point here. I think that it’s best described as prolonged job stress which leads to physical and mental exhaustion. No one wants this; it leads to apathy and poor work. A good proportion of those of us in tech are here because we love doing it. Feeling apathetic about the work we love is a very strange situation to be in. Avoiding burn out is worth it!

We need time away from work to recharge; to take care of ourselves.

There is a temptation to make your non-work time mean something, but there are no rules here. You are allowed to do nothing; it’s okay. You can do something; that’s okay too.

There are a number of ways you can approach this. I found that I needed to actively change what I did in order to not fall into the routine of heading back to the office to work. Habits aren’t the easiest to change, but equally new ones can stick.

Of all the types of exercise available, I’ve found that simply walking has stuck the best for me. Going for a walk isn’t the best exercise, but I’m operating on the policy that something is better than nothing. I find that going for a short walk in the morning after breakfast, before I start work, works best for me. I have friends who go for a walk at lunchtime. The time doesn’t matter, but getting outside if you can is good, even if it’s dark or overcast as it is here in the UK at this time of year.

In the evenings and for set times at weekends, I turn the computer off. When the computer is off, there’s a barrier to working on it as you have to wait for it to boot. Not much of a barrier, but enough for me to do something else.

Having convinced myself, and hopefully you, that taking time for yourself is a good and worthwhile thing to do, what can you actually do?

Nothing’s off the table.

  • Stare into space, but don’t doomscroll!
  • Listen to Spotify. Losing myself in music is a wonderful way to relax. Find a friend and share a Spotify Group Session if you can.
  • Read a book. I like novels and biographies; others like self-help books. There’s plenty of choice but avoid job-related topics.
  • Play video games. I like my Switch for this and have many hours in Breath of the Wild and, more recently, Civilization. Mobile games work too.
  • Watch TV. Streaming services make it easy to watch what you want to, at the time of your choosing
  • Exercise. As I’ve noted, walking for me, but an online fitness class or fitness programmes like Zumba or Ring Fit Adventure is good if you don’t want to leave the house.
  • Take up (or return to) a hobby. I photograph trains and go out into the fields so also get alone time. Friends of mine do woodworking and others do craft projects sent to them monthly.

What about hobby programming? Good question. Sometimes it can work well. Especially if it’s in a technology/language that is not your day job. Avoid the temptation of doing a bit extra related to work. Tread carefully here and you can add it to the mix. I have a small hobby photography app that I do two to three hours a week on, but never in the evenings or weekend afternoons.

It’s hard to balance your life.

It’s really hard to get over the hump of feeling like you’re wasting time and should be doing something more worthy. It took me months into 2020 to get to the point where I am comfortable playing Switch or reading a book all day on a Sunday.

Most importantly, give yourself permission to relax. You’ll be better for it.

Learn Another Language

The PHP community is a global community composed of software developers, writers, translators, support specialists, speakers, and teachers. It’s more than just PHP core. The PHP Community consists of projects like Laravel, Symfony, WordPress, Drupal, and Craft CMS – just to name a few. While the source code is written in English, it’s just one aspect of these projects. These projects are built on contributions from people around the world, who are writing and speaking about and sharing their love of PHP with others. They’re able to do this, through their knowledge of other languages. It’s their bilingualism that enables them to share their knowledge – beyond the English only audience.

Many Reasons to Learn a Language

It’s possible to go your whole life speaking a single language – particularly if that language is English. People do it all the time. Yet there are many more people, who have learned a second language, to varying degrees of ability. English is the language of business, as well as technology, which is why so many people learn it as their second language.

There are many reasons to learn a language. It’s a powerful thing when you connect with someone in their language. It’s a demonstration of respect. But more importantly, it can open up your possibilities to a much wider world. So if your first language is English, you should consider learning a second language. If you were to read some articles about why you should learn another language, these are some of the reasons, that will likely be mentioned.

  1. Connect with people
  2. Advance your career
  3. Enhance your brain health
  4. Deepen your connection to other cultures
  5. Become more open-minded
  6. Speaking a foreign language makes you sexy
  7. Better understand your own language
  8. Improve your travel to other countries
  9. Consume content in the original language
  10. Boost your confidence
  11. Become more well-rounded

There are also some unexpected benefits. One benefit I’ve noticed through learning Spanish is better understanding why Spanish speakers say things a certain way when they speak English. It’s like a light bulb, turning on in your brain. I’m far from proficient in Spanish, but it’s very motivating when you make these discoveries while you’re learning a language.

Multiple Programming Languages

Throughout our experience as developers, we’re encouraged to learn other coding languages. In part, it’s because a given programming language is best for certain types of applications. However, we also learn that other programming languages give us exposure to different types of problems and alternative ways to express our ideas in code. Speaking another language can give us similar benefits.

What’s kind of funny, is you don’t normally hear about programmers touting the benefits of learning to speak multiple languages. But it would be great if they did! That’s something I’d like to see more of. After all, aren’t people the reason we create our applications? Knowing how to speak multiple languages provides you with the opportunity to connect with more people – more potential employers, more colleagues, and more potential clients.

“If you talk to a man in a language he understands, it goes to his head. If you talk to a man in his language, it goes to his heart” — Nelson Mandela.

Polyglots know that word-for-word translation isn’t a good idea. Automated translation is just as bad. While it can be helpful to understand the idea of a sentence, it’s a terrible idea to rely upon Google Translate. The famous quote “All your base are belong to us” is a hilarious example of translation gone wrong. This was used in the 1989 game Zero Wing by Toapian when the game was translated from Japanese to English.

Which language should you should learn?

With so many different languages spoken in the world – How do you choose? There are several factors you can use in your decision. One could start with what’s practical. How many people in the world speak a language? The higher the number, the more opportunities you’ll have to practice. The United Nations has 6 official languages – Arabic, Chinese (Mandarin), English, French, Russian, and Spanish – which they use to communicate. Each one of these languages has a significant population that speaks it.

Another consideration is: what languages are around you? What does “around you” mean? Perhaps there’s a language in your family. If your relatives speak little to no English, learning the relative’s language is a great show of respect. It’s also a great way to strengthen familial bonds. My paternal grandparents came to New York from Ireland in the late 1920s. I love the idea of learning to speak Irish, despite it not being widely spoken in the world. There could be language opportunities within your social network. When one or more of your friends or colleagues speak a language, it’s another opportunity to learn. Conversely, speaking another language is a way to expand your social circle. Perhaps your significant other speaks another language. This alone will provide an array of daily opportunities. Do you live in or near a language community – Chinatown, Little Italy? Perhaps something less formal, but still somewhat cohesive. When I moved to NYC, I targeted Queens as a place to live, so I could practice my Spanish. There’s a lot of language diversity in Queens, which bodes well for other language learning opportunities. Do you want to travel to, or perhaps move to another country? That’s an excellent opportunity to learn another language. What kind of food do you enjoy? Food and language are the two major parts of culture. If you enjoy a particular cuisine, being able to order in that language is great. Are you someone that values accessibility? Consider learning the sign language for your country. In the United States, Deaf and Hard of Hearing people use ASL (American Sign Language). I think even some people in Canada also use ASL but don’t hold me to that.

Since you’re a member of the PHP community, you may have additional motivation to learn another language. Do you have a hero in the PHP community? Learning their native language is a good way to create a bond with them. How impressive would it be, if you were to have a conversation with them in their native language when you see them next at a conference? I bet they would be quite impressed.

No matter which language you choose, you should know a language can’t be taught, only learned. Here’s a video with some tips to help you learn a language like a polyglot, from a talk at a language learning conference.


There are many benefits to learning to speak another language. We spend so much time learning programming languages, but sometimes, it seems like we forget that we write code with people, and for people. It makes sense that we should continue to improve our ability to communicate with people and widen the pool with whom we can communicate. It’d be great to hear about more developers learning another language. It’s a personal goal of mine to give a technical talk in another language at a conference. For me, that language is Spanish. Some people in the PHP community have already achieved that goal, and I applaud them for achieving it.

We’re one big software engineering community

I started my software engineering journey as a fresh faced web developer, making my first salary by creating websites with PHP. It became my tool of choice. I was a PHP developer, and after a while I became pretty good at it, too.

As part of that process of getting good, I started to see that there were other things that other people were doing, as part of my development team. We had UX experts, and testers. We had systems folks who looked after the servers. We all worked together, and our skills came together to make a better product than we ever could.

But I was the PHP developer, right? I had no business doing the testing. That’s the job for QA. If there was a server problem, I threw the details over to the operations team and assumed it would be fixed.

It was at that point, I started to wonder how I could grow next. What my next move would be. I just would get really good at PHP, and dazzle everyone with what I knew. I mean, really good. So good, and so dazzling, everyone would be complimenting me on my PHP.

What I didn’t know at that time, is there’s more to being a great software engineer than being great at PHP. I knew that a team which works together will make great things: but I didn’t realise that if I knew a little about those other disciplines, I would be a more effective and more useful member of that team.

A useful member of the team not only has the ability to fix the development server when it goes wrong, or gets their hands dirty with some testing when there’s a backlog in the testing column. But they also have the ability to empathise with the other disciplines of the software engineering team. The ability to ask the correct questions, maybe even know the answers themselves. To know why a decision has been made to go one way, rather than the way that’s easier for the developers.

The Covid-19 pandemic has been a world-changing event, suddenly forcing us to come up with some new normals. At least, for a little while. One of the benefits of this is we’ve found ourselves doing more virtual community meetups, which anybody around the world can — if they so desire — join, or even watch a later recording of.

This will almost certainly continue into 2021: and might even bring us a whole raft of virtual, online meetups, continuing far into the future. A future where we can return back to sitting in a room together. But a future where we can do both.

So let’s make the most of this new, virtual future. We have a future where we can join any online meetup in the world, whatever the discipline. There’s so much knowledge out there both within and outwith our primary skill.

And who knows, it might even make us all more useful members of our teams.

A WordPress Dinner Party

At the top of 2020, I observed my fifth anniversary of being a sponsored contributor to WordPress, and am proud to say I led the first all-women and non-binary release team in our project’s history. When I applied for the position, I was an advocate for diversity in technology, and I hoped this was a chance to make my time more impactful. I came to the work without any preconceptions of what open source was or should be. I didn’t even have a strong concept of the “best ways” to increase diversity. I just had my experience, my self-taught notions of leadership, and a desire to bring people together toward something bigger.

During my first year I met so many people, but especially sought out other women and people of color. WordPress had always seemed to be an oasis of welcoming in a field that is known to be the opposite, and I wanted to compare my experience with others like me. I felt that I had found a community with the contributors I met, that we had common ground.

And in 2017, I had this startling moment of doubt.

Chairs at the Table

I had responded to a hashtag on twitter (#WITBragDay) this way:

“I don’t know if I count as “in tech” but I fight for and inspire women to be in tech.”

Amid the support from fellow contributors, I got a message asking why I thought I didn’t count. And I had too many answers.

  • I’m non-technical (in an OSS project).
  • I’m a woman (in a male-dominated field).
  • I’m a person of color.
  • I “just work with people”.
  • And countless more.

Which led right to the question: “Why do you want to inspire other women to be in tech… if you feel like you don’t belong in tech?”

I assumed I was alone in feeling like I didn’t have a place at the table. I assumed that everyone else knew their value, and skills, and could advocate for themselves once they arrived. And my role was just to make sure we had enough places for people to be.

But when I’m leading others, I always encourage people to ask their questions publicly, because you never know who else is too shy to ask the same question.

So I started asking questions.

Place Settings at the Table

I asked my mentors about their early experiences of WordPress contribution. I asked rising contributors when they felt they’d had their first success. I asked long standing contributors about their journey. And I asked people who stopped contributing what led to that decision.

I approached this problem like any project I plan: by getting all the info in one place, looking for risks, and making plans to avoid risks.

So I asked people to start making small changes with me. Little process tweaks in one team, a borrowed welcome wagon concept from another. Nothing major, just being a tiny bit more proactive with our burden of proof so that when diverse voices joined us, they knew they belonged and had some idea of where to go. And contributors took these little changes, modifying them to fit their teams like any good open source community would do.

More Tables and Chairs and Settings

The community kept building on those changes and kept inviting others to join in. Small training cohorts were attempted. There were people who loved documentation (lowering barriers to entry); people who loved mentoring (helping others find their way); and people who just wanted to help any way they could. Then late in 2019, I shared that I hoped for an all-women release by the end of 2020.

It honestly made me nervous. We aren’t perfect, and there were so many things that I thought were missing.

But there were also so many people who wanted to participate, from brand new contributors to OG developers. So we did it. And the release team for WordPress 5.6 was massive. Not because I wanted volume, or because I was playing to the numbers, but because I had observed that our community enjoys learning shoulder to shoulder. Learning by watching, then doing, then trying again when we fail is a key part of how open source works, so it’s a key part of how I wanted to be able to introduce this team to the work.

A Great Dinner Party?

Did I do everything right? Definitely not.
Would I do it again? Maybe.
Was it worth it? Without hesitation, absolutely.

The latest release of WordPress, while a massive undertaking, was the culmination of years of work by hundreds of contributors. Not all of them knew that their contributions would lead to this, and certainly not all of the release team knew about the work that came before them.

But isn’t that the beauty of open source in the end? That we benefit infinitely from the work of everyone who came before us, yet can still find ways to bring new benefits for those who come after us? And if this long labor of love encourages even 10% of the release team to return, I will consider it a truly great dinner party. 🙂