Hello Hashnode, this is my first post here :)! I'm doing soon a workshop for my friends who are grad student but have no experience in real world programming.
I have a few years of experience with Express, Rails and more recently, Phoenix (Elixir) but I feel confident enough to teach them in any other framework if it suits the purpose of them learning.
They are already used to working with basic algorithms and know a few about relational database modeling.
My main purpose of this workshop is to bootstrap them into the web development world giving some basic understanding of HTTP, API design best practices, devops, etc...
I'm really leaning toward Rails since it does all the (not yet) necessary to understand work for us. So, any suggestions?
The focus is on the theory and principles, and not as much the implementation, correct? If that's the case, use whatever is most comfortable for you as the instructor, so you can focus on the concepts instead of whether or not you're using such-and-such framework or language correctly.
I'm a Java and Kotlin coder, mainly using Spring. I could whip out a reasonable demo API in ten minutes with those and dig in on the why's and how's of REST from there. If I'd asked your question and someone said I should do it in Express, I'd be so worried about whether I was giving them a good representation of how to do it in a new environment that I'd bomb everything else in the lecture.
The important thing is to get the concepts across well enough for them to understand. Then they can apply those in whatever language and framework they need or want to use.
Or bonus: you said you're comfortable in both Rails and Express (and the Elixir one). Use all of them. Then you can more effectively demonstrate that the concepts don't necessarily apply to a single framework or language, and they just need to find out how to accomplish what they want when they pick up something new. (By the time their careers really get under way, there'll be some other new hotness that will make everyone sneer at today's flavor.)
Definitely NodeJS, and Express, as mentioned by Tonny Hideyori. I would go a bit further to say that this is a good starting point, due to the lack of barrier to entry for writing simple queries and understanding the basics of writing a REST API.
A simple Hello World API looks like this.
var express = require('express')
var app = express()
// respond with "hello world" when a GET request is made to the homepage
app.get('/', function (req, res) {
res.send('hello world')
})
app.listen(3000);
Not much to it, easy to understand, easy to expand upon.
Gijo Varghese
A WordPress speed enthusiast
What I would do is, teach:
Phoenix is great but lacks community support, tooling, fewer job opportunities (at least in my country), etc. So I switched from Phoenix to NodeJS. Learning NodeJS also helps me to become better at JS, which enhanced my front-end development!