Make $30 an hour, no bachelor's degree required
money.cnn.com
money.cnn.com
To be clear, it is entirely possible to be self-taught and learn everything you need to know. I'm self-taught, and I like to think I've filled in most of the gaps by now. I've also worked with a few self-taught people who make me feel like a novice.
However, I've also encountered numerous self-taught people, working in industry on real projects, who have gaps in their knowledge significant enough to cripple a company if left unsupervised. Things like not knowing what SQL injection is, not knowing what version control is, never having heard of unit tests, etc. College curricula in other fields generally make sure that you at least encounter every essential part of the field. Without that safety net, you have to do that research yourself, and many self-taught people don't take that extra step.
EDIT: Judging from the comments I need to clarify. I'm not saying that CS programs in college teach you these things. I'm saying that in other fields, your college curriculum will make sure you encounter everything you need to.
These things are more commonly learned in the field than in school. When people don't know, teach. Don't sit there and gripe about how they might cripple the company.
Your anecdotes are irrelevant. There are just as many people with CS degrees who would get stumped on one of the three things above. Web development doesn't even require a CS degree. You just need to know your way around databases, patterns, be neat and meticulous, and write code that's generally more efficient than O(n^2).
After all, you admit that you're self-taught.
universities are no silver bullet.
The problem isn't with self-teaching per se, but with the complete lack of standardization. One method of standardizing a professional education is to route it through college, but as you've noted, CS degrees don't accomplish that for aspiring web developers. Another way is certifications, but we don't really have any of those either. I'm not arguing for any particular solution, I'm just arguing that there is a problem.
As a graduate, university isn't much better. Fellow students didn't even know what version control was.
The biggest thing I missed out on are the bread-and-butter topics of CS - data structures and algorithms. I program robots now, and if I had known about graph theory a few years earlier, the software that I write would have been a lot more sophisticated now.
I think it's more the question of: what is the driving motivation for getting into the industry in the first place?
The best developers I've worked with and have had the most respect for were ones that have had a lifelong love for computers and computing technology, reflected through things like always tinkering with software (and even hardware), enjoyment in building their own linux boxes, and/or having the proverbial "I've been programming since I was 5" type of story. In my experience, I've found that these type of candidates have the highest chance for success, regardless of the type of formal training that they may or may not have had.
The ones that I'm a bit more suspect on are the ones that think about getting into this industry mostly because of articles like this that focus on the "OMG he's making $$$ 6-figures", but that have never shown much of a prior interest for software, programming, etc.. Basically, for folks in this group, it seems like they get excited for coding only after they've heard stories like this and maybe started checking out Codecademy or decided to take CS 101 because it fulfilled a core / distribution requirement at their 4-year university.
Am I saying that the folks in the second group are not going to be good programmers? By all means no. But I'm just saying as a level of chance vs. risk, I feel that those in the first group have a higher chance of producing as a quality software engineer than those in the second group.
Easy example: typing speed. I can type ~140 wpm, and I know I'm not alone in that among developers. That doesn't make me a better programmer… but it would probably be a hell of a lot harder to learn how to code if you were still trying to figure out how to type from the home row.
There are plenty of other skills that we don't really think about, but that make our lives as coders way easier. Someone who has never used computers outside of MS Office for high school book reports is going to have a completely different experience learning to code. Even completely mundane things like knowing what Alt+Tab (or Cmd+Tab) does can make a difference in your workflow. Add up all the little things, and you end up with a pretty big gap.
Only one of the candidates was able to explain any meaningful difference between GET and POST in HTTP.
I don't know that universities are places that are likely to impart this type of knowledge in their grads.
I think its just a broad field! Im doing a MS in CS and if I would apply to some work in 3D I wouldnt get a job because thats not what I like and I dont see people from the 3D field complaining that the schools dont prepare the students properly
Perhaps a better question would be: "The HTTP verb POST is non-idempotent. When must you use a POST request?"
I have a rule: Code samples or OSS contributions or it is an auto "no-interview". Even for first year co-op students. From the code it self you can usually judge competence. If the code samples pass most of these http://en.wikipedia.org/wiki/Code_smell then I bring 'em in for an interview. I have yet to meet someone that doesn't know what the difference between a GET and a POST. For me a bad interview is if someone doesn't know what types of things are found in the headers, or doesn't understand the basics of oAuth.
Before people come in here and start up with the "you are not mid-thirties with kids" BS, no I'm not. But I know plenty of people that are, and it isn't too hard to get 200 lines of code to someones inbox.
Since then, he has worked for Percolate, Vimeo and other
startups, and now, at age 25, he's earning more than six figures.
Six figures is $100,000 - $999,999. More than six figures = $1,000,000+.I know it's imprecise and annoying, but it's a lot faster to adapt to the way the rest of the world speaks than to try to get them to change.
> To say this occupation is attainable for anyone though is a bit of stretch. It still requires some math chops and long hours of practice.
> "You have to be a self-starter to go along with this," Kenefick said. "In the beginning, it was literally all day and all night, day after day, I was practicing and building up my portfolio. I'm pretty sure it's more work than going to college."
To be fair, that quote is right at the end of the article.
(Not that there's anything necessarily wrong with dropping out)
I don't mind doing More Work. I mind doing Useless Work.
Its a messed up situation. They make an excellent product, but most of the people going don't want it, but they can't get something else because the market demands they attend. Very much like complaining a 5-star restaurant sucks because they don't have cheap hamburgers and a drive-thru, or the reverse situation.
In the enterprise ( or small enterprise ) world, when was the last time a web dev needed to write a bloom filter in Go?
Even if someone didn't have technical experience, banging out code at a small company could be the starting point, for someone who is driven, to develop their skills and attain that six figure position.
The "no degree, no problem" idea isn't backed up by my personal experience. I wish it were that easy, but I still find myself struggling to break in. I've been told by temp agencies that my associates degree is worthless here as well.
I wish I had known over a year ago that the most important thing is having enough savings and time to start with so you can build up a portfolio, and disregard the sentiment that if you don't know algos then you're second-rate and don't cut it.
For awhile I've been in a position where it's hard to focus on projects that would make me stand out because I'm distracted working weird hours part-time for minimum wage. While I'm getting more contract work, it still is just a trickle, and seems to be more of a distraction than it's worth sometimes. Additionally, most entry-level positions I've encountered seem to want someone who is a designer/developer hybrid rather than a developer.
I live in Washington, DC, so it could just be that the market here has a enough of a concentration of CS grads and experienced developers to not need to bother with people who are junior and lack a CS background.
I've found in a lot of companies in middle America, it's nearly impossible to get in with out a BS. Even if you know someone.
The smaller companies will often take you but the pay and benefits are usually lower. On the other hand, they're more likely to have flexible schedules, allow working from home, and not have a dress code.
Is this unique to software development? Like, if I wanted to break into the fast paced world of industrial fastener sales would prospective employers be worried about my undergraduate degree? My experience on both sides of the interview table has been that after a few (2-3?) years of working in a field, your professional experience counts for much more than your academic credentials. I don't think it's unique to web development.
To me, it is a matter of supply and demand. When the talent pool is larger than the demand for talent, there is a need to find a way to filter the hiring application results down to something that is manageable. A degree has become the defacto standard for doing that. It doesn't matter if you throw out great people with the bath water doing that, because you still have a ton of great people to choose from.
Web development, and software development in general, have been through a fairly lengthy period of demand outpacing supply, leaving many companies without the need to arbitrarily reduce their application result set. That gives them the ability to evaluate all applicants as the normally would, just without the arbitrary filter to start.
I think experience and skill level speak higher than a degree in this field. I have hired people that don't have a degree, because they have a nice portfolio and have the skills I need.
It's school or work for me but I fear that lacking a bachelor's degree means I can't advance to more challenging programming positions or that nobody would hire me outside of my current company.
Nothing would stop me from starting my own business tho.
Edit: I maybe should add theres nothing wrong with java. It's just not my choice that's all. And in my country (switzerland) the education system looks little bit different. I started a education at age 16 as software a developer. 2 days school, 3 days work at a software company for four years. Now you add some years of experience and there you are with no degree.. and that's why I wrote my first statement
Java isn't a bad decision but I 100% believe you should try as many languages as possible, especially from different paradigms. Every language has something to like and most have something you can bring back to your primary language to be more productive.
Happy trails!
It's about as good as any other language, and has more libraries than most. It's also mildly annoying to work with, but so is any language when used as more than a toy.
On the flip side, I get frustrated by my lack of theoretical knowledge on things I deeply wish I knew. I've never taken an OS course, or a databases course. I don't feel like I know Big O as well as I should. I don't know ANYTHING about graphics. I don't know ANYTHING about AI work, or compilers, or anything beyond basic *nix sockets.
Right now I spend my days trying to do linear algebra in the cloud on demand. And I would be willing to bet a years worth of my paycheck that if I had doubled up in computer science I would be better at my job than I am right now.
Also, after my time at university I noticed that I didn't need to be a .NET or PHP developer. I was a well rounded computer scientist with the capacity to learn anything I set out to, which is the point of degree. I learned what I wanted in my free time, the technologies you use shouldn't define you.
[1] http://crossbridge1.blogspot.com/2011/09/does-education-pay-...
Over the last decade not much has changed. You'll have a data structures type class although most grads seem to completely forget everything taught. Typically some kind of theory of languages/theory of computing/computability/scaling. Everyone still suffers thru intro to databases complete with explanations of codd-normal forms and drawing E-R diagrams and such. Everyone suffers thru an intro to operating systems class. Everyone has some sort of intro to algorithms, aka welcome to Knuth, class.
"learn to code java" is probably less than 10% of the total class time. All the upper level classes I took demanded some form of working code but they didn't care what language. Remember its education not job training. They thought psuedocode was fine on tests.
Three notable changes: 1) No more discrete math. Huh? Even with discrete math most grads seem mystified by multiple simple conditionals. Maybe its rolled into the first lectures of theory of computing or whatever. 2) No more required systems analysis. Maybe its kinda rolled into "software engineering" ...perhaps. 3) Capstone project senior year type things seem very popular now a days. I donno if that's in addition to, or in replacement of, the liberal arts survey class I had to take in my last semester.
A massive demand for web development combined with a low supply of competent engineers leads to high salaries relative to the amount of time you need to invest to command such a salary. This leads to entities like Dev Bootcamp and Coursera charging to provide the necessary training, they can also command a hefty bonus for making a hiring referral. An influx of newly minted developers enter the market, prices go down as the supply curve slides to the right.
I wish the article would get that across - in lieu of a degree, you had to have spent years programming on your own time.