August 15, 2012 at 10:25 am
Question Guy (8/15/2012)
I'll be honest. I took C. It wasn't very useful. I program in .NET and SQL so much different than C, that there really wasn't any carry over whatsoever.
I bet that's not true. I suspect you don't see the fundamentals that you take from C and move into more practical languages.
August 15, 2012 at 10:26 am
Eric M Russell (8/15/2012)
[\quote]
I'd agree here if you are querying data. Maybe everyone should have that.
If you teach them C, they'll spend weeks learning how print "Hello World" on a console, will never use it, and will forget everything three months.
I disagree. The basic concepts of programming will stick with them, even if they don't use them directly. All the stuff I saw in C still exists in C#, Java, Python, etc.
August 15, 2012 at 10:29 am
GSquared (8/15/2012)
...Make everyone learn Malboge (http://en.wikipedia.org/wiki/Malbolge)...
Ouch! Why did I click that link? Why?
Personally I fall in the anti-C group. I did take a C class in college, but most of the classes were in pascal variants. C variants always felt like a way to force everything into a function even if it's unnatural. Programing languages are supposed to be for people to understand, but C requires the people to think like a machine to understand them.
August 15, 2012 at 10:34 am
Took C in college, spent 15+ years programming in it, much better programmer for it. I have seen many SQL only programmers create code that is unstructured and hence hard to maintain. Not saying you can't be good SQL only, but perhaps it is you do not know what you do not know.
<><
Livin' down on the cube farm. Left, left, then a right.
August 15, 2012 at 10:47 am
I have had c# training, but never had the opportunity to put it to use. Starting in high school I learned BASIC, COBOL, ALGOL, Focal, FORTRAN. Moving on to college I learned Pascal, Modula-2, Ada, VAX and PDP-11 Assembler, and more COBOL. In the real world, the only language I used directly that I learned in school was COBOL. Learned and used several reporting tools, scripted several Spreadsheet applications, and did a lot of command line scripting for several OS's.
Is learning C necessary, I don't thnik so. Learning to convert algorithms into working code, yes.
Learning to write well performing code, that comes with experience and mentoring. Not really sure that can be taught in school.
August 15, 2012 at 10:48 am
I messed with C years ago and if I were an expert in it today or even just knowledgeable I would absolutely not be any better off. No thanks.
Cheers
August 15, 2012 at 11:24 am
By your reasoning, all of us should be required to take a course in transmission repair before we're allowed to drive a car.
IMHO, the legacy the C/C++ is still hamstringing our technology. I still get BSODs in Windows 7 enterprise! I'm no expert on programming languages, although I've programmed in more than a dozen, including C. Based on what I've seen, I wish Eiffel had gained more of a following than it has. When last I looked into it, it was a pure O-O language that embraced multiple inheritance (takes away the need for those kludgy interface contructs in Java/C#/Object Pascal, etc.) and generated C code behind the scenes so it's really fast. That's what a good language should do - let you work on the business problem without having to worry about the internals.
August 15, 2012 at 11:56 am
Mike Austin-398977 (8/15/2012)
By your reasoning, all of us should be required to take a course in transmission repair before we're allowed to drive a car.IMHO, the legacy the C/C++ is still hamstringing our technology. I still get BSODs in Windows 7 enterprise! I'm no expert on programming languages, although I've programmed in more than a dozen, including C. Based on what I've seen, I wish Eiffel had gained more of a following than it has. When last I looked into it, it was a pure O-O language that embraced multiple inheritance (takes away the need for those kludgy interface contructs in Java/C#/Object Pascal, etc.) and generated C code behind the scenes so it's really fast. That's what a good language should do - let you work on the business problem without having to worry about the internals.
Does it allow you to move to the internals and customize them if you want/need to?
- Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
Property of The Thread
"Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon
August 15, 2012 at 12:19 pm
GSquared (8/15/2012)
Mike Austin-398977 (8/15/2012)
By your reasoning, all of us should be required to take a course in transmission repair before we're allowed to drive a car.IMHO, the legacy the C/C++ is still hamstringing our technology. I still get BSODs in Windows 7 enterprise! I'm no expert on programming languages, although I've programmed in more than a dozen, including C. Based on what I've seen, I wish Eiffel had gained more of a following than it has. When last I looked into it, it was a pure O-O language that embraced multiple inheritance (takes away the need for those kludgy interface contructs in Java/C#/Object Pascal, etc.) and generated C code behind the scenes so it's really fast. That's what a good language should do - let you work on the business problem without having to worry about the internals.
Does it allow you to move to the internals and customize them if you want/need to?
Would you like to support such a thing? Imagine trying to provide support for a "black box" that a customer has fooled with. It would suck to the bone. Now, to be fair, I've seen plenty of things that "generate code" and do it poorly but that is an issue you take up with the provider or find a better package.
Cheers
August 15, 2012 at 12:20 pm
In my experience the 'adult-oriented' degree programs (not to be confused with ITT, Strayer, DeVry, etc.) required C++, Java, and SQL entry classes for MIS-type degrees early in the 2000s, and likely still do today. Your premise is not without its practical devotees, Steve...
August 15, 2012 at 12:26 pm
Mike Austin-398977 (8/15/2012)
By your reasoning, all of us should be required to take a course in transmission repair before we're allowed to drive a car.IMHO, the legacy the C/C++ is still hamstringing our technology. I still get BSODs in Windows 7 enterprise! I'm no expert on programming languages, although I've programmed in more than a dozen, including C. Based on what I've seen, I wish Eiffel had gained more of a following than it has. When last I looked into it, it was a pure O-O language that embraced multiple inheritance (takes away the need for those kludgy interface contructs in Java/C#/Object Pascal, etc.) and generated C code behind the scenes so it's really fast. That's what a good language should do - let you work on the business problem without having to worry about the internals.
Multiple inheritence has its own sins to answer for. Python does it too, and when I created a system in Python I had to be extremely careful not to hybridize the class hierarchy.
I ended up using classes and "services" (basically classes that never have descendents and include no functions found in classes). It was still kind of hairy.
Interface contracts give you the benefits of multiple inheritence without the quagmire of hybridization, so I'm all for them. π
Basically, multiple inheritence = global variables, interface contracts = local variables (at least from an inheritence standpoint).
August 15, 2012 at 12:41 pm
I started using C along with Pascal at college in my youth. I think it's a great language very powerful (you can use assembly directly within C). I think it's more important though to teach the concepts of software development and the life cycle, the chosen languages will follow later.
C does have uses where it's very specific and where it excels a lot more. Unless you aim to be an IPhone developer, an Xbox games developer or spend your career writing device drivers you probably won't ever use it.
-----------------------------------------------------------------------------------------------------------
"Ya can't make an omelette without breaking just a few eggs" π
August 15, 2012 at 1:14 pm
It's been a while, but IIRC Eiffel allows the developer to choose which properties, methods, etc. to inherit from each parent, so there aren't the pitfalls of C++, in particular. BTW, Eiffel came out ~ 1989. If Bertrand Meyer (sp) could get multiple inheritance to work 23 years ago, why couldn't they do it in C# or Java?
August 15, 2012 at 2:10 pm
In the mid 90s I was stuck in a support position and desperate to join the deities (C programmers) on our team. I threw myself into learning C but fate intervened in form of layoffs before I could get a toe hold in development so I never used it professionally. But to this day I am grateful for what I learned while studying C.
I think those who first learned DOS had a leg up on those who first experience was Windows and feel the same about C and subsequent languages (Iβm sure the analogy between assembly language and C also applies). Simply understanding that when you click an icon you are asking the OS for permission to speak to your app gives a leg up on most people currently in IT.
But so it goes and goes. Weβre all standing on the shoulders of those who went before us. Someday developers currently in their 20s will be telling newcomers how they suffered in the early years and are better for it (βWe had to use a KEYBOARD!!!β or something to that effect).
August 15, 2012 at 6:51 pm
When I did software engineering at university (2001-2005), we learnt C for networking, SQL for database theory, and Java for concurrency. We also learnt Eiffel and design-by-contract, which was a really interesting contrast to most other languages.
(Of course, it wasn't the first time I'd seen C or Java.)
It was a good mix.
But all I use today in my BI role is SQL, and some of the design-by-contract skills I learnt with Eiffel.
Viewing 15 posts - 16 through 30 (of 52 total)
You must be logged in to reply to this topic. Login to reply