My book on design patterns is released

February 15, 2012 Book Reviews, Design Patterns, Success 23 comments

Dear Reader,

I’m glad to let you know, that I released my short free e-book on design patterns.

BookCover_480

It is available on web site https://designpatterns.andriybuday.com/

As you many know early 2010 I started writing series of blog post dedicated to GoF design patterns. I tried to keep my examples of patterns very simple and in the way, that person reading example can build associations with real or close to real world situations. I also translated all of the examples into Ukrainian and then decided to assemble small e-book. And now it is available for you.

Here is some introduction in Ukrainian (I’m not translating it to English, since if you cannot read in Ukrainian there is no point).

Опис
Книга «Дизайн патерни — просто, як двері» є безплатною україномовною книгою, що містить унікальні приклади до шаблонів проектування. Завдяки своїй нестандартній подачі матеріалу вона дозволить вам легко опанувати основи розуміння дизайн патернів чи систематично і дуже швидко повторити їх перед інтерв’ю. Спосіб написання книги дозволить провести час, відведений на її прочитання, без нудьги, а подекуди навіть захоплююче.
Освіжіть у своїй пам’яті призабуті дизайн патерни!

Завантажити книгу

У декількох словах
Книгу я написав із добрими намірами. Їх у мене було декілька. Я хотів упевнитися, що сам розумію усі класичні дизайн патерни. Ресурсів для цього є досить багато, але я вирішив реалізувати ці патерни самостійно та придумати власні приклади. Таким чином, починаючи із 16 січня 2010 я писав блог пости, які так чи інакше викликали зацікавлення в читачів. Щоб цей внесок в програмування був більш чітким, в мене виникло бажання випустити невеличку книжку, яка стала б колекцією цих блог постів.

Завітайте на сайт книги: http://designpatterns.andriybuday.com/
Та не забудьте подякувати автору, поширивши посилання.


23 comments


Book Review: “Silverlight 4 in Action”

January 22, 2012 Book Reviews 2 comments

imageIn the light of Microsoft’s decision on the future of Silverlight it doesn’t sound heroic that I read "Silverlight 4 in Action" also taking into account that Pete Brown already released new edition of book for latest and last 5-th version of SL.

But I had read book couple of months ago before SL5 was released. I read it with my friends at work and it was joy.

“Silverlight 4 in Action” on Amazon

It is somewhat standard step by step tutorial on particular technology. But it provides really comprehensive look at Silverlight.

If you use this technology, book is great asset to understanding Silverlight.


2 comments


Book Review: “Drive: The Surprising Truth About What Motivates Us”

January 22, 2012 Book Reviews No comments

imageThis book is very interesting. Even it might not bring lot of eye-opening information for software developer as we are on the edge of innovations in many respects (my personal thought) it supplies us with information for deeper understanding of why we do what we do.

“Drive: The Surprising Truth About What Motivates Us” on Amazon

Indeed this books uncovers inner mechanisms of motivation gears inside of us. Some gears refuse to spin or just slip when we try to solve different problems. Sometimes we need to unpack brand new gears and install those to gain additional boost.

Book reveals evolution of motivation principles from Motivation 1.0 which is based on instincts to Motivation 2.0 which is based on stick and carrot and finally to Motivation 3.0 based on inner drive and not external factors.

Watch this video for inspiration:

RSA Animate – Drive: The surprising truth about what motivates us

Dear Reader, I would recommend this book for your leisure.



No comments


Book Review: “Steve Jobs”

January 21, 2012 Book Reviews No comments

image

An astonishing book about life of amazing man, who changed the world.

“Steve Jobs” at Amazon

Book reveals many interesting facts about his youth, his addiction to the excellence of things, his contradictions and way he dealt with people.

For me reading this book was extremely enjoyable. I never thought that biography can be so much gripping and thought-provoking.

The more I think about the kick-off reason for him being so much great person the more I’m about to conclude that he attained success by constantly feeling that something is wrong with himself, and feeling the lack of something big in time when he was kid and youth. We know he was adopted son and he sought for wisdom in buddhism, and he took drugs and had other strange behavior. His strong self-confidence in his superior status allowed him to do stuff many would be scared to step into. His Reality Distortion Field allowed people do things they would never do.

From this book I got insight into what it means to be different, to live different, to think different and to build different world by your own acts.

Book is inspiring, provoking to think about world perception and business in deeper and more philosophical way.

Dear Reader, I would highly recommend you to read this book.



No comments


Where Do You Want to Be In a Year?

January 21, 2012 Success, YearPlanReport 7 comments

Dear Reader,
This is continuation of my year plan/report thread. I had similar plan for 2010 and for 2011. Completion of 2010 list was almost 100% successful, and completion of 2011 was much difficult and not so successful, but 2011 brought many life turning events and decisions.
I’m frustrated to admit that my head doesn’t carry this phrase all the time:
Remember, life is limited in time, so if I don’t move in the right direction I will waste it entirely. 
Here below is my resolution list for 2012
  1. Buy a car in Europe (some used German car)
  2. Travel though major cities in Austria (Vienna, Salzburg, Linz, Graz, Innsbruck, Bregenz, Eisenstadt, Klagenfurt)
  3. Sport activities (have two-three summer hikes into the Alps & ski in the Alps)
  4. Learn German for at A2 level (which is elementary)
  5. Improve English and rich C1 level (which is advanced)
  6. Show kick-ass performance at work
  7. Get promotion (or get clear idea on career opportunities, if not possible)
  8. In Vienna find local .net community (user group, whatsoever) and join
  9. Visit TechEd Europe or NDC2012 (if possible because of budged considerations)
  10. Have new friends in Austria, who share same opinions
  11. Write couple of WP7 applications and post them to marketplace
  12. Write couple of Win8Metro applications for fun
  13. Release “Design Patterns” Book – I have 1 month to do so
  14. Read 15 books (see my LinkedIn reading list)
  15. Learn programming language(s). I will start with “7 languages in 7 weeks” and then pick up one for deeper insight (not compulsory from book)
  16. Discipline myself to get up at some certain time
  17. Have more public visibility and community impact – my way to MVP
My next annual report should contain evidence in facts to prove completion of above resolution. This resolution is bit smaller than 2011’s one, but as reality shows it should be more achievable because of this.
Please share your year resolution list! I will read with pleasure.


7 comments


What I have done in 2011

January 12, 2012 Revision of my activity, Success, YearPlanReport 1 comment

Looking back at my “Where do you want to be in a year?” blog post for the Jan 9, 2011, I regret that I did not do many things I planned, but I’m also proud about many things I did, because many of them are not small ones, but rather life changing, like marriage and moving to other country.

Overview of 2011

At the beginning of the year I continued passing my MS exams, which seemed somewhat important and very valuable for me at that moment, also I enjoyed end of winter spending many days at skiing hills in mountains. Near that time me with girlfriend decided to let our parents know our decision about future marriage in summer. They started to be in rush, but not me – at the beginning of sprint I had been thinking more about choosing my first car, which I successfully bought for 7000$. It is used Chevrolet Aveo 2005 of fully equipped, except it has manual transmission. At the day I bought car I did not have place to live in Lviv – me with best friend where looking for new apartment to rent, because of crazy and alcoholic owner of apartment, we rented before.
My blog did not go well previous year. There are couple of months without blog posts. One of them is July. It was very hot month – I got married on 16th of July and while still having vacation we went to Europe trip to see Hungary, Austria and Switzerland the most.
Besides of Europe trip we with my wife visited really many places in Western Ukraine. Now we had car, so travelling was more quick and spontaneous. 
By coincidence I was asked if I’m not interested to pass interview and relocate to other country just before my marriage. It went well and I was asked for other interview which by great coincidence was on-site in Austria when I was there with my wife. She was admiring Belvedere in Vienna, while I had my 1,5 hour interview. So in August I got an offer and accepted it. But as it is relocation to other country it involves lot of paper work to get work permit there, and took almost half a year to get approval.
This year also brought more responsibility for me at work, I had much of Technical Leader responsibilities & activities. I think that I worked in the most amazing and truly collaborative team from all of those I had chance to work in. We worked on WP7 project and challenging Silverlight project. I left those guys just before the winter, hoping to have few weeks of rest before final approval and relocation to Austria.
Before the New Year of 2011 I didn’t get approval so my “vacation” took longer, but I spent it reading a lot, sleeping even more, doing some pet coding and getting extremely lazy. To summarize: you won’t enjoy being unemployed for longer than month, not because of the money, but because of lacking social relations and absence of external challenges.

Was 2011 going according to my year plan?

See plan here.
– Release awesome free Design Patterns book in Ukrainian
I failed to do this in 2011, but I composed book, sent it to people willing to review its raw unedited version. As for now I have 5 our 25 responses on book. I’m going to create small web site for book and publish it there.
– Enterprise certification (finishing with 565 exam, very likely till the end of Winter)
I passed exam and got MCPD: Enterprise Application Developer at the beginning of the year.
– Learn to ski & swim well (I can both, but I want to be good at that)
I’m now above intermediate in skiing, but this is subjective view. Fact is that I can handle most difficult hills in Ukraine, like trostian on picture below and “black” trails in bukovel, can do basic ski-jumps and ski backwards.
image
As of swimming I did complete fail as I’ve been in water only 2 times during the year.
– Show kick-ass performance at work
I did not get official promotion, but I played role of Technical Leader, coded a lot and tried to show best of myself. I think I did great and could have done even better. Leaving this job was not an easy thing to do. I think SS is great Ukrainian company.
– Learn WP7 and Silverlight
Whole year I did coding for WP7 and out of browser application in Silverlight. Also with my friends won at Hackathon event, where we created small game for the WP7.
image
I also introduced weekly discussions around reading “Silverlight in Action” in my team.
– Start working on some “real” book (just collecting ideas on book)
As of now I don’t have any clear idea on “real” book. But the more I think on this matter the more I’m close to something on the edge of technology and people collaboration.
– Read 24 books (this year I will definitely hit this score)
Let’s count: 5 in reviews on blog, 4 more read, but no posts on blog yet. And also 5 in progress, 4 of which are almost read. (I tried hard to read as much as I can before New Year and that lead to 5 in progress).
In total it looks like not more that 13 books, which is even less than previous year report (15). Seems one book a month is my pace.
“Take quick look behind to analyze, don’t stop, think positively, go forward!” – I said to myself on this subject.
– Marriage (yeah, this really is in the list “OMG” I’m saying to myself…)
It is one of the things I’m proud about. Despite this world’s shifted mind I think that two can get married in their twenties and be happy for many years. I was really surprised by marriage statistics in Western countries. For example this statistics show that less people are getting married and along more are getting divorced. And this shows that my country is also at the top of divorce list. Too much about that crap.
Here we are:
image
And here are more of those photos at Picasa:
Wedding-Preview-900px-2
I’m extremely glad that I have so cute and smart wife. Just after marriage we travelled even more than before it. We have been enjoying each moment of being together.
Before I left work, we had been living in separate apartment not far from my friend and team-mate. Each day she prepared awesome breakfast and lunch to take to work. Then I picked up Taras and drove to work. It was routine, but it was great.
– Travel abroad (I’m planning for Europe tourist tour)
I had awesome week travelling though Europe after my wedding. See photos:
2011.07.23-29.Europe.Trip.Honey.Week
– Learn one more programming language (probably everyone heard about learning one language per year, why not?)
I read bits about Haskell and tried F#, but I’m not satisfied with my progress. So will have another try in 2012.
– Frequent dev meetings (this is hard, because preparing takes lot of time for me)
I did probably very few so called “developer’s meetings”, one of which was even paid. Despite this I introduced technical status meeting for my team in addition to scrum standup.
Karpaty alpinism (again health stuff, want to do this with my girlfriend)
We took Hoverla – the highest mountain in Ukraine:
image
Read complete story and see photos at my wife’s blog here.
We also been on hard Pikyj, read here and more enjoying Lopata (read here).
– Became known presenter (couple of outside the company presentations)
– English (watch films, find guys to talk in English)
For anything of video I watched myself I preferred English. Which of course didn’t work for cinema where I go with wife and friends. Also I had to watch amazing “The Big Bang Theory” translated, but some series watched with pleasure in English.
And what is funny now I’m learning German :).
– Start coffee-and-code in Lviv
Fail. I thought about this many times and always lacked confidence in my social skills to do this. Probably it can be as easy as mentioning on blog and in twitter something like “Hey, guys! Tomorrow I will be in the XYZ coffee shop doing some coding. Come along and join.”
– Write couple of personal-small programming projects / contribute to open-source
Not much here – dozen of try-it-out projects, small open-source orm system CustomORM, wp7 project we wrote at Hackathon and maybe 3 wp7 i-started-it-and-left projects, ah and few competition type projects at TopCoder.
– Visit one of the solid conferences
I visited couple of conferences like Uneta Plus and Mobile Professional Days in Kharkiv, and of course many events here in Lviv like LvivIT and regular Lviv User Group events.
– Get money machine / some ideas / investments / whatever
I haven’t invented anything better than deposit accounts, which now don’t work that good as if they worked in 2009 while crisis. Month interest income is enough for one full tank of my car, which usually runs out in 1-1,5 weeks.
– Start some business even small and crappy – but have it to learn
Fail. And even more – complete fail. I didn’t even think about this much. But from other point of view, there must be something exciting me to start with and I haven’t found anything like this. At least I’m happy that I will be eligible to have wp7 developer account in Austria.
Became better-and-better in planning and achieving, continue growing, etc, etc…
Subjective. Isn’t it? I think I did great with this one, but you decide. I move into embrace of 2012 year which will definitely bring me lot of nice surprises, emotions and great time.


1 comment


Book Review: “Code complete”

December 15, 2011 Book Reviews No comments

imageFinally this happened and I’ve read this long book. I started reading it probably 2 years ago :). I was not reading it all 2 years of course, I did it in 3 phases. For some reason (you can figure it out later in this post) I dropped it few times.
As “Code Complete” goes very long, I’m not sure I will be capable to write in any way corresponding review. But rather few words, so here they are:
“Code Complete” was intended to be comprehensive software development reference handbook with accent on construction. And indeed it was such kind of book maybe 10 or more years ago. I think that this book is bit outdated. Even with publishing 2cond edition contemporary trends are not included, rather they are are covered at surface. It can be even seen that they appeared later in the book. But we can look at this from positive perspective – which is learning how was programming when you dad was in charge :). In some places it was boring to read too-long and too much detailed explanations to obvious things. For example such trivial construction thing as loop was discussed in 20 pages long chapter. How many books do you know that observe loop from all possible viewpoints? Title of the book talks for itself.
Nevertheless “Code Complete” is full of examples and dozen of very interesting facts about software. In any way it was enjoyable to read brilliant metaphors, astonishing facts, discover new in known old. If you sharpening your skills and on your way of software craftsman “Code complete” has lot of advices for you, with references to hundreds of other books. In fact author worked hard to gather all information and create this masterpiece, and I’m really sorry that reality of software industry slightly kicks this book out of the shelf because of new technologies and new approaches to building software.
Do I recommend this book?
Yes, but don’t read it – review it and then read only the tasty bits.


No comments


Book Review: “Kama Sutra for speaker”

December 14, 2011 Book Reviews No comments

imageYeap what a gripping title for the book! It is in Russian originally and it talks about speaker skills, while comparing them to lover skills.

Time to time I deliver some speeches to local user group or at some events. I used to do this a lot inside of the company. After I talked about NHibernate at Kiev ALT.NET, I decided that it’s time to read some comprehensive thoughts from people who speak proficiently. So I took this book.

I cannot rate this book or say it is good or bad, because it is first book I read about speaking. Book is very simple, easy to read and rather short one. It compares giving public speech to the sex. Speaker has to be “man” in connection between him and audience. Also book provides you with lot of exact and specific tips on how to resolve particular presentation issues, such as nervous trembling, parasitic words, gesticulation, etc…

Despite that occasionally I thought some of the things written ridiculously, I enjoyed reading very much and found many advices I’m going to use next time speaking for you.

You might want to go and visit Author’s web site: http://www.radislavgandapas.com/


No comments


Just about to start with programming as first job?

December 12, 2011 Career 3 comments

Recently I’ve got e-mail from guy, looking for some advice. At glance it sounds like he is worrying about finding his first job as software developer and willing to get some hints/advices.

First of all I would like to thank very much to those people who read my blog posts and who comment or send me e-mails. This is the best feedback I can get and it is the only true measurement of blog’s success.

So, I’ve got this well-written e-mail from student (I guess):

Hi Andriy,

Hope you are doing well. My name is Wes, I just read your articles, I have to say, I am your fan now.. Guys like you make a difference.

I am writing to you because I have the similar passion for programming as you, and that is why I went for my bachelors in Software Engineering, and while in school, I learned many languages like C, C++, Java, VB.NET and ASP.NET.

Out of all, .NET excites me the most. But now when I am about to graduate, I dont really feel good about my programming skills, and getting a job.. The best I have done in VB is made a calculator, made connections to the database, and executed some queries.

What I want from you, is some tips about what my approach should be at this point AND are their any sample projects that you recommend I should do, that will help me learn more and expose me to different sides of the programming world..

I would highly appreciate, if you write back, and I am sure you will.

Thanks – and good luck with your career!

Cheers!

Wes

I’m replying publicly, so I can share with other’s who have similar questions. Wes is not mentioning his last name so you won’t identify him :). Anyway I think that this e-mail is good one and it raises good questions. Starting from now “you” means either Wes or any other starting programming guy looking for some advices.

First of all seeking for personal improvement is great step towards it. I think that once you have clear goal and passion about it you won’t waste your time and life.

I just came across small e-book where found great answer for you from Karl Seguin:

“… If you’re willing to take the time and try it out, you will see the progress. Pick a simple project for yourself and spend a weekend building it using new tools and principles (just pick one or two at a time). Most importantly, if you aren’t having fun, don’t do it. And if you have the opportunity to learn from a mentor or a project, take it – even if you learn more from the mistakes than the successes.”

So I will expend this thought a little bit further.

You would need to write many projects – the more the better. Keep your hands dirty and work with the code, every other day you should feel that code, you wrote yesterday is crap and you can write it better today. If you are still student in Software Engineering be sure that you are fulfilling you time with programming. If you feel that learning courses are not supplying enough tasks for you, just create them for yourself.

I know that when being a student it is very interesting to take part in some sport programming competitions. So do it. You can also take part in some online competitions like Algorithm competitions at TopCoder. Those can be for your gym.

Definitely you need big projects to work on as well. These projects should take from couple days to couple of weeks. Write your own “paint”, not comprehensive one, but at least with basic functionality. Write your own money accounting system with your database, so you learn all basics of data access. You then can change data access from simple ADO.NET to ORM (try Entity Framework or NHibernate), you then can try to explore non-relational databases, like NoSQL. Do some web programming, if you did ASP.NET you can explore MVC ASP.NET. Explore mobile development by just writing same simple calculator for Windows Phone 7. You will get familiar with some Silverlight/XAML. If you are excited about .NET make sure you know C# (personally I cannot understand why Microsoft promotes VB that much, trend is C#).

Find your peers interested in programming. Learn programming in fun way, enjoy it.

Whatever you do, make sure that google in your force.

You will need to learn continuously. Read many books, but know that human forgets 90% of things heard, 60% seen & only 10% of things done. So if you read, but not try things read your time can be wasted. I have another blog post where I propose some tips on how to become successful developer, read those.

As of job. Ask older peers what are opportunities in your location. Visit software companies near you, ask them if they have some learning courses, which skills are in demand for that company. I ensure you, this is not as much difficult as you might be expecting. Also here is my article about career plan for software engineer. Probably it is too early for you to think deeply about career before you actually started as developer, but at least make sure you know how your future job might look like.

So key things:

  • Always do some programming accordingly to trends and your mood
  • Continuously learn
  • Know local companies, trends and demands

Hope I have been of some help for you, Wes and Dear Reader.


3 comments


Help me finish my book – need you for review

December 4, 2011 My book 30 comments

I have skeleton of my book ready and flesh is also there, help me get some good looking skin for it.

I need volunteers to read my book or parts of it (in Ukrainian) and provide me with some valuable feedback.

Any feedback will be taken into consideration, until it doesn’t break the whole idea of book (short easy associative examples with code to each pattern).

Also I would need to have your word that you will not distribute book before I officially do this on my blog.

Any volunteer willing to help will be mentioned in book of course.

image

Cover of my book. If picture in the middle looks ugly to you, please know it is me who draw that over 10 years ago and no way you can copy it.

Any volunteers?


30 comments