The bar for someone starting out in the web industry is insanely high. Learning HTML, CSS, JS and a back-end language, plus database design and enough logic to design a sensible app is a huge amount of work. I have every respect for someone coming to web dev now. I think myself very fortunate to have been a part of it for the past 15 years, if only because I've been able to learn it all over a sensible timeframe.
I disagree with "insanely high". There are junior, mid and senior roles out there on the market. I can't comment specifically on this course, but there are courses which provide the groundwork for a junior role in the space of 4-6 months. I did one, built some projects and got a couple of job offers within two months of finishing.
As someone who knows relatively little about web development, yet knows all about developing desktop applications, it feels a lot like a brick wall. It's hard to know where to start.
Can you list the tools you use to build desktop apps? Maybe someone will be able to point you towards an environment that would be most comfortable for you to get started with web development.
I'm not a professional by any mean, and have only put up
my own websites. I found the whole learning process very
confusing for years--I would start, then get frustrated
and go ack to repairing watches. The books were boring;
especially the 500 page block typed phone books--without
any graphics. Well things have gotten much better; the books still need improvement, but are much better. I don't
know why someone hasen't used the comic book format to
get across complex subjects--yes, I believe the less words
you use to expain something is Holy. I'm running on like
so many teachers do. To your question; starting web developement. My advise is you don't need to know everything about all subjects. A good beginning course
on web developement, and computer science is cs 75 at Harvard(it's free, a little outdated, but once you start
to hear the computer lingo--it makes further learning
less daunting. Get to know Firebug, and source page.
Look at the source code for simple websites. Copy it, change it, see how the tags are used(html and css). Everything is free if you look around. Oh, yea--get comfortable with the command line. You will eventually
need it, unless you just want to do front end work. (I'm
not in the computer industry, but I have heard there are
front end designers who just use html, and css--and get
paid?) As to those Coding boot Camps--they seem great, but
look expensive, or have a catch. There's a free one in San
Francisco. They take a percentage of your salary when hired. I looked into that school and the catch was they
pretty much only accepted people with CS degrees, or the
equivenent. These students would ave eventually got jobs
if they studied the right material.(I did copy their curriculim though--It makes a good map of where I need to
go.) Another Boot Camp I looked at was expensive, and only
accepted women. Why just women? I think the founder of the
school knew that Computer Nerds just might question the value of what they were teaching--eventually. I'm not
being sexist--I just know that most women are not interested
in ths stuff, and html seems like science. Good luck to
whom ever asked for advise. One other thing, get regular
exercise, and when you are watching the teaching videos--
rember you can always speed them up--1.5 was good for me
if the teacher was native, and had reasonable diction. Actually I downloaded all of cs75 on my IPod, and listened
to David and the rest on my nightly walks. After, awhile
it all started to fit together. Good luck!
Regarding learning visually, this book series has been around for a while. Not sure they are the best at holding attention now that there are interactive online tools like the various codecombat-style places, but take a look:
You're right that there is a lot to learn, but on the other hand, having come to it in the last 5 years or so, there is a lot going for us in that a lot of us are just customizing already built FOSS software.
For instance, although I am trying to cut down on the WordPress projects that I am doing (I am working on projects in a bespoke PHP framework), WP allowed me to have a project up and running and not worry about a lot of the things that I now worry about, all without learning every element of the web.
That said, there are a lot of things that I didn't know (and I am sure that I still don't know) which led to my projects being worse than they had to be... but my point is that for a lot of folks starting out the bar is very low depending on what kind of projects they are working on: it's not necessary to design an app from the ground up to do useful work on the web.
What I'm interested in is if this bar will continue to rise, or if it will stabilize at a certain level.
Stabilization is good. I can better decide if I want to commit the time to learn the skills. The frameworks might change, but I still might only need to learn 4 or so frameworks across 2 or 3 languages.
What I worry about is that it will become the norm to spend 4+ years to get ANY sort of programming position just because you have such a large checklist of requirements.
I think we can say for certainty that HTML, CSS and JavaScript will be around for a while, so that's comforting at least.
I think what may happen is that there will be a minimum level of knowledge that has to be acquired across technologies (HTML, CSS, Javascript, and a backend language), but beyond that we'll see more specialists with deeper understanding of specific parts of the development process. I would think that this would be the typical cycle in any information based profession (doctors, mechanics, etc.).
the bar is set by companies who have billions in funds. For an internet user it's pretty good, but for developers like me, who also has a day job (totally unrelated / offline) it's no longer a hobby-like thing, and in fact you can not have webdev as a hobby anymore due to very reasons.
All true beginners need to just start with PHP and FTP. Just like 15 years ago. It's still the most popular web language for a reason. It's dead simple and works well with MySQL. That's your stack if you're a beginner. Don't even worry about frameworks or even JS until you have a general sense of above. You want HTML and CSS too. Once you've built a couple moderately complex web apps, you're going to get frustrated with a lack of structure and organization withing the file system or codebase. That's when you will find a framework helpful.
Google everything and learn how to view source when you are curious how another site is doing something. Sometimes it will be difficult to follow. Sometimes it's like a rabbit hole, but it gets easier to read and trace as your overall understanding improves.
I like these "learn to code" websites, it helps to get new people familiar with the topic. But do we really have a need for so many of them? When I learned web development I googled "<technology name here> tutorial" and it was enough 99% of the time. This plus knowing the mozilla website for reference + stackoverflow covers 99% of what I ever wanted to learn regarding web standards. SQL perhaps is something that needs a bit more structured learning, but still any "sql tutorial" search will get you probably a good foundation of SQL.
Is there a real shortage of web developers out there? I'm not so sure. Perhaps there is a shortage of GOOD web developers out there. And I doubt that a good future web developer will learn better from a dedicated course rather than reading the rails tutorial / or watch rails casts on their own.
I mean, learning to learn and finding information by yourself (for me as a hiring manager) is much more important than what you currently know. I'm interested in what you could potentially do, not what you already did.
And if you know what you already know by researching on your own and building your own curriculum then I might be a bit more impressed (although probably I shouldn't be) - just because this is how I learned web development. By building things, and Googling things. By stackoverflow, MDN, and yes also w3schools. By reading the HTML spec, by reading ECMAScript language specification, by taking academic RDBMS theory course as part of my undergrad degree. I might be completely wrong, but I would need a lot of good faith to believe that with an online self contained crash course someone is able to become a fully qualified web developer without doing some leg work.
In other words a really good web development course in my opinion is a bad one. It makes it too easy on a new developer, making them think that all the information will be available for them and every task is broken down into small edible pieces. I want people to know what it is to be challenged with a question they don't know and research.
You make good points about the need to develop skills for finding information and learning on your own. I do think, though, that there's a lot of value in increasing the visibility of that information to increase the efficiency with which that information can be accessed -- think how Google and Stack Overflow have changed the productivity of programmers.
Having a good set of resources laid out for me certainly doesn't take away from the fact that I've still got to learn them but it does prevent me from wasting time with inferior ones. There's also value in producing and marshaling those resources because there will always be a set of people who might have been great developers but never really entered the learning funnel because they didn't have access to good resources at the time when they were ripe to explore them.
In terms of ease of learning, sites like codecademy make it extremely easy to get started but you're certainly not going to be able to learn an employable skillset by working solely in a hand-holding browser environment. That's why I've tried to focus on building real (and often difficult) projects along the way in this curriculum. Start to finish, it will likely take ~1000 hours to complete.
I guess my points are that A) development will (and should) require a certain degree of actual effort to learn because that's how you develop problem solving skills but finding the right resources to do so shouldn't, and, B) making those resources more accessible helps more people potentially great find their way to the profession.
Creator of Bento (http://www.bentobox.io/) here - I'm really happy to see more sites using free resources around the web to build curriculums. There's a huge wealth of free information out there and I find it strange that so many web development resources charge full-steam ahead with original content.
That being said, I think there's something to exploring those resources on your own. The principal problem I've seen with teaching people to code, especially when confronted with a set track, is that learners start rigorously, taper off, and never finish. I'm curious what The Odin Project's approach to this issue is.
The biggest problem that early students have is actually getting distracted by too many resources because it's so easy to get sucked down a million educational rabbit holes and never actually make real forward progress. I hear it all the time.
Many of our students start from the beginning and work through the curriculum in order but more tend to cherry pick lessons as needed to fill in the gaps in their knowledge. That's fine too and it's why the whole thing is available at once. The important part about having the path laid out, though, is that it keeps you accountable for your progress -- you know when you're getting off-track because you can see each piece of knowledge in the context of the bigger puzzle. For many, that's what they need to keep them focused.
I think just sticking to one framework is the best way to go - I decided to go rails because it's the lowest common denominator, stupid amount of resources on it and approachability for a beginner.. even then.. it's still pretty damned hard. (for me anyway)
Amazing resource! Thanks for the link and keep doing what you do.
Although, how are these organized? The colors seem to imply some kind of grouping, but besides "the big 3" at the top, the rest seems to be a random order. Maybe group by alphabet, or front end/back end, frameworks, tools, level of skill required, etc. Finding what I was looking for took a little scrolling, no big deal. I appreciate the resource and I will definitely be using it more.
As someone who always dabbles in the learn to code space, I wonder if more camps, websites for learning to code can be build on this curriculum, which is a tough part of dabbling in education.