Touche. Then again making certain concessions (relaxed dress code, etc) and fostering good will goes a long way towards reducing turnover and increasing employee satisfaction.
Well "clown suit" was just the phrase the parent used and I ran with it. I wear polos myself at work, and honestly I prefer them to wearing a full button-up. The difference is that this is acceptable, rather than enforced. In other words we're not being singled out from the rest of the company.
You say that now, but I'm sure you'd feel differently if you were the one being asked to wear said clown suit/uniform. Pay isn't everything in a job. I don't know about you, but I'd get pretty sick of "Hey Bozo, my internet is doing that weird thing again. Can you come fix it?" rather quickly. Not to mention there are plenty of companies out there who value their IT staff enough to let them dress in business casual (or whatever the dress code is) like everyone else. Being forced to wear a uniform is just management's way of pointing out just how expendable their IT staff is. Uniforms say "I'm just another cog in the machine. I'm not even important enough to be allowed to choose what I wear."
All Microsoft has to do is disable the custom XML feature, which should be pretty easy to do
Spoken like a true end-user. As a developer, almost every single time I've ever said something would be "easy to do" code-wise it has come back to bite me in the ass. I've learned not to use that phrase for anything, especially for things that really do seem easy to do. Now it is "I'll see what is involved in that request and get back to you." End-users always seem to think things will be easy to change. Disabling a feature in a widely used application like Word that likely has a ton of legacy code in it is probably not as easy as one might think. I'd also be skeptical about this statement considering it is coming from the opposing lawyer and not from one of MS's own engineers.
Actually rather than voice recognition I was thinking more along the lines of DNI, but yes, the demise of the keyboard is what I was really referring to. We're making great strides there and I could easily see it replacing the keyboard and mouse interfaces just as typing is replacing actual handwriting.
That is why I would always say that the first language you really learn should be C - not because it is the best or most pedagogical language of all time, but exactly because it is so close to the HW and allows you the freedom to commit stupid errors.
I don't disagree that programmers should learn about how the software interacts with the hardware, or that programmers should pick up C at some point in their career. I also don't disagree that C lets you commit stupid errors, but really you can make the same stupid errors in just about any language. The difference is that C makes the magnitude of your stupid mistakes much more apparent. However, an infinite loop is still an infinite loop in C or Java or VB.NET. An index out of bounds exception is still an index out of bounds exception. The point is that as long as the core concepts are implemented then the language of choice shouldn't matter, just as nearness/closeness to the hardware shouldn't matter.
I'm not saying they shouldn't try to understand what is happening, I'm just saying that the quirks and eccentricities of a particular language shouldn't throw them off learning any number of languages, and that it shouldn't surprise them that they will encounter strange things as a programmer.
Java might be good but I have no experience there.
Java's strong/weak point is its memory management. You'll never have to deal with/learn garbage collection or pointers.
Whatever language you pick, I'd start kids off by keeping them away from IDEs and letting them code in Notepad (do not make them use vi; be mindful of child abuse laws)and a command line compiler (where applicable), just to teach them what goes on under the hood. Once they get to a level where they will want to use more complex libraries, GUIs etc, get them an IDE.
I disagree with this. There is nothing more frustrating than trying to learn to program and getting compile/runtime errors from a command line.
Without an IDE: "What the hell? What did I do wrong on line 53?" With an IDE: "What the hell? Oh! The syntax highlighting tells me I didn't define the variable, I'll remember that for next time." Using notepad is a horrible way to write code! I'd rather start them off with the IDE to get them familiar with the language first. Once they're familiar they can move on to command line compiling/building, at that point they'll have a good enough understanding of the language to focus on the command line tools (be it gcc and make or javac and ant or whatever).
Look, I'm not disagreeing with you exactly, what I am say though is I don't think getting caught up with the relative merits or detriments or a language is productive for learning to program. I haven't used it myself, but I have no doubt that Python is an excellent language, as its popularity speaks for itself.
My first language was Java two and a half years ago and it was awful. There are just too many rules so that even accomplishing a simple "Hello World" is a tedious task (and I couldn't even do it now without looking up the syntax). Plus there are all sorts of syntax and other things in there like public class whatever { } that just aren't necessary and will confuse someone that's starting out.
This is kind of what I'm talking about. You got caught up in the all "fluff" of a language, the bits that don't really matter. You know what my instructors said when we asked about pieces of code that had strange/mystifying aspects? "Don't worry about it, we'll get that later. Focus on what we're doing now." If you're smart and motivated enough you'll pick up any language in a matter of time despite its unique syntax (this isn't a knock against you btw so please don't take offense, I'm speaking in general).
All these rules get in the way of learning actual programming technique and skills.
You've hit the nail upon the head, HOWEVER that is the essence of programming. From my own observations someone with a programmer's mindset can accept strange rules, arcane procedures and symbols and be just fine with them. These are the wand, the pointy hat, the glyphs and the circle; all part of the experience and no matter what language you use you're going to have that. Don't get caught up in the fake argument that one language in particular is better than another, for learning or otherwise.
That is essentially the order that I picked up my repertoire, but I'd also add in COBOL (to learn to respect your elders), some kind of.NET language (because in a business environment you're bound to run into it), and PHP/Perl. I have to disagree with your assessment of Java being the ruler of the web; in the enterprise web, maybe. Smaller than enterprise (which the vast majority of sites are) I'd have to say PHP and PERL, with Ruby gunning hard for the position now.
Nowadays I would suggest $_language_of_choice as firs language as it is $_reasons[0], $_reasons[1] and $_reasons[2] language. Then extend it with $_arbitrarily_superior_language. Just don't start with $_other_language[0], $_other_language[1], $_other_language[2] or $_other_language[3] as it will screw the person up for lifetime.
Please, I get so tired of arguments like this.
As long as:
the language (and the associated tools) are available
it has all of the fundamentals of programming (looping, flow control, data structures, variables, etc)
and it grabs their interest
who cares what languages they learn? If they enjoy it and it allows them to learn how to program why should it matter what language they start out with?
Well you certainly seem to have several very good business reasons for not wanting to use Outlook+Exchange to management your communications and scheduling, but I wonder how many other companies have the same issues? I'm not disagreeing with you you understand, but your business case sounds somewhat unique. From my own experiences most of the places I've been to have a fairly uniform mix of OSs, platforms, etc. There may be several 'nix boxes on the server-side, but by and large I believe most businesses are running some form of Windows on their workstations.
We also want to have custom applications, which are deployed on unix servers which can talk to the server and insert calendar entries, we have various job tracking systems that could benefit from adding calendar entries which were synced to mobile devices, but there is no standard way for these apps to talk to exchange over the network.
Obviously you'll come up with your own solution to this, but we had a similar system (minus the mobile device requirement) at one of my previous positions. It was written in C# and ran on Windows Server 2003, but you could probably achieve the same thing with Mono if you absolutely had to use Exchange and integrate the calendar with your job tracking system.
Your issues with Outlook are unsurprising, I've heard a lot of other people say the same thing. Especially regarding the bloated HTML messages. We actually just had a discussion regarding that very same issue. Basically we have an approval/sign-off process for all projects, tickets, etc and we're required to save email approvals in the.msg format. Several of us (myself included) protested this decision and gave our reasons for wanting a different format (.msg is proprietary, exporting to HTML generates ugly code, it is easily falsified), but in the end we were overridden by management, who doesn't believe in using anything but proven technologies. In their defense I can completely understand their viewpoint, but it does illustrate the inflexibility of many management types. So now the joke going around is this: "Welcome to the IS department, now with 100% more MSG!"
The bizarre thing is that Outlook really isn't very good.
I'd like to know what you're basing this comparison on. Do you use Outlook in your daily routine? My work life is absolutely run by Calendar and Tasks and I'm sure this is the case for the vast majority of users. I'll also say that compared to Outlook 2003 the 2007 version is head-and-shoulders better. Tasks are much easier to work with, and the ability to categorize messages makes inbox management much easier (though I'd really rather see categories replaced with tags). My only complaint is that Outlook likes to freeze up on me, but that is entirely due to the fact that our Exchange server is overworked.
You are a professional. When a project is truly doomed (i.e. the goal is pointless or no software could solve the problem,) just leave.
You're obviously a Highly Paid Consultant who could care less what happens to the project or what the client thinks. It's people like you who give developers (and consultants in particular) a bad rap.
Collecting a paycheck to support a losing project is sign you are a loser.
Or they at least have the balls to stick it out until the bitter end, which (if your post is at all accurate) can't be said for you.
I'm happy to hire people who have been on doomed projects, I avoid those who collected a pay-check until the final meltdown.
Please, what company do you work for so I know who to avoid?
A programmer who quits a clusterfuck is an asset
Or a quitter, i.e. someone I wouldn't care to work with.
It sounds like you're confusing loyalty and professionalism with laziness. Personally if I'm hired to do a job I stick it out until the job is finished. Even if the project ends in spectacular failure, as long as I did my absolute best I stay until the job is done and I expect those I work with to do the same. Everyone works, no one quits.
The best part of working with COBOL is the same as working with any other language (to me, at least): Pushing the boundaries of what people think can be done with it.
The 70's called, they want their boundaries back.
I had a (small) window of opportunity to do some work in mainframe COBOL at one point. After taking a tour of the IS department of a major insurance company (which turned out to be a 2nd level basement where everything was a grimy yellow), seeing the tools I'd be using (TSO, JCL, CICS, etc), and getting a peak at their monstrosity of a codebase I turned and ran the other way never to look back. Kudos to you if you can work in a language like COBOL with tools like that with all that legacy code but you couldn't pay me enough to do that work. There are plenty of opportunities to use modern languages (at companies with actual windows!) and sooner or later all that COBOL will get translated into something more modern (this is already happening at said insurance company). I'll be more than happy to pick up the work at that point.
There are a number of requests out there for simple things, requested by people without any money.
You mean like the multiple requests to do the poster's homework assignments? Or the "I need a clone of $_SITE_X" posts in which they want fully functional sites for the cost of a night at the movies? Or posts like this one asking people to spam forums for them?
Yes there are plenty of legitimate requests on rentacoder but the majority of them require you to leave any scruples you might have at the door. Rentacoder is a nice way to make a quick buck or two but he would be better off contributing to any number of other projects that actually deserve his time and effort.
It isn't open source but it is volunteering for non-profits. I'm actually volunteering as a developer next weekend. Student volunteers are accepted and they are partnered up with more experienced developers. The projects are scoped to be completed in a three day time frame, and it is a great opportunity to meet people in your field, not to mention being able to contribute to a worthy cause.
Wisdom is the sum of all the facts, tidbits, trivia, and other things you remember. How many factoids have you got in the tank?
I think you're confusing wisdom with experience. You can memorize any number of facts and still be an insufferable know-it-all. I've always looked at it like this: Intelligence is the ability to figure thinks out and think quickly. Experience/skill is what you know, and wisdom is knowing when to (or more often not to) do something, behave in a certain way, etc. It is easy to confuse wisdom with experience because people with experience are often wiser than those without it.
And then there is charisma which is nice to have when you're wise (so you don't go around pissing people off with your unasked for tidbits of wisdom), or when you're extremely unwise (so you don't go around pissing people off with your foolishness;-) ).
Touche. Then again making certain concessions (relaxed dress code, etc) and fostering good will goes a long way towards reducing turnover and increasing employee satisfaction.
Well "clown suit" was just the phrase the parent used and I ran with it. I wear polos myself at work, and honestly I prefer them to wearing a full button-up. The difference is that this is acceptable, rather than enforced. In other words we're not being singled out from the rest of the company.
You say that now, but I'm sure you'd feel differently if you were the one being asked to wear said clown suit/uniform. Pay isn't everything in a job. I don't know about you, but I'd get pretty sick of "Hey Bozo, my internet is doing that weird thing again. Can you come fix it?" rather quickly. Not to mention there are plenty of companies out there who value their IT staff enough to let them dress in business casual (or whatever the dress code is) like everyone else. Being forced to wear a uniform is just management's way of pointing out just how expendable their IT staff is. Uniforms say "I'm just another cog in the machine. I'm not even important enough to be allowed to choose what I wear."
In Soviet Russia North Pole comes to YOU!
You got a T-shirt? All I got was either a rejected story or an inordinate amount of spam ;-)
Spoken like a true end-user. As a developer, almost every single time I've ever said something would be "easy to do" code-wise it has come back to bite me in the ass. I've learned not to use that phrase for anything, especially for things that really do seem easy to do. Now it is "I'll see what is involved in that request and get back to you." End-users always seem to think things will be easy to change. Disabling a feature in a widely used application like Word that likely has a ton of legacy code in it is probably not as easy as one might think. I'd also be skeptical about this statement considering it is coming from the opposing lawyer and not from one of MS's own engineers.
Actually rather than voice recognition I was thinking more along the lines of DNI, but yes, the demise of the keyboard is what I was really referring to. We're making great strides there and I could easily see it replacing the keyboard and mouse interfaces just as typing is replacing actual handwriting.
Just wait 50 years: "That's right kids, grampa used to use his hands to program computers!"
Did your hand slip when you hit reply? Go back and re-read the parent and then read my comment.
I don't disagree that programmers should learn about how the software interacts with the hardware, or that programmers should pick up C at some point in their career. I also don't disagree that C lets you commit stupid errors, but really you can make the same stupid errors in just about any language. The difference is that C makes the magnitude of your stupid mistakes much more apparent. However, an infinite loop is still an infinite loop in C or Java or VB.NET. An index out of bounds exception is still an index out of bounds exception. The point is that as long as the core concepts are implemented then the language of choice shouldn't matter, just as nearness/closeness to the hardware shouldn't matter.
I'm not saying they shouldn't try to understand what is happening, I'm just saying that the quirks and eccentricities of a particular language shouldn't throw them off learning any number of languages, and that it shouldn't surprise them that they will encounter strange things as a programmer.
Java's strong/weak point is its memory management. You'll never have to deal with/learn garbage collection or pointers.
I disagree with this. There is nothing more frustrating than trying to learn to program and getting compile/runtime errors from a command line.
Without an IDE: "What the hell? What did I do wrong on line 53?"
With an IDE: "What the hell? Oh! The syntax highlighting tells me I didn't define the variable, I'll remember that for next time."
Using notepad is a horrible way to write code! I'd rather start them off with the IDE to get them familiar with the language first. Once they're familiar they can move on to command line compiling/building, at that point they'll have a good enough understanding of the language to focus on the command line tools (be it gcc and make or javac and ant or whatever).
Look, I'm not disagreeing with you exactly, what I am say though is I don't think getting caught up with the relative merits or detriments or a language is productive for learning to program. I haven't used it myself, but I have no doubt that Python is an excellent language, as its popularity speaks for itself.
This is kind of what I'm talking about. You got caught up in the all "fluff" of a language, the bits that don't really matter. You know what my instructors said when we asked about pieces of code that had strange/mystifying aspects? "Don't worry about it, we'll get that later. Focus on what we're doing now." If you're smart and motivated enough you'll pick up any language in a matter of time despite its unique syntax (this isn't a knock against you btw so please don't take offense, I'm speaking in general).
You've hit the nail upon the head, HOWEVER that is the essence of programming. From my own observations someone with a programmer's mindset can accept strange rules, arcane procedures and symbols and be just fine with them. These are the wand, the pointy hat, the glyphs and the circle; all part of the experience and no matter what language you use you're going to have that. Don't get caught up in the fake argument that one language in particular is better than another, for learning or otherwise.
Maybe you mean noob? Unless you mean no operation, in which case how's that working out for you? I'd expect it is rather boring ;-)
Maybe you mean Java? BlueJ is an IDE (Integrated Development Environment) often used as a teaching tool for Java.
That is essentially the order that I picked up my repertoire, but I'd also add in COBOL (to learn to respect your elders), some kind of .NET language (because in a business environment you're bound to run into it), and PHP/Perl. I have to disagree with your assessment of Java being the ruler of the web; in the enterprise web, maybe. Smaller than enterprise (which the vast majority of sites are) I'd have to say PHP and PERL, with Ruby gunning hard for the position now.
Nowadays I would suggest $_language_of_choice as firs language as it is $_reasons[0], $_reasons[1] and $_reasons[2] language. Then extend it with $_arbitrarily_superior_language.
Just don't start with $_other_language[0], $_other_language[1], $_other_language[2] or $_other_language[3] as it will screw the person up for lifetime.
Please, I get so tired of arguments like this.
As long as:
who cares what languages they learn? If they enjoy it and it allows them to learn how to program why should it matter what language they start out with?
Forget that, I'm going to copy my brain and run it in a VM.
Well you certainly seem to have several very good business reasons for not wanting to use Outlook+Exchange to management your communications and scheduling, but I wonder how many other companies have the same issues? I'm not disagreeing with you you understand, but your business case sounds somewhat unique. From my own experiences most of the places I've been to have a fairly uniform mix of OSs, platforms, etc. There may be several 'nix boxes on the server-side, but by and large I believe most businesses are running some form of Windows on their workstations.
Obviously you'll come up with your own solution to this, but we had a similar system (minus the mobile device requirement) at one of my previous positions. It was written in C# and ran on Windows Server 2003, but you could probably achieve the same thing with Mono if you absolutely had to use Exchange and integrate the calendar with your job tracking system.
Your issues with Outlook are unsurprising, I've heard a lot of other people say the same thing. Especially regarding the bloated HTML messages. We actually just had a discussion regarding that very same issue. Basically we have an approval/sign-off process for all projects, tickets, etc and we're required to save email approvals in the .msg format. Several of us (myself included) protested this decision and gave our reasons for wanting a different format (.msg is proprietary, exporting to HTML generates ugly code, it is easily falsified), but in the end we were overridden by management, who doesn't believe in using anything but proven technologies. In their defense I can completely understand their viewpoint, but it does illustrate the inflexibility of many management types. So now the joke going around is this: "Welcome to the IS department, now with 100% more MSG!"
I'd like to know what you're basing this comparison on. Do you use Outlook in your daily routine? My work life is absolutely run by Calendar and Tasks and I'm sure this is the case for the vast majority of users. I'll also say that compared to Outlook 2003 the 2007 version is head-and-shoulders better. Tasks are much easier to work with, and the ability to categorize messages makes inbox management much easier (though I'd really rather see categories replaced with tags). My only complaint is that Outlook likes to freeze up on me, but that is entirely due to the fact that our Exchange server is overworked.
You're obviously a Highly Paid Consultant who could care less what happens to the project or what the client thinks. It's people like you who give developers (and consultants in particular) a bad rap.
Or they at least have the balls to stick it out until the bitter end, which (if your post is at all accurate) can't be said for you.
Please, what company do you work for so I know who to avoid?
Or a quitter, i.e. someone I wouldn't care to work with.
It sounds like you're confusing loyalty and professionalism with laziness. Personally if I'm hired to do a job I stick it out until the job is finished. Even if the project ends in spectacular failure, as long as I did my absolute best I stay until the job is done and I expect those I work with to do the same. Everyone works, no one quits.
The 70's called, they want their boundaries back.
I had a (small) window of opportunity to do some work in mainframe COBOL at one point. After taking a tour of the IS department of a major insurance company (which turned out to be a 2nd level basement where everything was a grimy yellow), seeing the tools I'd be using (TSO, JCL, CICS, etc), and getting a peak at their monstrosity of a codebase I turned and ran the other way never to look back. Kudos to you if you can work in a language like COBOL with tools like that with all that legacy code but you couldn't pay me enough to do that work. There are plenty of opportunities to use modern languages (at companies with actual windows!) and sooner or later all that COBOL will get translated into something more modern (this is already happening at said insurance company). I'll be more than happy to pick up the work at that point.
You mean like the multiple requests to do the poster's homework assignments? Or the "I need a clone of $_SITE_X" posts in which they want fully functional sites for the cost of a night at the movies? Or posts like this one asking people to spam forums for them?
Yes there are plenty of legitimate requests on rentacoder but the majority of them require you to leave any scruples you might have at the door. Rentacoder is a nice way to make a quick buck or two but he would be better off contributing to any number of other projects that actually deserve his time and effort.
It isn't open source but it is volunteering for non-profits. I'm actually volunteering as a developer next weekend. Student volunteers are accepted and they are partnered up with more experienced developers. The projects are scoped to be completed in a three day time frame, and it is a great opportunity to meet people in your field, not to mention being able to contribute to a worthy cause.
I think you're confusing wisdom with experience. You can memorize any number of facts and still be an insufferable know-it-all. I've always looked at it like this: Intelligence is the ability to figure thinks out and think quickly. Experience/skill is what you know, and wisdom is knowing when to (or more often not to) do something, behave in a certain way, etc. It is easy to confuse wisdom with experience because people with experience are often wiser than those without it.
And then there is charisma which is nice to have when you're wise (so you don't go around pissing people off with your unasked for tidbits of wisdom), or when you're extremely unwise (so you don't go around pissing people off with your foolishness ;-) ).
Animats, I think you're a straight-shooter with upper-management written all over you.