Hello,

I am thinking about teaching my students JavaScript first so that they can start creating websites and make their career, what are your thoughts?

  • Paulemeister@feddit.org
    link
    fedilink
    arrow-up
    0
    ·
    6 days ago

    I’ve studied with (now) engineers and there is large portion of people having a hard time with even the concept of a function. We learned C(++) at the time. I guess being forced to learn about what the hardware does kinda messed with people being able to just think about algorithms. As a first programmig language to just write some basic functions I like Python, but to be honest I don’t understand what’s going really going on behind the scenes either. But C is a really solid choice, as what’s really happening is easy to reason about (at least unoptimized) and every other language will have to abstract these same concepts.

  • gnuthing [they/them]@lemmygrad.ml
    link
    fedilink
    English
    arrow-up
    0
    ·
    6 days ago

    If you’re wanting to teach programming concepts, I would start with scratch instead. This can be taught to little kids or older students. It’s what the free comp science class from Harvard starts with

  • traxex@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    0
    ·
    7 days ago

    C teaches a whole variety of low level concepts that are helpful in any comp sci field. That’s my vote. Python holds your hand too much and JS would require more to get started. If they aren’t shooting for a comp sci degree and are just looking for helpful scripts then python would be fine.

  • Kache@lemmy.zip
    link
    fedilink
    arrow-up
    0
    ·
    7 days ago

    What grade sudents is this for? Do you intend for this to be a dedicated class/semester or just a single unit? How good are they at operating a computer? (Typing, clicking, etc)

  • TehPers@beehaw.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    7 days ago

    As a first language, JS is too much. They would need to learn three languages to make websites (JS, CSS, and HTML).

    I’d start with Python. It’s easy to learn, and modern Python gives you the tools to write code that’s easy to read and follow without being too verbose.

    uv should make things very easy to setup too. Install uv, then give them a starter repo with the Python version set. uv run should just work after that, no manual venv/conda/etc nonsense involved.

  • Sivecano@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    0
    ·
    7 days ago

    I mean, they’ll probably learn more from C. But please. You can do better than javascript. At least teach them python or something.

  • FizzyOrange@programming.dev
    link
    fedilink
    arrow-up
    0
    ·
    7 days ago

    I would teach Typescript. Being able to write the types down and hover things to see what types they are will definitely help them.

    I think C would put them off. I also wouldn’t go with Python, in case they want to do things like write games or make websites, which are common tasks you can do with Typescript but not very well with Python.

      • FizzyOrange@programming.dev
        link
        fedilink
        arrow-up
        0
        ·
        6 days ago

        Python’s performance is too poor to do anything serious. Go and look at the screenshots from Pygame. They look like ZX Spectrum era games.

        Compare that to something like PixiJS.

  • Scrath@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    0
    ·
    7 days ago

    After reading through some of the comments, here is my opinion.

    C would be a good language IF you know your students plan to get into IT, specifically a sector where the low level knowledge is useful. Beyond that, I assume your students probably use windows and I personally always find it a pain to work with C on windows outside of full IDEs like jetbrains and Visual Studio. It’s also a lot more work till you get some results that you are happy about. Unless you start with an Arduino, which I find pretty nice to get students interested in embedded stuff.

    I don’t like JavaScript because I find it a mess although it is very useful for anything web related.

    Given you said in another comment that this is meant to be a general purpose skill for your students I would strongly recommend python. While I dislike the dynamic type system, it is a very powerful language to get stuff done. You can quickly get results that feel rewarding instead of running into hard to fix issues that turn your students off of programming in general. Also it’s very useful outside of IT as a scripting language for analyzing data in basically any field or for generating nice plots for some document

  • MagicShel@lemmy.zip
    link
    fedilink
    English
    arrow-up
    0
    ·
    7 days ago

    Probably JS as the fact that every computer has by default everything you need to execute JS. But there is a bunch of browser stuff you have to worry about before you can do anything with it. I’m not sure how you learn JS before html.

    With Python you can do simple command line stuff without having to really know anything else. You can learn one concept at a time.

    That being said, people have a lot of familiarity with browsers and it might feel less abstract. JS might a better choice for demystifying coding. Python is probably a better choice for accomplishing anything useful.

  • abbadon420@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    8 days ago

    If you also plan on teaching html and css, than I’d go for js first. Having your code instantly response in a visual way, is super motivating for most students.
    If you just want to tech programming concepts, i’d go for python.
    If you want this to be the start of a complete cs study, than you can start with C

    • ghodawalaaman@programming.devOP
      link
      fedilink
      arrow-up
      0
      ·
      7 days ago

      That makes sense, I am also teaching html amd css first so I think JavaScript makes sense to teach next.

      I was thinking about C because that’s the first thing I learned in the college and that’s my favorite language till this day.

      • Mirror Giraffe@piefed.social
        link
        fedilink
        English
        arrow-up
        0
        ·
        7 days ago

        Good call. At this point the jankyness of js doesn’t pose a problem and the ones that get enticed will learn about type safety, classes etc down the line.

      • chicken@lemmy.dbzer0.com
        link
        fedilink
        arrow-up
        0
        ·
        7 days ago

        The problem with C as a language for learning is that the error messages are not very specific or descriptive and often you need extra context to understand what is happening. Messing up memory management can result in inconsistent gremlin-like behavior from your programs, it can get very tricky. I had a pretty difficult time when I got to classes that taught C compared to other languages, but the main thing was just that I needed someone to look over my work and explain things to me because unlike with other languages, the self-service ways of figuring it out were much more difficult and it’s easier to get stuck with no idea what to look into next. I ended up begging people online for help with understanding what was going wrong with my programs to supplement the limited amount of time the professor and TAs were available, really grateful to those guys as I probably would have failed it otherwise.

        Anyway I would just say that if you do really want to go with C, I think you should be willing to put in more time to explain things to students one on one because many of them may need it.

    • TehPers@beehaw.org
      link
      fedilink
      English
      arrow-up
      0
      ·
      7 days ago

      My school didn’t have a course, but the test was entirely in Java.

      C would have been a lot more useful.