this post was submitted on 24 Mar 2026
45 points (88.1% liked)

Programming

26316 readers
908 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities !webdev@programming.dev



founded 2 years ago
MODERATORS
 

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?

(page 2) 30 comments
sorted by: hot top controversial new old
[–] GrumpyBike1020@monero.town 2 points 1 week ago (1 children)

My high school AP computer science course in the ealry aughts taught C first.

[–] TehPers@beehaw.org 2 points 1 week ago

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

C would have been a lot more useful.

[–] Anaeijon@lemmy.dbzer0.com 2 points 1 week ago* (last edited 1 week ago)

Depends in the goal.

If they are interested in Hardware, there is no better solution, than buying a hand full of cheap, "knock-off" Arduino Nano or RP2040 boards, a couple of LEDs and resistors and then let them Experiment with Arduino C, which teaches C programming in a fun and meaningful manner.

If they should get actual useful skill, start with Python. It's easy to learn. It's widely used for small, single-person projects, e.g. for gathering and analyzing data, running simulations, organizing something, interacting with APIs...

For any project, where I'd say, that it can be done quickly by a single person quickly on the side, Python is usually the best option. Even for experienced programmers. But especially for people that are new to programming or learning. It's easy, approachable and (because everything is handled by some library) quite safe to work with.

It's by far the most useful language for anyone that isn't a full software developer. And it's among the easiest to learn.

Also, when teaching Python, consider teaching with Jupyer documents. It immediately shows, what the short block of code is doing, instead of writing a huge and long script file, then executing it and struggling with debugging where students might not even know, how to start. An easy to host solution to supply Jupyer to a whole class is JupyterHub. If you aren't concerned about your students data, Google Colab is a JupyterHub for free.

And now, finally, if you want a course that has some practical use (e.g. data analysis and math stuff) while also doing fun things and being incredibly interactive because of the use of hardware... Well... It's python again.

Let them write a short branching story using Ren'Py. It's easy and will get them engaged. Go on and switch to Jupyter/Colab and do a bit of data scraping, data analysis/math or image filters. Basically introduce numpy, then pandas, then scipy, beautiful soup or openCV. Pure hard skills, that are applicable in many jobs. But realistically, due to time constraints in normal courses, all you want to do here, is numpy to get into it and automate math homework, followed by pandas, to load and automate excel files. And finally, let them do something with hardware, by programming a RP2040 in microPython. It's not as widely adopted as the Arduino ecosystem, but it's good enough for the simple stuff students will be able to learn, and you don't have to introduce a completely different language.

[–] who@feddit.org 2 points 1 week ago

I think JavaScript and web app development will be among the first programming jobs to be eaten by LLMs, and it's already a crowded field. I'm skeptical of that being a wise career move for newcomers today.

[–] melsaskca@lemmy.ca 1 points 1 week ago

I'd start with logic, infrastructure and design first. Once that is locked in they can use any language to move forward as it's only syntax you need to learn once your logic and design is solid. I'd offer them a choice of three different languages to achieve the same end result of the assignment. This shows them the importance of logic and design and the transference of skills.

[–] e8d79@discuss.tchncs.de 1 points 1 week ago* (last edited 1 week ago)

I would go for something like Processing for students who are just trying to learn a bit of programming as an extra credit. The JS implementation is called p5.js. I would introduce a little bit of C later in the course once the students are familiar with basic programming concepts. That way you can show them what is happening behind the scenes without overwhelming them from the start.

[–] ICastFist@programming.dev 1 points 1 week ago

Why not SmallBasic then? You could even point them to old computer magazines and see which codes they can get running without much workaround.

[–] raicon@lemmy.world 1 points 1 week ago* (last edited 1 week ago) (3 children)

I would say C first. You need to learn the fundamentals:

  • pointers
  • allocation
  • reference vs value
  • recursion
  • stack
  • panics, errors, error propagation
  • data structures

Many devs don't know it and they are honestly just clueless about anything they are doing. They just want to make it work.

JavaScript is just too high level, and makes you think you are immune to these low level concepts, but you are not.

And not only that, but also good practices, like:

  • git
  • linting
  • types of tests and how to implement them
  • working with third party dependencies
[–] Flamekebab@piefed.social -1 points 1 week ago (1 children)

I've been working as a software engineer for years and not once have those "fundamentals" been relevant to the work I do.

If I question their usefulness then I don't think it'll sit well with no experience at all.

[–] grue@lemmy.world 2 points 1 week ago (1 children)

If you've been working as a software engineer for years and things like error handling and data structures (let alone git and testing!) are not relevant to you, I fear for your employer's codebase.

[–] Flamekebab@piefed.social 1 points 1 week ago* (last edited 1 week ago) (1 children)

Hah! You picked the two of ~~your~~ that list that I actually do care about.

  • pointers * allocation * reference vs value * recursion * stack * panics, errors, error propagation * data structures

I don't know what pointers are. I don't care about memory allocation. Recursion rarely comes up.
That's not the kind of codebase I work with. I guess I'm not a proper big-boy programmer 😢

Anyway, your snide remarks about my abilities aside, that doesn't address my point at all.

[–] grue@lemmy.world 1 points 1 week ago (1 children)

First of all, it's not my list. Check the usernames of the comments you're replying to.

Second, you didn't make any sort of distinction limiting which ones you were talking about before, which means that you expressed that none of them were relevant. You don't get to move the goalposts and then pretend it doesn't address your point because of that.

Third, that sloppiness and failure to pay attention is only reinforcing my initial impression.

[–] Flamekebab@piefed.social -1 points 1 week ago* (last edited 1 week ago) (1 children)

Calling me out on a clarification when you're banging on with ad hominem rubbish?

Respond to the point or bugger off. I'm not here to impress you, you're not my dad.

Third, that sloppiness and failure to pay attention is only reinforcing my initial impression.

A good engineer knows when the details matter and when it's just wasting everyone's time. Would you classify responding to someone being needlessly hostile as something other than a waste of time?

If anything you should be criticising me for choosing to spaff more time on this conversation.

[–] grue@lemmy.world 1 points 1 week ago (1 children)

You weren't "clarifying;" you were backtracking and lying about it. That's a detail that matters.

[–] Flamekebab@piefed.social 0 points 1 week ago (1 children)

Respond to the point or bugger off.

[–] grue@lemmy.world 1 points 1 week ago* (last edited 1 week ago) (1 children)

I did respond to the point, in my initial comment. Your lack of reading comprehension (and dishonesty!) is your own problem, not mine.

[–] Flamekebab@piefed.social 0 points 1 week ago (1 children)

Your continuing inability to engage in an even remotely constructive way is really tragic.

Instead of seeing my response as "He takes my point and sees that his initial comment was too broad. We could have a conversation" it just ends up as an opportunity for you to make this community more hostile. That's so sad.

Hopefully you're just having a bad day.

[–] grue@lemmy.world 1 points 1 week ago (1 children)

Yeah, we could have had a nice conversation, if you had ended your initial reply to me a sentence earlier. But you didn't, did you? No, instead, you tried to turn your failure to say what you meant around on me as if it were my fault, in an attempt to save face at my expense. Did you really think you weren't going to get called out on it?

There is only one person "failing to engage in an even remotely constructive way," and that's you, not me.

[–] Flamekebab@piefed.social 0 points 1 week ago* (last edited 1 week ago)

You're in a foul mood today, aren't you? Okay, hope tomorrow is better. I'm not arguing with you about whatever this nonsense is.

load more comments (2 replies)
[–] org@lemmy.org 0 points 1 week ago
load more comments
view more: ‹ prev next ›