I showed your project to my 12 year old son who has just started to learn programming (in JS no less!) and his jaw dropped.
In addition to being a programmer, you are now a role-model. Really well done.
I showed your project to my 12 year old son who has just started to learn programming (in JS no less!) and his jaw dropped.
In addition to being a programmer, you are now a role-model. Really well done.
Tell your son that it took me a while, and a lot of work, but it feels great to finish something (there are a lot of projects that I don't finish...).
I began learning using Scratch a long time ago. They even featured me last year (the project was a solar system in which I used sine and cosine to calculate the rotation of the planets). I then used blocklike.js to move to JS.
I watch a lot of YouTube videos. I like The Coding Train, Carykh, and Code Bullet, and I get a lot of my ideas from their projects.
You and me both. :)
You'll learn, build relationships and some of you will go off and found companies together.
Kind of like when I was trying blacksmithing, the teacher makes you make your tools first.
Maybe you were either too late, or too early, depending on perspective. :)
The mentality of those taking boot camps, and the mentality I had when I started coding are vastly different, but I can see the use.
Various example BASIC programs (e.g. Lissajous curve and circle plotters and such) used those functions and from their behavior I kind of picked up the relationship to both undulation and the circle. I found out about the arctangent function, and from that I realized that it could be used for 3D projection. I made a proof-of-concept program that mapped some connected points in 3D (boxes and whatnot) to 2D by calculating the visual angles using arctangents: i.e. I plotted the angle between the line of sight and each point, rather than a simple planar projection. It resulted in the objects appearing in a very nice "fish eye" perspective on the screen, which was very pleasing. From all that I learned about radians also and how there are "two pi" of them in a circle, since the functions accepted radians and not degrees.
You know how they say that necessity is the mother of invention; it's also the mother of learning trigonometric functions and whatever else.
By the time it came around, I was disappointed to learn about all the "triangle stuff". I want quite there enough to make the link between right angle triangles and a circle but it made that topic so much easier to connect.
Thanks to programming and the thought patterns it drums into you, I was able to do my maths course work in a few pages (far less than anyone else) but still achieve high marks. I remember one top performer in my class complained to my teacher because of how little I'd produced! The teacher said "doesn't matter - he used an approach that let him do that".
Having a lot of projects that you don't finish is completely normal, so don't worry about that.
It would be much better if he would start with Scratch, Processing, Smalltalk, or even Python.
On JS he'll have to lose time coping with complicated build tools, horrible package system, async etc.
- devtools are unmatched for browser development (and getting better for node)
- absolutely best language for prototyping (dyn. typing, monkey-patching, eval, and a lot of other "evil" things you usually don't need in further phases but it's really great to have them for this exploratory phase)
- I respect that some people prefer static typing and code-completion but I prefer writing tests and having few well-known libraries for which I don't need completion at all
- no threads, no mutexes, no locks
- object literal, rest-spread, destructuring, classes are just ordinary (and mutable) objects, etc...
If you think people are doing JS just because it's the only language in the browser (not true anymore) you should seriously reconsider. There were to-js compilers before and it was always awful (remember gwt? dart?)
Of course, it depends on use-case, JS is not the best language for everything.
Back in the day we started with Qbasic not because it is a good language but because that was easy to set up, we all had it and our friends had it and our school computers had it.
And JS is less bad a language than Qbasic.
Set up is rarely an issue, once you set up a language even as complex as C++ its completely automated. You press a button and magic happens.
If the biggest selling point of a programming language is that it comes preinstalled with the OS of your choice, its not much of a selling point when the average user downloads and installs GBs of data just to play the latest game hype like Fortnite.
The only people who mind installing stuff are predominately web devs. 99.9% of users out there are fine with it for more than 6 decades now and that wont be changing any time soon.
But you can hack away on any computer with a browser.
Ideone is a popular example https://ideone.com/
see how that sounds? that's how you js haters sounds each time I see this bs here on this and many other platforms that wouldn't be possible without js.
A language that requires a 21x21 matrix to remember how equivalency works is objectively bad: https://dorey.github.io/JavaScript-Equality-Table/unified/
A language whose default sort behavior is the following is objectively bad:
[5, 12, 9, 2, 18, 1, 25].sort(); → [1, 12, 18, 2, 25, 5, 9]
I used to be a frontend dev. I have written hundreds of thousands of lines of production JS code for apps that many Hacker News users use on a regular basis. I well understand how much JS has made possible. The web would not be the same without it. But that doesn't mean it's a good programming language.JS is the New York of languages: dirty and gross and hella expensive, but if you can make it there, you can make it anywhere.
A simple `node index.js` can go really far.
Good job Liam
Everything else is unnecessary, at least as far as the programming language itself is concerned.
It’s still perfectly possible to just create a html document, shove in a script tag, and start developing
And if you want to use packages from the npm ecosystem you can easily use https://unpkg.com/