Mark Freedman’s Blog |
|
|
Productivity through technology, and other related topics.
|
Ready for another code camp? Well, we can never have too much free learning (what we in the tech field call “fun”), so reserve Saturday, March 6, 2010 to attend the 4th (somewhat) annual NYC Code Camp, from 8:00 AM until 6:30 PM! It will take place at the Manhattan Microsoft office on 6th Avenue, across the street from Radio City Music Hall.
There is no city in the world with the energy and the promise of opportunity than Manhattan, so we welcome everyone in the area to join us for the buzz such an event in our great city offers.
The call for speakers is open until February 5th, and we’d love for you to submit your sessions, whether you’re looking to speak for the first time, or you’re an old pro. Remember – this is an event by the community, for the community!
To apply for a speaking slot, first please register as a speaker here: http://tinyurl.com/nycspeaker
Then with the email address you registered with on our speaker page, please add as many abstracts as you’d like here: http://tinyurl.com/nycsession
Submit on anything you like in the .NET space. There is no central “theme” to our Code Camp except to focus on topics related to .NET development.
Speakers – although we can’t afford to pay any T & E, we’ll have plenty of pizza and soda, and other fun stuff just for you!
I can’t wait for this. If you’re wondering why I’m diving into this shortly after running the Fairfield / Westchester Code Camp, it’s because I’m a glutton for learning opportunities, and I’m proud to be on the organizing committee once again for the NYC Code Camp as well.
On Saturday, November 7, 2009, we held the third annual Fairfield / Westchester Code Camp, and I have so many people to thank again this year…
Attendees
You helped make this a great day of learning and connecting with our peers. Although I was only able to witness a few minutes of the actual sessions, I could feel the energy and education happening all around.


Speakers
I want to especially thank you (including our very own Leo Junquera, who had to fill in at the last minute for one of the speakers who fell ill). Without all of you, there are no code camps. Your contribution to the community is extremely generous, and I know that everyone who attended and everyone who helped organize it deeply appreciate it. Thanks so much, Peter Laudati, David Douglass, Milan Negovan, Edwin Ames, Sunil Kadimdiwan, Dmitry Lyalin, Shrenik Jhaveri, Ivan Krivyakov, Kevin S. Goff, Evan Hutnick, Rick Minerich, Supriyo “SB” Chatterjee, John Baird, Chris Rolon, John Zablocki, Doug Finke, and Ben Poserow.


Facilitators
I want to thank my core team, including my wonderful wife and best friend, Lorri, whose help has been tremendous for these code camps. I feel embarrassed that Leo had to be the one to thank her when I was up at the podium thanking everyone else ![]()
Of course I have to thank my partners, Leo and James Simon for all their help, as well as Leo’s wife, Allison, who provided great help at the registration booth and helping to reach out to vendors for their support.

I also want to thank Sean (I know I must be spelling your name wrong — is it Shaun or Shawn?) who helped with the facilities, and has been a great help for all the group meetings throughout the year.

As always, the support from Peter Laudati and Microsoft has continued to play a huge role for our user groups and code camps since day one. And I want to thank our “room monitors”, Mark Torrone, Mariam Diakité, and Louis Hendricks, for making sure things were going smoothly at each session so that the rest of us could focus on everything else.

I also want to thank my friend, David Beaulieu, our audio technician, for recording the sessions at this year’s show. He was running around even more than I was!

Contributors
I want to give a special thanks to Telerik (Emily and Evan), who helped us get the large Schreiber Reading Room this year! I also want to thank our other contributors, such as CITI, UConn, webloyalty.com, PrimalBits Software, JetBrains, Xceed, and CozyRoc. And things would have been a lot more difficult if it weren’t for the continued support of Eventbrite, Kentico, and Applied Innovations.

We again had 24 sessions, plus a special lunchtime presentation by Telerik. 215 people signed up before we had to shut down the registration again, and we still had some walk-ins!


Running these is so exhausting, but so worth it! This year local security opened the doors for us to prepare later than we had hoped, so it was an extra mad rush. Next year we’re looking to shoot for 6:00 AM instead of 7:00 AM.

It’s great how people organize themselves at events like this. We had a few minor technical issues, room coordination and sign posting challenges, but the bulk of it is run by the presenters and attendees. We just help keep things going as smoothly as possible.

I expect to have presentation material and code samples from the speakers to post shortly on our main Code Camp site, along with audio from several of the sessions this time around!
We look forward to continue holding these annually. Every year we learn even more lessons about what to do, and what not to do. The evaluation feedback form that you filled out is extremely important in this regard. I’ll be updating my series of articles soon to reflect what we’ve learned.
I want to individually thank everyone involved in running this event, in the order of appearance, more or less. If I missed anyone’s name, I’m truly sorry:
People:
======
Lorri Freedman
Emily Parker
Leo Junquera
Sean (Shawn? Shaun?) — Sorry — I should have gotten your full name, spelled correctly. Please forgive me.
Peter Laudati
David Beaulieu
Christine Beaulieu
James Simon
Allison Junquera
Mark Torrone
Mariam Diakité
Louis Hendricks
David Douglass
Milan Negovan
Edwin Ames
Sunil Kadimdiwan
Dmitry Lyalin
Shrenik Jhaveri
Ivan Krivyakov
Kevin S. Goff
Evan Hutnick
Rick Minerich
Supriyo “SB” Chatterjee
John Baird
Chris Rolon
John Zablocki
Doug Finke
Ben Poserow
Silvia Goncalves
Contributors:
==========
Connecticut Information Technology Institute (CITI)
University of Connecticut (UCONN)
webloyalty.com
Microsoft
Telerik
PrimalBits Software
JetBrains
Xceed
CozyRoc
Eventbrite
Kentico
Applied Innovations
Food:
====
Dunkin’ Donuts
Planet Pizza
California Pizza Kitchen
The Fairfield / Westchester User Groups are proud to present our 3rd Annual Fairfield / Westchester Code Camp! As in the past, this event will be held at the University of Connecticut, Stamford Campus.
We will once again hold 24 sessions (75 minutes each) across 4 tracks, given by some of the best regional and local developers, and will include topics such as LINQ, Azure, C# 4.0, PowerShell, F#, SQL Analysis Services, MVC, Silverlight, and so much more!
As usual, we will have giveaways, food, and coffee. More details, and the schedule, will be posted on the Code Camp website as they are solidified.
Please help us spread the word!
Seating is limited and our focus is technology. No Recruiters, please.
What I’m about to say does not pertain to everyone having trouble finding employment in software development during this difficult time, but DO NOT fall into the trap of automatically believing that you’re one of the exceptions. It’s likely that you’re not.
People have been asking if I had any advice for software developers who find themselves out of work due to the economy. I think they’re looking for consoling words, but instead I’m going to provide a reality check.
A few months ago, my company was searching for a couple of developers. So for the first time in over a year, I started interviewing developers again, starting with the phone tech. And I was very discouraged at what I experienced, even after filtering out candidates from the resumes we received. The quality of candidates have always been a very mixed bag. After all, as Joel Spolsky makes abundantly clear, “The great software developers, indeed, the best people in every field, are quite simply never on the market.” But the drop-off of overall quality has been significant. If you don’t want to find yourself included in that group, I recommend you come to terms with the following…
Reality Check # 1: If your phone tech runs 15 minutes or less, you’ve failed. And most phone interviews last less than 15 minutes. I’m not exaggerating – 9 out of 10 people I interview are off the phone within 15 minutes. If you don’t care enough about your craft, you’re probably hurting the company you’re currently working for. If you don’t care about preparing for your interview, then not only should you second guess your career choice, you should also work on changing your attitude before considering another field.
Reality Check # 2: If you don’t take the time to think about what you’re doing, you won’t be much help to a company that cares at all about quality. If you can’t answer why you’d choose one technique or technology over another, or show critical thinking, you’re probably not providing enough value to your company. You risk being one of the next to be laid off, if you haven’t been already.
Some people claim there’s a place for "heads-down" coders, but if I just described you in the previous section, you wouldn’t even fit that description. Even heads-down coders need to make internal decisions every day. You’re likely doing things the way you do because perhaps someone once told you to do it that way, or you learned it from the book you’ve read on the topic (telling you "what" you need to do, but not "why" you’d choose to do it that way). You could be hurting your company and don’t even know it, or care.
And that’s the part that’s most frustrating. It seems that most "developers" I’ve interviewed don’t really care. It seems they think that all they need to do is throw out some textbook answers to questions, and it’s good enough to prove that they’re programmers.
That is completely wrong.
I don’t believe the resumes I see anymore. They’re virtually useless. They’re just there for the collection of people I may need to call and filter out over the phone, because all they do is list technologies the person may have used at one time or another. And I don’t even believe that. Sometimes they just list buzzwords they could give one line definitions of, if asked.
I once interviewed someone who claimed to be a C programmer, but when he showed up for the face-to-face, he admitted, while looking me in the eye, that he only watched his roommate program in C! I’m sure many people have stories like this one, or the one where a friend interviewed someone, and only found out at the end of the interview that the person he was speaking with was actually the roommate of the person he meant to interview, but the other guy wasn’t home yet! The “candidate” went through the entire interview, and then confessed “as a matter of fact” at the end of it!
Reality Check # 3: People complain about jobs going to another country. Well, if you’re going to claim you’re a developer, but you don’t take an interest in your career, then your job could definitely go to someone who’s not afraid to really think. I have rarely met a quality developer who lost their job to outsourcing and had been unable to quickly find another development job – even in this climate. True developers are in very short supply, and do not stay unemployed for long.
If you don’t want be another "outsourcing statistic", you owe it to yourself to show dedication to your career, and learn how to truly “think". It may be difficult to imagine, but some people actually act like thinking hurts. People aren’t taught how to think in school anymore, and I doubt they ever have. I was rarely taught “critical thinking” at school in the 60s and 70s. I learned on my own, from my parents, and from books. But I run into too many people who assume they’ve learned everything they need to know by the time they graduate. This is the difference between "book smart" and "common sense".
Reality Check # 4: Your career is your own responsibility – nobody else’s, institutional or otherwise. Show me a company that hires non-critical thinkers, and I’ll show you a company to avoid investing in. If you entered this field because you’d heard you can make a lot of money, but then you didn’t take the time to learn the "whys" and "whens" to do things, and all you did was "memorize" the "hows", you’ll be quickly found out. You can’t hide behind that. And then you may wonder why you don’t earn what you expected, or why you’ve been downsized.
Reality Check # 5: It shows up in many ways. It shows up at meetings, when someone asks you how you’d implement something, and you use a generic answer, like, "I’ll write a module like I did for that other project, and just copy the code and change some strings." Or someone will ask for a feature, and you’ll just nod your head, maybe take a note or two, and never question a thing about their business. And then the stakeholder will wonder why you aren’t asking questions, and lose confidence.
During an interview, I’ll find out within a few questions if you’re just a "pretender". And if you think you can look up the answers while on the phone, and I hear paper rustling in the background, I’d know you haven’t been keeping up with the field – because if you had, you wouldn’t even be rustling through papers – you’d be clicking the mouse or typing! Even if I didn’t hear keyboard or mouse activity, I’d still know quickly, because you wouldn’t be able to answer the follow-up "why" or "when" questions. This is not multiple choice.
Reality Check # 6: What shocks me is that if someone made any attempt at all, it’s impossible to avoid accidentally finding the key information on these topics even if they tried. There’s so much information out there, anywhere you’d click would lead you to discussions explaining, discussing, and debating the whys and whens. We’re drowning in it!
If someone isn’t even learning by accident, then they just don’t care. I’d much rather hire an inexperienced developer than someone who just happens to know some facts about programming. I’d much rather hire someone who shows some passion for our field.
You chose this field. And even if you can’t get passionate about it, your life truly does depend upon understanding why things are done the way they are in our field, and how to make choices in your approach to a problem.
Don’t use the excuse that you don’t have enough time because you have kids, or you’re busy with other things. We’re all extremely busy. This stuff is fundamental. If you can’t make the time for this, you’re wasting every moment. A moment that someone else, somewhere else, is not wasting.
Why do you think companies like Microsoft and Google are famous for their non-technical questions? Some people think it’s because they’re looking for the smartest people. I’d challenge that and hypothesize that they’re not just looking for the smartest people. They’re looking for people with the capacity for learning. It doesn’t come from knowing facts. Even if you clean toilets for a living, you need to make decisions on how to do it the best way possible.
Like those companies, we’re not looking for people who know everything. There’s way too much to learn. We’re looking for people who aren’t afraid to think. Who aren’t afraid to make a decision and stand by it. Who can research their options and make an intelligent choice based upon the situation. Who care enough to understand the fundamentals, but also know how to learn about what they don’t know. Only about 10% of the people I’ve interviewed have shown a desire to do so. Is it that they just don’t know how to handle an interview? There’s so much information available about that, so I don’t give them a bye for it. So many people are just willing to settle. To just to get by. Everyone gets physically lazy at times, but that’s just fatigue. In my opinion, actual laziness is the lack of desire to think.
Obviously, some people just don’t interview well. Many are very nervous on an interview. Hell, I’m nervous giving an interview. That’s excusable, understandable, and never plays into my decision for consideration. But you can almost immediately tell the difference between nervousness and dedication.
Any company choosing to not bother even speaking to 90% of the pretenders out there should dominate their industry. Why do you think Microsoft, Google, and Apple are where they are?
Once you get past the first 15 minutes of an interview with us, where all we ask are the foundational questions, the next part involves asking for concrete examples of when you had to actually make decisions. Sounds simple, right? Well, at least half of the people who make it past the first part can’t do this. The third part is where we try to dig into why you chose this field to begin with, and to gauge your dedication to the craft.
If you can get past those first two parts, we’ll usually call you in for a face-to-face. This is where we’ll find out how well you can fit our team, and how you implement what you know. This is why we’ll give you an actual programming exercise. We really don’t care too much if you finish the task. We just want to see how you work. We learn a lot just by observation.
If you aren’t going for an analyst or architectural position, we’re still going to ask you questions that require analytical thinking. Maybe back in the 70s and 80s companies could get by with heads-down, don’t ask questions, locked-in-a-room coders. But these days there are so many things to consider beyond specific programming tasks, that everything you do requires some level of analytical and critical thinking. I feel that’s the most important and rewarding part of being a software developer. If you remember the simple point that programmers are actually problem solvers who use technology as the tool for solving them, you’ll understand why everything I’ve mentioned in this article is so important.
It’s sad to see so many people just sleepwalking through their career. If you care at all about your career and the field you’ve chosen, you should have little problem getting or keeping a job, even in this economy.
Ok, so I’ve smacked you in the face and woken you up. Now what? You’ve decided that you really do care, and that your job is in a tenuous position. Where do you turn? The good news is that there’s an abundance of resources available; more than you can even handle. Sometimes the flood of information can be overwhelming and off putting. But I’d start with the resources that’ll help you keep your finger on what’s most important. You normally won’t get into detailed learning with the following, but they’re invaluable for making you aware of what’s important in our industry, and will direct you if you’re interested in a deep dive. I’m focusing on the .NET development community here, because I work mainly with Microsoft technologies. But there are so many resources out there for all technologies.
Since there are many directions you can go with your skills, it’s important that you keep up with what’s happening. Then you can choose what you want to dive into. You can make a great living specializing in just a couple of technologies. But you can’t even get there until you become aware of what’s out there, and what’s in demand. Look at the topics discussed. Do a bit of research before attending a user group meeting or listening to a podcast.
Local user groups: almost every large city has an active user group nearby. These are invaluable, not only for keeping up with the field, but also for networking. I help run two of them: the Fairfield / Westchester .NET and the Fairfield / Westchester SQL Server user groups, both in Stamford, CT. You can also visit the following websites to find user groups and events in your area:
Podcasts: there are many podcasts that have their finger on the pulse of the industry. I can’t even imagine how much of a positive impact these resources have had on my career and my life. Based on my average commute, I’d lose around 500 hours per year if all I did was drive during these hours. But instead, I spend about 3 "working" months a year in "school" in my car. That’s three entire months! Here are the podcasts I regularly listen to which have been an enormous benefit. I can’t imagine where I’d be without them:
Once you’re ready to dig deeper, there are so many more resources. It gets old when I ask candidates how they keep up with the field, and the common response they think I want to hear is just, "I visit the MSDN site often." That only shows me that they’ve kept their head in the sand for a long time.
There are so many other resources, I won’t even attempt to expand on this list here. Just check out the links on some of these other sites. There’s just no excuse for not keeping up with our field, and preparing for a new job. You just need to have a bit of desire and care for your career. If you need help working on your resume, just google it. There’s so much info out there. I haven’t had to make use of these resources lately, so I can’t really recommend one over the other. But I can recommend an article by my daughter. Her resume tip article targets recent college graduates, but everyone could benefit from most of her tips.
Good luck!
Last week, I wrote about our second annual code camp. Here are some of Lorri’s photos of the event. Soon, I’ll post some video clips. I’ll probably have some more photos in a future post.
Please excuse my cheesy captions
Next year, my friend, Dave, will help us capture complete audio recordings of each session. In the meantime, we’ll try to get some video recording practice at some user group events, in the hopes that by 2010, we’ll be able to get a video transcript of the entire event.














