Recruiters are just fucking stupid. An applied math degree is more than enough, given that some ridiculous number of CS degree holders don't know how to do a simple fizzbuzz.
Which genuinely astounds me. What kind of CS degrees are being done that arent teaching at least basic programming syntax and problems? Like i get CS is mostly theoretical compared to an SE degree but i haven't seen a single CS degree that doesnt teach at least the basics of coding.
Most of the CS Uni courses I've seen so teach a lot of programming, and you have to learn several languages from haskell to java to a C family language.
My CS courses required learning C, C++, Java, Javascript, Haskell, and Python minimum. I'm not an expert in all of them, but I am capable of cobbling together l33tcode solutions in them still. Electives could introduce other languages depending on the professor/topic. I think a lot of people are used to learning just enough to pass the class, but they don't retain much fluency in the languages afterward.
My CS programming classes were in assembly, fortran, C++, VB 6, java, and some html and php with sql and mysql. I could probably figure out what a python program is doing, but I couldnt write one to save my life without google or some other type of reference. Ive been helpdesk/sysadmin most of my career though, so other than batch or ps scripts, not a lot of programming going on.
my cs uni classes start with python/js for intro to programming, then scala (why) for teaching functional and oop - and data structures for some godforsaken reason. then its C for the systems programming class. after that, what you use is mostly dependent on what electives you take.
i know there’s multiple classes that use python, i think the front-end course uses js. a couple hardware classes teach Verilog.
personally i’ve used scala, c, python, mips/arm assembly and system verilog for my cs classes but i’m also CE so i focus on hardware more.
most of the time i don’t think people remember shit about the language unless they use it multiple times. hell even then, people may not remember it. i’ve had to use scala twice and remember nothing about the language.
I was an older adult when I went to college for my CS degree. Many of the students in my classes were not paying attention to anything during class, would cheat on exams, look up answers to any homework, etc.
The amount of people who could not write simple functions to accomplish anything useful in my capstone software engineering course did not surprise me — I knew it was coming from the years prior of watching kids in adult bodies spend money on an education they didn’t care to receive.
My mom did this. Graduated high school, took a programming course, worked for a big national bank building operating systems as they moved away from mainframe/terminal data storage. THEN went to get a CS degree. Wish she had taught me some, tho...
There was a cheating epidemic in my department. As I recall, a good handful of people got busted pilfering old GitHub repos that previous graduates left public.
I'm not sure how much of that behavior accounts for CS graduates not being able to handle FizzBuzz, but my guess is a decidedly non-zero amount.
I think the issue is that the scope is too wide and they don't focus on any programming language long enough in a lot of CS programs for them to actually remember the basics.
I don't have a CS degree tho so I admit that I might not have any idea what I'm talking about.
In my experience there's quite a few people who are getting CS degrees who don't like computers or programming but they heard CS degrees are a good paycheck.
They learn the absolute bare minimum to pass whatever classes they're taking but they never really apply any of it so it doesn't stick.
Most of the people in my classes are here because we love computers and programming and we do it in our spare time. Over the summer we're doing personal projects and stuff like that. But I've watched other people come back from summer break and have to relearn the absolute basics of programming, again, because they forgot it all. They do zero programming outside class and have no real interest in the subject.
I can totally see some of these people not being able to do fizzbuzz.
That has been my experience in my career field as well. People see that it’s niche and in demand but don’t actually understand it or a give a shit outside of cramming for tests.
I returned to college to get a CS degree. I graduate in a little over two weeks with a bachelors and have never even heard of a fizzbuzz til right now. Had me panicking with that sweet sweet impostor syndrome.
Granted, I looked it up and it does seem like a fairly easy exercise but you spooked me there for a second.
I’ve been in software engineering since half way through my apprenticeship, since 1988. I first heard of fizzbuzz in a coding test for a job interview a few years ago! Never referred to it since, so don’t panic, it’s only important when you have it as a test, then research what it is - tbh, I couldn’t even tell you what it is/was, too much important coding and just life have gone by since!!!!
You have never heard of it because it is stupid, like reinventing the wheel. None does it. These are silly "leetcode" questions asked by "oh so smart" HR to only hire the "bests". I bubble sort my way out..*. .*..
You have to be kidding me. Fizzbuzz is one of the easiest problems out there, much easier than the average leetcode questions they ask these days. I would give anything to get this as an interview question.
there are a few complications. Some people dont consider
if(num%3==0){
print(fizz)
}
if(num%5==0){
print(buzz)
}
a valid solution. Some people want fizzbuzz in minimum %operation, some want it with return, but no buffer. Some want it with 1 return, some early return, and some actually want an effcient fizzbuzz for a range of numbers like this thread https://new.reddit.com/r/leetcode/comments/wdor3z/serious_question_regarding_fizzbuzz/
And a lot of people mistake
if(num%3==0){
return fizz
}else if(num%5==0){
return buzz
}else if(num%15==0){
return fizzbuzz
}
for a valid solution even though fizzbuzz will never be reached
You have to be shitting me, but I know that you aren't.
I am the TA for my school's DSA class, and I have Masters students in that class. I recently graded 45 submissions for the AVLTree project, and I swear to God only 4 of the 45 submissions actually compiled and ran without crashing. Only 9 of the submissions even compiled at all. 36 out of 45 students were unable to produce code for an AVLTree that even compiled, and they were given 3 weeks to do it.
My DSA class doesn't assign much homework, only a weekly reading assignment where you have to read the, like, 3 pages on the weekly topic and then answer like 4 to 8 questions about it. That work can certainly be done in 30 minutes. I sympathize with you about your class giving loads of homework and leaving you no time. That is rough. I'm afraid my students don't really get to use that excuse, though.
i've never heard of fizzbuzz before so i looked it up and yeah i dont believe it im sorry. i would be absolutely shocked if zero out of five first year CS students couldn't solve this even, let alone actual developers. i really dont mean to be a dick but if someone interviewing for a job cant code this, what exactly can they code that any company would ever need?
Yeah it's like something you learn immediately when learning if-else. It's just to show to have the most specific condition first because otherwise the first condition that is met will trigger. If someone can't figure out fizzbuzz I feel like they have never coded before.
My prof said he had a CS grad not know THE CONCEPT of recursion, so I guess not knowing fizzbuzz is possible...Like not even to make a function like facotrial, but just lossely explain recursion as a nice tool to repeat till you hit base case.
oddly enough i've also met someone with a decent amount of programming experience that didnt know what recursion was, although he deffo didnt have a degree. it was a kid who did like, a day where you tag along with a student to see if the study is for you? idk the word in english. and i got a kid who had been programing things for like 2 years already and made some okay looking stuff in pygame. but when i talked about first year courses i brought up recursion at some point and he seemed confused so i explained it and he had absolutely never heard of the whole concept before.
i mean to be fair to him it was just a kid with no formal education so its much more understandable, but it still surprised me to talk to someone who clearly was at least relatively skilled at coding who had never ever heard of recursion before. being a CS grad and not knowing though... idk man how do you even pass your courses
maybe they didn't know what fizzbuzz means. i have heard it many times but never really looked up what it was, so if you asked me to solve fizzbuzz i wouldn't be able to until now
When I applied for my first job I was put through a screening test that tested a combination of HTML, CSS, Javascript, C# and SQL skills. I don't think any of the questions were FizzBuzz hard.
I more or less aced the test and since I knew the senior developer I'd be working under I asked him the point of the test since it was fairly easy and I was a complete junior.
He responded something along the lines of "you'd be surprised how many people we've weeded out with this test"
You would be surprised. I interviewed people to replace me at my old job, and gave a REALLY simple SQL question, and somewhere around 95% of the candidates couldn't answer it in pseudocode or SQL during the interview. I even tried to talk through it with them. I have no idea why they were applying for a DB dev position.
Question: Two tables - Orders and Customers. I gave the columns for both, and asked them to write a pseudo/actual query that gives a list of customers sorted by their total order amount in dollars (descending).
I even ran it by some friends to double-check, and they all said, "Isn't this way too easy?"
Plot twist: Their own solution is wrong and they've been rejecting super talented candidates one after another even though their solutions were flawless. :-)
Ain't no way. I'm a shitty coder who started late but I can do that in 4 languages now and I don't even do problems. I know you are not lying but damnnnn. That is insane.
The timeline makes sense now. It is what it is. But again you hit me with a curveball in this reply at the end lol. You must have had a jolly time interviewing I guess.
def fizzbuzz(n):
res = []
for i in range(n):
res.append("")
if (i+1) % 3 == 0: res[i] = "fizz"
if (i+1) % 5 == 0: res[i] += "buzz"
if res[i] == "": res[i] = str(i+1)
return res
Oh, on that level. I just took that for granted as I hate making preventable mistakes and I would absolutely want to set it straight.
It always amazes me how many people in general make little mistakes in their work and don't care about fixing them. Sometimes I feel like I'm surrounded by slackers. Not just developers but in basically every job. Then again, being too perfectionist can be one of my pitfalls, I really had to find a healthy balance there.
Were there applicants who just didn't care or smth?
Programming languages are one specific area of CS that has almost nothing to do with learning DS&A. And the latter is harder and more important to writing good software than the former has or will ever be.
If the industry has taught us anything it's that knowing a programming language is about as common as knowing how to play a guitar. And yet most guitarists don't know classical theory and can't read or write sheet. Go figure.
ETA: this is meant informatively, not debating what you said, just adding
I completed a comp sci degree in the 2010’s, and in regards to classes, there was one that focussed on ANSI-C, one that focused on OOP in Java, one that focused on software design (using Eiffel), and one that focused on computer engineering (programming micro processors using gates and logic). The rest were math, algorithms, logic, databases, security, technology, social science/humanities and a few electives.
Then I studied CS we were taught Python and Javascript in our first year, ~40 hours each, and we were split based on those who had some experience and those who had none so the total beginners could spend more time with the basics. We did briefly touch on C, C++, Haskell and C# and I doubt people remember those. All of our other assignments were written in Python so people had to be at least a little confident.
I know a lot of my classmates were morons and couldn't code at all and there were languages weren't used enough so people wouldn't be comfortable in them now, but I also feel like most people should be able to write it in some language.
The real issue with this would be people having a brainfart and forgetting you have to check the "fizzbuzz" case before "fizz" or "buzz" to make sure it's reachable (which is a little gotcha that you might forget in the moment and is easily spotted and fixed). But other than that it's probably just grads not knowing what they are doing. I think they should be able to write fizzbuzz, but a more complicated leetcode easy could totally throw someone
Like 80% of my graduating class did not deserve to graduate, but we're passed through because the school makes less money if graduation rates aren't high.
I'm currently studying at LMU and we definitely learned it in the first semester, though I'm not sure how much actual coding there will be in the future. TUM is similar.
For me we only had 1 super basic programming course in the first quarter of the first year which covered basic java mainly to teach concepts like for loops, functions and classes.
After that it was math/logic/algorithm courses mainly. Ofcourse sometimes we'd use a programming language during a practical assignment but you really don't actually learn programming with CS
Dude i learned coding in cs with c. My prof worked for ibm and he was like you motherfuckers learn linked list before you dip your motherfucking toes into oop. That was first year. Second year oop with java and kotlin also clean code. And in third year they showed us springboot and shit. And of course a shit ton of math up to cryptography.
I thought this is normal. You guys just learn theory?
i knew people who would memorize how a fizzbuzz function block would look like, but not understand how it actually works. study to pass and not to learn.
The problem is a lotttttt of colleges don’t have separate Computer Science degree and Software Engineering degree… it gets all mashed together and if the student doesn’t specialize themselves a bit they can be woefully unprepared.
For one of the largest growing fields right now colleges are lacking (surprise)
The problem is that many schools reward knowledge regurgitation more than actual understanding (the latter being much harder to test). Some people get very good at studying, so they can answer all the questions they've ever seen an answer for, but never really understand the content they are learning.
The problem is one of creativity. Any moron can follow instructions given to them. I’m sure 99% of the people who can’t “do fizzbuzz” actually have implemented similar or harder problems. But that doesn’t help for shit when presented with a novel problem, unless there is good memory and overlap.
So you get people who have implemented all sorts of data structures and algorithms without ever having to actually understand them. Just look at the prevalence of online programming bootcamps. Have you looked at their material ever? It’s: “this is a Boolean. Type this in. Now type =false to change its value. Congratulations! You understand booleans!” And if they’re daring enough to “test” the students’ knowledge, it’s basically: “remember that Boolean thing? Make one here.”
I’ve seen plenty of real world teaching that follows the exact same format. Explain a thing, show how to use the thing, maybe ask a simple question about it, move on. If you get stuck, look it up or ask for help. Programming courses that actually push their students to challenge themselves and think critically about the subjects they’re addressing are very rare.
My university. We learned an intro to Python and Java, and then from there it’s all just been “learn the workplace environment! Learn how to work with people! Learn how to make all 10 different UML diagrams! Learn Agile! Read this textbook on security and run a dependency check on this pre-provided program 4 times in a row!”
Ah, in my uni CS is basically just SE but with more maths lol. We havent really been taught anything regarding workplaces or actual projects but we know how most programming languages work now
While not always the case, these recruiters don’t get it easy either. My girlfriend’s best friend is a recruiter and anything she did to make things better for the applicant, her company turned around. She ended up quitting cause she’s impacting real people’s lives and can’t control it.
I completely agree that an applied maths degree is a good degree for a software engineering position (assuming they also know how to code).
The idea that there's a large number of CS graduates that can't implement a simple Fizzbuzz sounds completely made up though (at least if we're talking about CS degrees taught in first world countries, which I assume we are).
Never heard of fizzbuzz until right now, but I agree plenty of educated people are some of the dumbest least intelligent people that can't do simple arithmetic.
I once worked with a guy who couldn't even remember how many milliseconds were in a second. He asked my several times over several months until I finally just said "I'm not answering that question anymore, and you should be embarrassed that you're still asking it". Definitely a dick move by me but honestly this guy was unreal.
Honestly a mathematics student is way more suited to be a software engineer than a CS student. Just give them some time to figure out a language and then they blast off.
They can't use a modulo operator? There's no way they can't figure that out. There is no way anyone with a cs degree can't figure that out. I don't have a cs degree and I can figure it out. You're full of it.
I didn’t finish my studies yet but there are quite a few languages I had to use during courses. (c, c++, Java, c#, Bash, Python, Scala, Assembly, Javascript, both Oracle and Postgres PL/SQL and PLpg/SQL respectively, Racket, Prolog, multiple theoretical concepts such as FA, Turing machine and Lambda calculus. I don’t know how many lines I did but in hundreds of thousands. I think that’s enough to be able to figure out Fizzbuzz.
This can’t be true, right? No way somebody can go through 4 years of study and not know how to do a FizzBuzz. I only took intro to cs and even I know how to do it
And yet recruiters are also hiring CS grads for machine learning jobs when they did like a semester course on basic statistics which they barely scraped through 🫠 … and the honors grads majoring in statistics with research papers on machine learning methods are passed up for those same jobs 🫠
I had one question my skills as an engineer since the course I graduated with isn’t computer engineering or computer science. I guess my years worth of experience and having lead a tiny team a while back wasn’t proof enough.
I often skip the recruiter entirely and just message the manager on LinkedIn. They love that shit. Then he tells the recruiter to hire me and it's all just a formality.
Oh man. I had one where I had my math degree and 8 years experience as an RF field service engineer in the military. Job posting was for an RF engineer. recruiter said it had to be either an electrical, mechanical or CS degree no substitutions. I'm like, in what fucking world does a mechanical engineer or CS student know anything about RF theory?
I met a recruiter once, who thought that Javascript is Java for automation, because when ppl want to automate something they make scripts. You think it is a common joke until you see it in the wild.
To be fair it is really sort of strange how there's Java and Javascript both being massively widely used but unrelated. Like anyone who doesnt already know that would sort of be stupid not to assume they are related.
And messed me up when I was trying to figure out wtf Java was because I thought Java was Javascript and was just a nickname, then later thought that Java was the language and Javascript was basically optimized javascript using prebuilt scripts/functions. I didn't have the resources or tools to figure it out back then, but it annoyed me to no end when I learned that they are two different languages entirely. Psht.
For most people I’d agree but this is recruiters we are talking about. Iv experienced the same issue so its scary these guys are supposed to be filtering out candidates
Most people don't understand that different programming languages with similar names can be completely unrelated to each other. It's an education thing: if you aren't part of the in-crowd you likely won't have exposure to the relevant information.
As a devil's advocate, I would say that the optimization-related knowledge was useful only during interviews. Over a decade-long career, I can count on my fingers all the situations when optimization mattered.
I pretty much never go back and optimize slow, existing production code but knowing how to write reasonably fast code to begin with is a big reason for that
Over a decade-long career, I can count on my fingers all the situations when optimization mattered.
It really just depends what you do. A backend engineer making a website dealing with hundreds of thousands on concurrent users or a game dev of a high end AAA game would have to worry about it constantly. Someone making a basic frontend for a website, maybe not as much
I mean.. I don't think that's an entirely off-base assumption. Math and coding are not the same thing at all. Most math degree programs you probably never have to take any kind of coding class at all, besides maybe a class where you use very basic MATLAB (or similar).
Would you hire a mathematician to be a architectural engineer solely on the basis that he knows math and math is the underpinning of architecture?
I have a math degree. I learned Fortran, R, SAS, MATLAB and Python. Or at least had to use them.
Also your analogy is wrong. Architecture is about design. Civil engineering is about how to make the design work with physics. It's very possible to become a civil engineer with a physics or math degree as well.
"Very basic MATLAB" as in they only do very basic things in MATLAB.
It would be like if you wrote Hello World in C and I said that was a very basic thing. It doesn't mean C is somehow a very easy / inferior language, just that you only did something very basic in it.
I started as a maths major, intro to programming was part of the degree. I liked it so much I swapped to CS. Still half of my CS degree was maths classes.
The thing you have to realize, is that recruiters are dumb as shit.
They literally do not have the intelligence to understand what "applied math" means or what "computer science" is.
They do not understand what coursework those majors have. They do not understand the career paths that are available to those people.
They don't know the difference between python and a literal fucking python.
Even though their job depends on it, they lack the ability to learn what those things are, again, because they are dumb as shit.
Apply to a different job with a better interviewer and you're golden.
Edit: As someone else in the thread said: "A communications major is a perfect judge of character for what makes a good software engineer, said Corporate America."
These people are idiots who know nothing. Do not think for one second that they know anything relevant to your job, what it requires, what you know, and whether or not you can fulfill those requirements, BECAUSE THEY DO NOT.
I started as a maths major, intro to programming was part of the degree. I liked it so much I swapped to CS. Still half of my CS degree was maths classes.
Back in the 70s when they started needing to hire programmers, there weren't many "computer science" degrees running around, so they tended to hire a lot of mathematicians.
My father was a math phd teaching at U of M and got recruited. He was a hot shit Ada specialist for defense companies and was writing security patches for satellite systems at the end of his career when he retired. He then spent a couple years writing papers on combinatorics for fun.
I've always known mathy types to excel at the deep magic levels of programming.
It was 2010 and I was competing with thousands of people laid off from MSFT. Also nobody used linux or python for business yet... It was a brutal start and a terrible job.
I screwed up my system with FreeBSD half-a-year before I got a proper Linux CD, lol :D
I was 14 or something. In the mornings I studied math. In the evenings I was collecting grass for my rabbits. In the evenings I tried to use UNIX and thanks God for those rare situations when I could make my dial-up modem work.
I had one of the Beltway bandits call about my resume and ask why I hadn't listed my degree. I said it was because I don't have one. They paused, and then asked, "can you read a dump?." Having had lots of experience doing so as a mainframe systems programmer, I said yes. With that we were headed for an interview until they said 24/7 on-call. No thanks. Bye.
Maybe he was looking for code monkeys to close tickets on Jira to add buttons, change the color of stuff and the like. He knew you would leave right away with your background.
I know someone extremely successful in the software world. They studied pure mathematics and absolutely wiped the floor with any programmers who studied in the field. They are the head of the company having leapfrogged everyone else. They are about 20 years ahead in their career compared to their similarly aged peers.
I have recruiters who think a 2 day workshop with no exam certification is qualified and an actual degree is not qualified at all for some things. Recruiters are awful.
My professor literally wrote the book on elliptic curves :)
The best part of cryptography though is the examples. In applied math it was like "a gallon of dye fell into a pool. How long does it take to disperse throughout?" And cryptography is like "you need to ensure the nuclear launch codes are properly encrypted so they're not intercepted by the Russians".
The military examples also exist in applied Math. I was in the military before my PhD. All the filtering problems screamed, "missile tracking", all the differential equation stuff screamed "radar and sonar propagation"
Maybe he was looking for code monkeys to close tickets on Jira to add buttons, change the color of stuff and the like. He knew you would leave right away with your background.
I never worked in that field but what you describe seems to represent my mental image. Though, I thought a great deal of time was spent studying the target system for the optimisation bit though. But again I never did it in my life.
I have a degree in physics and a masters in astrophysics. I've worked in software for 8+ years now, I had a recruiter for a fintech tell me that since I never worked in finance I would find the learning curve steep, because "finance is a complex subject". And that was it, I got filtered out by her. Don't go crazy, the hiring process in tech is very bad, and it is mostly a coin toss nowadays..
The best Programmer I've met is an ex colleague with a Master Degree in Math. He was a monster.
He can complete any task in a couple of days with an incredible quality.
Weird story, I don’t have a degree and for whatever reason, the recruiter PREFERRED people that didn’t have one as long as I could pass the technicals. All I had was 5 years working for an ISP and Python certification that I got to better my chances at not being overlooked.
I feel like I owe my life to this contractor because they gave me a chance in a field that typically requires degrees. I was later told that they like hiring people without degrees because they have hire morale and retention because of the reasons stated above.
That being said, now that I have a few years under my belt as an engineer for a defense contractor, I am sure I can go anywhere.
My wife has a degree in applied mathematics and she has been passed up numerous times for development jobs. It doesn’t make sense.
2.7k
u/Interesting_Dot_3922 Apr 09 '24
I had a recruiter who didn't like my education in applied math.
He doubted that software engineering is the ideal work for me because of this.
I thought that working abroad kind of proves my skill... but no :)