Also, I'm not a believer in TDD, especially with beginners. I find it tedious especially when prototyping an app, which I almost always do before starting a non-trivial project. Once my prototype works reasonably well, I do a refactor with good test coverage in an effort to produce production ready code.
I'm a huge believer in testing, just not TDD.
I guide many junior developers and find that TDD is just too much to enforce while learning.
They seem to be quite RoR specific based on the contents?
I always recommend the Pragmatic Programmers book for new learners.
I've heard some nice things about Ruby, but I think I'm too much of a spoiled noob in my exposure to Clojure. I'd even take a class if it was Scala or Erlang or something along those lines.
Sometimes I hate being a spoiled noob, because I'd really like a job programming, but I don't want to pause learning Clojure unless I'm learning some language that seems to be at least close to it. But trying to get a job whene you can build stuff in Clojure but not much else (I've done a little in Python too, and did enjoy that a bit) is a tough task. Or at least it has been for me up to this point. Virtually everyone wants some veteran Java or Python hacker who's also got Clojure chops.
A job in Clojure centric web development...is it too much to ask?
[1] - Horizontal polyglottism is being comfortable in multiple similar environments--knowing, say, both Ruby and Python exposes you to multiple paths to the same goal and can help you tease out the benefits and drawbacks to different approaches. And, probably even more importantly, vertical polyglottism involves being comfortable moving up and down the abstraction ladder. This is a big part of why I like Clojure, sure, but I know it better because I know Java and through Java the JVM, and I know the JVM better because I know C++. I know C++ better because I know C, and so forth. Learning the entire stack makes you better--and it removes "spoiled" from your vocabulary.
I'm not one who got on the programming ladder in College or Highschool, I don't necessarily have all the time or resources to become the grand horizontal polyglot I'd love to have the resources to become. The whole reason I choose Clojure is because I found myself at almost 30 years and two years into a project that I'd been squeezing out of any free-time I could get frustrated that the best advice I could get with all the presently 'accessible' 'entry-level' programming tools were constantly in contradiction with each other and obviously built far more with a large corporation in mind than for any lone, starting from scratch, developer wanna-be like myself, they gave lip service to it, but it wasn't there. I finally got stuff working and it'd break and the only way I could get the thing working was to delve into the bowels of visual studio and a bulk of the .net framework. I read some PG and saw the light.
So I started from scratch, did my homework and choose Clojure, that forced me down some other paths, none of which I regret, learning enough of Debian to be dangerous, plenty of time banging my head against lots of obstacles. But in all honesty they weren't really anything less accessible than the whole .NET jungle was. And when it all started to click I didn't feel like I was just stumbling into getting something to work. I actually felt like I had some idea of what was going on. I know I lack a lot. And if my saying that I'm somewhat adverse to learning CERTAIN languages alienates me from some then I suppose I'm okay with that as well. Because when I ran into problems with my old attempt at doing things 'right' with .NET and VB I eventually either restarted my project or just serendipitously got the thing working. Now when I trouble shoot my Clojure projects I know how to eventually find the answer regardless of whether or not I can get someone to help me with it.
I really do want to understand the fundamentals better. Don't get me wrong. I'd love to be able to have the entire stack in my mind, heck I'd love to get down to assembly at some point. But my top priority, the whole reason I choose Clojure as my real starting point into programming is because I know what I want to build and I feel an urgency to get it built THAT is the only reason I'm, at present, limiting what I'm learning. I only have so much brain bandwidth and only so much time. My way of striking while the iron is hot is to stay, at present, focused on what I feel, is the right tool.
The reason I'd love a job in this should be obvious, if I can be working on Clojure (or Scala, or Erlang, or F# etc.) programming on the job then that would boost my capacity on my own personal project which is, after all, my whole reason for obtaining a passion in programming.
I don't have a lack of interest in learning other languages, with the caveat that I want to reinforce the whole driving force behind my becoming a hacker.
Clojure is getting there, but its web libraries are still immature compared to what you'll find in Rails, and I generally can't justify spending the extra time that implies.
For apis and services, on the other hand, Clojure is fantastic. My preferred architecture these days is Rails for front-end, lightweight backend, and various utility tasks, and a Clojure api for computational tasks, parallelism, and heavy lifting.
My point is that sometimes the best tool for the job isn't necessarily the best all-around tool. It's fine to use the stronger technology whenever you can justify it (why wouldn't you?), but if you put more focus on technology choice than product, you may end up with lots of beautifully engineered projects that never get finished.
My point is if "employable" is the goal, check out the jobs listed on stackoverflow and indeed, etc., in your area before picking a learning plan.
(Incidentally, I learned Java/Android and Python and count myself very lucky to be employed in non-web dev.)
As a novice who is learning web programming, I find this... odd. No JavaScript/Jquery? Is that not by far the most commonly used language/framework on the web?
For server-side, I can understand PHP, Rails and ASP.NET but I would expect JavaScript to dominate the front-end.
I think the video should be 100% about "what's in it for me" (the user). I understand the reason why you are introducing the people behind the project, but after 1minute in the video becomes "about howtocode.io" and less about "me". I closed the video after that to be honest.
Again, I get that you are providing validation and answering "why should I trust you" but honestly, unless you can say something that a beginner would value like "I founded Twitter", or "I work for Microsoft" (used to illustrate people can relate to a brand name regardless of how our inner-circles perceive them.) then it becomes a waste of the 30 seconds I'm giving you as to what's in it for me and how can I start receiving value RIGHT NOW.
In writing this, actually I think most everyone that has asked me for advice in how to code vet sites by word of mouth and by proxy i.e. "Jade what do you think about this site?" or "well Google has it as #1" or "well on youtube this has 1 million views" etc.
So in summary, I think you should not _lead_ with vetting yourself.
EDIT: I watched more of the video. You use language like "we will teach you.." and "our goal is to" which illustrates the point that you are talking about yourselves rather then the user. Changing it to "You will build a basic webpage and host it online entirely yourself in the first week" shifts the subject to the user, because it's always all about the user.
I'm currently not hands deep into code either, but I'd love to be able to understand and catch up on a full stack, mostly the web part, for which I didn't invest much time till now! So anything web server and above feel strangely like another world even though I've always been around them and can configure a web server without any problem, I just never dealt with the whole session management, programming etc in that context.
I've also done some projects in javascript, though without frameworks up till now.
Node.js sounds fun but my understanding was that it's not quite ready as a CMS, like Drupal? I might actually just start with Node though as I can stick to 1 language and concentrate on small real time projects. I've had a bad feeling about rails many years ago that might also explain a few things... ;-) Cheers.
I really believe "Knowledge empowers the person". So keep up the good work guys! The more learning experiences out there the better knowledgable about the Internet, web technologies for the public.
Just sayin, don't underestimate the person who wants to learn now, not wait.