Hello, my friend! This post is dedicated to everyone who’s looking for a guide, how to start with publishing your content on the Internet and also work on an open source project along with (yet it’s not the required part and you can simply skip it). Also, feel free to scroll down directly to the tl;dr section.
If you decided to participate in the upcoming “Daj Się Poznać” (“Get Noticed”) programming & blogging competition I’m very glad. In case, you haven’t registered yet, I urge you to do do, as there’s still some time left (last year I did join DSP during the extended registration period, so, there’s still some hope left ;)). In this post, I’d like to share some of my experience gathered back then and give you a few tips, how to survive during this great, yet exhausting journey which can be easily applied to marketing yourself in general.
I do believe that it’s the scariest aspect. Writing a code is totally different than writing the blog posts containing less or more complex sentences in a logical order that have some meaning. Especially, when you do it for the first time like I started a year ago. Publishing an article written entirely by you, signed with your name, that can be read (and criticized) by others is not an easy task. At first, it took me 2-3 hours to write the initial posts. After about published 5 posts I started getting much better at it, not only in terms of spending much less time to actually write them, but I also improved my flow, by realizing what people do enjoy reading and so on. Thus, the first thing is that you have to keep in mind that the beginning might be rather time-consuming.
Yet, do not lose hope – after writing a few articles, you’ll see how much more natural this process seems and that it takes much less time, just be patient. It’s also important to always think at least a few days ahead, what topic should the next post(s) have. You can start writing some drafts (I don’t do it, but I know people who find it useful), but I’d say that the most important thing is to have the particular subject in mind, and maybe a little bit of the general blog post overview. Will there be a lot of code? What technologies? What example will you show? Or maybe it’ll be something totally different, related to the IT in general, work-life balance or some soft-skills?
And eventually, be consistent. Publish your posts in the same days, ideally within the same e.g. 1 hour time window. For quite some time, I’ve been publishing a new post on every Monday in the morning – this is my routine. I will not go to sleep on Sunday if I have no text prepared to be published next day. Make it a part of your life, stick to it and it will become a natural activity that you’ll be proud of after some time.
How to start with an open source project? Well, at first you have to start with a regular project, then you publish it to the public GitHub repository, and that’s it. Well, pretty much it. Most of the time it boils down to the following question – what should I create? If you never thought of any specific subject for a custom project and need to figure something out, at first start with your hobbies or the things that are interesting for you.
Something about sports, music, chess, finances or maybe cars? If there’s such hobby, think about a software that you always wanted to use, but simply it does not exist (yet). Define a basic set of use cases and starting creating the app. On the other hand, you can think of some library or framework that could be rewritten or that you used in a different language/technology, but does not exist on the other platform yet. Eventually, think of any issue that you dealt with in the past, while working on a real-life problem in your work. Could this problem be simplified and handled by some automation tool, library or so?
At least this is what I did with the Warden – to help me solve the issue of monitoring the resources instead of writing, again and again, custom console applications.
Also, please take a look at this post where I wrote about open source projects in general. And spent some time on thinking about the architecture in order not to rewrite everything after few weeks.
You have your blog by now, you know what type of project you’re going to work on, now what? How do I make myself famous? I’m certainly glad that my mom will be reading about my open source project, although, she’s a physics teacher and probably not familiar with asynchronous processing and SOLID principles. Alright, then, step by step, here’s what you should do. At first, create a Twitter account and the Facebook fanpage and invite your friends that are into the IT topics, to both, like your fanpage and follow you on the Twitter. Also, start following your friends as well as some well-known folks within the community of your particular technology. Browse your Twitter and Facebook walls to look for the interesting topics and talks, express your opinions, see if people agree with you or not – make yourself visible. Moreover, whenever, you publish a new post on your blog, publish it also on your Facebook and Twitter account, add some tags, include other pages (e.g. @SQL if you’re writing about some SQL stuff).
That’s a good start. If you’re writing your posts using the English language (I encourage you to do so), publish links to them on the Reddit and Hacker News. Both of these are great services and you can get pretty nice attention here, whenever you create a valuable content (and maybe have some luck, to get enough upvotes). Choose wisely the subreddits, put there links to your articles and wait for the feedback. Depending on where you live, you can also think about some local service that aggregates such content, for example here in Poland you could use Dotnetomaniak to publish posts related to .NET and C# or Wykop.pl which is like a digg.com, but very popular in my country.
And of course, participate in the IT conferences. Meet a new people, exchange your contact information, and you can both benefit by promoting each one of you, that’s a win-win situation. After some time, you might even become a public speaker, and this is probably one of the best ways to promote yourself and your social media accounts. Yet, before it happens, go to the local meetups, meet folks and one day prepare a presentation about the topic that is interesting for you. Get some experience before you’ll start thinking of the bigger conferences. And do not forget to join our Slack community of the Polish programmers (over 2000 users and still growing every day).
Last but not least, I found out Snapchat to be a really cool and useful tool for publishing my content, opinions and thoughts in general. We have quite a strong community of the programmers here and I’m glad that I’m a member of it.
And creating your own YouTube channel for publishing even some small, yet useful online tutorials also can get you quite an attention.
Whenever you publish something within the global network, you have to be aware that one day (rather sooner than later), you’ll receive some feedback. And at least some part of these comments might contain a criticism. If that’s a typical hating, sometimes there’s a small valuable part that could be extracted out of it something like “everything sux, especially lack of comments in your source code” which is a good pointer towards what’s potentially wrong with your project. On the other hand, if that’s a pure hating and nothing else, just ignore if (or even delete it), don’t feed the trolls, it’s not worth your time and you can never win this anyway. Yet, going back to the regular criticism, it’s probably the most valuable feedback you can get.
Don’t be aggressive when you post a reply – I’m not saying never, as sometimes I find it useful to point out that someone has no idea what he’s talking about and he’s completely wrong, however, most of the time, the people who are commenting the content you published are right (at least partially) and you have to deal with it and treat the commenters respectfully. Being criticized is your opportunity to become a better programmer, blogger and most importantly the human being, as it teaches you that you’re not an oracle that knows everything and there’s a lot of other smart(er) people that have a different point of view at some things.
It all sounds great, but without being consistent, you’ll go nowhere and achieve nothing (sorry for saying that, yet that’s the harsh truth). You must find this firmness inside of you, grasp it and never let it go. Never. Do you have to work after hours? Will you sleep 2 hours less, because there was no time to write a blog post yet? Maybe I should postpone the new article this day? Once you do it and go against your rules that you set at the beginning, that’s an easy way to go down. I’m not saying it will certainly happen, but that’s a first unfortunate step towards inconsistency. Quite often you have to sacrifice your free time to create something valuable. But, that’s life – do not expect to be known within your community if you can’t find a spare time to work on something after hours.
- First posts take a lot of time to prepare – do not feel reluctant, it will get much better soon.
- Think of a post topic a few days ahead, prepare some general overview in your head or write a draft.
- Create your project based on your hobby, real-life problem or look for missing tool in the technology that you’re using.
- Spend some time on designing the architecture of the project, so you won’t have to rewrite it in a few weeks.
- Create a Twitter account and a Facebook fan page and publish links to your blog posts here. Use tags and mentions.
- Find interesting topics on the social media walls, express your opinions about them and so on.
- Use other services like Reddit or Hacker news to promote your content. Think of some local communities where you can post to as well. Snapchat and YouTube are also nice.
- Go to the IT conferences and local meetups, meet new folks, exchange your contact information and think of presenting your own topic.
- Handle criticism in a polite way, as it’s the most valuable feedback ever unless it’s a pure hating that you can get rid of or simply ignore.
- Stay consistent – think of a day and time that at which you’ll regularly publish your posts. Same applies to the project.
- The sooner you realize that it takes an effort and hard work to achieve something and get recognized the better. Simply put, nothing comes easy, especially the extraordinary things.