Code camps are (in my opinion) a sign that programming is bifurcating into software engineers, and software technicians (or whatever we choose to call someone who can apply a science, but not necessarily understand the science).
My understanding of the divide is roughly, "I may not understand all of the theory, but I have a practical understanding of the formulas and how/where to use them to get the job done" vs "I can design a Turbofan engine from scratch".
Since moving to software, it seems there's little preventing anyone who can sling some code from calling themselves Software Engineers, for better or for worse. Personally, since my programming skills are all self-taught, I feel like a technician in my day-to-day work, but I also feel the pressure to present myself as a software engineer for cultural and professional reasons.
Unfortunately, it seems the closest term we seem have to describe something like a "software technician" is the pejorative "code monkey", which doesn't do justice to the actual role of technician.
In many countries to do that, you need to have a certified degree by the Engineers association (or whatever is called), otherwise you can be charged for doing so.
I fully support the development of a "software tech" career that isn't - at least at the start - "software engineer".
I made some really valuable networking connections in college that helped me get my first several industry jobs--which is good, because I sure as hell didn't have any practical skills to sell myself with. Fortunately I was able to learn up on the job and get the skills I needed (at the expense of my first job's production schedule, sadly), but I was pretty unhappy once I realized how little I'd bought with all that tuition money.
In Portugal, our CS degrees are called "Degree in Software Engineering" and have a mix of everything that is relevant to the world of computers.
If you want pure CS style math, then you need to take a degree in Mathematics with computing branch.
Also we do have an Engineers association that validates which degrees are allowed to call themselves as such.
We are not alone, most European degrees are like that.
I think the point is not to base the "goodness" of the developer on the person themselves - of course there will be people who 'get it' and excel at programming whether they go to bootcamp or college (or are self-taught for that matter), just as there will be people who don't get it, and they can just squeak through either program.
The point is to recognize that they are taught different (but overlapping) skill sets; skills that are hard to differentiate and could - from a business perspective - yield the same final product (user clicks button, correct things happen).
A technician might be incredibly good at doing things like hooking a mobile app up to a REST API, building database frontends, and building on top of an established system. The engineer on the other hand is able to do all of the above, but is also someone you could trust to give a high level overview of the system as a whole and expect to come back with a considered approach to implementing it, taking into consideration things like fault tolerance, how an operations team would interact with and monitor it, and where to make tradeoffs between an ideal implementation and time/money limitations.
At least in my mind there's nothing to stop a sufficiently motivated technician learning the necessary skills to be considered an engineer - its not about credentialing, but about having experience that could come either from a college course, or just from working in the field for long enough to have picked it up.
There really are multiple overlapping skill sets at play.
Of course. I know someone that would fit that description, and I don't think he's unusual.
> Do you think it's possible that developers who are not good could graduate from college with CS degrees?
Of course. I graduated with some and work with some. Strictly speaking, learning to write software is just a side-effect of learning how algorithms, data structures, and all that work. Some people never get very good at writing software.
I think you're missing the point, though. College vs boot camp isn't a matter of the skill of the resulting developers. It's more of a focus on different skills. Suppose a technician and an engineer are writing a program together. Maybe the engineer works on the "deep dive" aspects of the design (tough algorithms. the critical path of the program). Maybe the technician works on the overall architecture, wiring things up cleanly and producing an artful design. They're different focuses, and it's a division that doesn't currently really exist in SW dev, but does in some other fields (electrical engineers vs electricians, mech eng's vs various technicians, etc).
The bootcamp thing may work out to equalize load on university CS programs. where us weirdos who were attracted to the discipline for abstract reasons can do what we do, and industry demand for talent can continue to be met through other means.
But!
I rather object strenously to the implied "status" differences between a software technician and a "scientist" but that's probably inevitable. If anything, "shallower" people with good organization skills offer more business value than somebody like me. All I can do is figure out what's really gone wrong, or not make things go wrong to start with. See, even I am using "shallower". I work for people like that all the time, and I admire them greatly.
An analogy is hardware engineers and hardware techs. You need both.
Yes.
> Do you think it's possible that developers who are not good could graduate from college with CS degrees?
Absolutely.
The difference is that the boot camp experience seems to provide a different skill set from a full-time degree (see the article that started this conversation).