Prologue
I’ve wanted to start a blog for quite some time. I’ve even had several attempts prior this one and considering writing a second sentence it’s going way better than the last time!
Having zero experience in this area I had absolutely no idea where to start. Should I start writing about some technology I’m currently curious about or should I review the last book I read?! But none of this made sense to me… “Who’s that guy Hristo Yankov? Bulgaria? And why the hell is he talking about all those things he barely understands?” … Well my friend that sounds like a nice title for the first post:
Why bothering blogging?
There’re five main motivators behind having a dev/tech/geek blog.
I. Stuff I care about
Writing software in excange for money costs a lot of my time and I rarely have the chance to work with technologies and tools I’m curious about. So the only option left is spending some of my free time exploring new topics and as far as I know the best measure of understanding something is having the ability to explain that thing simply. Some of the topics I’m currently curious about are:
- Automation & DevOps: including various fancy stuff like Docker, Vagrant, Kubernetes, Puppet, Chef; Unit / Acceptance / Behaviour testing; CI and CD and many mre.
- Programming languages: I love learning programming languages! However, “A language that doesn’t affect the way you think about programming is not worth knowing.” (Alan Perils). To me it wasn’t simply one language but the whole functional programming paradigm. It all started with this course that I cannot recommend enough, done some Scala and finally fall in love with LISP. The main topic here will be Clojure and ClojureScript!
- Building good habits (like brushing your teeth or writing posts regularly).
- Emacs - the one editor to bring balance to the source.
- Building scalable software - a.k.a. use Clojure if you want to scale ;)
- AI, robotics … and not only!
II. Self improvement
English is not the native language here in Bulgaria and having and English blog is great opportunity to improve my vocabulary and writing skills.
III. Missing CS foundations
My highschool gave me solid foundations in CS. We’ve studied a lot of everything - programming in Pascal/C/C++/x86 Assembly/Python, analog and digital electronics, designing schematics and circuit boards (this was the hardware profile). However, the greatest lesson was if I wanted to learn something it was up to me to learn it… and self education has it’s downsides. I’ve skipped the corner stone of CS - mathematics as well as some important fundamentals - designing and reasoning about algorithms, data structures and theoretical computer science. I thought there should be other lost souls like me who can program and have heard of Von Neumann architecture, Turing complete languages or NP complete problems but know have no idea what it means (except being super hard to compute problem, of course). So I decided to use the blog as a personal, yet public, knowledge base.
IV. Personal projects
… it would also be a nice playground where I can show the world what I’m playing with. May be, someday, if I manage to make something useful and/or delightful I’ll get noticed. Which brings us to the last motivation behind the personal web space:
V. Online prescense
My goal at the moment is not working less or working for more money but rather working on my own terms. And all possible scenarios, remote developer, freelancer, solo or stereo enterprenuer, etc, have something in common - I need to develop online presence. And that includes active Github account, personal space on the Internet, nice portfolio and moderate twitter traction.
Epilogue
Thank you for reading this. I do value your time and if you feel I’m wrong or saying something wrong or simply want to say ‘Hi’ - the comments section is just for that and I’m waiting you there.
May the force be with you!
TL;DR
I’m just another egocentric kid with questionable programming knowledge and personal domain. Here’s a mind map why I’m creating this site/blog: