This really makes something I've been thinking about very clear.
I often think about the "everyone can code" movement. It's not something I particularly believe in, but exposing as many people as possible is a great thing.
However, the bit I get stuck on is programming is more than just typing characters in the correct sequence. It's deploying, testing, environment issues, metrics, databases, dns, etc. Basically it is a lot more complex than "learn to code".
This smorgasbord of services really drives that point home and I can't imagine how overwhelmed I'd be if I saw this back when I was a student.
EDIT: I'd like to make clear that I think this is absolutely awesome and no student or person otherwise should be intimidated or overwhelmed, let your curiosity wander!
> It's deploying, testing, environment issues, metrics, databases, dns, etc. Basically it is a lot more complex than "learn to code".
You're mixing the "everybody can code" idea with "everyone should become a professional software engineer". The former is a great idea, the latter not so much.
"Everybody can code" is about basic computer literacy. Too many people do boring and repetitive jobs on their computers. Basic understanding of programming should help people write that Excel macro that saves them a few hours of manual labor. Or make more informed decisions when being a customer purchasing software engineering services. To understand what a computer program or programmer can and, especially, can not do.
If I'm asked "should I learn to code", the answer usually is "if your job includes repetitive tasks using a computer, the answer is yes".
I think that there are programs dedicated to each idea. Some programs are dedicated to teaching basic programming literacy that everyone should know, while some are designed more as career training programs—often aimed at demographics that are underrepresented in the field.
> It's deploying, testing, environment issues, metrics, databases, dns, etc. Basically it is a lot more complex than "learn to code".
I would even go further and say that such things are well over 50% of a working programmer's time. Learning the toolset for modern programming is as hard or harder than learning how to program well. It's a different kind of hard, though -- the ability to slog through tedium and frustration.
As someone who's gotten away from programming in the past few (er, several.. many... how old am I now anyway?) years, this kind of stuff is what keeps me from getting back in. I think "Oh, Clojure [or whatever] looks cool..." but by the time I get through installing a bunch of different programs and figuring out how to deploy something and whatnot, I never make it to really learning much. I just want to start up, you know, Borland Turbo C, and get to writing code.
I'm sure I'm making it more of a big deal than it is because I am old and cranky, but it really can seem daunting, even if it's only in appearance.
Polishing up a tiny corner of the tedium to make everyone's life a little easier is generally a rewarding effort that becomes out of date almost immediately.
That's just it, it's learning to code, not be a full fledged software engineer. If you go take a free cooking classes at the local community college you might be able to make some tasty food but you won't be prepared to run an entire kitchen.
It's also, frankly, expensive before you know which things you really need when starting out. You're easily looking at $100+ a month for even a basic set of saas tools. Most of these programs have limited accounts, but they're often only for public use. There's very little help when you're in the gulf between getting your first users and actually making money from them.
I would like to defend the "everybody can code" movement a bit. First of all, I'm sure we both support the idea of giving everyone the opportunity to learn coding. Along with that, however, I want to point out that the movement is not intended to make everyone a programmer. Not every child will become a programmer, and I think everyone recognizes that. The point of the movement is that a basic understanding of programming is becoming necessary for many jobs, and that even a basic idea of how to code can get one person a job over another person with no experience. The movement is about raising the baseline coding knowledge above 0, not about making everyone into a programmer.
As a student (albeit a CS major), I immediately signed up and will be using many of these services. My friends and I have been looking at creating an app and these will def get us started for no money which is huge for us (especially the domain name, hosting services, and private repos).
While I don't feel overwhelmed by all the services, there are some of these I couldn't see how we would immediately use such as data analytics.
I'm not sure what you're after with paid HipChat (e.g., video/screen sharing, >5GB file uploads, etc.), but Slack[1] might get it done for you for free. Probably still not ideal depending on what you want, but a potential alternative nonetheless.
I use their free plan with several projects and love it. I am just a fan of their product and think other students/up-and-coming devs would appreciate it too.
I actually filed a support ticket yesterday trying to entice them to get on the list.
I often think about the "everyone can code" movement. It's not something I particularly believe in, but exposing as many people as possible is a great thing.
However, the bit I get stuck on is programming is more than just typing characters in the correct sequence. It's deploying, testing, environment issues, metrics, databases, dns, etc. Basically it is a lot more complex than "learn to code".
This smorgasbord of services really drives that point home and I can't imagine how overwhelmed I'd be if I saw this back when I was a student.
EDIT: I'd like to make clear that I think this is absolutely awesome and no student or person otherwise should be intimidated or overwhelmed, let your curiosity wander!