1
SpiDee
6y

Stop teaching c/c++ ,start from python and java and teach us to contribute in (open source ) github .

Comments
  • 1
    What's wrong with C?
  • 0
    All your basics are also covered in java ..so no need of it in today's scenario.
  • 3
    C++ is nice though :c
  • 2
    Yup ..its a very nice language but college's teach that language just like a "make a calculator " . They dont teach us to connect it with database and all that
  • 0
    I still think C is the best language to start with... It is very explicit and most other languages build up on it. I think java is rather a special case you only need for specific tasks (I mean you are forced to use objects for everything, which is totally different for other languages)
  • 1
    @SpiDee That.. well that isn't the fault with the language really
  • 1
    @SpiDee but that is platform. Generally I'm against focusing on language learning or platform learning. You have to get used to do that on your own, since you'll be doing it for the rest of your life.
  • 0
    @RantSomeWhere the fact that it's abstracted doesn't mean it's bad to start with.

    Just because Lego Blocks are too abstracted doesn't mean that a baby should only learn by first dealing with material hardness equations and Autocad.

    That's what a LEARNING CURVE means. A steep one means many drop-outs. A learning program that is deliberately made hard is the shittiest learning program there could be.
  • 0
    @three333 what does C and C++ teach, that no other popular language can teach, that is important for everyone to know?
  • 0
    @AndSoWeCode
    C/C++:
    memory managment(addresses, alloc/dealloc, cache), common compilation process, parallelism

    C++
    Templates(generic programming), Inheritance & Polymorphism(OOP)

    For understanding the low level (and everything above) this is a really really broad and relatively forgiving place to start.
  • 0
    @simulate "memory managment" - only to discover failing at it miserably. That's why every programming language that came out in the last 20 years was about eradicating this problem.

    One must not have to learn to live with a problem, if there are ways to avoid it.

    That being said, aside from manual allocation and freeing up memory (which usually goes terribly wrong), every other memory feature you can teach with other languages.

    Compilation you can have with other languages as well. Parallelism as well. Those are not exclusive to C nor C++.

    Generic programming is present in most modern languages that have a fixed type system. Even VB.NET has it.
    Inheritance can be taught with any modern programming language, and polymorphism (poly-antipattern) with any strongly typed language.

    A student doesn't need to understand EVERYTHING. The student has a lifetime to learn about that. The student needs to learn to do SOMETHING. Which in C is much harder than many other languages.
  • 0
    @simulate and now I will come up with a list of stuff that you can't teach with C:

    Duck typing
    Annotations / Attributes to classes or methods.
    How to optimize, when needed, a garbage collector. Which again is not something a student should learn, but I'm continuing the train of thought. Except this thing is used in pretty much every widely used language. Except C.

    Why would you choose to impose a language that doesn't have many of the features of widely used languages?
  • 0
    @AndSoWeCode
    you cant "avoid" memory management. It is inherent to programming. Memory is something you must be aware of to avoid the "wrong-going" of the management of it. But many languages today try to hide it, which is not how you become aware of it. I am not saying everybody should always use C or C++ but these languages are honest. They dont take the thinking away from you with garbage collection or typelessness. These things are definitely useful but if you want to understand what they do, I suggest to start with C or C++. And its not like you can get nothing done in either of those. C++ provides a lot of high-level functionality and most of the time you dont have to think about memory management. But you can, and with many modern languages you can't.
  • 0
    I mean Java forces you to use classes. What the.. *choke*
  • 0
    @AndSoWeCode
    but honestly: I am probably not sufficiently educated to argue this, as C++ is my main language and I never really used any other languages exept scripting languages, partly because I have always enjoyed programming in C++ and I have never felt being held back by it. It challanges you to really dive into the problem.
  • 0
    @simulate "you cant "avoid" memory management. It is inherent to programming" - you can avoid manual memory management. You understood pretty well what I meant.
    If your purpose is to expose everything, then why stop at C? Why not go beyond - to studying architectures and engineering questions about transistor gates?

    There is a limit to practicality. And today, risking people dropping out due to something punishing them hard, for the benefit of them learning something that they will likely never use, makes as much sense as programmers starting off with the chemistry of a transistor.
  • 0
    @AndSoWeCode
    I understand your point, but I dont think memory management is as redundant to learn as learning about electric circuitry in a programmig class. Maybe we are also just different types of learners. I know that I need to understand the underlying mechanics to feel that I understand something. Maybe you rather need the big field to see where things tie together.
    After all it always depends on what you want to do. Though, even as a web developer you may not think about memory location at all but as soon as your site gets bigger and slower you will have to do some optimization, no matter what language you use, and it will include batching similar data together, minimizing memory fetches and optimizing your data structures
  • 1
    @simulate "memory management is as redundant to learn as learning about electric circuitry in a programmig class"

    Not memory management as a whole. Only manual memory allocation and deallocation. That thing is only done on C and C++ today. And you can't feasibly build a lot of modern software using C and C++ due to the extent of time required to build, scale and maintain it.

    Everything else can be taught in many other languages, that don't punish you hard by making your system unstable for a thing that's not very easy to find for a noob.
Add Comment