How sophisticated is your code?
-
Mark Nischalke wrote:
probably more than your people would understand.
Aye, there be the truth of it. I would honestly have to answer, that one of my clients told me that they were rewriting significant portions of the application because it needed to be dumbed down so inhouse people could understand it. The lessons learned from that experience are vast and deep. There certainly isn't anyone to blame, per se, but it revealed a variety of deficiencies dealing with motivation, education, documentation, and communication. Pretty much all the things we try to ignore. :sigh: Marc
Funny. I find the same response when ever one of my customers find that thier contract programmer used regex. "What are those funky symbols and what do they mean". Oh my goodness we are doomed.
MrPlankton
-
Despite knowing how to code VB, does anyone else find it a very difficult language to be able to read efficiently? It might be just my C roots that push me toward C#, but I guess sometimes you have to "speak the language of the land".
No differance between vb and c# in capability... Until you go to computerjobs.com. Then you find 15k premium for c# programmers. Now every project is a c# project.
MrPlankton
-
Stan Shannon wrote:
I've found that any attempt to employ programming methods beyond CS101 is a waste of time because it will always be considered "too complex" by someone.
At my company I was asked to rewrite my ASP.Net application in VB, due to the fact that no-one else can understand C#.:confused: I thought the reason they employed me was to teach them how to use more "advanced" technology.
I am so fortunate to work in a very small shop where my boss actually likes it when I use some new tool or technique that he doesn't know. It gives him an opportunity to learn something new too.
Meddle not in the affairs of dragons, For you are crunchy, and good with mustard.
-
I was on an interview yesterday and this was one of the questions I was asked by the Asst VP of IT. :wtf: How do you answer? Compared to what? or Very sophisticated, probably more than your people would understand. I was also asked by a project manager how I have used ASP.NET to code websites. Well, I haven't. ASP.NET is a technology, I have used the language C# to implement this technology.
only two letters away from being an asset
My applications always seem to start out simple enough, depending on the complexity of the app. It's all of the stuff you have to do to "idiot-proof" it that makes it become more complex. It always seems like a lot is overlooked during the analysis phase that is discovered later in QA. Then, there's the code comments and documentation, which, in an effort to explain code, can make it more confusing. Which is less complex?: // Items to display on each page (1 to 50) $maxitems = 20; or // This is how many items will be displayed on each page // It has to be at least 1 // It can't be more than 50 // Don't change the name of the variable!!! $maxitems = 20; // Fix maxitems // DO NOT MAKE ANY CHANGES BELOW THIS LINE!!! function checkmaxitems() { if (isset($maxitems)) { if ($maxitems < 1) maxitems = 1; if ($maxitems > 50) maxitems = 50; } else { $maxitems = 20; } }
-
Stan Shannon wrote:
code should always be complex enough to properly manage the inherent complexity of the application over its lifetime
"Everything should be made as simple as possible, but not simpler." Albert Einstein The architecture should not be complex from the beginning. It should represent a complex solution to a problem domain in the simplest, and easiest understood way. The code that implements the architecture should likewise be simple, easy to understand and maintain, yet complete the complext tasks that make up the solution.
only two letters away from being an asset
I think the only true measure of well designed software is an architecture that does not become more complex over time. It is designed well enough that it can be maintained and modified with no significant change to the original architecture. That could well mean starting off with a higher level of complexity than might ultimately be needed. But that is better than starting off with an underdesigned architecture and tweaking it until it begins to grow exponentially more complex in an out of control fashion.
-
I was on an interview yesterday and this was one of the questions I was asked by the Asst VP of IT. :wtf: How do you answer? Compared to what? or Very sophisticated, probably more than your people would understand. I was also asked by a project manager how I have used ASP.NET to code websites. Well, I haven't. ASP.NET is a technology, I have used the language C# to implement this technology.
only two letters away from being an asset
Mark Nischalke wrote:
How do you answer?
"It gets drunk every Friday night, and thrashes the crap out of the processor".
-
I was on an interview yesterday and this was one of the questions I was asked by the Asst VP of IT. :wtf: How do you answer? Compared to what? or Very sophisticated, probably more than your people would understand. I was also asked by a project manager how I have used ASP.NET to code websites. Well, I haven't. ASP.NET is a technology, I have used the language C# to implement this technology.
only two letters away from being an asset
You actually said that and they didn't throw you out of the office, with prejudice? It's a stupid question, but you don't insult their intelligence like that if you want to get the job. My experience with hackers who think that the legacy system is all wrong and want to re-write everything, is that they don't have the ability to understand code written by anyone else, and they don't really know why they made that assessment, the code seems all wrong to them because they can't read code. The other issue you hinted at is an assumption that you are smarter than a bunch of people you have never met... how do you know what their people would understand? Is it remotely possible that they are Einsteins compared to you? And the statement "I write code that other people can't understand" is a huge red flag. Pointing out a technicality in an interview question when it's obvious what they were asking, just makes you come across as an arrogant ass. This is different from recognizing a technical issue in a trick question. "Have you used ASP.Net to code web sites?" is a perfectly valid question, in common English, and I really hope you didn't say that. I would ask for clarification of the term 'sophisticated' but I wouldn't come back with a response that makes the person feel like it's a dumb question. I hope you didn't actually say any of those things.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for freeware tools and articles. -
jps330 wrote:
I guess sometimes you have to "speak the language of the land"
My problem with this is that I can write a better, faster system with C than in VB in shorter time that it would have taken to do it in VB. The argument that my company gave me is as follows : "If you leave, nobody will be able to support the system". As far as I know I am not the only person in the world that can code in C. Why should I write a crappy slow system, just so that my replacement can understand it?
What? Something is wrong there. VB sucks and it's totally unreadable, but I don't care what you're doing... it's ALWAYS faster than coding in C... if you know VB. When I first tried it, VB drove me nuts and it was slow to code, but that was my problem and I think you just need more practice with it. Performance issues I can understand, but come on... VB is waaay faster to write. I would rather work in C too, but speed of coding isn't why. And the answer to your last question is "so that your replacement can understand it" - I want to live forever too, but I'm not placing bets on it.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for freeware tools and articles. -
I was on an interview yesterday and this was one of the questions I was asked by the Asst VP of IT. :wtf: How do you answer? Compared to what? or Very sophisticated, probably more than your people would understand. I was also asked by a project manager how I have used ASP.NET to code websites. Well, I haven't. ASP.NET is a technology, I have used the language C# to implement this technology.
only two letters away from being an asset
i was once asked to break down my code into a flowchart displaying every loop and accordingly every single line of code. then again, such an act is impossible and an utter waste of time, for any program that does more than file > close. i guess some people still remember Pascal and logical diagrams :P
me, myself and my blog - loadx.org ericos g.
-
No differance between vb and c# in capability... Until you go to computerjobs.com. Then you find 15k premium for c# programmers. Now every project is a c# project.
MrPlankton
MrPlankton wrote:
No differance between vb and c# in capability...
Not true, actually. There are some parts of the underlying IL that are exposed differently by VB.NET and C#. Try overriding an inherited interface implementation in VB.NET. It won't allow you to do that. Try it in C# and it works just fine. Of course, some would argue that you shouldn't ever do that in practice, but that is another discussion.
-
I think the only true measure of well designed software is an architecture that does not become more complex over time. It is designed well enough that it can be maintained and modified with no significant change to the original architecture. That could well mean starting off with a higher level of complexity than might ultimately be needed. But that is better than starting off with an underdesigned architecture and tweaking it until it begins to grow exponentially more complex in an out of control fashion.
this is a great explanation. Ours is an old mainframe shop, with tons of assembler, the most critical stuff written by 2 guys in the 70's and 80's. Neither talked about reading Parnas or anything but they definitely grasped that good design "does not become more complex over time" as you've said. However, one brilliant guy wrote everything re-entrant, whether rentrancy was warranted or not, and in general wrote very complex code. The other brilliant guy wrote what I call 'baby code', every bit as functional, and as critical, but nonetheless, it's what's used to train new folks since it's so simple. The complex guy could win the perl obfuscation contest, the simple guy could send guy to the moon, but each bit of code would be understandable, even to a beginner. Dan Wasson
-
I was on an interview yesterday and this was one of the questions I was asked by the Asst VP of IT. :wtf: How do you answer? Compared to what? or Very sophisticated, probably more than your people would understand. I was also asked by a project manager how I have used ASP.NET to code websites. Well, I haven't. ASP.NET is a technology, I have used the language C# to implement this technology.
only two letters away from being an asset
Mine is so sophisticated that as soon as I finish writing the first constructor the application finishes writing it self....;P
-
The proper reply is, "My code enjoys a night at the opera, scotch and caviar. Top that bitch."
BW
Quick to judge, quick to anger, slow to understand.
Ignorance and prejudice and fear walk hand in hand.
-- Neil Peart -
Mark Nischalke wrote:
How sophisticated is your code
My answer would be: My code is generally readable, so simple in conceptual application, but sophisticated in invention. Multiple times has industry scrambled to find out how I did something. The most recent of which: Boeing introduced a request for a 5 million dollar contract to do an alternative to augmented reality in field operations since "the technology was not existant for a true out-of-lab software solution..." the same week we made the announcement at a Virginia presentation that we had taken augmented reality out of the lab and into the field and not as a prototype, but as a full operational and tested system. Sophistication in "new" designs: sophistication in creative solutions, sophistication in invention and R&D, but simple in overall design and application such that it is easy to understand how I did it once someone gets the code.
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
What? Something is wrong there. VB sucks and it's totally unreadable, but I don't care what you're doing... it's ALWAYS faster than coding in C... if you know VB. When I first tried it, VB drove me nuts and it was slow to code, but that was my problem and I think you just need more practice with it. Performance issues I can understand, but come on... VB is waaay faster to write. I would rather work in C too, but speed of coding isn't why. And the answer to your last question is "so that your replacement can understand it" - I want to live forever too, but I'm not placing bets on it.
"Quality Software since 1983!"
http://www.smoothjazzy.com/ - see the "Programming" section for freeware tools and articles.Jasmine2501 wrote:
I want to live forever too, but I'm not placing bets on it.
My plan is to live forever. So far so good.
-
To paraphrase and old line: "If you can't blind them with brilliance, then bury them in bullsh*t." :-D
JMOdom wrote:
"If you can't blind them with brilliance, then bury them in bullsh*t."
The ironic part of all these answers.... is although the tone is deliberately equivalent to the "HR speak" none of it was BS. :)
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)
-
JMOdom wrote:
"If you can't blind them with brilliance, then bury them in bullsh*t."
The ironic part of all these answers.... is although the tone is deliberately equivalent to the "HR speak" none of it was BS. :)
_________________________ Asu no koto o ieba, tenjo de nezumi ga warau. Talk about things of tomorrow and the mice in the ceiling laugh. (Japanese Proverb)