Hacker News new | past | comments | ask | show | jobs | submit login
Learn Web Development: From Novice to Employable (howtocode.io)
112 points by mzelinka on Nov 2, 2013 | hide | past | favorite | 34 comments



Constructive criticism:

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.


What I picked up in the "whats in it for me" category was pretty much in the url. I'm going to learn "how to code". The video went on to explain that I specifically could learn HTML, CSS, JS, jQuery, and Ruby on Rails, with some programming basics, and Git usage thrown in--for free.


I got the impression that they were not really trying to find customers, they instead were trying to gauge interest in the project. Nothing on the site gave me the impression that this was anything more than a web site soon to be a kickstarter page.


I love the efforts to build these types of resources, I just hope this isn't redundant with Michael Hartl's tutorial.

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.


As someone who learned ruby first and then went through Hartl's tutorial I have to agree 100%. I wanted to learn about the framework. All the TDD stuff complicated the process and really slowed me down. I ended up skipping over all the TDD stuff and was able to really get a lot out of it. I fully intend to go back through the tutorial soon to pick up the TDD elements.


While I have become a proponent of TDD and have come to appreciate it in larger projects, I agree and remember the tediousness of it as a beginner.. It is good to inform the beginner of its style and merits, but not to enforce it -- rather let them decide for themselves if it helps them and their team in the long-run; experience is a far superior teacher


I think that as long as the code you commit has full coverage and good quality tests (not only tests to improver coverage) then testing your code after writing it can be equally effective in large projects.

I guide many junior developers and find that TDD is just too much to enforce while learning.


Do you mean this Ruby on Rails tutorials from Hartl? (http://ruby.railstutorial.org/ruby-on-rails-tutorial-book)

They seem to be quite RoR specific based on the contents?


I'm not sure this series could be redundant as it's free and Michael's videos cost money. Michael's website also looks like one of those classic 2001 sales pitch/squeeze page which makes me doubt the quality of the tutorials.


The web version of hartl's is free. Don't prejudge the content based on the site design, it's as stellar resource.


Ah ok, the website I found didn't have any information for the free resource. I don't normally but it's just those squeeze page designs are shit.


Worse yet, the TDD in that tutorial didn't even use the standard test framework built into Rails - so you're taught from the start to use something non-standard. So irritating.

I always recommend the Pragmatic Programmers book for new learners.


This is most certainly NOT a bad thing. The vast majority of Rails users prefer RSpec, so it's effectively the standard.


With minitest's spec format it's even available by default for ruby 2


Zero to employable is a different audience then "program a game for high school kids". I don't like TDD either but it can only help if you're new


What I'd like would be a 'From Novice to Employable using Clojure'

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?


Honestly, and I say this as a big fan of Scala and Clojure: fixation on one programming language and a lack of interest in picking up the widely-used languages tools of the trade because of self-"spoiling" would be a reason for me not to hire a candidate. Self-limitation is a huge red flag: I hire horizontal and vertical polyglots[1] because they're going to have a wider base of experiences to draw from. Most monoglot dev shops are going to trend towards the enterprise--because it's easier to hire, to bring new people on-board--and towards .NET and "enterprise Java" (as distinct from "smart Java", which has a pretty large intersection with the Scala, Clojure, etc. communities).

[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 suppose my position is an outgrowth of my very first attempt to build an application. Every component that I took up and learned the 'right way' to build an application, everywhere I looked, and everything I read, was very counter to the way that the whole system was oriented. After banging my head for a while trying to just get things to work while still doing things 'the right way' I realized that the tools I was using were never designed for use in an optimal way. You don't need an optimal way when you're idea of producing something is simply to ramp up how many resources you have on a project. My personal project could never get to where it needed to be without superior tools. The fact that I've not given up on my own project is precisely the reason I have little motivation to go back to things like VB.net.

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.


An awesome path to hear about. Hope you find that job.

Yeah, as a "polyglot", I find it very questionable that being a polyglot is such a good investment of one's personal life. That is, there's other things one could learn instead; diverse teams will have diverse levels of polyglotism; and you can piggyback vicariously on the explanations of others who have learned lessons/lore from other programming language communities.

People I don't trust (like managers) probably think I'm a happy polyglot. But I dislike having learned most tools I know; the process was boring and there's more interesting things in this universe than learning how to deal with the b0rkenesses of some tool someone made. A lot of tools explicitly serve hiring managers (who want to maximize labor pool) rather than help liberate the imaginations of practitioners.


While I think it's clear Clojure and other functional languages are stronger overall than Ruby, Python, JS, and the like, the truth is that web development in the wild ends up being a lot more about choice of libraries than choice of language.

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.


It's funny you mention this because as I've moved forward in my own personal project, both in learning and in actual coding, whenever I've come upon a need the Clojure community seems to be arriving at filling that need in a sufficient way right as I come to the point that I need it. Granted my own personal project is not equivalent to anything I'm aware of in any corporate scene, but it's been uncanny how many times this has happened. Things like Pedestal and Datomic and Clojurescript or core.logic it's almost as if they were birthed at just the right times to be maturing at just the right rate for me to be adopting them and learning them right as they 'ripen.'


As a recent novice-to-employed developer myself, I would caution against jumping into the rails stack. This is not a knock on rails, however. Where I live (Michigan, US) there are plenty of web dev job openings at any given time. But about 50% are C# MVC or ASP.net, another 25% are PHP drupal or wordpress and then come Django, Rails and the rare node job.

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 recent novice-to-employed developer myself, I would caution against jumping into the rails stack. This is not a knock on rails, however. Where I live (Michigan, US) there are plenty of web dev job openings at any given time. But about 50% are C# MVC or ASP.net, another 25% are PHP drupal or wordpress and then come Django, Rails and the rare node job.

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.


Client-side JS/jQuery is very nearly assumed to be a requirement for all web developer jobs, regardless of server-side language.


You are absolutely correct. You will need JS and JQuery on the front end. I was really only talking about the back end, though I was not clear about that.


I'd like to see things like some hours of face-to-face mentoring per week (via skype or hangouts) and extra exercises and reviews in the Premium plans. There are almost no online resources providing such features, and I find them extremely important when teaching to beginners as I explained in a recent post: http://bit.ly/HjiCpm


Currently this is the big thing on the Internet. Teaching people how to code.

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.


Meanwhile, while you're waiting for users to fully build out the content I can head to General Assembly or CodeSchool or CodeAcademy or Lynda or any other site.

Just sayin, don't underestimate the person who wants to learn now, not wait.


Is there something like this but that could do both (or either) Drupal and Node? :)


You might not be able to get the "all in one place" part, but there has never been a better time to become self-taught. If you haven't programmed at all yet, immerse yourself in some JavaScript till you can "walk", then track down the rest of your stack of choice.


I have a Comp. Sci background but worked mostly as a sysadmin (bash, voip, firewalls and whatnot) on low level back end stuff...

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.


Drupal and node.js are not really directly comparable.

Drupal is really just a (complicated) CMS. Starting with version 7 it is now flexible enough to be a framework, but it is S-L-O-W. Every sizable Drupal site depends heavily on caching to maintain acceptable performance. I don't know of anyone but Drupal shops (like Phase 2 or Acquia) who have built actual software products on top of Drupal.

Drupal is developed in PHP, but its codebase is well behind modern programming practices. The community is only just now introducing object-oriented architecture in Drupal 8, which is still in alpha development. So: if you learn Drupal, you will not have easily transferable skills. But the demand for Drupal devs is growing fast, at least on the east coast, so you could have a very rewarding career.

Node.js is a lower-level framework. You could use it build a CMS (and some people have [1]), but you could also use it to build a lot of other things, with a good chance that it will be performant. And since it's based entirely on javascript, and is seen as "hot" and up-and-coming, there may be broader opportunities for you there as a programmer.


Node might make more sense in your case. It's almost too easy to throw something together in drupal. You never actually need to touch PHP or JS. From my (admittedly shallow) exposure to node, it seems to be a healthy mixture of minimal boilerplate and actually writing some code ever. You'll get the experience of doing for yourself rather and than buying into a preconfigured, but ultimately limiting ecosystem.


thanks i like




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: