Too many hobbies

Hey all, apologies for the sudden and very long break there. A number of people asked me if I was OK, falling off the face of the earth like that — thanks for your concern, I am fine, just over-busy.

Ricky Jay has a line in The Spanish Prisoner where he says that when your hobbies interfere with your work, that’s fine, but when they interfere with each other, you have a big problem. I had that terrible problem back in November and something had to give, so I stopped blogging and woodworking for a while there. The combination of a tight deadline at work, helping Mark get the next edition of Essential C# ready for later this year, and working on a series of educational videos ended up consuming all my available bandwidth for technical stuff.

A few months later, the next version of the Coverity C# analyzer is in good shape, Essential C# is down to only a few chapters yet to review, and my first series of beginner videos is not just in the can, but on the web!

Speaking of which: the nice people at O’Reilly asked me to do a series of video courses for absolute beginner C# programmers, like, never-programmed-before programmers. This was a big challenge for me, first because I’ve never done video at this kind of scale before, and second because it has been a long, long time since I was a C# beginner. I’m pretty pleased with the result though and I am now working on the next course, which will cover OOP.

Finally, I am unfortunately abandoning that series I started on graph traversal. One of the reasons why I delayed publishing the last episodes there was because I found a bug in the algorithm I was going to present, and upon further reflection, I think the algorithm I came up with is just plain wrong. I might do some more research — graph theory is not my strong suit by far — and see if I can find a correct algorithm. But for now, I’m going to let it go and pick up with other topics from my queue.

20 thoughts on “Too many hobbies

  1. I’m sure that was a fun exercise. Sometimes we get so lost in the advanced topics that I think it’s difficult to articulate the basics. It’s like trying to define words in English (for those of us who only speak it).

    Wait… are you telling me you don’t have entire series planned out before you post parts of them?! My mind is blown.

  2. Post the buggy graph traversal algorithm (maybe even have a find the bug post before explaining the bug), and let the community help you with whether it’s salvageable or not ^_^

    • It is probably an interesting bug, since it is a bug in the algorithm as opposed of one in the implementation of the algorithm.

  3. \o/ so glad to see you are back. Have to admit, I was worried for a bit – but then I noticed you were active on SO all the while 🙂

  4. Hi, just thought I’d leave a brief bit of feedback for you since you are going to be teaching “Absolute beginners” and it wasn’t too terribly long ago that is where I was.

    For me, one of the more difficult things in learning programming, was when the instructors assumed I knew or was familiar with the technical lingo that any person with more than a few months C# experience would know (or most any programming background for that matter).

    Even the most `basic` terms, depending on the beginners background, might not be understood. And if you don’t understand the terminology, any explanation that follows is meaningless! Kind of stinks, to waste an hour long session with a lot of research and preparation, because the simplest of terms were not understood…

    For example, the first day of class, the instructor said: “Methods are key components of classes you will be building”.
    1. Umm, what is a method??!
    2. What is a class??
    Instead of paying attention, I spent the next 30 minutes trying to google it and figure it out!

    Examples of simple lingo that might not be understood for absolute beginners:
    – Variables
    – Data types
    – Functions
    …..

    What helped in my personal case was when the instructor would use illustrations (preferrably non-programming ones!) to help wrap your mind around basic concepts. For example, I remember an illustration that was describing OOP, that it was like having a car…
    -The purpose of the car is to get you to a destination. He likened that to what the program is, something that helps you accomplish a task.
    -Every car is composed of some key parts, like wheels, a motor, doors, etc… These could be likened to classes. Would you make a car out of one solid piece? Of course not… Imagine how hard that would be, trying to scuplt inside and out, (and actually make it work!). It’s much easier to break it down in to different parts, similar to what classes do.
    -Is a motor one solid piece? Of course not… Again, that would be horrible to try to build! This is also made up of smaller, less dominant parts, that are working to make it turn, similar to what methods accomplish inside of the classes.
    (He made many more comparisons, but I think you get the idea!)

    This helped my comprehension greatly, and allowed me to get up to speed. To a non-programming background, helping to visualize why things existed and were needed allowed me to grasp other necessary concepts later on down the line, Something I try to do now whenever I’m assigned to train a newer team member.

    This is probably mostly information you already knew, and I certainly don’t speak for anyone but myself, but please realize that in my personal case, it made the difference between a good teacher, and someone who simply talked for an hour!
    Hope this feedback helps and best of wishes!

    • This is really good feedback; thanks for posting it.

      I anticipated your concern; there is a lot of jargon in programming and it is very easy for people who have know since they were seven years old that text is called “strings” for no good reason whatsoever to say “strings” when they mean “text” and completely confuse the newbie.

      To this end I try to identify every time I use jargon for the first time, and put up a slide defining the term.

  5. I still hope to see a series on Roslyn now that it is open source and you have dep knowledge in it as one of the authors Please make a Roslyn compiler series….

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s