I was mentoring this month for Launchcode. it has been a pretty good experience so far it would have been a nice option when I was learning. Many people in the industry do not have a formal education background which is ok. I do not have a CS degree if I was younger when I decided to do this I would've. I did do a degree that was more based on web which I feel was helpful.
I think things like Launchcode and boot camp type programs can be a good idea. I honestly do not think that programming in general is hard. The actual process of writing the code is general easy.
However, one of the hardest parts is having the drive to learn new things. I think you would get more of a real world view in a situation like Launchcode where it is semi-structured. This forces you to learn how to find solutions to problems. This is a large part of what my day is which I do not feel you would get from a traditional university. You have to figure out solutions in days/hours instead of a more week/month approach.
This is why I feel my degree helped me it was a bachelors degree in 2 years. It forced me to learn quickly to be able to come up. For the final project you could tell the difference in who enjoyed what they where doing. There where features that went above and beyond what you learned.
This will also weed out people who are not excited to develop. I can tell you from experience after days of trying to fix a problem or build a feature your not with it does chip away at your resolve.
Let's face it fixing bugs and boring features are not fun. However I do it for the feeling I get when I fix something difficult or build something cool. it usually makes it all worth while. If you do not have the resolve to work through the hard parts development is not a good fit.
In these type of programs they are going to do anything they can to help you succeed. However, that is not enough if you do not put the work in. I feel this is a good thing since you will have to do more than just show up for work.
I have seen multiple developers fail because of not understanding what it takes to succeed. You have to be passionate and you have to be willing to learn. If you don't understand a technology that's ok find someone to help explain it to you, watch some videos, build something over and over until it clicks. Especially when you are just getting started expect to spend a decent amount of time outside of work just figuring out things.
I think it's cool that I have the chance to help someone have a chance to make a change for the better. I enjoy teaching and it's nice to not have to do it while shipping. On the job training is tough especially for a smaller shop.
Even with the experience I do have I still feel the pain of the first time. Sure each language or new technology I learn makes the next one easier. It still can be overwhelming at first but you just have to ship to learn. I love Shoptalk Show's answer to becoming a better developer "Just build websites".
It's nice when you get the structure from a program to point you in the right direction of what to build. It is also nice to have someone with more experience to help guide you. I've never really had any one to help guid me. The majority of what I know is from me putting the work in. I've broken a lot of things and spent hours on a missing semicolon. I like having the opportunity to pass some of the lessons onto someone else.
This is Launchcode's inaugural Mentorship program at least in this format. I think it's going pretty good for being the first go at it. It makes me want to look into more ways to mentor and help new developers.