Hi, it's Jorge here. This GitHub repository contains a series of coding "challenges" that will help you learn HTML/CSS/JavaScript basics for creating online experiments. You can think of these challenges as fun, low-stakes ways of acquiring (or verifying that you already have) the "skills" you'll need to create your own experiments in our lab.
The main tool we use in the lab to run online experiments is a combination of HTML, CSS and JavaScript (not to be confused with Java!). While technically these are three different languages, they are often used together to create properly formatted, flexible, dynamic websites. For the most part, the internet runs on HTML/CSS/JavaScript, and this is 99% of what we need to run our online experiments.
Coding can be fun and the basics are often relatively easy to learn. At the beginning the learning curve may seem steep (what is a coding editor? wait, how do I make things happen? what is a function?), but once you cross that initial threshold you can learn quickly and start doing fun things and, more importantly, you can start doing science! I've found that the best way to learn (or test whether you know) a programming language is by trying to solve a real challenge. This is in contrast with, say, just following a tutorial in the vacuum. I think those are extremely useful, they may give you a better overall understanding of coding in general and of the language you're learning in particular. And, of course, to some extent you'll need to learn the basics by following some kind of online tutorial or by taking a class. But I think that to get to the point where you can code your own experiments the only way is to... just try it!
In the spirit of this approach to coding, in this GitHub repository you'll find three coding "challenges" with different difficulty degrees: challenge 0 is easier than challege 1 which is a bit easier than challenge 2. Depending on your current coding skills, you may approach the challenges differently.
Fear not! Learning how to program can be really fun, extremely useful, and actually pretty cool! Although challenges 1-3 are supposed to increase in difficulty, challenge 1 might be where you spend most of your time. That is only normal since you're learning to code from scratch. Think of it like this: reading Harry Potter is easier than reading Shakespeare. Sure. But only if you already speak English! The effort required to learn enough English to understand Harry Potter is likely larger than the effort required to move from Harry Potter to Shakespeare. So, be patient! At the beginning things might not make too much sense and you might not know what to do next. But rest reassured, once you get it (and you will!), it'll just be a matter of practice.
Transfering your skills from another language (e.g. Python, MatLab) to HTML/CSS/JavaScript is probably easier than learning how to program for the first time. I'd recommend looking for tutorials where you can learn the basic syntax of HTML/CSS/JavaScript and perhaps even tutorials specifically targeted for people switching from the language you know to HTML/JS/CSS. Once you feel comfortable with the new syntax, try solving the three challenges.
If you already know how to code using these languages, you could think of the challenges as a "test" of your skills. If you solve all the three challenges quickly and easily, you're probably ready to go ahead and try out coding a real experiment with the lab. If you finished them all but it was harder than you expected, you probably are ready to code experiments, but you'll need to pick up some new tricks/practice more to get to a comfortable and efficient level.
Google.Is.Your.Friend. You can (and forever will) google your way through coding. There are (probably literally) millions of resources out there. Even experienced coders google things all the time (from the most basic syntax questions to the most difficult problems). Google how to do things, find tutorials appropriate for your level of skill. And don't feel that you need to know everything about the language from a theoretical point of view before actually trying to code. Just go for it. You won't break anything :)
Go read the challenges.md file now, and...have fun coding!