This is Jasmine Adamson's Typepad Profile.
Join Typepad and start following Jasmine Adamson's activity
Join Now!
Already a member? Sign In
Jasmine Adamson
Recent Activity
Well that's what the article is saying you should do, compile the query and reuse it... but LINQ doesn't do this for you, at application compile time. During the application runtime, LINQ does a JIT compile on every query, every time, unless you say otherwise. It seems to be a minor performance hit compared to the database shot anyway, but it's interesting to know. What worries me about LINQ in general is that it seems to promote lazy database design and usage, and this can hurt performance as well as stability.
Toggle Commented Mar 23, 2010 on Compiled or Bust? at Coding Horror
No, you're not exactly right Skippyfire... when you do the straight up LINQ thing, it gets JIT compiled... so it happens every time. That's kinda the whole point about the article - that the JIT method is not so good.
Toggle Commented Mar 22, 2010 on Compiled or Bust? at Coding Horror
cvsdave - you make good points, which obviously come from experience. As I mentioned before, the mediocre programmers are the life blood of the industry and not much would get done without them. They should be encouraged and mentored and they should try to determine if programming is a good choice for them. As I said before, if it's not a good choice, they should go on to something else. I don't believe someone's career should be something they hate, but do anyway for the money. Those who love programming will enjoy their career, but those who don't should go on to do better things - like become managers who work better with the IT department, or something else that gets them off. I see a lot of people out there plugging away at jobs they hate, and I realize a paycheck is important, but I don't see much potential in those people, and I would rather mentor and encourage people who love programming, but simply need experience and guidance to become great. IMO, when a person shows up for an interview, and they can't even code Hello World in a language they claim to know, they are a fraud, plain and simple, and they don't deserve a job flipping burgers, much less a job on a team which needs to get stuff done. We're not an educational institution, and we're not in the business of teaching programming. However, if someone came in for a job which was clearly entry-level, and they were honest and said they didn't know much programming and really wanted to learn, I might take them on and help them out... but they would need to have some skills which can benefit the company, or not expect to get paid. We don't have interns here, but we do have volunteers, and if you really want to learn something and you're starting from scratch, a volunteer position might be a good way to go. This blog post isn't about the non-hot-shots who aren't in the top 1% - it's about people with no skills at all, and who really are wasting your time in an interview. Those people should be applying for other jobs, for which they have the skills. There needs to be some method of filtering these people out, and simple programming tests are a good way of doing that - and I don't think they should be trick question types - they should be essentially Hello World type tests, just to eliminate the fraudulent applications. The rest can be determined pretty easily in an interview.
Toggle Commented Mar 16, 2010 on The Non-Programming Programmer at Coding Horror
No those wouldn't be interview questions - those are simply representative of the kind of thing you might ask yourself if you weren't sure you liked coding or not. Dentists are a different breed - but I would bet that the good ones actually do love their work, and I know of a few who do spend the occasional weekend doing charity dental work. We know that there's a large number of people in the industry churning out mediocre code, and they have no desire to make it any better. Those people aren't a detriment to the industry - in fact they are the life blood of the industry, and very little would ever get done without "grunt" programmers. Rather, they are a detriment to themselves, and while some of them will accomplish great things, the large majority will go on to other things, like management. There are also coders who do it because they have a passion for it - those people either go on to become Tim Berners-Lee, or they never accomplish much but spend a lifetime doing something they love. You can not underestimate the importance of doing something you love. Those are the people I want on my team - if programming is a job, and you hate it like you would hate scrubbing toilets, then really it's not for you, and it doesn't matter how capable you are. Sure, you can be an asset for a while, but are you really doing what you love? Are your skills being wasted as a coder? Are you wasting your life here, when you could be the next world-famous astronaut, athlete, or toilet-scrubber? When I see people with CS degrees who can't code at all, I know they have picked CS for some other reason than passion, and they are never going to be motivated to be good programmers, even if they can learn the skills - and that is an injustice to them... although it does get a lot of work done out there.
Toggle Commented Mar 2, 2010 on The Non-Programming Programmer at Coding Horror
@Brandon - I would say if you have to study for the interview questions, then you shouldn't be applying for the job. Prepare by learning about the company, and maybe brush up on some arcane stuff nobody ever uses so you can nail the trick questions, but you should not have to study your coding. I get what you're saying though - a good interview is important, but if your object is to convince them that you know something you don't know, then it's dishonest. @Steve - yes I am proficient in all those things you listed except "Oracle" in general. I know PL/SQL and a little Oracle admin, and have used it recently - but sometimes when people say "Oracle" they want you to be an administrator or a client app programmer, and I'm not well-versed in the whole Oracle stack of crap. On my resume, I would not list Oracle at all, or I would list it last, and make sure to say "minimal" experience. The last time I looked for work, I actually tailored my resume to each position - that is what you have to do at my level. For entry-level stuff, it's ok to just make the laundry list, but for higher-level stuff, it pays to spend at least an hour tweaking your resume to match with the job description without being dishonest. Listing skills which don't apply to the job is a waste of space, and contributes to the reader's suspicion about you, and could actually prevent you from getting a call. Experienced HR people automatically suspect you are lying on your resume, and I've actually been told in an interview, "we gave you the SQL test because we thought you were lying about that," and they also told me I was the only one who got their trick question right. I told them their question was not a good judge of a SQL programmer, and suggested a better question. I didn't get the job :) In general, I think a big problem in the industry is too many "programmers" who don't LOVE it enough to really know their stuff. It's not about book smarts really - it's about people who don't have the personality type to be programmers. These people don't love coding, and they will never be good at it. I love coding so much that I've taken the time to learn lots of languages and different technologies, but I'm firmly grounded in the basics too. Questions to ask yourself are: 1. If a new language were launched tomorrow, would you want to learn it? Would program Hello World, or would you try something more meaningful? Do you think you have the chops to learn a completely new language, not based on any language you already know? 2. Do you like to open up your IDE and actually solve coding problems or do you just tell yourself you can do it and don't bother to actually try it? 3. Have you ever written a game that already exists? Or re-written a known software because you know you can do it better? 4. Ever work on a personal project all night? I mean literally until sunrise the next day. 5. Do you even have personal projects or do you just do this as a job? If you can't answer affirmatively to all those questions, I don't think you should be a programmer. You need to love this job, or it's going to drive you nuts. This is regardless of skills - I've known people who had skills but hated coding. BTW, @Caspar - we don't post solutions to FizzBuzz to prove anything really - any idiot can program FizzBuzz. People who love programming also generally love teaching programming, and solutions are generally posted in an instructive manner. And while 100 print statements might be a solution to the stated problem, it is not scalable, not efficient, and shows very little programming skill beyond a demonstration of KISS. So... here it is in one line of C#... and yeah, I actually built and tested it. Would I answer this way in an interview? Maybe, maybe not, depending on the situation. for (int i = 0; i < 100; Console.WriteLine((++i % 3) == 0 ? ((i % 5 == 0) ? "FizzBuzz" : "Fizz") : (i % 5 == 0) ? "Buzz" : i.ToString())) { }
Toggle Commented Mar 2, 2010 on The Non-Programming Programmer at Coding Horror
Steve, I have all those things on my resume, with experience ranging from 3-5 years to 15 years, and 25 years overall programming (none of those things existed when I started - C was a new language a few years after I started programming). However, this is what you see in a down economy, and it goes in cycles - during the dot-com boom, companies had large IT teams, and the resources to train people and let them specialize. After the bust/9-11 double whammy, you started seeing a lot of ads for "general-purpose computer guys" as companies tried to get away from proper IT departments which are more expensive. In the 80s, when people didn't take IT very seriously, you saw the same thing, and it wasn't unusual to see large companies with one "computer guy" on staff, who had to know/do everything computer related. I agree with your point - it is ridiculous to ask for a "brain surgeon/Oracle DBA/Truck driver" in a job ad, because that's never what you really need... but there is a logical reason why we see that happening. It does tend to bring in some applicants who don't have the full skill set that was requested, but the industry should not have to tolerate applicants with NO SKILLS at all. That is what the blog is written about. It's not about stupid interview questions, or use of APIs, or being a technical mastermind of some sort. It's about people who have no skills at all related to the job of writing code, and the inability of recruiters/HR to weed these people out before they've wasted everyone's time with an interview, or perhaps even been hired. We're not talking about people whose skills aren't up to snuff - we're talking about folks who couldn't code their way out of a paper sack if their life depended on it - people who couldn't explain an algorithm for anything, much less write one in a computer language. It is not about whether you understand math terms like Fibonacci sequence - it's about the fact that even if I explained how to generate Fibonacci numbers, they wouldn't be able to code it.
Toggle Commented Feb 26, 2010 on The Non-Programming Programmer at Coding Horror
@Andrew Zen - learn algorithms - with this you will be able to do anything. Do not bother to focus on syntax beyond the extent which is required to practice algorithms in a language you choose. I absolutely hate programming tests which focus on syntax - that's what makes "FizzBuzz" such a great question, especially when asked to write pseudo-code. Learn the popular algorithms, such as QuickSort and Binary Search - but don't just learn what they do, learn why they work, and how they are derived - so, start with the basic algorithms like Bubble Sort and Linear Search, and learn how and why the improvements exist. Learn to find similar improvements in your own algorithms - if you take a shower every day, figure out how to make that more efficient, or prove that it's as efficient as possible - learn to recognize why. In 25 years of programming, I have used maybe 20 languages, most of which aren't used any more - knowing the syntax of those dead languages is useless today, and knowing C# and the .Net Framework will be useless tomorrow. Knowing how to find an algorithm to solve a problem will serve me well a long time into the future. This is the basic skill that is lacking in a lot of programmers today - they have no ability to think up an algorithm for anything. Colleges are teaching syntax, HR is testing syntax, even certification exams are testing syntax - and they are all missing the target. Learn how code works, in general, and don't get bogged down in the format and syntax of a particular language. BTW - there is a book called "Programming for Dummies" - from the popular series of bright yellow "dummies" books. It is one of my most treasured possessions, but I loan it out on occasion - in fact I didn't buy it for myself, I bought it for a friend who wasn't learning coding in his college classes. I highly suggest you pick up this book - it is straight to the point about what you need to do to write code, and it's not "academic" like Code Complete and some of the others on Jeff's list.
Toggle Commented Feb 22, 2010 on The Non-Programming Programmer at Coding Horror
Jasmine Adamson is now following The Typepad Team
Feb 22, 2010