Maybe we DO need professionals licensing
-
Nah. The whole thing is probably:
On error Resume Next
I wanna be a eunuchs developer! Pass me a bread knife!
Lol! I'd prefer a bunch of GOTO statements in this predicament.
-
Who says this guy (or girl) doesn't have a Bachelor's (or Master's) degree in programming? It wouldn't be the first time I see a "licensed" programmer producing code like that :rolleyes: I once worked with someone who was certified and expensive and wrote a separate service that was so bad it negated future development. Like literally, we added some fields to the database, filled them with data, and half an hour later that service would set the fields to NULL again. Took me a while to find that one :laugh: You can imagine that wasn't the only WTF in that code base... Then there's this guy who was equally certified, full of himself, called me "a little man", and then made an unsolicited code change that broke production X| The reason he made the change is because I had wrote a function containing something like 30 lines of code (including white lines and curly braces), which he thought was bad practice. After he "refactored" it he took out the "usings" because ".NET handles that for you". He also somehow added an additional database call and discarded the results, which actually broke it. And then we had the fourth year application developer intern who literally couldn't declare a variable because "he forgot the syntax". Needless to say we failed him, but somehow he passed his next internship and a year after he couldn't declare a variable he was applying for a job at some big company :~ Don't speak to me about "professional licensing", people are bunglers and no amount of licensing can fix that X|
Best, Sander sanderrossel.com Continuous Integration, Delivery, and Deployment arrgh.js - Bringing LINQ to JavaScript Object-Oriented Programming in C# Succinctly
You speak the truth. University degrees, licensing and certifications don't guarantee competence. I think that any of us including all of the people in this post would be surprised at what another programmer would find to criticize and complain about in his or her code. Also, anyone that would get in a self-driving vehicle deserves to run into a tree, in my opinion. :rolleyes:
Hard work and common sense will overcome in every situation, every time.
-
So, I'm tripping through an older (written circa 2011) command line utility program written in C and developed under MSVC (I think, because all I got was the source code but there were some variables and defines that looked like that might have been the environment) and I get the compile error message "c1061 compiler limit blocks nested too deeply". This is a new one on me! So, I started digging into the code and it turns out that the original developer had written his code for command line option processing as: for (;;) { if(..) { } else if (...) { // Occasional do while/until loops inside the if } else if (...) .... 187 TIMES!!! } } MSVC 2017 has a hard coded limit of 128 nested blocks! My question: How can someone produce that kind code and still call themselves a professional developer? It's scary that maybe this individual might now be developing code for a self-driving car.
187 nested code blocks? New Badge obtained!
-
You speak the truth. University degrees, licensing and certifications don't guarantee competence. I think that any of us including all of the people in this post would be surprised at what another programmer would find to criticize and complain about in his or her code. Also, anyone that would get in a self-driving vehicle deserves to run into a tree, in my opinion. :rolleyes:
Hard work and common sense will overcome in every situation, every time.
-
You speak the truth. University degrees, licensing and certifications don't guarantee competence. I think that any of us including all of the people in this post would be surprised at what another programmer would find to criticize and complain about in his or her code. Also, anyone that would get in a self-driving vehicle deserves to run into a tree, in my opinion. :rolleyes:
Hard work and common sense will overcome in every situation, every time.
Slow Eddie wrote:
all of the people in this post would be surprised at what another programmer would find to criticize and complain about in his or her code
I try to make a difference between "facts" and "preference". For example:
// My style
public void DoSomething(string input)
{
// Code...
}// Someone else's style
public void do_something ( string input ) {// Code...
}
My code is C# style, the other isn't. It's some sort of Java(Script)ish with some extra space. But it's still (more or less) the same code. I'd probably tell this person something about C# coding styles and I'd enforce some default coding style (at least to normalize the casing). When a team uses different coding styles it tends to mess up your source control (because of automatic styling, which makes it look like everyone is changing complete files even when just a single line was fixed), so it's still important, but not necessarily wrong. Then there's this:
// My code
try
{
using (var connection = new SqlConnection(connString))
using (var command = connection.CreateCommand())
{
command.CommandText = "...WHERE Id = @Id";
// Etc...
}
}
catch (Exception ex)
{
logger.LogError(ex);
throw;
}// Someone else's code
try
{
var connection = new SqlConnection(connString);
var command = connection.CreateCommand();
command.CommandText = "...WHERE Id = " + id;
// Etc...
}
catch (Exception ex)
{
logger.LogError(ex);
}Now we're talking about different code, good code and BAD code! Some people would say usage of
var
is bad practice, but that's what I consider style (after all, compiled it's still the same). However, every skilled programmer would notice the lack ofusing
(or alternativelyDispose
in afinally
block), the swallowing of the Exception and the potential SQL injection. This isn't a matter of style, it's a matter of factually good and bad code. So when we're talking about people here I expect to find lots of different preferences which may not be mine (and which I might even find horrible to read), but I expect to find little actual errors. For some reason I tend to think that people who are on CodeProject know the difference between good code and bad code, whatever their style may be :)Best, Sander sanderrossel.com
-
rjmoses wrote:
.... 187 TIMES!!! ... My question: How can someone produce that kind code and still call themselves a professional developer?
you think an amateur could do it that many times without making a mistake? old days people put pride in their work and crafted thing by hand, now it's all mass produced by machines. "professional" does no justice, artisan, master ....
Message Signature (Click to edit ->)
As I overheard from one who used to put out oil well fires: “if you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.”
-
So, I'm tripping through an older (written circa 2011) command line utility program written in C and developed under MSVC (I think, because all I got was the source code but there were some variables and defines that looked like that might have been the environment) and I get the compile error message "c1061 compiler limit blocks nested too deeply". This is a new one on me! So, I started digging into the code and it turns out that the original developer had written his code for command line option processing as: for (;;) { if(..) { } else if (...) { // Occasional do while/until loops inside the if } else if (...) .... 187 TIMES!!! } } MSVC 2017 has a hard coded limit of 128 nested blocks! My question: How can someone produce that kind code and still call themselves a professional developer? It's scary that maybe this individual might now be developing code for a self-driving car.
-
So, I'm tripping through an older (written circa 2011) command line utility program written in C and developed under MSVC (I think, because all I got was the source code but there were some variables and defines that looked like that might have been the environment) and I get the compile error message "c1061 compiler limit blocks nested too deeply". This is a new one on me! So, I started digging into the code and it turns out that the original developer had written his code for command line option processing as: for (;;) { if(..) { } else if (...) { // Occasional do while/until loops inside the if } else if (...) .... 187 TIMES!!! } } MSVC 2017 has a hard coded limit of 128 nested blocks! My question: How can someone produce that kind code and still call themselves a professional developer? It's scary that maybe this individual might now be developing code for a self-driving car.
I've found in my experience, which admittedly is mostly Big Aerospace, that there is a huge bias among management towards reuse rather than refactoring. They get all wet over the concept of earned value and avoid thinking about the real costs down the road. It comes out of a different funding bucket, after all. I've also seen it in smaller ventures. It's way too enticing to reuse because there is the comforting, often misguided notion that what was used elsewhere will fit like a glove in the new application. Maybe it will, maybe it won't but "all you have to do is ...", therefore saving you all of those development costs. And let's face it, if we're honest, we have all done something similar because of some perfect storm of converging priorities, events and time. Because we're going to circle back around and fix it; yeah, right after the whatever. Sometimes (if I may quote Adm Akbar) It's a trap!
-
I've found in my experience, which admittedly is mostly Big Aerospace, that there is a huge bias among management towards reuse rather than refactoring. They get all wet over the concept of earned value and avoid thinking about the real costs down the road. It comes out of a different funding bucket, after all. I've also seen it in smaller ventures. It's way too enticing to reuse because there is the comforting, often misguided notion that what was used elsewhere will fit like a glove in the new application. Maybe it will, maybe it won't but "all you have to do is ...", therefore saving you all of those development costs. And let's face it, if we're honest, we have all done something similar because of some perfect storm of converging priorities, events and time. Because we're going to circle back around and fix it; yeah, right after the whatever. Sometimes (if I may quote Adm Akbar) It's a trap!
I once worked for a guy who was hired as CEO of a smallish (600 employees) company. He advertised that he had PHD's in Computer Science and Economics from Brown University. In almost every meeting where he wanted something developed, he would say: "Well, isn't it just a simple sort?" After about three weeks of hearing his blather, I called Brown University to verify his credentials--turned out he had a bachelor's degree in Liberal Arts. He lasted a year, of which the last six months, he was out on personal time. I suspect the owner of the company also suspected this guy had over-stated his credentials.
-
I once worked for a guy who was hired as CEO of a smallish (600 employees) company. He advertised that he had PHD's in Computer Science and Economics from Brown University. In almost every meeting where he wanted something developed, he would say: "Well, isn't it just a simple sort?" After about three weeks of hearing his blather, I called Brown University to verify his credentials--turned out he had a bachelor's degree in Liberal Arts. He lasted a year, of which the last six months, he was out on personal time. I suspect the owner of the company also suspected this guy had over-stated his credentials.
I think part of the problem is the perception that a college degree is often taken as a de-facto "license to practice" software. Also, from your experience this person was able to get that job because we tend to operate on the honor system with regard to one another's credentials. Now if this person did a passable job as a software manager no one would have questioned or ever been the wiser regarding his exaggeration (alright, outright lie), though I would like to think that kind of ethic would show itself in other ways. I am not putting down higher education. On the contrary, I think it must be considered in all of its forms, university being only one. After all, much of what we have encountered after school has little to do with our respective majors and more to do with our own personal habits, ethics, and especially other experiences. What if the aforementioned "manager" had not ever graduated college, never claimed such, and nonetheless would have made a fine manager? I think that's worth considering but I'm not sure our industry is completely on-board with that yet. If a professional licensing program for software could determine a person's competence much the way (I believe) professional engineer licensing does, I'm all for it. However, I may be assuming too much about the PE credential.
-
I think part of the problem is the perception that a college degree is often taken as a de-facto "license to practice" software. Also, from your experience this person was able to get that job because we tend to operate on the honor system with regard to one another's credentials. Now if this person did a passable job as a software manager no one would have questioned or ever been the wiser regarding his exaggeration (alright, outright lie), though I would like to think that kind of ethic would show itself in other ways. I am not putting down higher education. On the contrary, I think it must be considered in all of its forms, university being only one. After all, much of what we have encountered after school has little to do with our respective majors and more to do with our own personal habits, ethics, and especially other experiences. What if the aforementioned "manager" had not ever graduated college, never claimed such, and nonetheless would have made a fine manager? I think that's worth considering but I'm not sure our industry is completely on-board with that yet. If a professional licensing program for software could determine a person's competence much the way (I believe) professional engineer licensing does, I'm all for it. However, I may be assuming too much about the PE credential.
Many years ago, when I was in management, I preferred to hire people that were non-degreed. They tended to have a better work ethic, less chauvinistic attitude and more willingness to learn. It seemed that the higher the degree, the worse the employee. But that was then, before ....
-
So, I'm tripping through an older (written circa 2011) command line utility program written in C and developed under MSVC (I think, because all I got was the source code but there were some variables and defines that looked like that might have been the environment) and I get the compile error message "c1061 compiler limit blocks nested too deeply". This is a new one on me! So, I started digging into the code and it turns out that the original developer had written his code for command line option processing as: for (;;) { if(..) { } else if (...) { // Occasional do while/until loops inside the if } else if (...) .... 187 TIMES!!! } } MSVC 2017 has a hard coded limit of 128 nested blocks! My question: How can someone produce that kind code and still call themselves a professional developer? It's scary that maybe this individual might now be developing code for a self-driving car.
From my experience, people tend to weight experience indifferently. 40 years of experience is 40 years of experience, period. Whether someone learned anything new during those 40 years doesn't matter in the slightest.