Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. The Lounge
  3. Maybe we DO need professionals licensing

Maybe we DO need professionals licensing

Scheduled Pinned Locked Moved The Lounge
questiontoolshelpworkspace
30 Posts 22 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R rjmoses

    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.

    D Offline
    D Offline
    Daniel Wilianto
    wrote on last edited by
    #21

    187 nested code blocks? New Badge obtained!

    1 Reply Last reply
    0
    • S Slow Eddie

      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.

      O Offline
      O Offline
      obermd
      wrote on last edited by
      #22

      In most cases, licensing/certification requirements are used to prevent new competition from entering a field.

      1 Reply Last reply
      0
      • S Slow Eddie

        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.

        Sander RosselS Offline
        Sander RosselS Offline
        Sander Rossel
        wrote on last edited by
        #23

        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 of using (or alternatively Dispose in a finally 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

        1 Reply Last reply
        0
        • L Lost User

          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 ->)

          J Offline
          J Offline
          James Lonero
          wrote on last edited by
          #24

          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.”

          1 Reply Last reply
          0
          • R rjmoses

            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.

            A Offline
            A Offline
            agolddog
            wrote on last edited by
            #25

            There's a difference between being professional (getting paid to do a task) and being good (or even decent) at it. I keep fighting the ideas that: - ADO.NET is superior to EF/Linq - MVC makes web development "too hard" - etc etc Sigh.

            1 Reply Last reply
            0
            • R rjmoses

              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.

              P Offline
              P Offline
              PNutHed
              wrote on last edited by
              #26

              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!

              R 1 Reply Last reply
              0
              • P PNutHed

                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!

                R Offline
                R Offline
                rjmoses
                wrote on last edited by
                #27

                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.

                P 1 Reply Last reply
                0
                • R rjmoses

                  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.

                  P Offline
                  P Offline
                  PNutHed
                  wrote on last edited by
                  #28

                  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.

                  R 1 Reply Last reply
                  0
                  • P PNutHed

                    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.

                    R Offline
                    R Offline
                    rjmoses
                    wrote on last edited by
                    #29

                    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 ....

                    1 Reply Last reply
                    0
                    • R rjmoses

                      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.

                      M Offline
                      M Offline
                      Member 9167057
                      wrote on last edited by
                      #30

                      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.

                      1 Reply Last reply
                      0
                      Reply
                      • Reply as topic
                      Log in to reply
                      • Oldest to Newest
                      • Newest to Oldest
                      • Most Votes


                      • Login

                      • Don't have an account? Register

                      • Login or register to search.
                      • First post
                        Last post
                      0
                      • Categories
                      • Recent
                      • Tags
                      • Popular
                      • World
                      • Users
                      • Groups