Open Side Menu Go to the Top
Register
Any C++ Programmers in here? Any C++ Programmers in here?

04-08-2011 , 12:30 AM
Quote:
Originally Posted by goofyballer
I'd still be more impressed if someone who did have more relevant experience came knocking at my door and also happened to have a better grasp of lower-level languages than other candidates.
I would too. If they showed me some sample program that was obviously very well architected, and cleanly coded, and also happened to be a C expert and know assembly, I would be very impressed. It's just that the first part of that equation would be the *main* thing I was impressed by.

I don't think we really disagree on too many specifics, it's more a matter of attitude. I think good high-level design skills are what programming is *essentially* about, and I'm just emphasizing that over and over like beating a dead horse because I think it's so important. The skill is really organizing information, and structuring process. Ultimately the goal is code with good usability. It is just like UI design, except the users are other coders (including yourself). So it is primarily a skill of communication, and understanding how other people think. It's entirely independent of languages, it's even independent of computers. There could be a complete revolution in computer hardware, making languages like C and assembly obsolete, making the underlying mechanics of computers totally different. Yet a good programmer, as I am defining him, would still be a good programmer.
Any C++ Programmers in here? Quote
04-08-2011 , 12:45 AM
Quote:
Originally Posted by gaming_mouse
They have the attitude that they know the really hard stuff, and a superior kind of scorn for so-called easy languages.
You are mixing up attitude from certain people in your past and technical facts.

What is really missing in your thought process, that all the high level design decisions are a result of low lvl procedures.

Just take this statement as it is. The people working on developing C# spend pretty accurately 3 times more time with assembly/CIL than with C#.
Yet, they are the ones to ask about C# unarguably.

Also your architect analogy. You realize that during study, the future architect starts with learning about different kinds of woods, metals and plastic before they dive into statics. And without knowing about the very base materials, he can't plan the building.

I agree that this kind of knowledge is not necessary for small business applications, but it is any case an advantage to know that.
How would you even get one bit of performance out of NGen without understanding what the GACUTIL.exe does?
Any C++ Programmers in here? Quote
04-08-2011 , 01:11 AM
Quote:
Originally Posted by wellju
You are mixing up attitude from certain people in your past and technical facts.

What is really missing in your thought process, that all the high level design decisions are a result of low lvl procedures.
.
This is plain wrong. You are confusing implementation with interface. The *design* of high-level languages has nothing to do with how they happen to be implemented. And no, I would certainly not want to ask the people who implement them about architecture questions that relate to the high-level use of the language. If I want to know how best to drive a race car, I'll ask a race car driver, not the guy who built the engine.

Quote:
Also your architect analogy. You realize that during study, the future architect starts with learning about different kinds of woods, metals and plastic before they dive into statics. And without knowing about the very base materials, he can't plan the building.
This is also wrong, at least as it relates to my point. I have met at least one architect who designs gorgeous, unique houses in LA. He never went to school, and knows almost nothing about engineering or construction. He just has great ideas, and knows how to draw enough to get them across, and he works with structural engineers who take care of the details. The construction work, like most low-level code, can be done just fine by cheap labor.

While he might not be a typical architect, the example demonstrates the point I am trying to get across.
Any C++ Programmers in here? Quote
04-08-2011 , 01:30 AM
Ya, architects who can barely draw a house are extremely efficient ...

We won't ever agree, so I'll just stop.
Any C++ Programmers in here? Quote
04-08-2011 , 01:34 AM
Quote:
Originally Posted by wellju
Ya, architects who can barely draw a house are extremely efficient ...

We won't ever agree, so I'll just stop.
That's fine, we can stop, but I will just say that it has nothing to do with efficiency.

The point is this guy has the real skill, the thing that matters. He can create new, beautiful houses that people want to live in. The rest is just details that anyone moderately smart can learn and implement. I am saying the same is true of the skill of software architecture.
Any C++ Programmers in here? Quote
04-08-2011 , 02:59 AM
Last derailment, I promise.

We found a consensus via friendly PMs.

Might just be interesting for others if such a situation of two brick walls arguing comes up again. Make sure you're talking about the same topic.
Any C++ Programmers in here? Quote
04-08-2011 , 03:19 AM
cool, glad that cleared it up
Any C++ Programmers in here? Quote
04-08-2011 , 11:29 AM
lol c++

lrn2Python
Any C++ Programmers in here? Quote
04-08-2011 , 05:47 PM
Quote:
Originally Posted by goofyballer
You'd certainly be a better programmer when you at least understand assembly and what's going on at the CPU level.
Why? I consider myself an expert at assembly language programming and C++ btw. I don't think I agree with this but I could be convinced otherwise.

After skimming this thread I pretty much agree with gaming_mouse. If you're doing real-time type software development for embedded applications that's one thing. But if you're doing applications for the Web, Windows and such knowing the underlying CPU architecture isn't really that beneficial. If nothing else when doing Windows apps (yeah I know) the support for C++ is just not even close to what it is for C# or even VB. There are a lot of different software development apps, choose the environment that works the best for the particular type app in question.

FWIW and to my chagrin I think C++ is becoming a dinosaur.

WOW. I didn't even know this forum existed. This is great.
Any C++ Programmers in here? Quote
04-08-2011 , 05:50 PM
Quote:
Originally Posted by rich99cook
lol c++

lrn2Python
There's a reason they call it "work," you know.
Any C++ Programmers in here? Quote
04-08-2011 , 07:09 PM
The idea that you need to know C++ / ASM or some low-level language to understand modern development is kinda ridiculous. I learned networking through Novell 3, writing batch scripts, and know way too much about the transport layer, but none of that **** helps me write better code to take advantage of it, because libraries exist that do all that stuff anyway.

Being good at C++ probably helps you to write more efficient code in languages like PHP or Ruby. But it doesn't really matter in most web applications that you're going to do anyway since stuff is going to be i/o-bound and not memory or transport layer bound, at least for the forseeable future. This doesn't mean you should write circular references and not unset your variables / query objects where it's obvious to do so, but spending time on esoteric optimization is exactly what you're not supposed to do in most modern languages: They were created so you didn't have to.
Any C++ Programmers in here? Quote
04-09-2011 , 02:44 AM
Quote:
Originally Posted by kyleb
...but spending time on esoteric optimization is exactly what you're not supposed to do in most modern languages: They were created so you didn't have to.
its not the modern languages that try to give relief from the need to optimize... its the modern CPUs. Pretty much half the transistors on a modern CPU are there to refactor the average programmers sloppy sloppy code into something that will run at a decent clip.

Giant instruction caches, out-of-order execution, hyper-threading, and others... all things that provide benefit that is inversely proportional to the efficiency of the original code.
Any C++ Programmers in here? Quote
04-11-2011 , 11:13 AM
Quote:
EDIT: in fact, if i were hiring, i would be suspicious of someone who had, say, a lot of assembly experience as someone who was likely bad at high level design.
I'd strongly disagree with this. In fact when I hired I didn't care at all if someone had experience in the language we used (Python) because I assumed that after a week they would be good enough at it.
If you hire programmers you basically hire someone's analytical skills and their ability to learn and adapt with a bit of his social/teamwork skills on top. Then in spot #3 I'd say domain knowledge may become relevant.*

And yes I've hired mathematicians with 0 programming experience and they have performed great after a short time of learning.

*And as a strong disclaimer I think this view only works with a high level language because it takes very long to master the nuances of C++/C etc. in my opinion

Quote:
Maybe I'm just getting old and don't realize entirely how cheap computing power is nowadays and that you basically don't have to care about memory any longer, but I can't think of any reason why it's a disadvantage to know about e.g. memory allocation or what a medium lvl language does to translate your high lvl code into low lvl output.
Of course this is not a disadvantage but to be fair you have to compare it with someone who instead of having these skills brings other skills to the table and not compare the guy that knows C# to the guy that knows C# AND asm, C, C++

I also think that in this day and age if I'd teach programming I'd go top-down instead of bottom-up i.e. Ruby/Python etc->C++- (+- C and functional language here)->ASM. Oftentimes this is a more realistic outlook anyways since you'll write something in a high level language (or maybe prototype in it) and then drop down if optimization is needed.

Last edited by clowntable; 04-11-2011 at 11:22 AM.
Any C++ Programmers in here? Quote
04-11-2011 , 11:37 AM
Quote:
Originally Posted by mr_stinky
its not the modern languages that try to give relief from the need to optimize... its the modern CPUs. Pretty much half the transistors on a modern CPU are there to refactor the average programmers sloppy sloppy code into something that will run at a decent clip.

Giant instruction caches, out-of-order execution, hyper-threading, and others... all things that provide benefit that is inversely proportional to the efficiency of the original code.
This is generally what I was referring to.
Any C++ Programmers in here? Quote
04-12-2011 , 12:07 AM
Quote:
Originally Posted by wellju
Maybe I'm just getting old and don't realize entirely how cheap computing power is nowadays and that you basically don't have to care about memory any longer
For high performance applications, knowledge of memory hierarchy is essential. Further optimizations become meaningless is memory hierarchy isn't taken advantage of.
Any C++ Programmers in here? Quote

      
m