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. Does it really gauge one's ability to code ?

Does it really gauge one's ability to code ?

Scheduled Pinned Locked Moved The Lounge
questioncsharphelp
43 Posts 23 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.
  • V virang_21

    I did an IKM assessment for C# and some of the questions are so odd it makes one wonder does it really gauge one's ability to code ? You are given a program and 5 outputs and you have to choose right one. One of the question was what is the value of x after running this code ?

        int x=0x0000FFFF;
    	x=x>>4;
    	x=x<<4;
    	x=x|0x0000000F;
    	x=x^0x55555555;
    

    Where in real world application am I going to use this ? I scored 76 out of 100. Last time I took .NET 4.5 test I scored 88. How does it help someone understand my ability to write code for actual application ?

    Zen and the art of software maintenance : rm -rf * Maths is like love : a simple idea but it can get complicated.

    M Offline
    M Offline
    Marc Clifton
    wrote on last edited by
    #25

    We seem to enjoy reducing our individuality down to an abstract number that we can then use to simultaneously stroke our ego and feel inferior in a pointless comparison with other abstract numbers. And of course, the bean counters love their pigeon holes in which to categorize us to determine our salaries, title, benefits, and work. Marc

    V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

    V S 2 Replies Last reply
    0
    • R realJSOP

      Which is basic knowledge for us old guys. I haven't personally seen any (production) .Net code that uses shift left/right, but its use was somewhat frequent in some unmanaged C++ code I've been involved with.

      ".45 ACP - because shooting twice is just silly" - JSOP, 2010
      -----
      You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
      -----
      When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

      F Offline
      F Offline
      Foothill
      wrote on last edited by
      #26

      I had to use bit shifts when I built an email processor to manually decode Base64 to regular binary. The non-programmers gave me puzzled looks when I described it as bit-twiddeling.

      if (Object.DividedByZero == true) { Universe.Implode(); } Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016

      1 Reply Last reply
      0
      • S S Houghtelin

        No insult intended, just found the irony between the statement and your online ID was humorous. :thumbsup:

        It was broke, so I fixed it.

        S Offline
        S Offline
        Slacker007
        wrote on last edited by
        #27

        S Houghtelin wrote:

        No insult intended

        Did not take it as such. :thumbsup: :) Cheers.

        1 Reply Last reply
        0
        • M Marc Clifton

          We seem to enjoy reducing our individuality down to an abstract number that we can then use to simultaneously stroke our ego and feel inferior in a pointless comparison with other abstract numbers. And of course, the bean counters love their pigeon holes in which to categorize us to determine our salaries, title, benefits, and work. Marc

          V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

          V Offline
          V Offline
          virang_21
          wrote on last edited by
          #28

          With this level of English and deep meaning you can easily write a novel or two. :thumbsup:

          Zen and the art of software maintenance : rm -rf * Maths is like love : a simple idea but it can get complicated.

          1 Reply Last reply
          0
          • V virang_21

            I did an IKM assessment for C# and some of the questions are so odd it makes one wonder does it really gauge one's ability to code ? You are given a program and 5 outputs and you have to choose right one. One of the question was what is the value of x after running this code ?

                int x=0x0000FFFF;
            	x=x>>4;
            	x=x<<4;
            	x=x|0x0000000F;
            	x=x^0x55555555;
            

            Where in real world application am I going to use this ? I scored 76 out of 100. Last time I took .NET 4.5 test I scored 88. How does it help someone understand my ability to write code for actual application ?

            Zen and the art of software maintenance : rm -rf * Maths is like love : a simple idea but it can get complicated.

            K Offline
            K Offline
            Kirill Illenseer
            wrote on last edited by
            #29

            That's one of those question that make it clear that the recruiter (or whoever is interested in your score) has no idea what to ask so he makes up artificial challenges. It doesn't matter at all if you can clearly predict the outcome of code that wouldn't pass a code review.

            1 Reply Last reply
            0
            • K KarstenK

              Somebody who is good in bit-shifting isnt long-term qualified for the stupidity and annoyance C# and XAML. :~

              Press F1 for help or google it. Greetings from Germany

              A Offline
              A Offline
              Andrew Leeder
              wrote on last edited by
              #30

              Don't see what XAML has to do with it. I write C# to interface with hardware, do a lot of bit manipulation, and I've never used XAML in my life.

              1 Reply Last reply
              0
              • R realJSOP

                This is basic programming stuff. They want to see if you can do the math. Do you know what the answer is?

                ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                -----
                You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                -----
                When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                A Offline
                A Offline
                AndrewDavie
                wrote on last edited by
                #31

                I'd have to rack my brain to do this. Not that I don't know how, it's just been over 10 years since I last had to do bit shifting. No doubt someone fresh from college would do it off the top of their head because it's only been 6 months for them and would give them an advantage in test conditions.

                1 Reply Last reply
                0
                • R realJSOP

                  Which is basic knowledge for us old guys. I haven't personally seen any (production) .Net code that uses shift left/right, but its use was somewhat frequent in some unmanaged C++ code I've been involved with.

                  ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                  -----
                  You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                  -----
                  When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                  D Offline
                  D Offline
                  dgriffith57
                  wrote on last edited by
                  #32

                  I've seen lots of bitshifting in c#. Very common in image processing.

                  1 Reply Last reply
                  0
                  • V virang_21

                    I did an IKM assessment for C# and some of the questions are so odd it makes one wonder does it really gauge one's ability to code ? You are given a program and 5 outputs and you have to choose right one. One of the question was what is the value of x after running this code ?

                        int x=0x0000FFFF;
                    	x=x>>4;
                    	x=x<<4;
                    	x=x|0x0000000F;
                    	x=x^0x55555555;
                    

                    Where in real world application am I going to use this ? I scored 76 out of 100. Last time I took .NET 4.5 test I scored 88. How does it help someone understand my ability to write code for actual application ?

                    Zen and the art of software maintenance : rm -rf * Maths is like love : a simple idea but it can get complicated.

                    S Offline
                    S Offline
                    SeattleC
                    wrote on last edited by
                    #33

                    This question tests your ability to use the bit-manipulation operators. You would use such code when writing comms protocols or device drivers, and lots of other places. If you haven't seen code that does a lot of bit manipulation, maybe your experience, and thus your mastery of C#, isn't as great as you thought it was.

                    S 1 Reply Last reply
                    0
                    • V virang_21

                      I did an IKM assessment for C# and some of the questions are so odd it makes one wonder does it really gauge one's ability to code ? You are given a program and 5 outputs and you have to choose right one. One of the question was what is the value of x after running this code ?

                          int x=0x0000FFFF;
                      	x=x>>4;
                      	x=x<<4;
                      	x=x|0x0000000F;
                      	x=x^0x55555555;
                      

                      Where in real world application am I going to use this ? I scored 76 out of 100. Last time I took .NET 4.5 test I scored 88. How does it help someone understand my ability to write code for actual application ?

                      Zen and the art of software maintenance : rm -rf * Maths is like love : a simple idea but it can get complicated.

                      J Offline
                      J Offline
                      JackPeacock
                      wrote on last edited by
                      #34

                      If you are writing a general ledger then no, it's not that relevant other than demonstrating a basic knowledge of boolean algebra and numerical anaysis (i.e. truncation and how it affects accuracy). If the job was embedded, especially bare iron, it's a core competency and if you missed it you better go back to selling shoes on a website. Any time you interface to a foreign app or device it's quite likely you'll come across situations like that. Even if it's C#, when you build that production line tester that interfaces to scales, spectrometers and time of flight sensors you'll have to know boolean operations. And if you don't understand boolean operations, how do you build SQL queries or LINQ statements?????

                      S 1 Reply Last reply
                      0
                      • L Lost User

                        John Simmons / outlaw programmer wrote:

                        Do you know what the answer is?

                        Yes. How did that code pass our code-review?

                        Bastard Programmer from Hell :suss: If you can't read my code, try converting it here[^][](X-Clacks-Overhead: GNU Terry Pratchett)

                        S Offline
                        S Offline
                        Stefan_Lang
                        wrote on last edited by
                        #35

                        Indeed. Lines 2-4 are obsolete. How inefficient! ;P

                        GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                        1 Reply Last reply
                        0
                        • L Lost User

                          virang_21 wrote:

                          Where in real world application am I going to use this ?

                          Your question, young Padawan, tells me that close to the hardware you programmed have not yet. Look at a processor's instruction set you must and such logical instructions find you will. Learn to use them and address calculations and bit masking you fear must not. :-)

                          The language is JavaScript. that of Mordor, which I will not utter here
                          This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a fucking golf cart.
                          "I don't know, extraterrestrial?" "You mean like from space?" "No, from Canada." If software development were a circus, we would all be the clowns.

                          S Offline
                          S Offline
                          Stefan_Lang
                          wrote on last edited by
                          #36

                          I once was asked in an interview to write a simple function, and later the interviewer asked me about two features he said he hadn't previously seen at all: one was 'Yoda conditions' ;) and the other was designing the loop in such a way that the end condition was a comparison to 0. The latter was based on the knowledge that in assembler, comparisons to 0 are typically slightly faster than comparisons to a constant. The former was to make the compiler shout out in case of an accidental typo (writing '=' rather than '=='). After a couple of days, I was told to be overqualified for the job :wtf: Nowadays, I'd do neither: the first is sufficiently covered by compiler warnings, the second is a kind of optimzation that a good compiler can usually do just as well, and often better. Moreover, not having to care about either makes it easier to write clean, readable code, and that is the most important thing in the long run. I'm telling this because these kind of optimizations I used are just as obsolete nowadays as bit-twiddling, unless you really, really need to optimze your performance, and know for a fact (i. e. you have actually measured) that the compiler doesn't already optimize the code sufficiently. In C++ you can use bitfields; I am not sufficiently familar with C# to know what can be used here to provide a reasonably high-level API. But, even if you do need bit manipulations, within a given project those should be encapsulated in just a handful of functions that take at most an hour or two to implement and test - so it's still entirely senseless to test a candidate on that kind of know-how :doh:

                          GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                          L 1 Reply Last reply
                          0
                          • M Marc Clifton

                            We seem to enjoy reducing our individuality down to an abstract number that we can then use to simultaneously stroke our ego and feel inferior in a pointless comparison with other abstract numbers. And of course, the bean counters love their pigeon holes in which to categorize us to determine our salaries, title, benefits, and work. Marc

                            V.A.P.O.R.ware - Visual Assisted Programming / Organizational Representation Learning to code with python is like learning to swim with those little arm floaties. It gives you undeserved confidence and will eventually drown you. - DangerBunny Artificial intelligence is the only remedy for natural stupidity. - CDP1802

                            S Offline
                            S Offline
                            Stefan_Lang
                            wrote on last edited by
                            #37

                            That abstract number is our salary, and - at least in western cultures - we never really talk about that lest we feel inferior ;)

                            GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                            1 Reply Last reply
                            0
                            • S SeattleC

                              This question tests your ability to use the bit-manipulation operators. You would use such code when writing comms protocols or device drivers, and lots of other places. If you haven't seen code that does a lot of bit manipulation, maybe your experience, and thus your mastery of C#, isn't as great as you thought it was.

                              S Offline
                              S Offline
                              Stefan_Lang
                              wrote on last edited by
                              #38

                              Even if the future task of an applicant was to write device drivers, writing and testing the handful of bit-encoding and -decoding functions that are truly required shouldn't take more than 5% of the total time, more likely less than 1%. It would be more useful (and more objective) to test the applicant's typing speed than that! P.S.: and if that company has any significant fraction of development in the area of device drivers, they should already have a ready to use library for the encoding and decoding, and thus no need for any developer who knows her way around bit manipulations

                              GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                              S 1 Reply Last reply
                              0
                              • J JackPeacock

                                If you are writing a general ledger then no, it's not that relevant other than demonstrating a basic knowledge of boolean algebra and numerical anaysis (i.e. truncation and how it affects accuracy). If the job was embedded, especially bare iron, it's a core competency and if you missed it you better go back to selling shoes on a website. Any time you interface to a foreign app or device it's quite likely you'll come across situations like that. Even if it's C#, when you build that production line tester that interfaces to scales, spectrometers and time of flight sensors you'll have to know boolean operations. And if you don't understand boolean operations, how do you build SQL queries or LINQ statements?????

                                S Offline
                                S Offline
                                Stefan_Lang
                                wrote on last edited by
                                #39

                                JackPeacock wrote:

                                If the job was embedded

                                I've done my share of embedded coding, and never had any need to use bit manipulation functions. Those were encapsulated in the low level actuator and sensor drivers. And that was just a fraction of the code. Yes, in a team of ~10 devs, one engineer (not a CS guy) worked on that level. But most of his time was spent adjusting the timings, or fixing the functionality that wasn't quite working the way it was intended (or simply on higher level stuff), not fiddling with bits. Once the bit-manipulating code was in place, it hardly got changed anymore. What I'm saying is that even where you really need these operations, they only take up a very limited fraction of the total development work! I don't really see how it could ever be so important to make it a criterion for an applicant.

                                JackPeacock wrote:

                                And if you don't understand boolean operations, how do you build SQL queries or LINQ statements?????

                                Well, first of all you need to understand that bit operations go quite a way beyond simple boolean logic in the same way that evaluating exponentials manually goes way beyond simple addition: You can develop the understanding of one from the other - but that doesn't mean it's the same level of knowledge.

                                GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                                1 Reply Last reply
                                0
                                • S Stefan_Lang

                                  I once was asked in an interview to write a simple function, and later the interviewer asked me about two features he said he hadn't previously seen at all: one was 'Yoda conditions' ;) and the other was designing the loop in such a way that the end condition was a comparison to 0. The latter was based on the knowledge that in assembler, comparisons to 0 are typically slightly faster than comparisons to a constant. The former was to make the compiler shout out in case of an accidental typo (writing '=' rather than '=='). After a couple of days, I was told to be overqualified for the job :wtf: Nowadays, I'd do neither: the first is sufficiently covered by compiler warnings, the second is a kind of optimzation that a good compiler can usually do just as well, and often better. Moreover, not having to care about either makes it easier to write clean, readable code, and that is the most important thing in the long run. I'm telling this because these kind of optimizations I used are just as obsolete nowadays as bit-twiddling, unless you really, really need to optimze your performance, and know for a fact (i. e. you have actually measured) that the compiler doesn't already optimize the code sufficiently. In C++ you can use bitfields; I am not sufficiently familar with C# to know what can be used here to provide a reasonably high-level API. But, even if you do need bit manipulations, within a given project those should be encapsulated in just a handful of functions that take at most an hour or two to implement and test - so it's still entirely senseless to test a candidate on that kind of know-how :doh:

                                  GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                                  L Offline
                                  L Offline
                                  Lost User
                                  wrote on last edited by
                                  #40

                                  Stefan_Lang wrote:

                                  But, even if you do need bit manipulations, within a given project those should be encapsulated in just a handful of functions that take at most an hour or two to implement and test - so it's still entirely senseless to test a candidate on that kind of know-how :doh:

                                  No. Please spread them out as redundantly as possible, and don't use any enumerations. Use magic numbers and obfuscate the lines in as many different ways as you can think of. :-)

                                  Stefan_Lang wrote:

                                  After a couple of days, I was told to be overqualified for the job :WTF:

                                  Happened to me too, but the interview was about using stacks. I think the interview was over when I told him that I learned on a microprocessor that could have 15 stack pointers at the same time if needed. The one remaining register would have to be the program counter. :-)

                                  The language is JavaScript. that of Mordor, which I will not utter here
                                  This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a fucking golf cart.
                                  "I don't know, extraterrestrial?" "You mean like from space?" "No, from Canada." If software development were a circus, we would all be the clowns.

                                  1 Reply Last reply
                                  0
                                  • S Stefan_Lang

                                    Even if the future task of an applicant was to write device drivers, writing and testing the handful of bit-encoding and -decoding functions that are truly required shouldn't take more than 5% of the total time, more likely less than 1%. It would be more useful (and more objective) to test the applicant's typing speed than that! P.S.: and if that company has any significant fraction of development in the area of device drivers, they should already have a ready to use library for the encoding and decoding, and thus no need for any developer who knows her way around bit manipulations

                                    GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                                    S Offline
                                    S Offline
                                    SeattleC
                                    wrote on last edited by
                                    #41

                                    I'm sure this question was less than 5% of the coding test, and less than 1% of the interview, so it might even have been an appropriate question by this measure. Coding questions don't measure ability very well, but they do quickly exclude a particular kind of poseur, who can't code a lick. It felt very strange to me when I discovered that people who know absolutely nothing about programming apply for programming jobs, but it has happened to me. It's also a problem that there aren't any measures that are better than coding questions. There aren't any tests of developer skill that can be successfully applied in a short interview.

                                    S 1 Reply Last reply
                                    0
                                    • S SeattleC

                                      I'm sure this question was less than 5% of the coding test, and less than 1% of the interview, so it might even have been an appropriate question by this measure. Coding questions don't measure ability very well, but they do quickly exclude a particular kind of poseur, who can't code a lick. It felt very strange to me when I discovered that people who know absolutely nothing about programming apply for programming jobs, but it has happened to me. It's also a problem that there aren't any measures that are better than coding questions. There aren't any tests of developer skill that can be successfully applied in a short interview.

                                      S Offline
                                      S Offline
                                      Stefan_Lang
                                      wrote on last edited by
                                      #42

                                      I never found 'code this' type of tasks to be very useful in an interview, since there's simply not enough time for a task that would tell you something useful about the applicant's real coding skills. However, analyzing a given piece of code can be quite good, since you can hide some subtleties and special techniques that you care about in the code and then wait to see what the applicant can find out about it.

                                      GOTOs are a bit like wire coat hangers: they tend to breed in the darkness, such that where there once were few, eventually there are many, and the program's architecture collapses beneath them. (Fran Poretto)

                                      1 Reply Last reply
                                      0
                                      • R realJSOP

                                        Which is basic knowledge for us old guys. I haven't personally seen any (production) .Net code that uses shift left/right, but its use was somewhat frequent in some unmanaged C++ code I've been involved with.

                                        ".45 ACP - because shooting twice is just silly" - JSOP, 2010
                                        -----
                                        You can never have too much ammo - unless you're swimming, or on fire. - JSOP, 2010
                                        -----
                                        When you pry the gun from my cold dead hands, be careful - the barrel will be very hot. - JSOP, 2013

                                        G Offline
                                        G Offline
                                        Gary Wheeler
                                        wrote on last edited by
                                        #43

                                        For what it's worth, I've got some production C# code that handles TCP/IP communications that uses << and >> on occasion for endian-ness conversions, bit field extraction, and so on.

                                        Software Zen: delete this;

                                        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