It’s My Last Day at JetBrains

I’m leaving my role as a Java Developer Advocate at JetBrains today, Friday 3rd December 2021. I start my next adventure soon, but before I do, I want to recognise those I’ve worked with as well as my achievements!

My Team

First and most importantly, my team. Trisha Gee leads the team and is my sponsor, mentor and friend. I have learned an incredible amount from her, including being kinder to myself and how to prioritise my efforts. Trisha also steered me towards public speaking and has been my biggest cheerleader in that department. Working alongside Trisha has been an incredible opportunity and privilege that I’ll cherish forever.

I can remember being incredibly excited when I first met Mala Gupta. I was totally in awe of her, and I still am. Mala embraced what I brought to the table; the skills and the fears. Mala challenged me on several occasions in the kindest way possible. I’m forever thankful to her for that. It’s because of what Mala has taught me and the feedback she’s given me that I push myself even further out of my comfort zone, repeatedly!

Dalia Abo Sheasha helped me to recognise that it wasn’t just me who struggled with code at times – everyone does. She also taught me how to walk away and come back to something troubling me, something I have often struggled with. Dalia always treated me as her equal on the Java front, despite my lack of real-world experience. She always let me find my own way when we were solving a problem and patiently listened to all my thoughts. Dalia is the reason I’m more confident writing code than I’ve ever been.

Community

The Java community have been incredibly helpful and supportive throughout my time at JetBrains. If you’ve read any of my blogs, watched any of my videos or tuned in to a live stream – thank you!

To those of you who collaborated with me on projects, are lurking in my Twitter inbox, sent me some messages of support and encouragement, gave me a platform, supported me through a new process, offered me opportunities, chatted with me in any number of Slack organisations(!), or connected me with even more amazing people – thank you!

Achievements

I’ve done a lot at JetBrains; here’s a whirlwind tour! Of course, I can’t list everything, but I’ve hand-picked my favourite highlights from my time at JetBrains.

  • Straight after I started in August-September I wrote ten blogs for the JetBrains Technology day for Java.

JetBrains Technology Day for Java

foojay Multiple Carets Blog

  • December is not only Christmas, but I also crafted this 3 Ways to Refactor Your Code in IntelliJ IDEA, one of my favourite blogs. December also was home to this screencast on the New Project Wizard in IntelliJ IDEA – my top-performing video!
  • Phew, here comes January! I stepped back from the public content creation and focussed on creating content for the IntelliJ Guide. I also started drafting my new talk Writing Code is Easy, Being a Great Developer is Hard.
  • In February, we held our IntelliJ IDEA Conference to celebrate IntelliJ IDEA turning 20!

IntelliJ IDEA Guide

JLove Conference

  • July was home to was more talk preparation and conference efforts, including being part of the program committee for Devoxx UK.
  • As I look at August I’m reminded that for the past year I’ve produced the vast majority of the tip tweets you see on the IntelliJ IDEA Twitter handle – that’s me!
  • In September, I hosted one of our Coffee Club episodes – Staying Ahead of the Curve and I started crafting what has become Helen’s Take On videos.
  • I’m not sure what happened in October, but mostly it was more video recording and conferences!
  • I spoke at Devoxx UK in early November.

Devoxx UK Conference

And since then, I’ve been wrapping up my time at JetBrains, culminating in the blog post that you’re now reading!

Summary

I’m very fond of the 16 months I spent at JetBrains, and I’m honoured to have worked with some of the smartest people I know. Beyond my immediate team, I got to work in the broader team full of talented developer advocates who never hesitated to help me or answer my endless questions.

To name check but a few… Marco – thank you for all the Spring and Spring Boot help, I learned so much from you. Paul – thank you for listening to me as I brought the IntelliJ IDEA Guide to life, I could not have done it without you (and I’m sorry for beating on Gatsby so much). Maarten for bailing me out of my Git holes on more than one occasion and generally being an all round sane voice! Rachel for teaching me some fundamentals that had totally passed me by and also for being a lovely friendly person to chat to right from the start. Nafiul for teaching me more about audio than I thought there was to know and demoing it. Shengyou for helping me to understand our broader audiences and for working so tirelessly on translations. Khalid for helping me on my website and co-authoring a blog with me. Matt for being my buddy in the UK when a rant was required about something country-specific! Yann for helping me to understand aspects of the plugin ecosystem. And finally, Hadi, firstly because he’ll be upset if I don’t mention him, but more importantly, for being super supportive at all times. I haven’t name-checked everyone (sorry), but in summary, you’re all awesome and I’ve loved working with you!

It’s been a really enjoyable time, and as I move on to my next adventure, I have great memories of this role and for all those I interacted with directly and indirectly.

Three Ingredients for Great Content

Creating content can be a daunting prospect. It might be a blog post, a video, a talk, a presentation or something like a Twitter thread. However, I’ve found that considering just three things can help to crystallise your ideas and help make your content amazing.

  • Your Experience 🎓

  • Your Audience 👥

  • Your Goal 🥅

Let me explain.

Photo by Artem Maltsev on Unsplash

Photo by Artem Maltsev on Unsplash


Your Experience 🎓

Often people are reluctant to create content, citing something like it’s all been done before. No, it hasn’t; no one has created the content you want to create with your experience, knowledge, and approach. Besides, even if they have, it needs saying again, because no one was listening. Your experience is unique. No one else has it, and that is why your content needs to be created.

The other statement that I hear a lot is I don’t know enough about it to create content on it. It’s as though we get to a certain point in our learning and then conveniently forget that we were all beginners at some point. We then extrapolate this and decide that creating content with our limited knowledge isn’t worthwhile because everyone knows more than us. How crazy is that? Everyone is on a journey of learning and exploration; that’s life.

So it hasn’t all been done before, and content of all experience levels is helpful and valuable. When you create content, think about your experience (not your lack of). Here are some questions you can consider for your experience:

  • What resources did you use when you learned the thing? Sharing resources you found useful will help others.
  • What did you struggle with? Sharing your struggles is very helpful as many other learners will also struggle with the same thing you did.
  • What was unique about your experience? We all have different learning experiences. Sharing your specific hints and tips is really useful for other learners.

Your Audience 👥

Your audience are the people that will benefit from consuming the content that you’re going to create. It’s especially important to consider them if they are a group of people who are paying for your content (such as a conference). Consider their needs and requirements, but not to the detriment of your skills and experience. What I mean by that is don’t try and create content on something you’re not knowledgeable or comfortable with just because that’s what the audience wants. That’s not your audience! In addition, if you create content for an audience that is too far from your knowledge and experience, you risk not being authentic, which will hinder you on your content creation journey.

Remember that your audience are just like you. They have learning goals and aspirations, and they want to learn too. That’s why they are consuming your content. So here are some questions you can consider for your audience:

  • What are the learning goals and experiences of your audience?
  • What will help the audience to achieve their goals with your content?
  • What can you share with the audience by way of signposts for additional learning?

Your Goal 🥅

The goal for your content is arguably the most simple of the three parts of my content framework, but it’s also the one that you probably will have to remind yourself of the most. What is the goal of the content you want to create? Here are some questions to ask yourself:

  • What do you want your audience to take away from consuming your content?
  • What kind of platform is most helpful for your content goal? A blog post, a video, a talk, a Twitter thread?
  • Is this content part of a bigger story you want to tell over time, and thus you have many smaller goals? If so, how will you represent that through content signposts?

So, Why Not You?

Each time you create content, consider your experience, the goals of your audience, and the goal of your content. Go ahead and create awesome content! Here are some resources for content creation that I’ve enjoyed and learned from:

How can you stay ahead of the curve as a developer?

Some days I feel like I’m sprinting down the tracks being chased by a high speed freight train that is labelled something like “changes in technology”. I can’t stop and change direction, and I have no choice but to eat on the run. Other days I’m staring at some shiny gem of technology in front of my face, and it’s glinting with iridescent beauty in the light. On those days, nothing else matters, not even the oncoming freight train. I want that shiny thing.

So how do we juggle these seemingly opposing needs?

Grabbing the shiny thing

We’ve all been there, staring at the beautiful gem dangling in front of our faces, drawing us in with its whispers of encouragement and beauty as well as its promises of how it will solve all of our problems. We just want to reach out, grab it, and study it. Nothing else matters. Of course, to do that, we have to make the space and time to learn about it. If we choose to do this, we are (at least to some people) staying ahead of the curve. To other people we are wasting our time and resources. As with anything in our industry, there is a compromise to be had with the ever useful saying of it depends. Let’s dig a little deeper.


Image by Colin Behrens from Pixabay

Image by Colin Behrens from Pixabay

Technology moves fast, we all know that, so how do we temper ourselves when it comes to the next big shiny thing, and, how do we stay ahead of the curve? Do we even need to temper ourselves or stay ahead of the curve? And whose curve is it anyway? It’s interesting that grabbing the next shiny thing has a negative connotation, and staying ahead of the curve has a positive one. I think that they’re tightly coupled; grabbing the shiny thing is often the precursor to staying ahead of the curve. Of course, if the shiny thing turns out to be ours, or the industry’s, kryptonite, you need to be able to drop it as fast as you grabbed it.

Being able to pivot our focus of intrigue quickly and efficiently is definitely a superpower.

Grabbing the shiny thing and subsequently staying ahead of the curve with our knowledge of it both allude to knowing more about that thing than most people. That can bring advantages to our career in a number of ways.

Of course, if we grab all the shiny things, we may find that we don’t know much about anything and are actively behind the curve, but let’s talk about that curve in more detail.

What does it mean to be ahead of the curve?

An excellent question and one I had to look up after drawing several bell curves on my notebook and coming up blank. All it really means is doing something faster than other people. Well, gee, that’s nice and broad!

Do you need to stay ahead of the curve?

Well, it depends. Many successful careers have been formed without grabbing any shiny thing or being ahead of any curve. We don’t need to know the latest and greatest technology to succeed, we can carve out a very successful role for ourselves specialising in technology that has been and gone. If that’s your happy place, you go for it!

However, many of us like shiny things, so I’m going to concentrate on how you can stay ahead of the curve in development specifically.

Whose curve is it anyway?

Technically it’s ours. It’s our learning journey as we’ve identified it. It’s the notion that if we’re ahead of the curve, we’re in the top x percentage of people that know about the thing. It’s where many of us aspire to be for a thing because:

  • we’re scared of being left behind
  • we’re scared of not knowing something
  • we’re scared of being the least informed person in the room

Our need to stay ahead of the curve is, at least in part, driven by fears. However, there are other drivers that apply a different force. Sometimes we aspire to be ahead of the curve in a thing because:

  • we want to earn more money
  • we want to retire early from the rat race
  • we want to be deemed successful by some metric
  • we get our kicks from the latest technology and enjoy learning it – “oooh look, shiny!”

These are all valid fears and valid motivators. There are many more you may have as well.

How do you know which shiny thing to pick?

We don’t. Well, we probably have an inkling, it’s potentially the one that will solve our problems. However, we cannot possibly examine them all and thus stay ahead of the curve in all our interactions and knowledge. That’s just crazy talk. So we need to pick our shiny thing wisely, especially in technology. Choose where we want to be ahead of the majority and focus on that with laser accuracy. We will need to focus our firepower, but we can always pivot direction as the winds change and the shiny thing we were ahead on falls out of technology favor.


crab-new-thing.png

Then we have a choice, stick with the shiny thing we chose, or jump to the next shiny thing we want to be ahead of the curve on. Which brings me on to my next point…

How do you stay ahead of the curve?

The clichè answer is, of course, with great difficulty. However, let’s break it down because there are some very real and tangible things we can do. These are the ones that work for me, your list may be longer or shorter.

We can often fit these around our existing schedule. We can:

  • Read blog posts
  • Watch videos
  • Listen to talks

All of these things are passive. Yes they take time but they’re passive. If we give them our time (instead of feeding our smart-phone addiction, maybe that’s just me), we pick up quite a few nuggets of useful information that will keep us ahead of the oncoming freight train. However, there’s more.

There are some more active tasks that we can do that will require more time from you, but arguably bring more tangible reward in terms of our understanding of the thing. We can:

  • Play with the thing
  • Create content
  • blog posts
  • videos
  • talks

All of these things are active. They require us to take the knowledge that we’ve learned and apply it to something in the real world. Playing with the thing is the first step. Questions such as:

  • What problems does it solve?
  • Whose life does it make easier (assuming it does)?
  • Where could it be applied in our world?
  • What are the competitors?
  • Where can it not be applied/does not work?

… will help you to poke it with a stick and come up with some thoughts about the thing you’ve been learning about. Creating content about the thing is, at least in my experience, one of the best ways to get ahead of the curve on that thing. It helps me to cement the knowledge in my mind, and it has the added bonus that it might help someone else in the community who is learning about the thing. For example, they might not want to be ahead of the curve on the thing, but they do want to learn about it and use it in their day to day.

How do you find the time to stay ahead of the curve?

Now, like anything that is vying for our time, it needs careful prioritisation and resources. We cannot expect to stay ahead of the curve in any of the things if we don’t make time for learning and give ourselves the opportunity. Of course all our time is very squeezed, but we can look for learning opportunities in both our professional and personal life.

Many employees are happy for us to spend a portion of our professional time learning about some new shiny thing, especially if it might benefit them longer term. This is a privilege, and we don’t all have it, but many companies are waking up to the fact that we need time to learn in a number of areas and failure to allow them time to do this will be detrimental to their workforce and potentially the company’s products.

We can also use our personal time for this endeavour. Should you? Only you can answer that one. If it personally benefits us and our career, perhaps that’s a strong use case. It’s a path well trodden that can bring substantial rewards.

Ultimately it’s up to us, our choice of shiny thing, and our schedule. We have got this!

Delivering Your First Live Talk Remotely

This blog post focuses on delivering live talks remotely, but if you are delivering a pre-recorded talk, go check out Carly’s blog post on exactly this! The first few tips here apply for giving talks remotely or pre-recorded, but Carly has written up some great guidance for those of you who need to submit pre-recorded content.

Webcam

Image by Aksa2011 from Pixabay

Stand Up

Standing up is a powerful way to deliver your presentation. It’s really hard presenting remotely, as I covered in this blog post. However, standing up is one way of adding energy to a remote presentation. It’s also a lot less scary to stand up because you can shift your weight onto the front of your feet and lean into the audience remotely. This will calm you down, no one wants to be on the back foot when they’re presenting. In addition, your legs can’t shake if you’re standing on them!

You don’t need a standing desk for this, although if you have the means and the space they’re very helpful! You can achieve the same effect with some chunky programming books to raise your monitor and webcam up to your eye level when you’re standing up.

If you are using books, make sure that it’s stable; the last thing you want is a mid-talk-topple! If you are using an electronic standing desk, or a desk converter, that has a lock function – use it. It’s very easy to accidentally knock buttons and trigger a desk movement mid-talk. Trust me, it happens!

Add Lighting

Lighting makes a big difference to your presentation. You don’t need professional studio lighting either, but it’s important to work with what you have.

Lightbulbs

Image by Pexels from Pixabay

The best advice I can give you here is to experiment. There’s a lot to work with including the room lighting, windows, your phone torch, the old anglepoise lamp in the garage, your bedside table lamp and more. A lot of the time you can briefly improve the lighting for your desk when you give, or record, your presentation.

If you do want to purchase some additional lights for your desk then you could consider something like this or a ring light. I use the former as I wear glasses and find that ring lights cause too many reflections. However, if you want to purchase something to brighten up your environment then go for it. It if helps Carly has been playing with this one which comes with two sizes of tripod.

Expect the Unexpected

Life happens. I know it feels like life stopped in early 2020 but life still happens. That means that at any point, your kids could strut on into the room, the Internet could die, the doorbell could ring, your dog could inform you that the postie has just been, and many more interruptions are equally viable.

Of course, you want to avoid all these things but sometimes, as I said, life happens. The best thing you can do here is to mitigate them. That means accepting that they might happen, and, having a plan in place in case they do happen. For example, if there’s someone else in the house, ensure that they know you’re on a call, and they need to answer the door. Be ready so that if you’re live when the dog informs you that the world is ending because the postie is here, let the participants know, laugh about it and keep going. Your audience will be at ease when they know that you’ve got this! They don’t want to see you uncomfortable and twitchy, and they also know that life happens. If the Internet goes offline because your other half decided to press a button on the router mid-talk (that happened), deep breath, and dial back in tethered to your phone. Be ready for it but save the row for later!

Pay Attention to the Conference Tech Check

All conferences do tech checks. Tech checks cover a broad range of things and normally happen 1-2 weeks ahead of the conference. They can include:

  • When to dial in for your talk (it will be at least 10 minutes before the scheduled time as a rule)
  • What software to use – make sure you are familiar with it. If you’re not, let them know and do practise runs!
  • Username and passwords for the conference; speakers often have different details to participants
  • How questions will be managed throughout your talk (during or after)
  • Who is hosting your talk
  • Any pre-canned questions that you’d like to be asked in case the audience is feeling quiet
 

woman-listening.jpg

 

Image by Karolina Grabowska from Pixabay

These Tech Checks are your time to ask questions too. Make sure you make notes, write down what you need to do and where you need to be when you need to be there.

On the Day

Live talks are in many ways easier because you will have the excitement factor (which will manifest as nerves), and you’ll have to stick to a pre-determined schedule. However, there are still some things you need to pay attention to.

Wear (Suitable) Clothes

Okay, seriously, wear what you like! Wear what you feel awesome in. That will look different for everyone (good thing too!).

My only other tip here is to consider something loose fitting. Often when you’re presenting you’re nervous and that can cause you to get hot – especially if you’ve got extra lights pointed at you! Loose fitting clothes may be more comfortable!

Check Your Tech

Make sure your machine is not running 20 million applications and isn’t experiencing glitching. We recommend re-booting your machine prior to your presentation, but not five minutes before! A good couple of hours before is preferable, you never know when those updates are going to come and bite you!

Get in the Zone

On talk day you will be nervous, this is a good thing! Those nerves are what you can use to lift your talk energy, so you need to channel them. Do whatever it is that gets you in the zone – some press-ups, a walk, and shake it out – whatever it is. Have some water ready for your talk and of course visit the bathroom beforehand!

Image by Keifit from Pixabay

Make Eye Contact

This one is much harder with remote talks because you have to talk into the void and make eye contact with a webcam; it’s the weirdest thing! However, your audience are on the other side of the webcam, so it’s important that you try and maintain eye contact. Check your eye level with your webcam once you’re standing up. You can always record a little test video and see what it looks like.

Enjoy Yourself

This is the most important one – you need to enjoy yourself! It is much harder giving talks remotely, but you can do it! Of course at an in person conference you’d probably chat to conference delegates and then head to the pub afterwards. That is harder remotely but make sure you do engage with conference participants on social media and at least give yourself a treat afterwards. You deserve it!

Handle the Q&A

A Q&A session normally follows a conference talk. If the conference asked you for pre-canned questions and the audience is feeling quiet, this is a good way to get people feeling comfortable. Of course try and answer any questions that the audience has, but don’t be afraid of saying “I don’t know”, followed by “let me get back to you on that”, or “I don’t know, but I know someone who will know the answer to that question”. You don’t need to know everything!

Summary

There’s plenty of things you can do to ease your experience here and make it less stressful for yourself. I hope I’ve given you some ideas to try so what you feel more comfortable when you give your first, second and third live conference talk. Of course, I’m sure there is a different/additional set of skills for presenting in real life so when I get that opportunity I’ll write that one up as well!

25 Content Creation and Sharing Hacks

The list of resources for ths talk is available here.

Woman working on a laptop

The benefits of creating content are relatively well known, but it’s worth reiterating them before we go on.

  • Cements your knowledge. When you create content on something, it helps ensure you know the subject well.

  • Helps others to learn. Your content might help them with something that they’re unsure about, or it might validate their experience.

  • Participation in a community. When you contribute to a community, you meet people you can learn from and, in turn, can help other people. It also offers you excellent networking opportunities for your career.

What’s not to like?

Image by StartupStockPhotos from Pixabay

A Note About Self-Promotion

Self-promotion is not what content sharing is all about, in my view. In fact, if you google self-promotion you too will probably realise that you’re not keen on it either.

The good news is that you don’t have to be good at self-promotion; you just need to be good at content-promotion. It’s your content that you’re promoting, not you. You also need to be authentic. We are at our most authentic when we accept ourselves and our knowledge, including the gaps in it. When we’re comfortable in our own skins and not seeking approval, that’s when we create authentic content. When we do that, promoting our content feels much more comfortable.

The Hacks

I’ve grouped the hacks into five segments followed by a summary for this blog:

Always Do These

These are the hacks that you should always do when creating and promoting any sort of content. Allow me to explain why.

Follow your dreams sign

Don’t listen to the voices

The voices of self-doubt have one role in this life. They just want to keep you safe and protect you. You might think that sounds great, and thus you should listen to them, but if you do, along with being safe, you’ll also never try anything new or put yourself out there. Those two things could fail, sure, but you might even succeed. The voices are not willing to take that risk, but you can!

Believe in yourself

It is a little cliché, but if you don’t believe in yourself, no one else will. If you don’t create content that you believe in, and you are authentic with, the buy-in from others for that content will not be as strong. Some people struggle with this more than others, but if in doubt, remember that someone will definitely benefit from you creating content – you! I would put good money on the list being longer too.

Image by photosforyou from Pixabay

Enjoy yourself

As humans, we rarely do stuff we don’t want to do unless we’re being paid. Of course, that’s a broad statement because you’re probably thinking, “but, I wash up, I clean the house, and I go food shopping”, none of which are exciting in my book. However, those things are just the daily grind of life that you choose to do to change the surrounding environment, and so you don’t starve. Content creation will infringe on your leisure time, so you need to, at least to some extent, enjoy the majority of the process; otherwise, you just won’t do it, which would be a shame. Do what works for you; today, for me, it’s triple chocolate chip cookies. I have no regrets.

Back to the hacks list

Getting Started

These are the hacks that are useful when you’re getting started creating or promoting any sort of content.

Woman on starting line of race track

No one will read it watch it anyhow

Most people build their network and community as a result of creating content. Be that talks, blogs, videos, or some other form of content. You don’t normally have an extensive social media platform following when you first start creating content, so don’t stress about it; initially, it’s highly likely that no one will read it anyhow! It’s a safe time to get into the mechanical process of creating content and subsequently promoting (I will come on to that) that content. Just crank that handle and find your groove to start with!

Image by Ryan McGuire from Pixabay

Make yourself a platform

This can be a website, or at a minimum, standardise your social media handles where possible. When you create content, you will build a brand of some sort, even if it’s not your intent. People will come to associate you with the type of content that you create. If you have all of that content in one place, that will strengthen your brand and allow you to keep control of your stuff as well. Content will become scattered over time but don’t be afraid to have your own site (even though no one will read or watch it anyhow initially). If front-end web design is not your idea of fun, check out SquareSpace, Wix, or WordPress (there are more). You can also use canonical links to share your content on other platforms as well, such as Medium.

Find the medium that works for you

Fortunately, we’re all different:

  • Some people like reading

  • Some people like watching

  • Some people like listening

  • Some people like a combination of reading, watching and listening

My point is, create content that you’re passionate about and that you care about. It’s fine to exclusively create one type of content if that’s your skill-set.

Create ‘experience-based’ content

No one can argue with your experience. This also negates the argument of “someone’s already created that content”. No one has your experience or our viewpoint – if you don’t create it, no one else can! Experience-based content really helps to validate other people’s experience as well. Do you think it’s too basic or too easy? Nope, we’re not born good at something. We all have to learn it, and basic/easy content is a huge help on that journey.

Regularity beats size

It’s easy to create a huge amount of content for your first few pieces, and then content-creator’s block hits, life throws you a curveball, or you’re just out of enjoyment for the process. You do not need to come at this at full speed. Content creation needs to be well-paced and accepting of the limitations in your schedule (I’ll come on to that too). It’s much better to go a bit smaller and be able to release content on a regular cadence than release War and Peace every six months. It’s also much easier for your readers to consume that way. I think those social media algorithms prefer it too. Yes, I know I’ve bent the rules slightly with this epic blog!

Get yourself a community mentor

I wrote a blog on this which you can check out that has a lot more detail, but the high-level summary is that there are plenty of people in the community who have walked the same path as you and are willing to give you their time to help you on your journey. They are people who want to give you a seat at the table; it would be rude not to sit down.

Don’t overthink what content people want

It’s very easy when you’re creating content to think that you should create content “that the audience wants”. While yes, I can see that point of view, it is highly likely that thinking this way will:

  • Narrow your vision and creativity

  • Reduce your authenticity

  • Stop you from leaning on your own experience

By all means, consider the audience; you wouldn’t create a talk on Java and give it at a .Net conference (probably), but don’t throw away all the things that will make your content great when you’re considering them and their expectations.

Back to the hacks list

Creating Personal Content

These are the hacks that are useful when you’re creating content outside any corporate brand. This might be blogs, videos, podcasts or more. There are lots of options to choose from!

Three hourglasses in a row

Take (or even make) time to create content

Time is all we have, and it’s precious. Consider spending some of it on yourself instead of streaming services, where possible. I appreciate we are all very busy, and recent events may have compounded that, but if you don’t take the time, no one else will. Of course, there are big hitters in this department like dependants, job, and health to consider as well. Also, life will throw you curve balls (and they’ll hurt). However, keep trying to make the time if you can. The rewards are worth it.

Image by Alexandra ❤️A life without animals is not worth living❤️ from Pixabay

Information density is a Good Thing™️

When your audience consumes your information (reads your blog, watches your video, listens to your talk), they do so in different ways. Some will want exactly the information you’re providing and no more, some will have questions and want to go deeper, some will be really fired up and want to know everything about the topic! Because your audience is all different, the best thing you can do to support their learning is to provide information density if you have it. If you referenced other content when you created your materials, or if you can point your audience at more resources, please do so. You can do this with links, QR codes, lists at the end or whatever works for you and the content. This blog from Trisha Gee is a great example of information density!

Consider usability

If your content is not accessible, you exclude part of your audience. Make sure that your content is as accessible as possible, irrespective of the type of content. The World Wide Web group has created some helpful guidelines for written and video content in this regard.

Credit where credit’s due

If you use other people’s images (always with permission), please ensure you credit them appropriately. There are some sites such as Pixabay and Upsplash that have royalty-free images you can use. You don’t even need to credit the artist, but please do. It’s free to be nice, and without them, your content might just be a wall of text.

Try pairing on content

Many of you may have paired on code, but have you ever tried pairing on content? Even if the other person is a friend with some time to give you, get on a call and start a screen share; it’s all the rage these days! I wrote a blog on my experience of pairing on content creation, so I’ll let you dive in on your timescales.

Don’t let language skills hold you back

I get paranoid about this one. However, the truth of the matter is that slightly dodgy grammar, or a typo, is not going to block your content. I also want to mention accents; we all have them, and they’re all beautiful and part of us. If (to my ears) you have an accent, then I’m already in awe of you. Why? Because you speak at least one more language than I do, and you’re delivering content in your second/third/nth language, absolutely amazing. Embrace your awesomeness and skills and create content in whatever language you want to!

Leave reflection time

I benefit a lot from this. Once you’ve created your content as a first pass, take a break. Go for a walk, have a sleep, play with the kids, or tidy up. Just take a break. When you come back to it, you’re much more likely to spot any issues and even tweak it, so it’s even better. That said, don’t leave it so long that you accidentally forget to publish it.

Back to the hacks list

Promoting Personal Content

You don’t need to be good at self-promotion; you need to learn to be comfortable with content-promotion. These hacks focus on getting the content out there. There is a lot of material out there on how to work with social media. It’s outside the scope of my knowledge and this blog, however.

Sparrows talking to each other

Tell people you’re going to do it

This one sounds so obvious, but is frequently neglected because we labour under the illusion that it’s self-promotion, not content-promotion. This one is also especially pertinent to public speaking. If you’re going to give a talk, tell people you’re going to do it! I think many of us feel uncomfortable about this notion, but if you’re speaking about something that you have experience and authenticity in, why would you keep that knowledge to yourself when others might benefit from it? This means sharing your scheduled talks on whatever platforms you’ve selected as your vehicles for content promotion.

Image by suju from Pixabay

Don’t be afraid of feedback

Feedback can be scary, but there are a couple of things it’s worth remembering. For both of them, I am assuming that the feedback is not abusive. If it is, that’s why we have block buttons and code’s of conduct; please do not stand for it. Okay, so when you get feedback (irrespective of how you feel), the first thing to acknowledge is that they’ve consumed your content. That means that they’ve given you the gift of their time. The first thing you can do is say Thank you. That’s it, and it’s that simple. You don’t need to agree with their feedback, you can still grind your teeth, but they have consumed your content. The second point to remember is that you are in control. You can take the feedback on board, or you can disregard it; it’s completely up to you. You can fix that typo, slow down your talk, or use different lighting for your video. It’s up to you. Everyone has an opinion, and some people choose to share them. What you do with those opinions is your call and yours alone.

Use platforms consistently

When I say platforms, I mean things like Twitter, LinkedIn, Facebook, etc (no, I’m not going to link them in this instance). However, you choose to share and promote your content on these platforms is, of course, up to you, but just do so consistently. So if you like to use Twitter exclusively, great, do that. If you like to use Twitter and LinkedIn, great, do that. However, don’t switch around the place without good reason and without notifications. Switching platforms randomly can lose your audience who want to consume your content.

Back to the hacks list

Creating Corporate Content

Perhaps you’ve been asked to create some content alongside your day job for the company that you work for. In that case, here are some hacks that can help you to navigate that, especially if it’s your first time.

A high rise building

Ask about corporate voice / brand

When you write personal content, you can use your own voice and brand, but when you create corporate content, it’s very likely that you’ll have to adhere to whatever the corporate voice and brand guidelines are that already exist. It’s best to know about these upfront. Writing in a style that is not your own is harder than you might think. Consider trying it before you commit to creating content that is not in your style.

Understand expectations (yours and theirs)

You need to find out things like timescales first and foremost. Bear in mind that whatever you do in this domain is in addition to your day job so understanding their expectations is key. You also need to ask yourself if you have the bandwidth for this, it might be in addition to your day job, but that certainly doesn’t mean it should be done out of hours! Set your own boundaries in this regard and communicate them.

Image by Michael Gaida from Pixabay

Learn about the review process

You’ll have stakeholders that want to review your content and indeed should, stakeholders that don’t want to review the content and should, and then stakeholders who want to review everything that they can, even if it’s not their job. I wrote a blog on this too, specifically from my Technical Writing experience. Identify who is in each group and work out how you’re going to work with them. What are their expectations of the content and review cycle? Do they want to review all the content at once or as bite-sized chunks?

Check the promotional strategy

Often in corporations, there are people who promote corporate content as part of their role. Find out if you have these people and understand who is going to be responsible for promoting the content you create. Are they expecting you to share the content you create from your personal social media as well? Are you comfortable with that? It’s best to understand the expectations in this area before you say yes.

History can tell you a lot

Unless you’re in a start-up, the chances are that you’re not the first person to write a post on the corporate blog or be a guest on their podcast. Ask your colleagues what their experience was like, such as expectations, the review cycle, stakeholders and more. Go ahead and extract as much information as you can so that you can make an informed decision.

Back to the hacks list

Summary

So that was a bit of an epic blog! I hope there were some useful snippets of information in there. I hope that at least some of the hacks in here inspire you to go on and create some content on your experience and then share them with the community. Give it a go!

Mobile phone showing imaginary data

If you got this far, I’m thinking of turning this into a publication/book and adding more detail, examples and hacks. If this is something that you’d find useful, please do let me know or leave me a comment!

Generating Code with IntelliJ IDEA

One of the super cool things about IntelliJ IDEA is how much code you can generate with minimum effort. Yes, it’s not the 1990s anymore, we’re no longer measured on how many lines of code we generate (thankfully), but you also know that Java has its fair share of boilerplate code.

Well, there’s a shortcut in IntelliJ IDEA that generates a lot of code for you:

  • ⌘N on macOS

  • Alt+Ins on Windows and Linux

These shortcuts load the Generate menu! Here’s a quick tour of where you can use it in Java projects in IntelliJ IDEA. It’s not a complete list; let me know where else we can use it please!

New Java Class

In the Project Window, you can use this shortcut to create a whole host of things which are project and folder specific. If you use the shortcut on your directory that is marked as your sources root (usually src) in a Java project you get the option to create a new Java file (among other things). You’re then asked to select between a Class, Interface, Record (Preview), Enum or Annotation. It’s a speedy way of creating new classes for your project.

Before we move on, a closely related shortcut is the one we use for a new Scratch File. It’s ⌘⇧N on macOS, or Ctrl+Shift+Alt+Ins on Windows/Linux. You can select to create a new Scratch file using ⌘N on macOS, or Alt+Ins on Windows and Linux in the Project Tool window, but it’s worth committing the scratch file shortcut to memory too as it’s handy to be able to dump some code or notes in an area outside your project and share it across IntelliJ IDEA projects.

Constructors

Now that you’ve got your class, you may want to generate a constructor or two. However, before we do that, let’s add a couple of variables to our class:

public class GenerateCode {
   private final String name = "Helen";
   private int age;
   private String mood;
}

We can use the same shortcut to make ourselves a constructor. We get some options here because we’ve got some fields in our class:

generate-constructor.png

IntelliJ IDEA is asking us if we want to pass our fields into our Constructor.

If we select both and click OK we have our Constructor with the parameters passed in.

public class GenerateCode {
   private final String name = "Helen";
   private int age;
   private String mood;

   public GenerateCode(int age, String mood) {
       this.age = age;
       this.mood = mood;
   }
}

Other Class-Based Generate Options

We don’t need to stop there either. There’s a whole host of code that IntelliJ IDEA can generate for us at this stage including:

  • Getter

  • Setter

  • Getter and Setter

  • equals() and hashCode()

  • toString()

  • Override Methods

  • Delegate Methods

  • Test

While we’re here, Java Records are coming and IntelliJ IDEA is ready. Another way you could generate code if you’re not ready to move to Java Records is to use the Generate shortcut to create a new Java record, and then you can convert the Java record to a normal Java class with ⌥⏎ on macOS, or Alt+Enter on Windows and Linux with your caret on the class name.

Implement Methods

When our Java class implements an interface, we need to ensure that we implement that interface’s methods. The Generate menu helps us here too. Let’s say that our code looks like this, and we’re implementing NewInterface:

public class GenerateCode implements NewInterface {
   private final String name = "Helen";
   private int age;
   private String mood;
}

When we use ⌘N on macOS, or Alt+Ins on Windows and Linux this time, we see select a new option call Implement Methods:

implement-methods.png

The keyboard shortcut is ⌃I on macOS, or Ctrl+I on Windows/Linux.

This allows you to generate the code required to implement the methods in the Java interface that we’re implementing with the @Override annotation.

Now IntelliJ IDEA has generated that code for us:

public class GenerateCode implements NewInterface {
   private final String name = "Helen";
   private int age;
   private String mood;

   @Override
   public void doSomething() {
   }

   @Override
   public void goSomewhere() {
   }
}

This also works for overriding methods from superclasses/super abstract classes. 

Add Parameters / Arguments

Another useful trick you so is to use ⌘N on macOS, or Alt+Ins on Windows and Linux when you’re in a dialogue, and you need to add more rows or data. For example, we added a default constructor to our class, but we now want to refactor it to change the signature. Our code currently reflects the default constructor:

public class GenerateCode{
   private final String name = "Helen";
   private int age;
   private String mood;

   public GenerateCode() {
   }
}

Let’s refactor the Constructor with ⌘F6 on macOS, or Ctrl+F6 on Windows/Linux. In the Change Signature dialogue, you can use ⌘N on macOS, or Alt+Ins on Windows/Linux to add a new parameter. This saves you using your mouse to click the little + icon.

This trick works in all the dialogue boxes that require additional lines to be added that I’ve found so far.

Generate Test Methods

Finally, everyone loves a good test and rightly so. We’ve already mentioned that you can use the Generate menu from a Java method to generate a corresponding test class. However, once you’re in the test class, you can use ⌘N on macOS, or Alt+Ins on Windows and Linux again to create much of the boilerplate code you might need, including (for JUnit5 at least):

  • Test Method

  • SetUp Method

  • TearDown Method

  • BeforeClass Method

  • AfterClass Method

If you are working with a different testing framework, your Generate menu will give you other relevant options.

Summary

Java may be a little clunky on the boilerplate side of things, but IntelliJ IDEA takes the heavy lifting out of that to a large extent so along with the shorcut for intention actions, it’s a compelling combination.

What 2020 Taught Me

I’ve never given the word normal that much thought before, but 2020 has made me challenge my perceptions of normal. Normal is just a word used to describe the current social status quo. Normal right now is facemasks, excessive soap, and social distancing. If you’d have mentioned phrases like lockdown, covidiot, or keyworker in 2019, most people would have tilted their head to one side, given you a quizzical look and wondered just how large the wine was you had at lunchtime.

Equally, if you’d have said they’d be a fundraiser to buy Chris Whitty his own ‘next slide’ clicker, that Jonathan Van-Tam would become famous for comparing yoghurts to vaccines, or that Brexit would not be the biggest story of 2020 (in the UK), people would have likely nodded slowly and pretended that they had to leave to take an urgent call.

However, all of this is now entirely normal for me. Along with teachers giving kids grades because exams are cancelled, hugging loved ones through transparent shower curtains, and me waving manically at my webcam several times a day. Normal is a word that describes a constant state of flux. I’ll be using it more thoughtfully in the future. I’ll also be checking if I’m on mute.

These are my top three learnings from 2020.

I’m still a Java fan-girl

I pivoted my career from Technical Writing to Developer Advocacy in 2020 (via Product Owning). I did Java at university, it was a long time ago, but as it turns out, I still rather like it. Unlike the more prepared of my peers, I turned up at Sussex University to study Computer Science with virtually no knowledge beyond how to plug a computer in, and a bet to get a degree that I was determined to win. Retrospectively, I probably could have drunk a little less, and applied myself more, but I was 19 and somewhat lacking in life experience and foresight.

Fast-forward 20+ years, I’m no longer 19, I have some life experience, and occasionally I have foresight. This has meant that as my career comes full circle and back to Java (which, much like me, has changed a lot), I’m finding it much easier to work with the language and apply myself. It’s made me realise how much I love the language; although I think a good portion of that love is also attributed to the invention of IDEs such as IntelliJ IDEA. Wow do they make life easier when it comes to learning to code; I wish they’d been around in the ’90s!

I guess age isn’t all that bad after all (aside from pulling muscles doing mundane tasks around the house which seems to be part of the package). Coming back after a period of evolution is really enjoyable, especially in a role where I can learn and share with others who are on the same journey.

I enjoy speaking at (currently virtual) events

Honestly, before 2020 this terrified me. However, 2020 brought this new normal, which involved speaking from the safety of your dining room table/box room/kitchen/sofa to an audience. I’d never done a conference talk of any sort before except internally at places I worked. I joined the London Java Community, and I started with a 5-minute lightning talk. I got the bug; I got it really bad actually. I was offered the chance to moderate a YouTube panel through work and took it, and this week I’m giving a longer presentation to code nation, and I can’t wait. Oh, I’m also doing a podcast episode in a couple of weeks!

I really enjoy speaking, and I’m looking forward to being able to do it in person, so I can better learn the craft and meet more people. I’m sure that’s a completely different skill-set, but one I look forward to working on.

Time is a gift

2020 gave me the gift of time. It gave me an hour of commuting time back a day (at least), it gave me all my social commitments back (I’m still in mourning for these, but I hope they’ll be back one day), and it meant that the phrase “set the alarm” was a fairly pointless one. The 2020 commute to work could be managed in about 7 minutes providing I didn’t have bed hair.

There was no requirement to go anywhere, in fact, it was mostly against the law to go anywhere except the supermarket, and the one thing that needed to happen (work), felt oddly more manageable as a result. Of course, this is just my experience, for many people the 2020 experience robbed them of time, especially for those with children which I recognise.

Initially, I was a little bit confused with what I should do with all the time that I wasn’t used to having, but gradually I became rather accustomed to it. I have read more books this year than in the past five years combined, I have created myself a platform (this site), I have embarked on learning new things both for fun and in my job, I have crafted house-based gym routines that even the most sadistic gym-goer would be proud of, I have made quilts for friends and colleagues, I have contributed to open source projects, and I’ve started writing regular blogs on a variety of subjects too.

Summary

I know for many that 2020 has been an incredibly tough year. I have definitely had many low points as well, but these are the learnings that I’m taking from the year for myself, and I hope I can build on them in 2021; whatever that looks like.

Finding a Community Mentor

In this blog, I mentioned that one of my hacks for self-promotion is to find a sponsor or mentor. Khalid and I had a bit of a Twitter chat and thought we’d write this blog as a follow-up.

In the original blog, I suggested that finding a mentor is useful:

This can be a single individual, a group of individuals or a community. You can think of the group or person as a booster rocket for your content. They are usually very prominent and well known in the community that you’re part of and want to grow in. They will be able to introduce you to people and be a guide as you start on your journey of self-promotion. Ask them to champion you and help you to build your brand. They’ve done it, that’s how they’re where they are, they know what you need. Everyone needs a helping hand, ask for one!

Let’s explore this in a bit more detail. After some discussion, we settled on Community Mentor as the right words to describe this person because it’s a mentor in a community, as a rule. We’re not talking about a life coach here; they usually have a cost associated with their professional services. This person is someone in the tech community who wants to help you grow and share their experiences with you.

Image by mohamed Hassan from Pixabay

Image by mohamed Hassan from Pixabay

Why Finding a Community Mentor is Useful

A mentor in a tech community is useful because they’ve walked your path, hit the same obstacles as you’re about to run into, and they have the tools to overcome them. They know what it’s like to start out in the community, and they understand a good portion of your upcoming challenges because they’ve been there. You don’t need to struggle to overcome every single obstacle yourself or without guidance. Asking for help is an underrated strength.

However, it’s not all about you either. Mentoring is a two-way relationship; people who mentor others usually gain insights about themselves along the way. Many people, especially those that have been in their chosen industry for a while, want to grow themselves and mentoring others is an excellent way for them to do that. Some aspiring mentors know that they’ve forgotten how far they’ve come and want to lift others up using their platform. All community mentors want to help; you just have to ask.

They Can Introduce You to Others

Community mentors are likely to have a platform. That can take many forms from social media, conference circuit knowledge and attendance, or knowing a substantial range of influential people that they can introduce you to. Ultimately, it boils down to this: they know people in the community you’re moving into / are in, and they’re willing and indeed want to, introduce you to them. Community mentors are authentic people who want to give you a seat at the table. It would be rude not to sit down.

They Can Open up Opportunities

Community Mentors can open up numerous doors for you. They can introduce you to people as we’ve discussed, but there are lots of other ways that they can help too. For example:

  • Co-present with them at an influential conference

  • Review pre-recorded video of you giving an upcoming talk and providing feedback

  • Review content you want to publish and give you advice and reassurance

  • Introduce you to work opportunities that you didn’t know existed

  • Collaborate on projects to raise your profile

This is probably not the end of this list!

One Mentor is Never Enough

There’s a notion that you have one mentor, and that’s enough, which isn’t the case. You can have as many mentors as you have the time to give. A mentor-mentee relationship is a precious one, and it needs time and cultivating, the same as any relationship. However, mentors are not limited to one, so think broad. You might benefit from a mentor for your career, one for public speaking and one for a technology you’re learning (for example).

Community Mentoring (yes, it’s a thing!)

One final point here, while I was chatting to Sirisha about this (then draft) blog, she came up with a couple of phrases that, for me, summarises what you’re looking for here – Community Mentoring / Herd Mentoring. Don’t limit yourself – take all the help and advice offered to you (if you want to). The communities exist to help us all learn from each other. Sirisha and I know each other through the Java community, we don’t live in the same country, and we’ve never met, but such is the power of tech communities and desire to help others. I hope to rectify the ‘never met’ part in the future!

How to Find a Community Mentor

Finding a mentor can be a daunting task, so here are some ideas for where you can start looking. Many communities have some kind of meeting place. Often it’s Slack or similar. Get yourself on there, introduce yourself and see if they have a community for this purpose, they might well do. This is a really common route for finding a community mentor.

If such a group inside a community doesn’t (yet) exist, ask if you can create one. Be clear in terms of what you are looking for, including the kind of mentoring you want and time commitment. You can also try before you buy. That is to say, have a chat with them before you enter into a mentor-mentee relationship (in my view, no money should change hands). Any mentor-mentee relationship is one built on mutual trust and respect, it needs to be on a solid grounding, and you both need to know what you’re signing up for.

If you know the person you want to be mentored by, do your homework and see if they’re open to having a mentee. If you don’t know them directly, see if you have a contact in common who can do an introduction, the world is a surprisingly small place when you need it to be.

Resources

Here are some resources that might be useful for both Java and .Net from Khalid and myself:

My understanding, at least for the Java world, is that your local Java User Group is usually the best place to start these conversations.

Having a Productive Mentor/Mentee Interaction

When operating in a mentee/mentor relationship, everyone involved wants to see progress. For all participants to get the best out of each correspondence, each interaction must have a focused and actionable next-step.

While there may be casual elements between individuals (jokes, anecdotes, and shared experiences), everyone involved must understand it is a professional relationship. To help keep everyone involved in meetings/conversations going, all parties should think about the following questions:

  • What’s the purpose of the interaction?

  • What’s the ultimate goal?

  • What impediments are blocking progress?

  • What’s the mentor’s responsibility, and what’s the mentee’s responsibility?

  • When the current interaction is complete, what’s the next step?

Answering these questions can determine the type of interaction required. Whether the exchange should be a face to face, video call, or email can be determined by answering the questions listed above. In general, come to every interaction with a topic, a duration, and a take-away. It will give all parties a better feeling about the exchange and help everyone look forward to the next one.

While goals are essential to track progress, they should be used as guides and not life-or-death marks to achieve. There will be times when a mentee/mentor relationship achieves its goals, surpasses everyone’s expectations, or utterly fails. Regardless of the outcome, each individual should take it as an opportunity to reflect, learn, and carry that knowledge forward.

Careers are rollercoaster rides, punctuated by highs and lows. A mentor can help a mentee have more successes, be supportive in times of struggle, and reinforce the idea that it’s a long journey ahead. A mentee can be honest with their mentor(s) and provide feedback, as mentioned in earlier sections.

Anti-patterns

There are some anti-patterns for finding a mentor too, don’t fall into these traps!

You Thinking They’ll be Too Busy

You are worthy of their time (if they’ve offered it), irrespective of whatever point you are in your journey. Mentors that are too busy or don’t have the schedule gaps will let you know in advance, so you know where you stand. Never assume that they’re too busy for you because they’re jet-setting all over the world (in time), and you’re writing HelloWorld. They started writing HelloWorld too.

You Not Bringing Your A-game

The mentor-mentee relationship is a special one. Bring your A-game each and every time. If you can’t be present because of your circumstances, let them know and re-group. They will understand.

Them Not Bringing Their A-game

If you’re not getting what you need from a mentor, then there is no shame in politely letting them know that it’s not working for you and walking away. It’s better to do that than continue in a relationship that isn’t benefiting you and over time could even be toxic.

Thinking You’re Too Inexperienced to be a Mentor

You have valuable experience. It may not be in the sphere that you’re moving into, but if you have the experience that matches a mentee’s requirements, do explore becoming a mentor. As long as you’re honest and transparent about what that experience is, how you’ve applied it, and are comfortable saying I don’t know, then do consider being a mentor. Sometimes we all need some help, reassurance and support.

Summary

Community mentors are phenomenal springboards to opportunities that you probably didn’t know existed, and they want to help you. Not everyone in a community wants to be a mentor, but if you don’t ask, you won’t find! Community mentoring others is an incredibly powerful way of learning more about yourself and helping to give those that are earlier in their journey a seat at your table. Give it a go!

Special thanks to Khalid for reviewing, and contributing to, this blog.

7 Hacks for Self-Promotion

Participating in, and learning from, a community is tough to do if you don’t put yourself out there in some form. Or more specifically, if you don’t put yourself out there and tell others that you’re there; self-promotion. The conclusion that I’ve come to over recent months is this: Self-promotion is hard.

When I had that realisation a few weeks ago, I did this lightning talk for the fantastic London Java Community. This blog is a follow up to that talk in which I want to give a bit more background, share the most important realisation that has helped me to get more comfortable with the idea of self-promotion, and provide some (7 in fact) hacks to help you get better at self-promotion.

Before we move on, a brief recap:

  • Why is self-promotion hard?

  • Making self-promotion easier

Why is Self-Promotion Hard?

I’m going to change my mind here; maybe it’s not hard, perhaps we just don’t know how to do it. Or rather, we don’t know how to be comfortable with it. We’re often taught that self-promotion is not a favourable personality trait, and as children, we might have been told that we should be seen but not heard. Maybe we’ve been told it’s narcissistic or self-serving to talk about ourselves as well. Whatever the case may be, some of us in my experience find self-promotion hard.

Making Self-Promotion Easier

I’m not going to say “do this, and you’ll be comfortable promoting yourself!”. What I will say is that this realisation has helped me a lot in the sphere of self-promotion. I realised I didn’t want, or indeed, need to promote myself. I wanted to promote my content. Or to put it more succinctly:

It’s not you that you need to promote; it’s your content.

This distinction is what has helped me to be more comfortable with the notion of self-promotion. Promoting content specifically, rather than me, feels much more comfortable and more natural. Okay, it’s not as catchy, but you don’t need to outwardly distinguish self-promotion from content-promotion if you don’t want to.

Don’t think of it as self-promotion, think of it as content-promotion.

So here we go, 7 hacks for content-promotion (of your content)!

7 Hacks for Content Promotion

  1. Make yourself a platform (site/brand)

  2. Get yourself a sponsor

  3. Make the time to create content

  4. Don’t overthink what content people want

  5. Find the medium that works for you

  6. Don’t let English skills hold you back

  7. Enjoy yourself

1. Make yourself a platform (site/brand)

If you can, I recommend building yourself a website. If web development isn’t your idea of fun, that’s fine; there are plenty of WYSIWYG options like SquareSpace and Wix. WordPress has also come a very long way in the last couple of decades and is exceptionally bendable. How often do you look back and think “I wish I had a list of all the cool stuff I’ve done?” I know I do. It’s why I made this site! Put everything on your site – your talks, your blogs, your bio, your CV (if applicable). If you don’t want to have a site to maintain and pay for (hosting), then there are alternatives such as dev.to or Medium (beware the paywall). Of course, there’s YouTube for videos as well.

2. Get yourself a sponsor

This can be a single individual, a group of individuals or a community. You can think of the group or person as a booster rocket for your content. They are usually very prominent and well known in the community that you’re part of and want to grow in. They will be able to introduce you to people and be a guide as you start on your journey of self-promotion. Ask them to champion you and help you to build your brand. They’ve done it, that’s how they’re where they are, they know what you need. Everyone needs a helping hand, ask for one!

3. Make the time to create content

This is easier said than done, but it’s important. We’re all short of time in the day. It doesn’t matter what your commitments are, the vast majority of us have very little time to spare. There are some big hitters in this department like children, health, and jobs that shrink that time down, but it’s important to realise that time is all we have. It’s up to you how you use it. Some people will be able to produce content twice a week or more. Others will find their flow with monthly content. Find what works for you and be prepared to change it without judgement when life throws you a curveball (because it will).

4. Don’t overthink what content people want

We’re all different (thankfully). Just create content that you want to create that you think will help the community. That’s it. You’ll get some hits; you’ll get some misses, don’t sweat it. For example, people love reading about experiences; someone else will be walking the same path as you. If they’re a little bit behind, you’ll show them the way. If they’re walking alongside you, you’ll confirm their experiences and understanding. If they’re ahead of you, they might even look at your content and pause to help you out because they’ve been there.

5. Find the medium that works for you

Some of us like to write. Some of us want to make videos. Some of us like to Tweet. Some of us like to do all three and more. It doesn’t matter. Pick what works for you. Everyone is unique, and we all prefer different mediums for creating content and learning. Don’t fall into the trap that you need to make videos because it’s (still!) 2020. Equally, don’t assume that everyone reads blogs from start to finish. Just do what feels right for you, and you’ll find your groove naturally.

6. Don’t let English skills hold you back

Yes, I like English grammar, and I try not to make spelling mistakes, but that doesn’t mean that my posts are a shining example of perfect English language. Grammar and spelling are two aspects of a much bigger picture – your message! Yes, do create with the best skills that you have, but don’t let grammar or the possibility of a typo in your content stop you from posting something. If you’re uncomfortable, then you could ask someone to proofread content for you as a second pair of eyes, or you could use a tool such as Grammarly to help you out.

7. Enjoy yourself

This one is critical; I probably should have put it first. If you don’t enjoy what you’re doing, you won’t do it. It’s that simple. You need to believe in what you’re doing, enjoy what you’re doing, and get value from what you’re doing. Yes, there are times when I’m stressing about writing a blog because I’ve missed my schedule, or I’m worried about a YouTube live stream, or I’m updating my site while having a grump because I want to be doing something else, but, when it’s all said and done, I love doing what I do!

Summary

There are lots of great blogs out there already on why you should get good at self-promotion, but for me, it boils down to community participation, something that is even harder in the current climate.

In summary:

  • Put your content out there and promote it so that we can read it / listen to it!

  • Join communities and share your experience.

  • Tell others about it and let’s learn from each other.

IntelliJ IDEA Made me Lazy

cat-2360863_640.jpg

I haven’t always been lazy; it’s a fairly recent addition to my repertoire of skills. And do you know who I blame? I blame IntelliJ IDEA. I used to check that I’d completed a statement correctly, I used to look at javadoc, I used to check I’d closed my parentheses correctly, but now I don’t give things a second glance.

Image by photosforyou from Pixabay

It’s all IntelliJ IDEA’s Fault

No, really, it is. Back when I was a (cough) younger adult, we had to type out all the code, we also thought it was cool to mix drinks that turned into something akin to gorilla snot. Maybe we weren’t that smart, but I am discovering one thing at a rapid rate, IntelliJ IDEA was smarter than me, even 20 years ago (I’d like to say it was a low bar).

I took a long break from coding, about 20 years, in fact. When I left coding, I wrote code in Vi and had memorised that very useful shortcut :wq. IDE’s were around, but in fledgeling forms. Recently I came back to coding, and I walked straight into IntelliJ IDEA’s open arms.

Exhitbit 1 – Statement Completion

Never one to take responsibility for my own actions, I’d like to offer up exhibit one – Statement Completion in IntelliJ IDEA. When you use the combination of Cmd+Shift+Enter, on macOS or Ctrl+Shift+Enter on Windows/Linux, IntelliJ IDEA completes it for you so that it will compile. I don’t even know where the semi-colon button is on my keyboard anymore; I don’t need it. Allow me to demonstrate.

Try this one.

Rubbish right? Naturally, it won’t compile.

auto-complete-statement-post.png

Use Statement Complete and boom, we get this.

IntelliJ IDEA is kind and pops the caret in the right place as part of Statement Complete too. Sure, it’s only a few characters, but there’s a deep-seated comfort in knowing IntelliJ IDEA made it compile. It might not do what you want yet, but that’s your problem, mostly. I recommend you train your fingers to master this one, it will help you sleep at night.

statement-complete-presentation-mode.png

Exhibit 2 – Live Templates

I covered these in detail in this blog, but here’s a quick recap.

for-live-template-pre.png

Remember the days when you had to type the whole `for i` loop out? Well, they’re as dead as the shell-suit fashion of the 1990s.

for-live-template-post.png

After we press return, the Live Template in IntelliJ IDEA does all the boring stuff for us.

Incidentally, you should press Tab to move to the next point that needs your input (the red squiggle).

A few more of my favourites are:

psfs will give you public static final String

And

soutv (in a fori loop will give you System.out.println("i = " + i);)

There's 35 more for you to check out with your beverage of choice! There's no keyboard shortcut for Live Templates; they'll just appear when you summon them by starting to type what you want.

Exhibit 3 – Post-Fix Completion

It seems like the humble dot is extremely powerful in IntelliJ IDEA. It does Basic Completion automatically, but, it also does something very cool in that it can be used to tell IntelliJ IDEA to wrap whatever you just typed in some more code.

We’re just mere humans, we obey the laws of the languages we speak and write (mostly), but thinking is hard. Allow me to demonstrate. We don’t think:

  1. I want to output some text to the console.

  2. I want to write some text.

No. We think:

  1. I want to write some text.
  2. Oh, also, I want to output that text to the console.

This is exactly what Post-Fix Completion does. It builds on live templates, where applicable, and helps your brain to flow in the order of things that it’s probably become accustomed to over the years (many in my case).

Before post-fix completion, the earlier example becomes:

  1. I want to Output some text to the console

    sout.-> System.out.println();

  1. And then I want to write the text to output

    "I wandered lonely as a cloud"

But, with post-fix completion:

  1. I want to write some text.

    "I wandered lonely as a cloud"

  1. Oh, also, I want to output that text to the console

    .sout -> System.out.println("I wandered lonely as a cloud");

There are 46 types of Post-Fix Completion in IntelliJ IDEA 2020.2. That’s a lot of time saved in your day and a lot of language-based syntactic-sugar for your thinking-brain. Other cool examples include:

assert to create an assertion based on a boolean expression, for example:
is2020OverYet.assert

Becomes

assert value;

My favourite code construct, the humble for (and fori loops):

String[] monthsLeftIn2020 = {"November", "December"}
monthsLeftIn2020.for

Becomes

String[] monthsLeftIn2020 = {"November", "December"};
for (String months : monthsLeftIn2020) {

}

Lastly, this one is pretty cool. I like var and this is one way that IntelliJ IDEA takes the notion of var to make your life just a little easier. You can use .var to ask IntelliJ IDEA to declare something that you’ve created as the correct explicit variable type. Let’s look at the String.var portion of this:

void speed2020Up(Magic magic) {
   magic instanceof String.var
}

Using .var asks IntelliJ IDEA to put the variable type in for us, it’s a boolean because that’s what instanceof returns.

void speed2020Up(Magic magic) {
   boolean b = magic instanceof String;
}

You will also have the option to use the var type for real at this point if you want to. Now, var is fabulous, but Java is still a statically typed language. If you, as a human-being (presumably), can’t figure out what type it is, please don’t use var as the variable type. Using .var is geat, but declaring something as type var is a big no-no if the type of the expression is not quickly decipherable. Gift your fellow humans (right now, we all need it) by stating the type that it evaluates to when all is said and done. They’ll thank you for it and you’ll help them sleep better at night.

Exhibit 4 – Smart Completion

With IntelliJ IDEA you get Basic Completion out of the box, but Smart Completion is just an extra finger tap away by using Ctrl+Shift+Space. Smart Completion not only analyses what could be correct, but it takes it one step further and looks at the context of the surrounding code to make the right decision. If IntelliJ IDEA can determine the appropriate type for the right-hand side of an assignment statement, initiating a variable, a return statement, arguments of a method call and more, it will filter the list to just that. To show you the power of Smart Completion, I’ll show it to you alongside basic completion for comparison.

First up, we’ll invoke Basic Completion (no ‘dot’ so it won’t come up automatically in this case). Note that I have a space after new.

HashMap hashMap = new

basic-completion-hashmap.png

With basic completion we get a whole list of options, some valid, some not so much.

smart-completion-hashmap.png

But, with Smart Completion, we get a much shorter, more relevant list.

Okay, let’s look at a return statement next.

basic-completion-return-statement.png

With basic completion.

smart-completion-return-statement.png

And with smart completion.

You get the idea, it's very useful! Here is the keyboard shortcut that you need:

smart-completion-shortcuts.png

Did Your IDE Make You Lazy Too?

There’s a lot of advantages to being lazy. It affords you more time for yourself, and your loved ones for a start. However, it’s more than that, being a developer isn’t all about writing code; there’s also:

  • Thinking / flow time
  • Working out what your code needs to do
  • Asking questions / Answering questions
  • Mentoring others / Being mentored yourself
  • So much more!

Being lazy isn’t a bad thing, it’s an efficiency gain that allows me to focus on the things that matter, which isn’t checking my parentheses are correct or remembering to put a semi-colon after my statement. No, it’s taking time for myself and those around me. Sure, it’s IntelliJ IDEA’s fault, but I am happy that we’re here!