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?

  • brisk ( brisk@aussie.zone ) 
    link
    fedilink
    arrow-up
    11
    ·
    6 months ago

    What level are your students (primary school, high school, technical college, university)?

    You said it’s not a core skill, so what is their core skill? IT? Machinist? Electronics engineer?

    C is an excellent “fundamentals” language that anyone with a software engineering and maybe computer science should have exposure too, but if their programming is purely practical (e.g. scripting for IT?) C is essentially irrelevant.

    Javascript is very narrow in scope but if they’re web designers then it’s essential.

    I’ll back the other commenters that if they need a language they can do useful things in (e.g. simple automations, calculations), Python is hard to pass over.

  • I would start with Python. It’s a fun language to learn, and generally recommended for beginners. Towards the end, I would spend a few sessions on c, not to teach them c but to give them an appreciation for what they get for free in higher level languages.

    • JS is actually pretty great as a language these days.

      It doesn’t have to imply NPM hell. And it’s got normal syntax and doesn’t do Python’s weird meaningful-indentation thing.

      (It does have the == typecasting weirdness though.)

      – Frost

  • MagicShel ( MagicShel@lemmy.zip ) 
    link
    fedilink
    English
    arrow-up
    8
    ·
    6 months 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.

  • Daedskin ( Daedskin@lemmy.zip ) 
    link
    fedilink
    arrow-up
    8
    ·
    6 months ago

    Like a lot of people mentioned, there’s a few good things you could start with, but C is probably not one of them. At my old job I ran a course for software engineer 2s to go over C, and even they had some struggles with it. If professional engineers struggle with C, it’s maybe not the best starting point. Even C++ might be better, but still adds a lot of complexity that isn’t necessary to know as immediately as the beginning.

    Whenever people ask me where to start, I say python. It gives you a relatively tame taste of environment setup, and can run code very easily and flexibly. Its type system is flexible enough to make a user aware of it, without it being as rigid as C or as vague as javascript. Because there’s enough libraries that are easy to pull in, even a beginner can start building useful programs without having to know how to build something equivalent to those libraries themselves.

    Obviously if you want them to make websites, javascript will be necessary eventually, and isn’t a bad place to start. If you’re going purely for CS knowledge, I do think python is a little better; going from python to JS is probably easier than JS to python.

  • Cryxtalix ( Cryxtalix@programming.dev ) 
    link
    fedilink
    arrow-up
    8
    ·
    edit-2
    6 months ago

    No way it’s C. The average student will go home and find that they can’t do much of anything they like, with the level of C they know. Even printing a string is famously hard in C, they’ll hate it. Nothing drains their interest in programming faster than segfaults.

    The average students wants to build games, websites, discord bots etc. Javascript makes it easy, none are easy in C.

    • thehairguy ( thehairguy@lemmy.zip ) 
      link
      fedilink
      arrow-up
      3
      ·
      6 months ago

      +1 to scratch, I’ve used it to both teach kids at one of those “stem summer camps” and adults who do recruiting for tech firms. Both groups were able to pick it up pretty quickly

  • traxex ( traxex@lemmy.dbzer0.com ) 
    link
    fedilink
    arrow-up
    7
    ·
    6 months 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 ( Kache@lemmy.zip ) 
    link
    fedilink
    arrow-up
    6
    ·
    6 months 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)

  • jtrek ( jtrek@startrek.website ) 
    link
    fedilink
    arrow-up
    6
    ·
    6 months ago

    Javascript is a horrible language, but it is ubiquitous. You’ll want to spend a little time on html and css if you expect them to do more than print output.

    You could focus on TypeScript, which will help them avoid some of the worst things, but then you spend more time on tooling and it won’t just run in the browser console.

    Python is a reasonably popular language with a good standard library. It has fewer bizarre quirks like adding two lists of ints together to get a string.

    I wouldn’t teach C to a general audience.

  • TehPers ( TehPers@beehaw.org ) 
    link
    fedilink
    English
    arrow-up
    5
    ·
    6 months 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.

  • lorty ( lorty@lemmy.ml ) 
    link
    fedilink
    arrow-up
    5
    ·
    6 months ago

    The fact that every computer has a browser where they can practice javascript probably makes it the better option. Python would probably require, on Windows, some setup that isn’t what you want to spend time on, and may be a barrier to them trying stuff on their own time at home.

  • Scrath ( Scrath@lemmy.dbzer0.com ) 
    link
    fedilink
    arrow-up
    5
    ·
    6 months 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