Joe Stump, the lead architect for Digg, makes a comment that really bugs me, while another is positive, in a recent "my life as a programmer post" (that's the Google cached version... ironically Digg has overwhelmed his own server):
More
practical advice is that you should learn to know and love design
patterns and avoid GUI’s. I have a real problem with people who say
they know SQL because they’re well versed with an ORM or a DB’s GUI. Go
back and read up on relational algebra and SQL92 before you say you
know SQL okay?I’ll probably get flamed for this, but I think people
should learn a single environment in and out and stick with it. This
might mean you learn Microsoft’s technologies in and out or Cocoa or
LAMP. You simply can’t be an expert in an area of computers without
picking a single environment and sticking with it.
On
one hand, I give him credit for his comment that you should get to know
a particular platform inside and out. Extra +1 for not flaming
Microsoft's platform.
I do not, on the other hand, agree with the
notion that GUI tools are bad. I thought this stigma went away with VB6
(which I suppose is largely responsible for it), but come on man...
there are some tight tools out there and they make it a lot more fun
and efficient to write code. Using them does not equate to not
understanding what's going on under the covers.
In order to make some room for my own, more current books, and try to
free up more space for Diana, I've been going through my old books and
making a stack to ditch or give away. Computer books get so hopelessly
useless over time. I came across one book, though, that I've decided to
keep, just for nostalgia...

This is arguably the book that started it all. I got it in 1999, when I was ready to up the game for Guide to The Point (now PointBuzz).
I wanted to write my own forum app and do some database driven news
stuff. And that's what I did, with a combination of Microsoft
FrontPage, an Access database and a Web hosting account that cost
nearly fifty bucks a month.
The edges of the book are all frayed,
the laminate on the cover is peeling off, the side is just dirty and
the spine is well worn. There were PostIt notes on the pages for the
recordset object and for stored procedures.
That book was the
genesis for the entire lot of professional change for me. ASP was an
absolutely horrible platform, but it was fairly easy to learn. It seems
like the dark ages, but it was entirely new to me. Those were exciting
times.
Anyone who does a bit AJAXy goodness knows that it's nice and easy to transport simple objects and arrays back and forth to your server as JSON pieces. And hey, if you're doing it right, trying not to be uber chatty and keep it all zippy, you probably aren't doing anything that complex in terms of the objects you're shuttling around.
So why, oh why, would Microsoft mark JavaScriptSerializer as obsolete? The suggested "replacement" is a lot more convoluted: DataContractJsonSerializer. It doesn't even have a good name. What do contracts have to do with me wanting to just turn an array of strings into, well, an array of strings?
Scott Guthrie mentioned in a comment to a blog post of his last year that he was going to try and find out why, and petition for it not to be made obsolete, but I couldn't find any resolution beyond that. All I can say is that two lines that do something productive make a lot more sense than creating stream objects and doing a bunch of other work, and I'd rather not have to add such a thing to my own library code.
Yikes, check out the comments following Jesse Ezell's post about tinkering with the iPhone SDK. That's a little tough to read. I'm happy to admit I'm an Apple fan, with a Mac Pro, MacBook Pro, two iPods, an iPhone and an AppleTV. They've got me. Heck, my two-year-old MBP is randomly shutting off and I find myself apologizing for Apple.
But what is with these asshole zealots? I didn't find anything particularly lazy or wrong with Jesse's post at all. I'm a .NET dev too, and have been since the beta days, which makes it the bulk of my career as a code monkey. Learning anything but Java would be a bit of an adjustment for me. So if I were to make a similar endeavor, I'd probably have many of the same concerns. And if the people in the know would call me names and tell I'm stupid, well, that doesn't exactly make me want to jump in and take hold.
I mean, you've got some guy going on about how Intellisense is a trademark. Yeah, no kidding, but who cares? It's a good idea, and one that has been immitated on other platforms. Anyone used to it knows that it makes coding faster and saves trips to the documentation, and sometimes even leads you to class library features you didn't know about. Responding with, "just learn it" is not the way to advocate the platform.
I love this big shiny aluminum quad box next to my monitor, but why is it that the developer "community" associated with it is so toxic? Help the brother out, don't kick him in the nuts.
As of today, I'm officially not employed. The last two and a half years have been an interesting time for me in terms of my professional development, and it's a very appropriate time to close that chapter.
I know that I've told the story before, but here's a recap. Back in 2005, I was having a very strange year in terms of my personal life. My ASP.NET book was released, I was doing consulting work, coaching high school volleyball, and feeling as though I was hitting a plateau in terms of my own programming skills. More to the point, I was bored.
So in 2006, I went back to work on a full-time basis. What sold me was the interview itself. I could tell that the guys I'd work with were a lot smarter than me, and there was a lot to learn. Unlike the consulting work I had been doing, there were plenty of people to turn to when you didn't feel confident that you had good solutions to the problems you faced. That's the kind of mentoring you wish for.
Culturally, I did have a hard time fitting in at times, in retrospect because there are only so many people you need attacking the bigger issues and being responsible for bigger solutions. I was OK with that most of the time, provided I was still learning and getting better at what I did. I have a strong need to feel as though I'm a part of the bigger picture, I guess because it's what I'm used to in my earlier jobs and my personal projects.
It was just in the last two weeks that I think really started to understand that. Several things happened that made me realize it was time to move on (even though ultimately the choice was made for me). The first thing was my trip to interview with Microsoft in Redmond. It doesn't matter that they didn't offer me a job, because it was a wake up call that reminded me I had options. The second thing was the assignment to a project where I'd be batting clean up, because it was the kind of project I'd endeavored in countless times before in my own work or other jobs. That led me to believe that perhaps my opportunities for learning were decreasing in number. And the third thing that happened, was an e-mail message from a co-worker, who thanked me for helping him on one of his projects. He thanked me for beign patient and working through his issues. As much as I think I try to not rely on external validation, I can't deny that made me feel good.
Collectively, I've come to understand that it was time for something else. I have no idea what that else is, and honestly, this being Jeff Putz week (tomorrow is my birthday), I don't even care to think about it at the moment. For now I want to relax and reflect on the great experiences I had, the friendships, the 1337 code I wrote and the fact that I can get up whenever I feel like it tomorrow!
When I started the job, I got into the habit of bringing my Wired magazines to work, to take to read at lunch or whatever. Over time, they started to stack up. The stack got to 30 issues high. It was a pretty good run.
Bill Gates is just about done at
Microsoft. I feel very fortunate just have been in the same room when
he did the keynote at Mix06. I don't think the guy is evil in any way.
I think he's f'ing brilliant, and he deserves every bit of his success.
He's not always right, but he's a smart guy.
I really dig this quote from this interview:
I
mean, that's the greatest surprise to me of all in my whole business
career is that you find people who are so good at one thing, and where
the principles and models and approaches in that and in the other area
are actually very similar, very similar, and yet they're very poor at
the one and just beyond brilliant at the other.
I've
seen this very phenomenon countless times, and in terms of technology,
I think it's the thing that at the root of so much technological
failure. I would even theorize that it's the reason some of the "best"
people I've worked with were not academically rooted in computer
science, but came from a broader set of experiences. It's staggering
how many brilliant code monkeys don't get even the most basic marketing
principles.
It'll be interesting to see how the culture at
Microsoft evolves post-Gates. I think it has already been changing for
the better, just in the last five years that I've had exposure to the
company. Regardless, you have to admire someone who started by taking a
serious risk like dropping out of school and going on to lead one of
the biggest, and arguably most influential, companies in the world.
It's strange how a number of different posts on my blog get comments practically every day. The big ones have to do with the
failure of US education, my HP laptop from four years ago with the
broken power jack, Xbox Live support sucking and the entire
app/page/control event cycle based on pre-beta ASP.NET v2. A new one
has become my post on my experience interviewing at Microsoft.
The
comments on that post were thin, but I'm staggered by the number of
e-mail messages I get. They come from random strangers, people who work
there now and probably know the people I interviewed with, and
surprisingly, a ton of people who had a similar experience, turned off
by the company as a whole. As I said in that last post, that's still
something I wasn't prepared for.
I also wasn't prepared for the,
"Dude, you should come work on our team," messages. Ha! If only it were
up to those people, right? The thing is, if I were approached again by
someone at Microsoft, I'd make damn sure that the job was right for me.
That's a luxury that I think a lot of people don't get used to when
they get to a point of more senior experience. I never really realized
it until I got my current job and left the consulting nonsense behind.
An interview isn't just you being evaluated by the company, you're
evaluating the company as well.
So would I work at Microsoft if I had the opportunity? Yes, I think I would, but I've developed a better sense of what I
need first. The list starts with having a better opportunity for
professional development than I have at Insurance.com. I feel like
they're finally getting me into projects and discussions that fit well
with my skill and desires. Other companies have to compete with that if
they feel I'm worth it.
Second, the position has to be right. My
greatest interest remains in the ASP.NET area. It's what I know best,
it's what I care about most. I really like the idea of being a PM,
especially the opportunity to share your new goodies at conferences.
I'm not sure if I'm smart enough to be a programmer, but my opinion may
change as I continue to look at the .NET source code.
Third, the
people who will interview me need to know what I'm about to some degree
before I get there. I could tell that one of the guys I talked to last
time had never looked at my resume prior to me sitting down in front of
him, and frankly that pissed me off and I thought it was disrespectful
(but hey, thanks for the 4,000 free OnePass miles).
I think it
was that last part that really irked me when they came back with the
stock "different direction" response. It's like, OK, you asked me one
of your logic questions, then you guys gave me a bunch of absurdly
abstract "what ifs" that were not particularly actionable. I was in a
meeting last week talking about some pretty interesting stuff that we
were planning, and my mind wandered back to Building 42 where I
realized that no one had the slightest idea about the kinds of things I
was doing today. That seems like a massive failure on their part.
I'm
not the super-utility know-it-all type. I realize that, and I'm OK with
it. But I do learn what I need to when the gig is something I'm
interested in. The hard part about working for other people is that
there is a certain level of burden placed on them to best utilize your
skills, and you have only so much control in helping them connect the
dots.
I don't know if this kind of brain dump is good for me
professionally, or if it burns bridges, but I believe that honesty and
a willingness to be open are essential to all relationships, even
professional, as they facilitate expectation management. Let's face it,
that's the foundation for successful software development too.
It's bad enough that I can't use my real name on Xbox Live, but I can't even do it trying to sign up for the XNA Creators Club. And I'm sure there's no human being who would respond to, and act, to fix it. Believe me, I've tried.
You'd think my last name wouldn't be banned now that there is a baseball player, in Seattle no less, who shares the cursed name.
Tyler posted a link to a blog post about someone preferring a text editor over an integrated development environment (IDE). Naturally, my first thought is, wow, who thinks like this?
My
first real exposure to development work was with the old ASP, which was
frankly a shitty scripting language. You could use Notepad, FrontPage
or a stone tablet to "develop" scripts. And why the heck not? You ran
the page and it either worked or it didn't.
In 2001 I got into
the .NET beta thing pretty early, along with the new Visual Studio. I
think the visual stuff in the app to this day came along to pacify the
old VB6 crowd, but I don't know of anyone doing serious development
using the visual tools. I've always been one to peck out the markup and
C# in text.
And boy, that Intellisense is worth the price of
admission. Type "<asp:h" and then tab and you've got yourself a
Hyperlink control. Type "i" then tab and you've got ID=". In the C#
side of things, "pub-tab-vo-tab" gets you to public void.
Now add
in ReSharper, and I'm doing things like Ctrl-F to format code, optimize
using statements and namespace references, ditch redundancies (like
using "this" in a class when you don't have to), etc. Or highlight some
private members, Ctrl-Ins and get public accessors generated for me. Or
select and choose extract method, and just like that I have a logical
piece of code broken out into its own method with the right parameters.
Visual
Studio doesn't get you off the hook for knowing how to design software,
but it does free you of the burden of knowing every class name in the
framework or dealing with mundane syntax issues. That's empowering and
saves time, and best of all, allows you to concentrate on solving
actual problems.
To that extent, I think Microsoft has done a
pretty terrible job in marketing that ability outside of the core
people who already know. When you read a blog post like that one, you
can only wonder what they'd think if they saw you working with VS. It's
far from perfect, but it makes my life crazy easier.
The best $199 you'll ever spend if you use Visual Studio...
http://www.jetbrains.com/resharper/
More Posts
Next page »