Student Dev Env setup

(Matt Price) #1

I’m prepping for next semester and trying to simplify last year’s instrutions re: environment setup. This process is often very painful for my students, who almost never come from technical backgrounds. I’d love to hear what kinds of choices people make on topics like:

  • VSCode vs Atom, and packages for github integration, mocha testrunning, html preview.
  • git/bash env
  • and especially the horror of node which I find is often quite nightmarish and heavily dependent on OS specifics.

I am toying with the idea of a docker or vagrant container with all dependencies installed, but am concerned that will create just as many problems as it will solve. In general my inability to control my students’ dev environments leads to a lot of headaches in the first 3-4 weeks of the semester. So I would love to hear what other people are doing!

(Ugo Pattacini) #2

We usually provide a Virtual Machine with everything needed pre-installed, which I think still represents a great solution especially for crash courses, where typically you don’t have time to dedicate to the bother of fiddling with the system of the participants.

I agree that docker is a more modern and handier tool than VM, although it is really not Windows friendly yet, plus doesn’t have an equally easy installation.

(Matt Price) #3

@pattacini do you have the VM configuration somewhere? I don’t use vm’s very much and would love to get a headstart on the setup process (if that’s what we end up doing – not sure I really have the skills to make that be the easiest solution).

(Ugo Pattacini) #4

@titaniumbones we don’t follow specific instructions to set up a VM: this is a quite custom job indeed. However, it should be fairly straightforward to create one that fits your needs since there’s plenty of documentation to this end (e.g. creating a VM in VirtualBox).

Consider that, once you’ll have a Linux-based VM configured as you like (it’s just a standard Linux), you could keep on updating it endlessly, so likely you won’t have to create other VM’s for your classes.

(Matt Price) #5

thanks @pattacini; I am thinking about it and will ocnsider using a vagrantfile or something. Still not sure which way togo!

(Bethany G) #6

I am late to this discussion, and since I’m not a classroom teacher (I teach at meetups and via volunteer groups), this may not be quite as relevant. I second the Docker approach - although Windows does tend to be an issue there. But it does give you a reproducible environment you can pre-configure. If you do the configuration ahead of time, you can put the image up on docker hub, and students can clone it down pretty fast.

I’ve also tried these two sites, which offer their own Docker containers that you can customize online and allow students to clone & customize. You can even attach them to github repos. Students can also collaborate with each other inside the same files. The down side is that students then have to work through the website, so there’s a harder transition for them when they want to start working on their own computer:


Of the two, I’ve found Glitch friendlier and more stable (they’re part of the StackOverflow family). I had a team of 8 working on a node-based Slackbot, and it held up pretty well.

There is also Cloud 9 from Amazon. I haven’t tried it yet, and there are of course the usual fees and configurations to deal with.

(Ugo Pattacini) #7

Actually, I’m a fan of Cloud9, the original one, before Amazon acquired the company, which is still accessible somehow to early adopters. I’ve been using it for teaching and for technical interviews during hiring. It’s deeply configurable, also for doing some graphics. By the way, it’s based on docker technology.

Codenvy and Codeanywhere are other similar alternatives.

(Bethany G) #8

For Vagrant configs, you could try vagrant cloud - no guarantee they’ll have something perfect, but it’s a place to start looking. I often start there (or docker hub if I am doing docker), download something close - and start hacking.

(Bethany G) #9

@pattacini - I’ve been itching to play with Cloud 9, but don’t have a project or excuse yet. ;-). It looks pretty interesting - and has the added advantage of easy-peasy deployment to AWS when you’re done. I’m going to scurry away and check out codenvy and codeanywhere when I get a chance as well. Thanks for the recommends.