When I started writing this article I did not realize it would be so long so I decided afterward to split it into three parts that will each talk about an aspect of doing a technology watch:
- Starting your journey with blogs and blogging/microblogging platforms
- Where to learn?
- Be part of the community (this article)
In the previous articles, we talked about reading blogs, using blogging/microblogging platforms, the places where to find interesting content, the different tools to learn new things... In fact, we talked mostly about things you can do all alone but I think that doing a technology watch should not be a lonely journey and that to do it you should be part of the community.
What does it mean "to be part of the community"?
It is important to remind you that you are not alone in your technology watch. There are thousands and thousands of other developers working with the same technology stack or in the same area you are. These people are also trying to learn new skills and to share their existing knowledge with others. I think a technology watch should not only involve passively reading IT news. As I said when I talked about blogging and micro-blogging platforms, it is also nice to interact and discuss with other people. This is what I mean by "be part of the community": you are not alone, you are part of a technology community and it can help you with your technology watch and more.
When I started writing this section about being part of the community, I came across this free course from Scott Hanselman and Rob Conery called
Get Involved which deals with similar topics that the ones I want to talk about here. This video production is from 2013 but most of its content is still relevant so I highly recommend it to you. Indeed be part of the community entails getting involved in this community and I want to show you how you can do that.
Participate in Q&A platforms
As a developer, I am sure you spend a lot of time looking for answers to issues you face on the internet, and that many times you find them on a Q&A website. People's questions and answers help you but you can contribute to help your peers as well by asking pertinent questions and by answering questions on these Q&A websites.
StackOverflow: the famous Q&A platform
Which software developer has never heard or used StackOverflow? Some people even mock developers by saying that their job is just about knowing how to use a search engine and browse StackOverflow. That is very reductive 😮 yet these are two important skills for a developer to have.
If you face an issue and are looking for help there is a good chance that someone already has faced this same issue and created a question on StackOverflow about it. StackOverflow has all sorts of developer questions grouped by tags you can follow. The more you contribute (by answering other people question or asking questions) the more privileges your gain: vote up, vote down, reduce ads...
I do not do it enough myself but I think it is important to contribute to StackOverflow or another Q&A platform. Whatever your seniority, there surely are some questions you can answer or comment and often questions will teach you something. Moreover, we often are in the consumer position using other people's questions to solve an issue we have but not enough in the contributor position of helping others too, so I think we should try to change that.
Microsoft Q&A: a new Q&A platform
Microsoft Q&A is the new kid in town. Do not expect to find the same amount of content compared to 12 years old Q&A platforms like StackOverflow. But still, I think it is important to mention it as it is now the official Microsoft site for technical questions on Microsoft products and services (and in particular Azure services).
So if you have some knowledge about a specific Microsoft product or service, do not hesitate to follow the corresponding tag on Microsoft Q&A and answer some questions.
Sharing is learning
A good way to get involved in the community is to share the experience and knowledge you have acquired on some topics over the years. Whether it be in a blog, a podcast, a YouTube channel, or a Twitter account you can positively impact the tech community. 📰 🎵 📺
However, when you create and share IT content you are not only helping others you are also helping yourself. You don't see how? Well, let's say you want to write a blog article about a library you recently used in a project. To write your article, you will have to do some additional search about this library and dive into parts of the library you did not have the opportunity to explore. In the end, you are consolidating your knowledge and continuing your path on your technology watch journey 😉.
But do not think you need to be a blogger or a Youtuber to share IT content with others. You can start just by doing it in your company: tell colleagues about a library you used to solve an issue, debate the front framework to choose for your next project, share with them a blog article you found interesting... I noticed that we sometimes only have technical discussions with people directly working with us on a project and do not think of exchanging with colleagues from other departments or working on different projects. 📢 You probably have an enterprise social networking service like Yammer in your company and such social networks are the perfect tools to communicate with other people in your company to share IT news, seek advice from experts about a framework you don't master, show an interesting architecture you implemented on a project... If you don't have that, just use the existing communication tools you already have: for instance both Microsoft Teams and Slack channels are nice places to discuss about technology. And I am pretty sure the time you will "lose" by publishing some content inside your company communication tools will be quickly compensated by what you will learn from discussing with others.
Another great way of sharing your knowledge is to do a technical presentation about a technology in your company. Be sure that the time you will spend preparing the presentation will make you learn a lot more than what you initially knew. And you will probably learn too from the exchange you will have with your colleagues that will attend your presentation. Most IT companies have this kind of internal talks during lunch breaks or after work to help people in the company benefit from experiences from each other. Of course, if you feel up to doing a talk publicly you can also do your talk at a conference or at a meetup which brings us to the next topic.
Meet the community
User groups and conferences are the perfect places to interact with the community. You will meet there lots of technology enthusiasts that, like you, came to learn and to talk to fellow developers. Not only you will attend awesome talks but you will build your professional network. If you are interested in the .NET Community there is a dedicated page here where you will find all sorts of ways of interacting with the .NET community.
Discover user groups and meetups
A user group is a group of people that use the same technology, service, or product (it could be .NET, Java, Azure, AWS for instance) and that regularly meet to talk about it, share news... A meetup is pretty similar: a community of people caring about the same thing (software craftmanship or Artificial Intelligence for example) and that organizes events to talk and learn about it. Whatever the technology you are working with, there is a very good chance that there is a user group or a meetup about it you can join near your location. That is the opportunity for you to meet passionate people outside your company and see how they use a technology in their work and exchange ideas with them. Such meetings generally take place after the working day so it is easier to attend than if it was during office hours.
Go to conferences
If you can convince your company to let you attend some IT conferences in the year just go for it because IT conferences are great. Sometimes you will even learn more by attending an IT conference than you would by attending a training course. Be present at an event dedicated to technology, learning, and networking is just awesome 🤩. There are many IT conferences, all very different: some are organized by a company, some are community-driven, some are about a specific topic, some are about IT in general, some are a one-day event, some last several days, some cost a lot, some are completely free... But they all have something in common, they are events that gather passionate people about technology.
We often talk about huge conferences organized by big companies but small local conferences are nice too. I live in Bordeaux where the BDX I/0 conference](https://www.bdxio.fr/) takes place, I have attended it a couple of times and I can only recommend it. The speakers are good, talks are interesting, and it's in my city: no plane or train to take to go there. Unfortunately, there are almost no talks about .NET or Azure at BDX I/O but that means it is the opportunity for me to step out of my comfort zone and learn about other technologies. It is also a place to see former colleagues and acquaintances, IT is a small world especially in Bordeaux. I am speaking about Bordeaux because it is where I live but there is likely a developer conference that takes place in your town so do not hesitate to attend it.
Under the current circumstances with the pandemic, a lot of tech conferences have been canceled but many have also gone virtual like Microsoft events. Companies had to reinvent their events that went online and it brought interesting things like more inclusivity. So even if it will not replace face-to-face interaction, attending virtual conferences is a good way to interact with the community.
Find other community events
Conferences and meetups are not the only events where you can meet the community. Your tech community and in particular people working on developing the tech probably organize live events to share news about how technology evolves. For instance, for .NET developers, there are .NET Community Standup sessions that are organized to show off community contributions and work done by the different .NET teams. Anyone can watch and ask its questions during these live events that you can find on .NET Community Standup page of .NET website or on .NET Live TV. Another good example of community events like that is Azure Functions Live that occurs once a month and is the occasion to ask questions to the Azure Functions team and learn what new features they have been developing.
Many community events are more about watching teams that explain what they are working on rather than interacting with them. But that is not always the case, they are events where you can engage more. For example, Microsoft organizes "developer community calls" on Microsoft 365 topics (Microsoft Graph, Microsoft Teams...) which consist of Microsoft Teams meetings once a month and open to everyone. During these calls, the Microsoft team working on the topic of the community call will:
- show you what they are currently developing and what are they planning to develop next
- ask for your feedback on what they are showing you (either directly during the call or by giving you a link to a survey)
- tell you how to test new features or how to access private previews
- answer your questions and sometimes try to help with issues you are facing with the technology
- allow community members to present demonstrations of how they are using the technology or product in their context
These community calls are meetings, so even if they are lots of people in them and you stay most of the time on mute while people are presenting, there is always a time where you can ask your questions. Being able to talk to people building the technology or the product you are using, to explain your needs and issues, to ask questions, and to give feedback is I think an awesome opportunity and the reason why these community events are so important.
Contribute to open source
This part could probably be the topic of an entire blog post and I guess you can already find on the web lots of articles that are written about contributing to open source. So I will try to keep it short and to focus on some aspects that are important in the context of a technology watch.
Write open source software
Maybe you have a side project that you develop during your free time that others could benefit from. Contributing to open source can be as easy as publishing your side project on GitHub or any other hosting platform for open source projects. If other developers are interested in your project, they might help you build it or simply give you feedback which is always nice.
You may also want to contribute to an existing open source project that you are interested in and become a contributor to this project. Starting on an existing project which might be a few years old can seem difficult but most open source projects have tags to identify tasks that are suitable for newcomers like "up-for-grabs", "good-first-issue", "beginner-friendly".
And sometimes, contributing happens naturally as part of your job without particularly wanting to contribute to open source. Let's take an example: the project you are working on has an issue that seems to be linked to an open source library you are using. You identify the bug causing the issue and create an issue to report it, you find the correction and create a pull request to correct the library, your pull request is merged and a new version of the library is released that solves your initial issue. That way you contributed to an open source project while doing your job and working for your project.
Become familiar with GitHub
It seems difficult not to mention GitHub when talking about open source. There are many great platforms people can use to host their open source projects but in my opinion, GitHub is the main one and has become the heart of the open source community.
Nowadays as a developer, I think it is important to be familiar with GitHub. I know what some people will say: "I don't have a side project hosted in GitHub and I don't really care about open source so I don't need to be familiar with GitHub". Sure, you may have no interest in open source but the language, the framework and the libraries you are using are most likely to be open source and to have their code hosted in GitHub. That means you will end up using GitHub anyway.
To be honest I am quite surprised by how much time I spend on GitHub daily (and I assure you it is not to have a good time reading code from fun open source projects 😀). Yet my company or the companies I work for are not releasing their projects as open source software and are not using GitHub enterprise either. So why am I spending a lot of time on GitHub then? Well, here are some reasons why I need to use GitHub to do my job:
- Look for a solution in the GitHub issues of a library or framework to help me solve an issue I am facing
- Use GitHub issues of an SDK to report a bug I found when using this SDK on my project
- Read the documentation in the GitHub wiki of a library my project uses
- Look for code samples on how to use a library or framework I need to implement on my project
- Deep dive into the code of a library or framework to understand how things are working
- Check the release notes of a dependency I want to upgrade on my project
These are just examples but they are many more. As I wrote, I use a lot GitHub Issues which is a really useful tool to report a bug, create a feature request, keep yourself informed about bugs or requests created by others (just click on the subscribe button in an issue), discuss on problems you could have and find an existing solution on closed issues. And when you think of it, doing that is already contributing to open source projects. You may not be writing code on a project but filling a detailed bug report and providing the code to reproduce it is already helpful. And by discussing with the maintainers of a project and other members of the community on an issue thread you can affect how a product will evolve.
Contributing, not only a question of writing code
We often think contributing to open source is just pushing commits to an open source repository but it is far more than that. A good illustration of that is those 2 tweets from Miguel de Icaza (known for starting Gnome, Mono, and Xamarin projects):
Contribution is not limited to commits to repos. This was inspired by the Gnome Foundation: contributions are those deemed to advance the use of .net technologies. Docs, libraries, evangelism, teaching, code, explaining, organizing events, etc.— Miguel de Icaza ᯅ (@migueldeicaza) February 27, 2019
When I ask myself "what would have the most impact today?" I sit down and write documentation.— Miguel de Icaza ᯅ (@migueldeicaza) December 12, 2015
As Miguel says, documentation is very important so contributing to documentation is as much important as contributing to code. If you read the previous article from this series, you know that all Microsoft documentation is open source on GitHub hence easily editable. When browsing a page of Microsoft documentation you just have to click on the edit button to navigate to the markdown file corresponding to this page on GitHub and you can easily do a pull request to submit a change. I am mentioning it to tell you that documentation can often be an easy way to contribute to open source.
I already talked about how creating issues and participating in existing issues of an open source project is a way of contributing to it. I talked about GitHub Issues to discuss some topics with the rest of the community but it might not be the most suitable tool for that. When it will come out of Beta, GitHub Discussions will probably be a better place than GitHub Issues to have a discussion, but meanwhile, they are other options. Indeed, many open source communities use other tools like Gitter, Slack, or Discord (not only for 🎮 😉) to talk. But whatever the tool, interacting with others is essential to contributing to an open source project.
This article concludes my series of articles about how to do a technology watch. It was the opportunity for me to share my vision of an IT technology watch which involves following IT content, learning from different sources / through different ways, interacting with developers of your community, and contributing to this community.
Even if you are organized, doing a proper technology watch takes a lot of time so it is really important to make your company understand that it is an essential part of your job and you should have dedicated time to do it. The choice of a technology might be what will make your next project successful or not, and you have better chances to be able to make the right choice if you stay up to date with the latest IT changes. And do not forget learning is everyone's business, whatever its seniority, time to do a technology watch should not be kept for experienced developers only.
In this article, I told you how I was doing my technology watch but there are as many ways as people doing a technology watch: choose what suits you best! I hope you will have learned new things reading these articles about doing a technology watch, even if it's just a new resource, a link to bookmark, or a tool to use.