The Passionate Programmer: Creating a Remarkable Career in Software Development

This a book full of good advices: “The Passionate Programmer: Creating a Remarkable Career in Software Development”

Chad Fowler (former Jazzman), gives a lot of little simple advices. Concrete examples that you can do daily to create a remarkable career. This is clearly a book for passionate programmer, but you could guess that from the title.

I personally do not agree with every proposed solution, but most of them are interesting enough. My main problem is that if you follow every advice in the book, you have to be single and forget all other activities but IT.

Still, if you pick the most pertinent advices for you, there are a lot of “good professional practices”. Here are the most pertinent for me:

– Find a mentor to improve

– Learn to teach what you learn

– Keep being up to date with your favorite’s technologies

– Do not put all your eggs in one basket (learn different languages)

– Understand the domain you are working for (DDD is in the place…)

– Invest some times in differents User groups and Meetups (JUG/MUG/Mix-it and so on)

– And the most important: learn to say no

In conclusion, this is an excellent book. Easy and quick to read. Of course you need to nuance some advices. I think it is not very hard to be successful if you work 18h per day 7 day on 7. Work is only a part of the life, even if you find it important. The difficulty is to be successful enough and keep a social interesting life.

Anyway this is the kind of reading that gives you the good ideas you always feel, but you do not know how to put it in practice. The experience of a successful programmer and how he manage to do it is always interesting.

 

 

The .NET craftsman toolbox

 

A good craftsman should use the good tools to achieve quality software development. I would like to share with you the few tools that really change my way to work (one could say that change my life) for my .Net projects.

 

logo_resharper.gif

 

Resharper

I am pretty sure you already know it. If you don’t, go and download it http://www.jetbrains.com/resharper/, at least to try it a few months. If you have to use only one tool, this is THE one. I’ll try to describe the main advantages for me, but I will probably miss a few:

–        Continuous code inspection (no need to compile to see syntax errors)

–        Help in refactoring (rename, change arguments order or number…)

–        Unused variable and unused namespaces check

–        Visibility optimization (warn you if you have a public function that could be protected or private)

–        Policy check (following rules that you can customize for each project, can be combined with stylecop)

–        Automatic namespace check (based on your folder names)

–        Linq conversion of your loop (pretty cool to learn how to use effectively Linq)

Basically, you will see resharper underlines some stuff in your code. You will use a shortcut to see what it proposes to resolve the problem, and you will use it to resolve the problem. So in the end you will type some code, use alt+enter to improve it, and type some more code.

Be careful it becomes very quickly a habit. Last time gmail underlines a word in the email I was typing, I try alt+enter to fix it.

Anyway, just use it. Yes, it costs some money and you need a SSD to use it without too much latency. Buy the license and a SSD, it worth it anyway. And if your company does not want to buy your team SSDs and other licenses than Visual Studio, Just leave it. And find some place where they trust their development team. And where they use Resharper.

Believe me, after a few months, you will wondering how you have ever lived without it.

 

ncrunchTitle.png

NCrunch

Ncrunch is an automated concurrent testing tool for Visual Studio. It seems to me that it is really less known than Resharper. It is a shame because it is as useful as Resharper, and because the concept of infinite testing is well known in the Java Community. And it actually does more than infinite testing. So, what does NCrunch allow?

–        It automatically runs all impacted tests when you modify a line of code (this is infinite test, and this is really awesome when your are doing TDD)

–        It displays real-time code coverage (so you can see in green a loc used by a correct test, in red a loc used by a failing test, and in white a loc not covered by any tests)

–        It highlights slow-running lines of code

Yeah, I hear you again “but it costs money and I need an SSD”. Do you think that a formula 1 champion could win any competition in a Renault Twingo? To be more productive, you need good tools. Good tools could cost money. And it should not be a problem because they will earn you more than their cost.

 

unnamed.png

NFluent

NFluent allows you to produce fluent assertion for your .NET unit testing. What’s a fluent assertion? Well, if you could write:

Check.That(foo).IsNotInstanceOf<int>();

It is more fluent than

Assert.IsNotInstanceOfType(foo, typeof(int));

And we craftsmen really like to write fluent code.
I will add that Nfluent is free, compatible with MSTests, Nunit, Xunit and Specflow, and developed by some awesome French craftsmen. Now you have no excuse to not use it.

 

visual-studio-2013-logo.png

TFS build notification

It allows you to know when your coworkers push something on the TFS source control. Convenient isn’t it? It is even better to know in real time if the build is broken or not, without starting any browser or browsing through visual studio. You have a little popup each time a build is done on the server. It is simple and include in visual studio, but I often see teams that doesn’t know it exists.

Of course it is usefull only if you are using TFS.

 

I hope these 4 tools will be as useful for you as there are for me. And what about your toolbox? Do you have any recommendation about other good tools to help me to be more productive as a software craftsman?

 

 

 

 

A fresh blog on my journey

Long_Journey_Ahead_by_Abfc

Back to early 2012, I started to write a blog. I came to this decision after reading The Passionate Programmer of Chad Fowler.

I like to share my thoughts on software craftsmanship, but I believe I miss a few opportunities to share with people speaking English. However I have a big problem, this is pretty hard for me to explain clearly my thoughts in English.

Hopefully, one of my favorite mantra is: “if you find it hard, do it often”. And I have two things in my current todo list: improve my English skill, and improve my blog design. So here I am, starting a new blog, I will try to write here only in English, and to design it to be (a bit) less ugly.

My name is Emilien Pecoul, welcome in my journey into software cratfsmanship.

 

 

 
IP Blocking Protection is enabled by IP Address Blocker from LionScripts.com.