A lot of bootcamp / self-trained devs went into front-end JS for the money. Now that it's saturated, time to move onto the next buzz word. A foundation of CS fundamentals will still be lacking.
It's great to do jobs for money, I just think programming isn't something you can pick up in an afternoon and be good at, like mowing lawns or making sandwiches. I can't trust the journeymen for high tech jobs, maybe for editing wordpress or something.
The same thing happened in the 90's, my coworker's sister got a "Certificate in HTML" and promptly found a job for $80k in 1998. These people wash out, I've been burned enough times by bootcamp grads that I won't hire them anymore
I've never found myself not knowing what I should do, or threatened by a hiring/skills bubble.
When I stopped feeling like I was getting anywhere with front-end I started to take on more back-end projects and sell myself as a full-stack developer.
I've never been in a situation where I've felt "man, I really should have gotten a CS degree": but what do I know; I'm just a web developer.
Maybe we're not talking about web developers?
No advanced engineering skills have been required to make the frontends/backends/architect a system for Fortune 500s and local businesses that I've been involved with. (I'm speaking of things I would have learned in school with CS and math principles had I been able to get past CS 101).
-- college dropout with successful programming career.
I am a bootcamp grad who specialized in undergrad in electrical engineering. I worked for a few years as a research for the one of the top tech universities in the country; I have found that I have a stronger math and physics background than many CS grads. However, many times when doing something I have been stopped by saying "wait aren't you a bootcamp grad? can you even understand this?"
I'm not alone; my bootcamp had plenty of STEM majors. One of colleagues was a biomedical engineer and worked in a research lab and now works in the front end at a top firm in SF. Another was a math major at an Ivy before working full stack. The top guy at my bootcamp went to Berkeley in Biochem and was way way smarter than me.
So stop generalizing. I understand that they are unaccredited institution so you get a wide variance of talent but you can't shit on everyone.
To be honest, your issues probably in how you screen talent. My current company has found success in hiring bootcamp and top schools in the area (Berkeley, Stanford).
It's just a very simple fact that 90% of the bootcamp grads can't program their way out of a paper bag. In fact, most self-trained programmers are vastly better than even the best bootcamp graduates.
The problem with bootcamp grads is that they don't know what they don't know. And they don't know a lot. Undoubtedly some of them will turn out to be great programmers, but not after 3 months. Or even 6. Or even a year.
Again I think you are overgeneralizing since I follow the careers of my class and at least 1/3 of it is doing extremely well in their careers. I think you should be able to program a "paper bag" working at companies like Pivotal Labs, Microsoft, Pinterest, Airbnb, etc. which is where my classmates work at. Maybe I'm not interacting with the right grads though or have a representative sample set, but then again I know you pulled that 90% number out of thin air.
And you know how I know what I don't know? I constantly read, get mentorship from senior engineers at my company, build side projects, etc. The learning process hasn't stopped and it hasn't for many of my colleagues.
I do agree self trained programmers are better, because frankly thats way harder.
Yeah people with hard science degrees and/or from top schools, I'm less skeptical about. The guy who was a waiter 3 months ago and now saying he's a software engineer, very concerning.
It is 100% possible to be an ace developer without a CS degree. However years of hiring experience has made my bullshit detector ring alarms with self-taught / bootcamp guys. If they have a hard-science degree it's less risky. Honestly I don't bother interviewing these people anymore without a warm introduction, it's hard enough to find good devs and the ratio of good to bad is so much worse with the self-taught crowd.
I'm a self trained dev (aka horrible person?) who's spent the last 8 years doing back end dev work - mostly C#, Java, Python and now Scala in everything from SV startups to a government research lab. Either I'm an outlier, or you're overestimating the importance of those cherished fundamentals (which can be picked up independently of a degree anyhow).
I think 8 years of experience plus solid references and projects speaks for itself. It's a resume that lists a 3 month boot camp, a github full of forked projects with no original commits (plus the obligatory ToDo app in rails), Senior Software Engineer title, $100k salary demand, leaving their first professional programming job after 6 months, can't speak knowledgeably about basic shit like IPC. I don't... have time... for this anymore.
Can't you just filter this out with an hour coding challenge?
I don't even know why you are screening these candidates, the profile you are talking about doesn't even hit our hiring team usually or gets binned within 5 minutes.
I really think you have a recruiting process problem.
Posts like this definitely give me a nice flare-up of imposter syndrome. Had not heard the acronym IPC. So I guess I don't even know basic shit.
As a bootcamp graduate, what do you want me to ... do? I can't go back in time and major in CS. My employer is satisfied with my work and I build things I'm asked to build independently. Should I give up a startup salary, inflated as it may be, and ship myself off to a CS monastery?
I'm a self-taught developer with significant programming experience who has worked as CTO of a successful startup (multimillion dollar exit) founded by others, has sold one of my own businesses for six figures, and who currently runs several independent, profitable projects.
In more than a dozen years of programming, never once have I had to talk to someone about IPC. And if someone pulled that sort of higher-than-thou test-by-acronym-recogition at a job interview I would laugh at them unless the salary is literally 200k and in an area which involves kernel hacking, which is pretty much the only situation in which I think it would be reasonable.
Reality is that there is a bias against hiring self-taught people and many common practices like these are basically screeners against that as opposed to measures of actual skill and expertise. One tip if you are job-hunting is to ask potential employers to review your code before you jump through their interview hoops. The places/people who are serious about hiring will do it. Those who will not are more likely to filter using this sort of arcane minutiae and are not worth your time unless they are paying for you to attend the interview.
Your salary expectations are also quite reasonable fwiw.
IPC used is fairly common for desktop programmers. IPC just communicating with another process, and technically web developers are doing it as well.
What most people mean is something like COM(Windows), Named pipes, memory mapped files, etc that allows processes on the same machine to communicate with each other.
If I was hiring for desktop software or pure server software, I would expect someone to know some IPC mechanisms.
It's awesome. I have a library stacked full of software and CS books. Maybe try to get your bachelors at night? I got my master's at night while working.
This is a craft. If you want to be an expert, train like an expert. Realize 3 months of a bootcamp isn't going to cut it, not at least until you've been working for 4, 6, 8 years.
If you can't tell me what inter process communication is, what it's used for, pipes, signals, etc. then I think you have some pretty big gaps in knowledge that preclude you from being an expert at this point.
Don't worry about it. Keep working and learning and focus on doing great work that makes people happy. As long as you take the time to learn why something works, rather than just cutting-and-pasting from StackOverflow, you'll be fine.
Frankly, the recommendations @seibelj is making are in a particular niche--OS fundamentals--and one that I'm guessing makes him feel smart knowing about. But they aren't necessarily relevant to you, or important to know. It depends on what you work on. Some people have trouble realizing that their pet interview question isn't actually as universal as they think it is.
PS: IPC is "Interprocess communication," and it's how you can have multiple processes coordinate with each other. You may have heard of pipes or sockets--those are for IPC. (Technically, so are files.) If not, don't worry about it. I have over 20 years' experience as a professional developer and while IPC primitives like pipes and sockets have come up from time to time, it's hardly central to my work.
Thanks for the very nice words. I realize, while still learning and progressing, at this stage in my coding life I'm an electrician, not an electrical engineer. Which can be ok - the world needs electricians too.
Not trying to feel self important, I'm saying why I'm not hiring bootcamp people anymore. I could go through a litany of topics from OS, algorithms, networking, architecture, languages... if you are a magic box programmer, don't be shocked if I ask you how the magic box works and you have no clue.
Um. You do know that a lot of folks manage to graduate with a degree and basically have only ever programmed in one language like Java and wouldn't recognize a unit test, build system, or a version control system if it bit them, right?
Not to mention starting every task with implementing a linked-list or sorting algorithm from scratch.
Eh, try to settle the impostor syndrome down. It's hard, I know, but not particularly warranted in this case.
Day to day, I don't think I know anyone who would actually use the acronym IPC over the expanded term "interprocess communication", assuming the subject even comes up.
The generic term just isn't particularly useful, given the wide variety of mechanisms included. Instead, you will hear developers talk about pipes, sockets, ports, connections, queues, and so on as may be warranted.
Knowing when to use a pipe and when to use a socket is important, but the fact that both are grouped together as "interprocess communication" mechanisms along with a bad idea like shared memory really isn't.