1. 24
  1. 23

    A Haskell programmer in Silicon Valley might earn $150,000 a year, for example; a Haskell programmer in Des Moines probably won’t. Hell, there might not be any Haskell jobs in all of Iowa.

    I was born in Des Moines so maybe I took this a bit personally and I very much doubted this assumption. I think the author might imagine Des Moines to be a much smaller town than it is (and not thinking about the college towns in Iowa). A cursory search shows there are a few Haskell jobs in Des Moines and many many more for any other sort of language. I don’t see salaries starting above $150K, but I did see salaries between $80K and $130K which isn’t that far off.

    Silicon Valley certainly is a hub, but it shouldn’t be treated as the only place possible to get a tech job and maybe it is that assumption that is causing Silicon Valley to become too much of a hub.

    I will add the obvious factor which is that $130K/year would be worth a lot more in Des Moines. A decent one-bedroom apartment is as low as $600/month and a fancy South Of Grand mansion is somewhere between $500K and $2M. You may get a $20K or $30K upgrade in Silicon Valley, but the salary might not actually be worth the price of living there.

    1. 17

      Any non-SV city gets short shift in the estimation of SV denizens. I’ve never really understood why; after all, the ratio of available jobs to interested programmers matters a lot more than sheer numbers.

      1. 4

        I suspect SV’s denizens enjoy living there, but might feel need to rationalize the tradeoffs they make (and are aware of) by living there, such as high cost of living. It is probably also easy to internalize the mistaken belief that tech revolves around SV simply because they hear it so much.

        From the outside, it looks a bit odd and cultish. I do enjoy visiting both SF proper and Mountain View, though.

        1. 1

          In my area, tech revolves around Microsoft, Cisco, Oracle, IBM, SAP, Apple, Facebook, and SnapChat. Everyone uses at least one of those for business or personal life. Uber is only SV name I hear much but most have cars here. They use it when their car breaks or (wise ones) if they know they’ll be too drunk to drive safely.

          Mostly the legacy companies out here plus their stacks like .NET and Java.

      2. 3

        Some might also be able to comment on the culture difference between Silicon Valley and say Des Moines. Some people may like the small town feel, being able to afford a large house with grounds, traffic that actually moves, and co-workers and neighbors who, perhaps, care for things bigger than the stock market and social media.

        1. 2

          The fact that we don’t have a good cost of living averaged salary baseline to compare across localities really hinders most discussions of employment opportunities. If we could say you get adjusted::100 in SF and adjusted::120 in another city, and agree on adjusted parity we’d be in a better spot debate wise.

          The STL fed has done some recent work here: https://fredblog.stlouisfed.org/2017/07/regional-price-parities/

          Here’s another one: https://fredblog.stlouisfed.org/2017/07/cost-of-living-and-per-capita-incomes-in-u-s-cities/

        2. 20

          My company has been looking for some junior and associate-level engineers and we get a lot of applicants from different bootcamps. It’s heartbreaking interviewing them. Usually they’re coming out convinced that while they’re definitely not fully-qualified as software developers, the bootcamp at least got them to entry-level. More often than not, though, they’re unqualified for even that.

          With one particularly awful one, some of us were suckered into mentoring for their students. By the end of the time there the students still couldn’t write a max function. The bootcamp told them they were all ready for full-time employment. Some of the students had moved from other states to attend.

          I think the students are the biggest victims of this all. Coding isn’t a skill you can learn in twelve weeks, but many predatory camps, which have cachet as authorities and insiders, push that narrative to outsiders. And the rest of the tech industry tolerates it.

          1. 9

            I’ve had a similar experience to you with some bootcamps, but they’re not all created equal. The Recurse Center in particular has continually impressed me, for example; I don’t know if their teaching methodology is different or what, but we’ve gotten quite a few candidates who may not be ready for full-time, but who can definitely start at what I might call an advanced intern level, and who have a really good chance to progressing to a normal full-time position at the end of fur months.

            That said, it’s worth noting that Khan Academy has a specific program for this situation (we call them fellowships), and our creation of that program was a very deliberate move to extend our education focus internally, in part by accomodating the bootcamps. I’m not sure if even some of the more liberal-minded places I’ve worked in the past would’ve been able to justify doing that, and I’m not sure if candidates from even the good bootcamps, like The Recurse Center, would do well otherwise.

            1. 13

              The Recurse Center (fka the Hacker School) is not a bootcamp at all (the name change was intended to make this more clear). It recruits students who already know how to program and may already work in the industry and takes more of a professional development/continuing education approach, giving students the time and resources to explore advanced topics that may interest them, or to fill gaps in their existing knowledge.

              1. 16

                (I attended the Recurser Center in the summer of 2015)

                To make it clear, the Recurse Center can’t really be compared to a boot camp or a traditional school. The easiest way I’ve found to describe the Recurse Center is that they take 80 people interested in programming, put them into a room together for three months, and have them work on whatever projects they want with little to no oversight.

                There are quite a few differences between the Recurse Center and other programs. First of all, they target all sorts of programmers. AFAIK, the only qualities they screen for are a love of programming and self-sufficiency. This leads them to getting programmers all across the experience spectrum. Some people have been programming for only six months, others for 20+ years.

                Second, there is no coursework. “Recursers” (someone who attends the Recurse Center) get to work on whatever projects they want with whoever they want. It’s completely self directed. The projects people work on range from building a programming language, to writing an implementation of Paxos, to learning Haskell.

                Third, the program is free to attend. The Recurse Center makes money by matching up Recursers with companies and charging the companies a recruiting free. To make it clear, the recruiting aspect of the Recurse Center is completely optional. If you aren’t looking for a job after the Recurse Center, they won’t push you to look for one.

                Overall the Recurse Center is completely different from any kind of boot camp. If you are interested in it, I highly recommend applying. It’s a really awesome experience.

                As for the recruiting from the Recurse Center aspect, they are also great. 6 of the 20 full time software engineers at my current current company, Heap, were sent to Heap by the Recurse Center. They are by far the best recruiting channel we use.

                1. 5

                  The Recurse Center needs to be in more locations than just NYC. With a family, it is extremely expensive and difficult to secure accommodations for 6/12 weeks, and there are also issues of what the family would do during the day.

                2. 1

                  Well that makes sense. In that case, I’m not sure I’ve had a good experience with a boot camp.

              2. 4

                I think the students are the biggest victims of this all. Coding isn’t a skill you can learn in twelve weeks, but many predatory camps, which have cachet as authorities and insiders, push that narrative to outsiders. And the rest of the tech industry tolerates it.

                I’m not sure what kind of coding we speak about. General? No. Specialised? Yes. I know quite some people that learned the coding needed to support their current task (e.g. a statistical model) very fast. The problem is that a bootcamp rarely facilitats that, they have a one-size-fits-it-all curriculum.

                In many cases, I have the impression a trusting employer and some individual coaching at that location would help much more.

                1. 3

                  Care to name names?

                2. 7

                  What I’d like is an institution that would take a traditional baccalaureat in computer science and all it’s prerequisites and then offerend hand tailored programs that adapt to schedules, learning disabilities and any other classical roadblock to higher education.

                  Basically just a guided way for self-learners to attain higher learning creds their own way would do.

                  1. 12

                    I think that’s basically community college. They usually offer night classes, flex schedules, etc. I’ve heard some horror stories about “C++ 101” at some places, but it could be an option for people to consider. At least they don’t pretend to jam you through in 12 weeks.

                    1. 5

                      I attended a community college part-time for years. In some ways it was great, in others it was awful. I never finished my degree – I was never able to finish the online pre-calculus course that was a requirement to take calculus, which was a requirement to graduate with an A.A.S.

                      I took two semesters of Java, but barely got to the concepts of stacks and queues, and didn’t even touch on trees or recursion. “You don’t need that stuff,” my teacher said. And it was probably true. Most of my classmates never even used Java again – they went on to write Visual Basic at local businesses if the did any programming at all.

                      I also took classes in Visual Basic, Microsoft Access, and basic networking. Those were all at least enjoyable, and the networking one actually taught me stuff I still use! I also took a terrible C# class – the person who was supposed to teach it quit the week before class started, and our new teacher had never written a line of C# in his life.

                      The greatest thing about community college was that I could get student loans and grants and spend time learning from books and the internet and meetups while doing the bare minimum schoolwork. If I wasn’t someone with the privilege and ability to learn that way, I wouldn’t have been any more prepared than your average 3-month bootcamper. My programming career only got started because I got into Recurse Center. :/ So, while I’m grateful for my community college experience, it’s hard for me to recommend it as a solution to this mess.

                      1. 2

                        Thanks, that matches my understanding although I don’t have the personal experience. I think CC tends to focus on the wrong thing (c++ “for games” seems to be a particular topic) without teaching principles, but there’s still some benefit. You can at least learn that programs are just text, words in a file, and you can make the computer do what you want. Maybe this takes place in a Java setting, but hopefully at least some of the “computers are tools” concept rubs off and you can learn to write VB or ruby or whatever.

                      2. 4

                        There’s the start of maybe a trend towards making community college free as well, plus many more places where it’s not free, but still quite cheap.

                        Another plus of community college is that it’s more integrated, even if loosely, with the rest of the university system, which leaves options open for deciding later what you really want to do. You can usually transfer CC credits to a 4-year university if you decide later you want a traditional CS degree (or even continue for a masters or PhD), without having to commit up-front to that decision.

                        1. 2

                          I’m from Quebec, so we dont really have the concept of community college, but I went through most of a cegep (our sort of pre-uni college) degree in computer programming and it was way too easy and most of what I learned I did on my own. If I want to go do the trad comp sci uni program I need to do at least two semesters of math and science classes as prerequisites. Now I’ve tried doing this, but I dont know if it’s a mix of wanting to work and raving ADHD, but I could never stay in those classes for more than two months.

                        2. 4

                          Lots of schools offer a non-traditional CS track, at least for graduate programs.

                          There are problems, though. One is that the SV elites have decided that college is a waste of time unless you’re at Stanford or MIT (and maybe even then). Another is that college is expensive. Boot camps are around $10,000, that’s about 1/5 of what even the cheapest state schools cost. When you factor in the opportunity cost of four years compared with 12 weeks the difference is much larger. Finally, many boot camp students already have degrees and some schools are hesitant to enroll students seeking second bachelor’s degrees. I’m not entirely sure why, but I know this from personal experience.

                          As an aside, IMHO the article hits the nail on the head when it points out that unions (and I would add tenure) are really what SV hates about our education system.

                          1. 2

                            Just to quibble with your numbers: CSU San Bernardino, the school I attended, costs roughly $2,000 per quarter (the specific amount per person may vary due to class-specific fees). With three regular quarters of attendance each year (most people do not do summer classes), that’s roughly $6,000/year. At an average graduation period of five years, that’s $30,000, which is not nothing, but would put the ratio at 1/3 against a $10,000 bootcamp, not 1/5.

                            1. 1

                              Wow, that’s incredibly reasonable! Are you sure that includes fees and not just tuition? Are you sure it hasn’t gone up since you graduated? If so, it’s nice to see that California has held the line on costs, at least at some schools.

                              1. 5

                                It has gone up slightly, to I believe about $2,200 (my fiance is about to graduate from the same school. I can ask her for the exact amount if you’d like to know). I should note that even these amounts are hotly contested and opposed for a number of reasons, including:

                                • When California’s three-tier post-secondary education system was created, the CSU was intended to operate without charging tuition to students. At the time, the state covered all or nearly all costs of the CSU campuses, with students paying small fees specific to the classes in which they enrolled. This was in service to the idea that the CSU is targeted toward students who would not otherwise have access to a four year degree program (even today, CSU San Bernardino prides itself on its extremely high rate of students graduating who are low income, minorities, and/or the first in their family to go to or graduate from college). Today, over 50% of CSU costs are covered by student tuition and fees, and that margin is rising.
                                • At the same time, the administrative staff of CSU campuses has grown immensely, with simultaneous decreases in the number of tenure-track faculty positions. New faculty jobs are overwhelmingly adjunct positions (which, if you’re unfamiliar, include many of the responsibilities of tenure-track professors, but with no professional protections or benefits, and extremely low pay). I actually worked at CSU San Bernardino for a few months this year as an Adjunct Lecturer, and my best friend’s mother is an adjunct professor at CSU San Bernardino as well. I can say firsthand that if you do not have some other source of income, it is not possible to support yourself on the pay from that job alone.
                                • Campuses are getting more and more crowded, resulting in longer times to graduation. I wouldn’t be surprised to see the CSUSB average slip to 6 years soon. A large part of this stems from rules set in the CSU charter, which limit the ability of the CSU campuses to control the influx of students. The effect of this for students is that they pay more in the long run, because they are unable to finish their degree on time.
                                • Additionally, many financial aid offerings still assume a four-year degree program, so many students find themselves struggling to support themselves financially for the last year or two of their degree. (A good friend of mine recently had to become a part-time student, paying reduced tuition but taking fewer classes, because he simply doesn’t make enough to pay for a full-time schedule. He attends CSUSB).

                                I could go on. I just wanted to make clear that although the tuition for the CSU campuses remains low relative to many other four year degree programs, the current state of things is not perfect, and there are many avenues for improvement.

                                1. 1

                                  That’s very interesting. I knew that CSU’s mission was accessibility, but I wasn’t aware of the details. It’s really sad to see the directions things are heading.

                                  1. 5

                                    It is. While some of the thingsI laid out above are specific to the CSU, they are part of a larger trend across higher education of rising costs, bloated administrations, more adjunct positions, fewer tenure-track positions, and less public investment.

                                    If you look around in the literature, there are a lot of competing explanations for why all of this is happening. My sense is that it’s a confluence of causes, including:

                                    • The rise of college ranking systems which include lots of ancillary measures in their consideration, like “student life” offerings which cost substantial amounts of money to build and/or operate. Universities want to be competitive in the rankings, and so they feel as if they have to do things like build out fancy new dorms or offer free services and classes (“free” really meaning “prepaid,” as students often unwittingly pay for these things with their fees and tuition).
                                    • Rising administrative costs, often justified as “what we need to pay to retain the top people.” Some of this is just optics. I know at CSUSB that the university President makes a lot of money, which some people find distasteful, but his salary is actually not paid for by the university (i.e. by student fees and tuition), but by the university foundation (i.e. fundraising). Now, there is an argument to be made that the money which goes to pay the President should instead go to the university, but so long as the President is making more money for the university in fundraising than he costs the university in salary and benefits, I think this trade is worthwhile. A lot of what university presidents do is in fact fundraising for their school.
                                    • Long term pressures on young people to attend college means that more students are attending college (which is, all things being equal, great!). But it also means that some students are making financial tradeoffs they may not otherwise make, and maybe shouldn’t make. I believe strongly in the value of a liberal education (“liberal” here meaning “education in a wide range of fields, and which exposes you to people and thought outside of your usual zone”), but I recognize that the cost of such an education may be more than people in some fields can reasonably afford. This is where schools focused on particular fields or trades can help, and I do think we are seeing a trend toward more of these sorts of schools. They of course have their own problems which need to be sorted out (see any discussion of “coding bootcamps,” including this one, or schools like ITT Tech and DeVry), but there is a space there for quality institutions which educate their students in a particular field without the costs associated with the broader education of a four-year degree program.

                                    I could go on. Suffice to say that this is a complicated issue, and that these trends are happening for a lot of reasons. I do hope that they correct over time, and that some of today’s worrying trends are stymied sooner rather than later.

                                    1. 5

                                      I know I’ve already commented, but I have a separate point which deserves its own post:

                                      California’s three-tier higher education system is really interesting, and the way it works today is quite a bit different from how it was initially envisioned.

                                      First, you have the community colleges. These are intended to be 2-year degree institutions providing low-cost, flexible education opportunities. They are very community focused, and often target people whose life circumstances would otherwise keep them from an education. For example, a person who works a 40-hour/week job and can only attend classes at night would not be able to get the education they want at a 4-year institution, but often can at a community college.

                                      Second, you have the California State Universities. These were originally intended to be 4-year undergraduate-only institutions with a focus on providing low-cost (though higher than the community colleges) education. A number of CSU campuses actually began as trade schools (CSUSB began as a school for teachers), and the focus on providing concrete professional-oriented education remains. The CSU is where someone who wants a good degree-requiring career but can’t afford a larger school can go to get a solid education at a reasonable price.

                                      Third, you have the University of California system. These are the universities which grant doctorates, Master’s degrees, and undergraduate degrees. They are more expensive, and the focus is on research and progression of students (generally) into either academia or professional academic positions.

                                      Today, each of these systems has their problems:

                                      The community colleges are extremely overburdened. It turns out a lot of people like the idea of a cheap, flexible, accessible education, and the system simply can’t keep up. Many students go to community college with the intention of covering classes which would be more expensive to take at a CSU and transferring when they have their Associates degree. Many of them end up staying at the community colleges for 4 or more years, unable to get the classes they need to graduate, and often unable to transfer and retain their credits when they do. The general consensus I have seen for these students is that the tradeoff isn’t worth it. Just among my friend group many end up choosing alternative options, including film school or joining the military.

                                      I outlined issues with the CSU in the previous post, and won’t spell them out again here.

                                      The UCs have the same problems as the CSU, really. They’re getting more expensive, and the financial tradeoffs for students don’t necessarily make sense anymore. I am less familiar with the UC system, and so I will leave it here. If you’d like to know more, I can reach out to friends who attended different UC campuses and get their take on the problems currently facing the system.

                                      I want to reiterate a point which I think is important: the fact that these systems are having problems does not mean that they are broken and irredeemable, that they don’t still improve the lives of a great many students, or that they are not worthwhile public investments. It just means that there are things which the public, the students, the employees, the administrators, and the lawmakers have to grapple with in determining their own future in relation to these systems, and the future of the systems themselves.

                                      1. 4

                                        I spent a few years as a researcher at UC Santa Cruz, and my impression is as you say, the problems are very similar to those at the CSUs. The UCs have traditionally cost more than the CSUs (though still historically quite cheap) because of some mixture of: 1) more expensive facilities, 2) internationally known professors with higher salaries, and 3) lower teaching loads for the professors, since they were expected to also maintain significant research programs. Although at the top-tier UCs (e.g. Berkeley) this was partly offset by the profs bringing in big research grants to cover some of the facilities and salaries.

                                        Today, professors’ salaries are a smaller and smaller percentage of the total though, and the biggest cost increases are capital expenditures (so #1 is still true) and large increases in the number of highly paid administrators. In addition I believe state funding has fallen even more sharply than at the CSUs, because as “flagship” schools the UCs are seen as potential cash cows, able to attract wealthy students from abroad and out-of-state, who pay the higher out-of-state tuition rates.

                                        As far as state funding cuts go, I compiled some numbers 5 years ago on total and per-student funding, inflation-adjusted, 1965–2012, for the UC system as a whole. The headline figure is that in 1965 the state kicked in $24,000/student (2012 dollars), and in 2012 they kicked in $12,800/student. The peak was in the 1980s, when it kicked in around $30k/student.

                                        1. 1

                                          Thanks for all the info! I’m glad that my understanding is in line with what other people have found.

                                          One interesting point I didn’t make in my other posts is that the CSU campuses are beginning to offer Master’s and Doctorate degrees (CSUSB now offers a Doctorate of Education program, and a number of Master’s degree programs, for example). This sort of shift helps to blur the line between the CSU and UC systems, although of course that blurring will take quite some time to shift public perception.

                          2. 5

                            Because coding isn’t a skill that you can learn in twelve weeks?

                            1. 7

                              I disagree. I’ve watched the output of three sessions of a coding bootcamp and I can first-hand verify that these people definitely. can. code.

                              It takes time to teach and learn engineering skills. Most college graduates straight out of school don’t come out with those engineering skills. The exceptions are the high performers who get solid internships or went to schools where engineering is taught as a part of doing group projects.

                              1. 8

                                I completely agree. Khan Academy has something we call the fellowship program. This program explicitly targets people who have a non-traditional education in CS. (Usually this means bootcamps, but it can also mean e.g. people without a college background and a few other things.) What I’ve found is that these candidates at their best are usually great at writing code, but they’re completely lacking in many skills that just come with time. For example, even if they know runtime performance, it may not be intuitive for them; they have to carefully think about how many for loops are involved, or draw a memory diagram on paper. They likewise don’t have a good grasp of how to write maintainable code, so their output tends to require a lot more refactoring and help on code reviews than even that of a fairly average college CS student would.

                                Now, at Khan Academy, we’re really well-set-up to handle that (and indeed it’s the entire reason we created this program): we pair fellows with mentors and are careful to build a gradually escalating series of projects that start to develop these skills. But I have difficulty imagining these situations working out well elsewhere; I suspect the hires wouldn’t perform and the company would be ill-suited to teach.

                            2. 3

                              We often forget the value of Bootcamps vs college. A college is supposed to be a place of learning with the emphasis on students becoming well-rounded individuals with an academic focus on a smaller subset of topics. Sadly, in more recent times many public universities are becoming more like trade-schools, where the emphasis is teaching students more work-applicable skills as opposed to teaching them how to learn and research. Too many people think going to school for computer science is functionally the same as going to a 12-week bootcamp.

                              I view coding bootcamps are more in-line with trade schools, just at a hyper accelerated and lower quality pace. Trade schools are designed to give students a fairly intensive introduction to core concepts that allow them to get an entry-level position. You don’t graduate from a trade school and become a master mechanic, expert plumber, senior developer, etc.

                              Managing expectations and providing students with a quality curriculum are both very important. Far too many of these bootcamps seem to just give students a checklist of fairly basic skills in the currently trending languages/frameworks. Many value quantity over quality. Seeing students enter a 12 week bootcamp and be thrown Ruby, Python, C#, Swift, and Go (with associated frameworks) just means that they leave with only basic skills that most Junior/Mid-Level developers could Google in an afternoon.

                              When interviewing candidates, I don’t particularly care where they went to school. I care about what they know. If all they can tell me about Ruby is how bundle install and rails generate with some extremely basic knowledge of Rails’ MVC model, then they aren’t going to be productive members of the team. Instead of shoving a dozen languages and frameworks at students, focus on one or two (say Rails and Ember) and teach them more in-depth. End the bootcamp with 1-2 weeks of students self-learning a new one to get an idea of other environments.

                              Honestly, I’d rather see our field utilize apprenticeships than having people go into private unsecured debt to attend bootcamps. Sure an apprenticeship won’t be glamorous, but I’m willing to bet you’ll be a lot more valuable when it comes time to find your first real job.

                              1. 3

                                Boot camps have no quality control. Literally anyone can start up a programming boot camp and there is no accreditation or licensing for them. They have the same academic standards of Trump university. I’m shocked they didn’t start dying out sooner as more people realized they aren’t really worth what people charge.

                                1. 2

                                  I think the real issue with these bootcamps is they have some students seeing dollar signs. Programmers make decent money, and yeah it can be made to look easy. I attended a bootcamp in 2015 and was lucky enough to land a job. Ever since it’s been lots of googling and learning. Lots of struggles. I’ve landed flat on my ass in interviews and against a whiteboard. Almost two years in and I still think of myself as a junior dev. I am. It’s these types of struggles that some of my cohort were probably ill prepared for. Programming wasn’t for them, but the teachers would never say so.

                                  “Everyone should learn to code” is a dangerous mantra. It gives false hope to someone wanting to do something different and thinking that that something is an easy path to riches.