Monday, December 27, 2010

Amazon's Kindle review

Lots of people seem to be interested in e-reader devices recently including me. I've been an owner of Amazon's Kindle for two months already and I'm more than excited. First of all and most important for me - for the last two months I read more books than the last two years. Reading now is much more accessible - I have a whole bunch of books I can read (actually much more than I can actually handle).

The Kindle itself is a great piece of electronics. What I like most about it - it is strictly profiled only for reading. It's not a multi-function, multi-purpose device - all you can do with Kindle is to read, but in a best possible way. It's very light-weighted and compact, but it gives you the feeling of a solid piece of equipment. Of course, it has a great integration with and you can buy books on the fly. What is more interesting, is the way you can upload your own document and books. Amazon provide you with a free email account, where you can send every book you want to read on your Kindle. After it is received on your email account - it is automatically transferred to your device.

To be honest, I have some problems reading some technical literature - especially when source code appears in the pages. It's usually not well aligned and formatted and the reading is not so fluent. Besides from that, reading from Kindle is as easy as it could be, with all king of feature you may need - bookmarking, highlighting, sharing through twitter and facebook and so on. The e-ink display is great and my eyes are more than happy after reading two-three hours with Kindle.

For converting my books to the amazon's format I use a special software on my PC - it is called Calibre (thanks to Yosif ). I have even set up Calibre to use my gmail smtp account settings, this way converting and sending all my books to my Kindle is a matter of just one click. Just go to "Preferences" -> "Sharing books by email" and fill the following fields:

Ordering Kindle from Bulgaria can be a painful experience though. You can use the service of various courier companies (Econt for example) that will handle the bureaucracy issues for you. If you are not so eager to get your device now, I'm sure that the prices will drop in the several months as this market is still emerging. Still, Kindle is the cheapest device you can get without compromising the quality.

I strongly recommend it! If you have further questions or remarks to make - do not hesitate to use the comment form.

Sunday, December 26, 2010

My thoughts on "Apprenticeship patterns" by David Hoover

I've just finished reading a great book about software engineering and personal improvement. Actually, this book is the reason to start my blog. After reading it, I realised that is important to have my own place to summarize and share knowledge. In my opinion it helps in several ways: first, by making a summary I hope to capture the essence of all readings that I walk through. Second, this blog will be of great help for future references. And third, my intend is to share and eventually recommend some books to other people. By starting this blog, I actually implement some of the patterns I just read about - "Reading List", "Share what you learn" and "Kindred spirits".

Now about the book... It is all about the long road that every professional should take if he is keen in improving himself and passionate about his work. If your are not familiar what apprenticeship is about, this is a hierarchy that every professional had to go through in the process of mastering a given craft in the Medieval ages. The first step where everyone starts from is being apprentice. This is the lowest level and every apprentice should improve his skills for several years before going to the second level - Journeyman. After another long period of time, when the journeyman is recognized by all the masters of his craft, he would eventually become a craftsman. In this book the craft is programming and apprentices, journeymen and craftsmen are all we - software engineers.

What is important here is that every professional at certain point in time meets common situations and problems that are well-known and the authors have found some resolutions for this issues - called patterns. I'll try to make a summary of those patterns that I've already experienced or I think that will be applicable in a given time in the future.

The first group of patterns that I find to be very common and people experience all the time are about the time when we start some new job, work in new environment with new colleagues, etc. What is important about handling these situations is to be prepared for a new challenges and knowledge. You should empty your cup, before filling it again with more water. Exposing your ignorance to your colleagues and preparing yourself for gaining additional experience is a crucial to get most of the situation. This is especially through for developers that are on their first job. By trying to make a good impression of well educated and prepared professional, they often tend to neglect that their major weakness is the lack of experience in real-life situation. And this is something that all senior colleagues can help you about.   

Another good point that authors make in their books - it is important to keep in touch with people that are recognized as good professionals. Either by attending conferences or by following their blogs - find a people that define and reveal the trends in our industry is key to keep you on the track. In addition, attending local usergroups and meeting people that work with the same technologies you do, but are outside your current working environment will give you a new perspective of what is hot and cool in software development and maybe getting useful advices about your current issues and problems you cannot solve. Answering various questions in forums or Q&A sites will help you to gain confidence and to summarize some wisdom. To go even further, reading other people's source code or practising pair programming will give you time to think how you would do different tasks and what are the challenges.

What I've already experiences a couple of times - when you realise that you've exhausted your current job position and you barely learn new things - do not hesitate to look for new opportunities. In some way - becoming a craftsman is the opposed of being an expert. Experts have worked and specialized in a particular aspect of their profession and experience lots of difficulties when have to switch to new place and professional area. Changing companies, jobs and technologies helps you broaden your professional horizon. In general, there is no use of working in a team where you are the top performer and the most skillful professional. What will drive you forward is trying to catch up with what others already know. This can be also achieved by doing little dummy projects in your free time using some new technologies.

Well, these are the points that I made for myself by reading this book. Of course, there is a whole bunch of examples, tips and tricks that you can read about. These are all things that we feel natural and intuitive, but is nice to be read all in one place to get the whole picture. If you are already interested you can find the book in Amazon (Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman) or by ISBN: 978-0596518387. 

I would be glad to read your thought, too. Happy reading!

Saturday, December 25, 2010

Hello world!

I'm professional software developer from Bulgaria. Currently, I have more than three years professional experience in programming various products and I decided it is the right time to start my personal blog.

I believe that blogging is important part of creating a successful career and I think I feel confident enough to blog from time to time about coding, software development and everything that is connected to my everyday work.

Hopefully, my writings here will be helpful for someone else. All kind of comments and remarks are more than welcome.