Tuesday, May 25, 2010
When I started out in this industry (and I'm in my fourth decade of being paid to program) there was a definite culture of rudeness within it. Smart people weren't just allowed to be rude to not-so-smart people, it was expected. Being rude to others was how you proved you were smart, whether it was with a cutting insult thought up on your feet, or with a cruel proof of just where they had gone wrong. As a group we were especially fond of insulting those who weren't developers with brilliantly disguised insults they couldn't understand, or so the theory went. Who hasn't heard someone refer to "error codes" like PEBCAK or ID-ten-T?
But over the last generation or so I've noticed a switch. I hear the chair, keyboard thing still, but only self-referentially. That is after someone has asked for help, perhaps with a starting position of "I have found a bug in Windows", and then sorted it all out and realized they were doing something wrong, they may say "well it turns out the problem was between the chair and the keyboard after all, eh?". When I interview developers for a job at my firm, I ask about working with non developers (testers, technical writers, users, project managers) and I need to see (not just be told about) respect and interest for those people and those jobs.
Now not everyone feels that way. Meredith Levinson
asks if there is a still a place for the "I'm smart, I don't need soft skills" geek pride of old. Commenters point out that speaking truth to power is important, and those who won't be rude sometimes don't do it. David Starr
talks about how to tell someone that a thoughtless habit, like always coming late to meetings, is bothering you. I would skip the praise sandwich
, but I support the idea of pointing out the consequences of something another person may have thought had none. Interestingly, Susanne Biro
points out how people who are actively interested in learning soft or social skills can still be blundering about doing very rude things, apparently unaware.
I think in the end it's not that our industry has changed much. It's that people who are just starting out in it are often a bit rude. OK, sometimes they're very rude. But as they gain technical skill, many of them also gain the ability to take others into account and to work in teams. Those people get promoted. So now, hanging out with decision makers, with people who are allowed to represent their companies in public, with people who get paid to help other people get better, I mostly meet polite and interesting geeks. The rude ones probably still exist -- I just don't run into them very often. Which group would you rather be in?
Sunday, May 23, 2010
I have quoted
Albert Einstein here before, but only one quote. Amber Naslund
has found 14 nice quotes and connects them to social media issues. I'm sure you could find a way to connect those quotes to what you work on all day, too. I'm going to spend some time thinking about "Everything that can be counted does not necessarily count; everything that
counts cannot necessarily be counted."
Friday, May 21, 2010
The C++ team gave me a heads up about a neat new initiative called Hilo. Here's a quick description:
“Hilo” is a series of articles and sample applications that show how you can
leverage the power of Windows 7, Visual Studio 2010, and Visual C++ to build
high performance, responsive rich client applications. Hilo provides both source
code and the written guidance that will help you design and develop compelling,
touch-enabled Windows applications of your own.
The articles are on MSDN - the first is there now - and the code is on Code Gallery.
I like this section from the article:
The rich user experience of Windows 7 is best accessed through a powerful,
flexible language, and that means C++: by using C++ you can access the raw power
of the APIs for Windows 7. To build the Hilo sample applications, all you need
is Visual C++ Express and the Windows SDK for Windows 7, both of which are
available as free downloads.
Hilo applications show how to design and develop an application for Windows
7. But while the code showcases the APIs for Windows 7, it is not wedded to any
particular application framework. Instead, Hilo implement a lightweight common
application layer that directly uses and highlights the APIs rather than
obscuring them. This common application layer is used to support all of the Hilo
applications. It illustrates the best practices for developing Windows
applications, and while it is not complete—it was designed simply to provide the
features needed by the Hilo applications—it does show the best practices used in
designing re-usable frameworks and can be extended to provide additional
Looking forward to reading more!
Wednesday, May 19, 2010
A colleague of mine who is not near Toronto has a client in Toronto who needs .NET developers. They would like to start out with a contract position and it could become permanent if it's a good fit for everyone. Here's the job description:
Position: Senior Programmer / Analyst
Pay: $7,500 per month contract (negotiable)
Applicant must be an expert or proficient in:
- .NET Framework / C#
- .NET Services
- Microsoft SQL Programming
Experience in the following areas would be helpful but not required:
- Visual SourceSafe
- Mechanical engineering experience
The primary responsibility is to modernize a legacy C++ distributed application. This may include a redesign and possible rearchitect of the application. The final application should be an n-tiered application. The tiers would ideally be:
- WPF/Silverlight as the presentation layer
- A business layer with business components (C#) exposed via WCF
- A data layer
Where necessary, COM components can be preserved.
Other responsibilities include:
- Move image files from file database to SQL database
- Document the application
- Handle ongoing change requests.
Someone who moved from C++ to C# but didn't forget their C++ would be perfect. They are looking for more than one person so it sounds like a fairly meaty project. This is strictly onsite work, no remote work, which is why I mentioned where they are (east of the DVP; west of Pickering.)
Anything you email to me about this I will forward to my colleague who will in turn forward it to the Toronto folks. Good luck!
Monday, May 17, 2010
Have you seen this yet? It's a letter from Leonardo da Vinci (yes, that Leonardo da Vinci) to a prospective patron. He lists fully 9 paragraphs of way cool things he can do that are relevant to the warfare of the time (portable bridges, bombing strategies, stone flingers, ways of tunnelling into places and so on) and then mentions:
10. In times of peace I believe I can give perfect satisfaction and to the
equal of any other in architecture and the composition of buildings public and
private; and in guiding water from one place to another.
11. I can carry out sculpture in marble, bronze, or clay, and also I can do
in painting whatever may be done, as well as any other, be he who he may.
Given how well he followed through on those last two (this letter was written before his most famous works) you kind of have to believe all the siege/bombardment stuff too.
The article I've linked to has an image of the actual letter - not in English of course - and some lovely commentary on what makes it a good cover letter. It's not really a resume but it sure is a job-getting device. Apparently the Duke did indeed hire him - as a painter, not a fighter. And if you'd like to see it translated into modern day geekery, I spotted that too.
Saturday, May 15, 2010
I really enjoyed the Winter Olympics this year. I could basically watch 24 hours a day if I wanted, and on a lot of channels. Typically I had a choice of 4 or 5 different broadcasts on the TV, more if I was willing to watch in French, plus all I could possibly ask for (literally every event that was happening) online. In a lot of cases I would have the online up even while I was watching live, because the online gave you details that you would have to wait for the announcers to happen to say - split times, individual stats, who got the assist and so on - and because you could rewind the online and see it again yourself instead of hoping someone else chose to replay it. And if I didn't have the TV on, people could (and did) IM me or visit my desk telling me "you have to see this shot!" and we would find the stream, find the little highlight marker in the timeline, go to that place and watch the cool thing again together. The online experience from CTV was really a big aspect of my enjoyment of the entire Olympics.
Now a case study
has been released that talks about the nuts and bolts that made it all so much fun. The headline starts "CTV Streams 6.2 Petabytes of Winter Olympics To over 3.9 Million Visitors" and that alone is astonishing. It was all built with Microsoft technologies, including Silverlight and IIS Smooth Streaming. I like this quote:
Marcovici initially expected most viewers to be interested in a few minutes of highlights and then to move on. Much to his surprise, the average Canadian viewer spent more than an hour watching Winter Olympics video content online every single day.
That means somebody must have watched just a few minutes, because I was well over the one hour mark every day. I think we were even over the one-hour-per-person-in-the-house mark. I also liked the behind the scenes video from Vancouver. It was a nice reminder of the emotions of those weeks, plus it gives props to Vertigo, who built the player.
There are also case studies about the NBC Olympic experience, the Norwegian Broadcasting Company Olympic experience, and the France Televisions experience with the Olympics and other sports. They are all built on the same base and it goes to show that effort put into place for the Olympics could be used for many other events as well. I would love to see elections dealt with this way, so I could see the press conference for my riding even if something else was happening on the "main screen" or so I could rewind a speech or show someone else an amazing moment.
Aren't these interesting times? Staying connected is gaining a whole different meaning.
Update: in July another case study was released. Check that one too.
Thursday, May 13, 2010
Stack Overflow is an amazing resource. It's a place to ask questions and get them answered, but it's a lot more than that. Like any other online community, people get to know each other and some of them start to relax and have fun. In that spirit came the question "What is, in your opinion, the most surprising, weird, strange or really "WTF"
language feature you have encountered?" with over two hundred answers. The current highest-voted answer is how C++ is fine with:
(for some array a) and it just means the same as
Tuesday, May 11, 2010
Programming is not one skill - it's a large conglomeration of skills. Some people are not very good programmers because they aren't very good at imagining their way through an algorithm. Others have great ideas and imagination, but it's painful to watch them type and they can't be bothered to learn how to use their tools (editors, etc) so they just take twice as long as everyone else to create the code. Still others are doing fine until their code does something unexpected, and then things fall apart, because they can't figure out what's going on. They step too soon, spend ages stepping through code that couldn't possibly cause the problem, then get impatient and end up skipping right past the problem. Worse, they don't seem to understand the capabilities of the debugger. I've watched people spend over 5 minutes patiently stepping into so that when they reach a particular line, they know how control reached it. Then I show them the Call Stack window and they say "oh".
I've blogged before about conditional breakpoints and tracepoints, hit counts, and so on. There is so much to the Visual Studio debugger that it is very hard to know it all. But the more you know, the better you are. And what's more, being a great debugger has more value than some of the other programming skills, because so much debugging happens at urgent times, is unexpected, and needs to be done as quickly and efficiently as possible. The difference in impact between being good and great is very large.
So how to be a better debugger? Partly, it's practice, especially practice with someone who's really good. That person can say "hey, what are you doing? Here's a way easier way to get there!" Even practice alone can motivate you to learn how to do something and get you reading the documentation or searching the web. You could buy a book, if anyone even buys books any more. You could take a debugging course, and spend a day or a week with someone who really knows every speck of this enormous tool. Of course, that costs money, travel time, and so on. Some of you will do it, and benefit from it tremendously.
But ALL of you can benefit from watching John Robbins' latest set of videos on Channel 9. It's in three parts and they total about three and a half hours. It hits the ground running and just doesn't stop. It's all using Visual Studio 2010 but the vast majority of the features he shows are in earlier versions too. I knew a lot of it (even the Go To Find box and the file opening etc) but I learned new things in the first ten minutes and continued to learn new things as they continued - both actual capabilities of the tool and interesting ways of thinking, like using hit counts on a breakpoint not to stop, but just to count how much some code gets run. I wish I could get the slides and code, but I guess some things need to be saved for the folks who actually take the course.
If you're a .NET developer, watch these videos. Now.
© Copyright 2020 Kate Gregory
Theme design by Bryan Bell
newtelligence dasBlog 2.3.9074.18820
| Page rendered at Monday, September 28, 2020 12:34:06 AM (Eastern Daylight Time, UTC-04:00)
On this page....
Pluralsight Free Trial
Click Start a FREE 10-Day trial