5 ms·
As a self-taught programmer who doesn't have a CS degree, my experience is substantially different. There are many places where I would seriously consider appl
by diminoten 8y ago
As a self-taught programmer who doesn't have a CS degree, my experience is substantially different. There are many places where I would seriously consider applying (FAANG) that this would be a significant hurdle.
I've taken to competitive programming as a way to prepare myself, but I'm a long way away from being at a level where I'm comfortable applying to the companies I'd like to work for.
I think a lot of people like you and I pretend to make the choice of, "I'd never work there" when the reality is, "They'd never hire me", and it does everyone a disservice to continue to perpetuate that lie. It's not a problem or a negative thing that FAANG would never hire me/you, it's just the truth.
FAANG would never consider hiring you or me as-is, but if we worked really hard for awhile, they would. This has nothing to do with our ability to do the job they'd hire us for, but that's the game, they want their candidates to be good at the game, and I'm at least willing to play. You aren't willing to play, and that's fine, but don't pretend like you're being the discerning one here.
- sfuller 8y agoAs a person without the degree that works at one of these companies, I can honestly say that it's incredibly difficult to get in. What I haven't seen anyone talk about is how it haunts you constantly. Not necessarily coming from other people, but knowing that if someone wanted to call you incompetent, it'd be on you to prove otherwise since you dont have the degree to back up your knowledge. I wish I could go back and get a CS degree just to tame the thought that it could all fall apart so easily.
- deleted 8y ago[deleted]
- samlord 8y agoExactly, you took the words right out of my mouth. I'm 6 years in as a web dev and still feel the downsides of not having that paper. There is that constant, need to prove feeling that lingers in my mind. I'd love to work for a big company but I am stuck in my country. Visa approval requires that paper to prove you're skilled. Stuck with opportunities that pay really less, compared to Europe/USA. Don't know about you but, I recently decided to bite the bullet and join a CS degree on the side. Going to be tough 3 years, but it'll be worth having that paper once in for all.
- int_19h 8y ago> Visa approval requires that paper to prove you're skilled. There are ways to go around that - in some countries, US among them, you can count some years of specialized work experience in the field in lieu of formal education ("degree equivalence" - I believe). I got a work visa in Canada on that basis, and later L1, H1B, and finally a green card in US, without any degree. With respect to US specifically, google for "USCIS three-for-one" for more on this.
- samlord 8y agoYea, but was it a relatively easy process? I've heard of USCIS too, but the process looks complicated.
- int_19h 8y agoI don't really know - in my case, it was all handled by my employer and their lawyers; all I did was gather the documents they told me they'd need (basically whatever is necessary to prove said work experience).
- heavenlyblue 8y agoSo how much do you earn there?
- conradev 8y agoI am self-taught and work at Apple and the interview process is team by team. My team doesn't care whether or not someone has a CS degree and we don't ask algorithms questions. We care a lot about software engineering as a craft, though, and ask architecture questions. Of FAANG, I only know of Google having a standard interview for all software engineers across the company (and one that is algorithms-heavy). Plug: If you do iOS engineering, we are hiring: https://twitter.com/conradev/status/1035244142488506368 https://twitter.com/conradev/status/1035244142488506368
- salixrosa 8y agoI have to point out something that I haven't seen anybody say here -- there is a huge amount of variety in the difficulty of these sorts of interviews. I assume that all FAANG interviews for entry-level software devs are akin to the standard Google interview, for which you are expected to study your ass off. I have not interviewed for one of those companies, but of course I know how much people study for them, and it disgusts me. However, I have had plenty of interviews which did have an algorithm-type section (the majority of interviews I've had have had something like that), and I no longer hate on companies for doing _that_. Plenty of the problems are relatively easy, once you figure out how to talk about them -- and being able to talk through your work is a legitimately valuable skill. But, companies that expect applicants to put in the kind of work Google expects in order to stand a chance truly are not companies I want to work for. To some extent, it's just shitty; this "game" is mostly a test of how much time you have to spend. That cost is a lot higher for people who are less well off, which irks me, but that's true of most things in life. The thing is, you talk about being "willing to play" the game. I don't want to work in a company of people who played that game. First -- Playing the game means sacrificing important things; you can't spend all your free time studying which data structures to use for esoteric string manipulation problems, etc. AND spend all your free time learning the fine point weaknesses of different databases, good programming patterns, etc. By the time I started interviewing for my second job, I'd nearly burned myself out making certain I was learning how to do things right, learning how to be a good programmer. My free time was spent polishing the things I was working on and endlessly reading about how to do it even better. And then I was able to go into interviews for the jobs I was interested in and do what you're suppose to be able to do in most other interviews (programming or otherwise); actually talk about the company, their pain points, possible solutions they hadn't thought of but I had experience with, etc. At that time, I could not identify anything but the simplest algorithmic complexities... but to learn more than that would have been to choose studying useless information over useful information. Second -- What makes a person willing to play the game, when there are plenty of other companies with interesting problems to solve and good salaries (maybe not AS good)? I can't help but feel there is a cult-like love of these big companies (or maybe it's the desire to prove oneself, since only RealProgrammers work for Amazon). And I don't want to work with a bunch of people who are extra excited about something I just don't value. Maybe I haven't been reading the right stuff, but I just don't see the appeal. I don't particularly care for any of them as companies. Sure, if Amazon decided to pursue a pilot project aimed at providing its customers with low-carbon-footprint foods, I might want on board that project -- but not just to Amazon as a whole. Yes, these companies are large and well-known, but I don't particularly care if it's one million or one billion people who download an app I worked on. I know that getting a job in one of those companies doesn't mean you're going to do something interesting or big. I've had classmates get jobs at Google and I've worked with Google employees on certain projects, giving feedback etc. There's nothing I've seen about their jobs or projects that were particularly amazing or wonderful, except for the part where you then get to say you work(ed) for Google.
- int_19h 8y agoI am self-taught, no degree whatsoever. I didn't have a problem landing a job at Microsoft regardless, with a few years of mostly C++ experience under my belt. Wouldn't even say it was hard. And no-one at work had asked me if I have a degree, ever since that first interview. Now, that's not FAANG, technically speaking (although FAANG was always about stocks, not job culture). But for what it's worth, I've had recruiters from Google, Facebook and Amazon try to lure me over. None of them indicated that my lack of degree is an issue for them. Maybe that's team-specific, I don't know. But it's certainly not true that they'd never hire someone without a degree.
- cyphar 8y agoI think people are over-emphasising the importance of a degree when it comes to CS (obviously some workplaces filter by "do you have a degree" but I wouldn't want to work in such a place -- clearly they don't care about you as an engineer). Sorry to be a bit old-fashioned, but a degree isn't the most important part of going to university -- it's the education you get. I would argue that it is very difficult for someone to learn about data structures and algorithmic complexity (+ algorithm design) without taking a university course or doing some pretty intense self-study. It's not something you can pick up on the job. And this is knowledge that I think more folks in our industry should have. So you might be doing totally fine without a degree, and that's great, but I imagine that you also have some CS knowledge that OP doesn't have -- and maybe you picked it up from somewhere or did some study on your own to gain it. If I was a hiring manager I wouldn't filter on degree, I would filter on some sort of working knowledge of CS (and, for reference, inverting binary trees on a whiteboard is not an example of "working knowledge").
- int_19h 8y agoOh, absolutely. When I say "self-learned", that includes bits and pieces of CS. E.g. I wrote a BASIC-to-C++ transpiler back when I was 14; and to do that, I had to learn things like recursive-descent parsing, for example, or how hashtables work (because I wanted my dialect of BASIC to have them) etc. None of it was from CS courses or books - just looking stuff up on the Internet as needed, often reading others' code. This kind of learning from experience is not a well-organized process, and the results were often a lot messier than they really needed to be - and would likely be with more formal education like SICP! - but it works.
- johnmaguire2013 8y agoHey, just wanted to say I think you have a very fair perspective here, and I'm not sure why you got downvoted (perhaps your comment was perceived as rude.) I'm actually not interested in working at FAANG. I don't want to live in California, I don't want the long hours, I don't want the stress, and the products and culture are not very interesting to me. The salary is pretty much the only selling point IMO. However, you make a fair point: If I _did_ want to get into one of those companies, I would need to study CS (academically or non-academically).
- mercutio2 8y agoI think you may be selling yourself a little short. Many, though perhaps not all, FAANG interviews do not involve needing to know THAT much CS trivia. The common topics (for many interviews, it depends on the company, and at non-homogenized companies, on the team) are: - What’s a graph? What are some interesting strategies for walking a graph? Any gotchas to look out for? - What is algorithmic complexity? How do you measure it? Why does it matter? - Are you conversant with middle-school level arithmetic and geometry? - Can you describe the strengths and weaknesses of the 4-5 most common simple data structures? - Can you listen to problems as they’re described, and ask good clarifying questions (the most common problem is here, people didn’t bother to take the time to ask clarifying questions)? - Once you’ve nailed down the problem, can you structure a few nested for-loops with relevant tests and perhaps a few simple auxiliary data structures? - Once you have a potential solution, do you test your work? Do you skip over your mistakes pretending they don’t exist? Do you take hints when your mistakes are pointed out to you? - Do you admit when you don’t know, then try exploring anyway? Seriously, this is the entirety of what I see most FAANG interviews covering. If you’re a competent self taught programmer, you need to study a tiny bit about data structures and algorithms, stay calm, ask lots of questions, and just execute. I get that there are lots of horror stories out there, and I genuinely feel for people who get super anxious when asked to work with an audience. But if anxiety isn’t your problem, I encourage people to try different teams/companies if they’ve mastered what I’ve listed. FAANG really don’t want to put the bar absurdly high, they want a relatively easy level of CS knowledge.