
Learn Web Development: From Novice to Employable - mzelinka
http://howtocode.io
======
apsurd
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.

~~~
frogpelt
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.

------
bstar77
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.

~~~
mck-
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

~~~
bstar77
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.

------
VaedaStrike
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?

~~~
eropple
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.

~~~
VaedaStrike
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.

~~~
calibraxis
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.

------
mlangdon
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.)

~~~
enraged_camel
>> _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.

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

------
_raul
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](http://bit.ly/HjiCpm)

------
exo_duz
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.

------
MWil
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.

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

~~~
mlangdon
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.

~~~
RRRA
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.

~~~
snowwrestler
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.

------
userlabs
thanks i like

