Thursday, December 15, 2011

Book Review: “Code complete”

imageFinally this happened. I’ve read this long book. I started reading it probably 2 years ago :). I was not reading it the whole time of course, I did it in 3 phases. For some reason, you might figure it out late 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 appropriate review. But rather few words, so here they are:

Book 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 or are covered at surface. It can be even seen that they appeared in book later. 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 book 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 axe 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.

Do I recommend this book?

Yes, but don’t read it – review it and then read only the tasty bits.

Wednesday, December 14, 2011

Book Review: “Kama Sutra for speaker”

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/

Tuesday, December 13, 2011

Just about to start with programming as first job?

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.

Sunday, December 4, 2011

Help me finish my book – need you for review

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?

My talk at #kievaltnet about NHibernate internals

Friday I’ve been in Kiev, the capital of Ukraine. At the beginning of the day me with my wife visited couple of shops to buy some special things my wife makes. And than we went to have a good sit in small restaurant till 7 PM. I had to finish up my presentation…
Recently I’ve mentioned that I will be speaking at Kiev ALT.NET. So this post is about it.

Kiev ALT.NET

Kiev ALT.NET is great group of smart people willing to learn interesting things in .net but maybe from deeper standpoint than standard .net user groups do. I’ve been having good conversations in twitter with @chaliy and once we met at UnetaPlus in Kharkiv where he invited me as speaker to the @kievaltnet. Peliminary we agreed on something about NHibernate.

The topic

I knew that I have to prepare something interesting on NHibernate. But what? There are dozen of articles on it, there are many videos available. Topic just came itself. You might know that I’ve been working with NH for long time already and that I’ve written something similar to ORM so I decided that getting some insight into NHibernate’s guts would be really interesting.

Presentation delivery

So before 7 PM I got to the Ciklum office (building on the left). Landscapes from the 20th floor are astonishing, especially at night.
image
Not sure if I was enough prepared, but at least I felt that guys were listening to me very-very attentively. Some of them twitted simultaneously (@alexbeletsky, @skalinets, @korneliuk) and had good laugh. At least I invented term “swiss breakpoint” (aka. conditional breakpoint with cross).
image
More photos can be seen on facebook’s page here of the Kiev ALT.NET group.
Also I tried to joke much, but it didn’t go as well as I expected it to, guess because of sleepless night and general tiredness. Also I spoke with accent (as per them o_O. Never thought I have any kind of accent of my native language).

Presentation itself


View more presentations from Andriy Buday.
I would like to thank all guys, who came to listen to me and other presenters. Thanks for having me at Kiev ALT.NET. It had been great time and I would like to be there once again despite reason (to speak or to listen).