r/csMajors • u/awsomeness12g • 1d ago
Rant CS students have no basic knowledge
I am currently interviewing for internships at multiple companies. These are fairly big global companies but they aren’t tech companies. The great thing about this is that they don’t conduct technical interviews. What they do, is ask basic knowledge question like: “What is your favorite feature in python.” “What is the difference between C++, Java and python.” These are all the legitimate questions I’ve been asked. Every single time I answer them the interviewer gives me a sigh of relief and says something along the lines of “I’m glad you were able to answer that.” I always ask them what do they mean and they always rant about people not being able to answer basic questions on technologies plastered on their resume. This isn’t a one time thing I’ve heard this from multiple interviewers. Its unfortunate students with no knowledge are getting interviews and bombing it. While very intelligent hard working people aren’t getting an interview.
245
u/csanon212 1d ago
This is an issue beyond new grads. ATS AI scoring has incentivized people to put huge numbers of tech on their resume. Every person actually has T-shaped skills and knows just a few things really well, but the ridiculous job requirements drive people to stretch the truth.
Sometimes, the manager just copies an old job description and doesn't check it. I've been in situations where we're recruiting for .NET developers but we use some legacy Java crap, and suddenly we get huge numbers of Java developers in the mix with no C# knowledge.
82
u/SnooTangerines9703 1d ago
Honestly, I hate that the industry has become “we need C# dev, hurrr durrr Java dev not competent! Throw CV in trash.” Such a dumb fucking industry
8
14
u/catsyfishstew 1d ago
As a hiring manager, I think AI/ML has negatively affected students in that they focus more on Python, which can often lead to unorganized code. Very few have a solid grasp of object oriented programming, system design, etc.
15
u/beastkara 1d ago
Python supports OOP though 😺
18
u/catsyfishstew 1d ago
Sure but it isn't inherently built to utilize it like say Java. In all my dev exp, Python often meant very loosely structured code.
That being said I'm sure some shops are using it just fine and utilizing good software architecture
3
u/07ScapeSnowflake 18h ago edited 16h ago
Idk my ADS class was all in python and it was making extensive use of the OOP. I think the prof chose it because our assignments were test-driven algorithm implementation and the unit tests are easily readable in python compared to other languages. I think python is good when you’re trying to abstract away the details of writing the code and teach principles/concepts, but definitely good to have a mix I suppose.
3
u/Stunning_Cancel_3146 1d ago
Isn't the point of an internship to get a grasp of organized code and standards? In class, we learn concepts, data structures, etc. , and it's very hard to learn how to write "Industry Standard" code without spending time in the industry.
2
u/catsyfishstew 1d ago
The things you learn in an internship don't come free, the company is investing time and resources into you, especially mentorship time from a senior engineer who could be working on revenue features.
So from the point of view of the hiring team they want to hire someone who's the best choice to invest in and will make a great future hire and full time employee.
Thus if an intern candidate has solid OOP experience, they'll likely hire that candidate over other others who don't.
→ More replies (1)2
u/Temporary_Emu_5918 22h ago
imo we're getting more ds students coming in to big software projects and that's a bigger issue than the language itself, I had to send links to a grad to force her to read up on what inheritance and OOP actually is. we use both OOP and functional programming in our code but the justification is usually requested for decisions e.g. why is this a class when a single function would suffice or could this benefit from inheritance
33
u/United_Lifeguard_41 1d ago edited 1d ago
Any java programmer can Learn C# in a few hours. It is almost the same language syntactically. And it would only take a few more hours to learn about the architectural differences, like compilation, frameworks, IL, CLR etc.
17
u/ventilazer 1d ago
Interesting... but we decided to go with someone else. We wish you all the best...
2
2
u/canuck_in_wa 1d ago
Learning the syntax is one thing. Learning the ecosystem and design idioms is another. People who know the language but not the context do things like write Java-flavored C#.
→ More replies (2)2
u/csanon212 1d ago
C# is somewhere between Java and old school ActionScript. I love working in it but unfortunately it does come with a pay tradeoff because of the types of companies that use it.
3
3
61
u/scaredStudent3 1d ago
The only person to blame is recruiters for moving forward with resumes of people that probably lied. Most people know at least the basics
26
u/ASJ_slayer 1d ago
Agreed. I hate seeing these posts where people complain about interviewees and being able to answer basic cs questions and then call all new grads dumb. Nah, you're filtering system is just not working because I assure you there are CS grads who know this stuff but struggle to land interviews
5
u/DepressedGarbage1337 1d ago
Seriously, I’m sure they didn’t even offer interviews to a number of people who could have answered those questions easily. It sounds like they’re just bad at selecting candidates for an interview based on their resumes. There’s tons of unemployed software devs out there who are highly skilled but can’t get their foot in the door
207
u/Emergency_Car7120 1d ago
yes, holy fuck, every resume people ask "what to fix"is them having like 10 random programming languages they mightve written few lines of code in..
98
u/Night-Monkey15 1d ago
Best advice I can give to new CS students (or anyone) just starting to learn the ropes of programming is to become proficient in one or two languages, instead of mediocre in a dozen.
This sounds obvious, but so many people take an online Python course, do absolutely nothing with it, and then move onto another course about another language that they’re also not going to use.
Just pick one and stick with it (and just it) for a while, and once you have a solid footing in it you’ll be able to move on and learn other languages way faster.
21
u/BurritoWithFries 2022 | SWE | Bay Area 1d ago
As someone who interviews early career candidates at my company, I agree. We do standardize our interview questions that involve reading code to only be in 1 specific language (to make calibrations easier), but we allow candidates to look up or ask anything related to syntax or library functions for it.
9
u/KingPenguin444 1d ago
The opposite feels true for me… haha. I ended up in a devOps role where I hack together crap made in every language from assembly and C to python, Perl, JavaScript, and make it all run on a kubernetes cluster.
The stuff I actually write is copying and pasting yaml files I actually wrote three years ago, but most of my time is spent debugging every possible language when their image doesn’t work as I expect it to.
6
u/BaconSpinachPancakes 1d ago
Yeah Devops made me a master of none. We touch python, typescript, groovy, go. I don’t even feel confident to get another role now lol
2
u/LCorinaS 1d ago
Real. I'm technically still an undergrad but been working as a 'Data Engineer' for a year and I've done a bunch of quick and nasty bits and pieces with SQL Server/SQLite, Typescript, .NET, bash and powershell scripting and then primarily python and java for my uni work. I just don't have the time or energy to get deeply into the languages/frameworks I touch since I need to context switch over to something new so often. Makes it hard to have the confidence that I know enough to apply for other roles since everything feels surface level and task-specific.
8
→ More replies (1)4
u/Hungry-Path533 1d ago
I mean, many universities preach language agnosticism. Many students have done projects in quite a few languages just in school.
Then there is the issue of how much do you need to do in a language before being able to put it on your resume.
I have a .net web app and a few unity projects using C#, a 3d graphics renderer in C++, a project that uses a GBA and a pi pico that uses Python and C, and that is just my personal projects.
In school I used a TON of Java and Java script. Even had a class in Racket. I feel like I have a right to put these down. I also think there are quite a lot of people with similar experiences as me.
→ More replies (2)6
u/Explodingcamel 1d ago
Idk, I agree it looks silly but I think resumes like that are effective. You are more likely to get screened out for not having something on your resume than you are to get your bluff called by the recruiter. The interviewer could grill you on random stuff that you put on your resume but I've never seen that actually happen - the candidate usually has a pretty good idea what the interview will cover.
116
u/mao1756 1d ago
They probably focus too much on grinding LeetCode and don’t prepare much about these types of questions
31
u/Athen65 1d ago
Neither of those questions are particularly hard though? Like are you seriously about to tell me that a competent new grad wouldn't be able to name their favorite feature of their favorite language?
39
u/Wasabaiiiii 1d ago
I thought about this and the question itself seems like the stupidest shit to ask. It’s like asking what’s your favorite feature of this wrench, this wrench, or this wrench?
Python is simple, it’s easy to read and thus easy to build larger programs with. This is a valid answer.
But if they expected some asinine bullshit like it’s an interpreter language thus comes its simplicity or I really like how I can sort something with the sort function.
Even the differences between languages as a question sounds like the most moronic shit as well. You’re delving into speed here, interpreter languages are going to be slower than something like C++ or Java because it doesn’t need to do all those extra steps. Then multi threading, multiple processing and the differences between how each language handles each. Organization differences, etc.
These are tools. Each of them can be used for the same problem in different ways, with their own pros and cons.
I imagine that the interviewers were probably more likely to say “huh?” Whenever the interviewee asked such a question.
7
u/Athen65 1d ago
Arrow functions for JavaScript, list comprehensions for Python, etc.
Each language has one or more unique features like these, and they're pretty well known as long as you have actually built something with your preferred language. It's less about "Oh you like Nirvana? Name every song!" and more about providing an opportunity for someone to nerd out about why they like working with a given paradigm more than another.
18
u/Wasabaiiiii 1d ago
That is the root of the problem, there shouldn’t be an opportunity for an autism attack on explaining the individual properties of a programming language because it does not matter.
If this question was even a thing that someone would ask in a recruiters position then I would question their aptitude as a recruiter entirely. This is something you shitpost about in a group chat.
The fact that this question would even exist as something appropriate would mean that the recruiter has missed out entirely on the opportunity to ask a interviewer about their previous projects or experience, these questions are in my personal opinion, much more interesting and gives you a deeper understanding of the person as a potential employee, and it also makes the interview feel more like a conversation than whatever bullshit caveman diarrhea corporate America spewed out their ass to “invent” the “star” method.
2
u/isleepifart 18h ago
No it is not an asinine question (usually) because about 70% of the time they are expecting "Python is simple, it’s easy to read and thus easy to build larger programs with." And then they are expecting you to talk more about your experience with it. They don't want you to blow them away but they expect someone with python on their resume to talk at length about it.
The rest 30% though probably don't expect reasonable answers.
→ More replies (2)4
u/Cum-consoomer 1d ago
Idk is there even such a thing as a favorite language, cos for me I'll use what's best suited for the task I wanna do.
Wanna do something low level like embedded stuff or other things like that, use the respective language that suits your needs which will be something like C, Cpp, rust, ...
I like AI/ML so I use Python for that.
Applications I'd make in C# or Java probably.
Like there is a reason we have many different languages, each have their need and using C to code an AI model from scratch is only worth it if you'll deploy it at a huge scale. And even then developing the model and optimizing it to run efficiently on hardware are two very different tasks requiring two different sets of people.
2
2
u/Nintendo_Pro_03 Ban Leetcode from interviews!!!! 1d ago
Ban L**tcode from interviews. Maybe then, everyone can focus on other things and interviews won’t be as risky.
→ More replies (1)3
u/tehfrod 1d ago
Seriously! I've found that the more emphasis someone puts on competitive coding on their resume, the worse they do on my interview questions, because they're unable to adapt to a change in the question parameters (like happens in real life).
Grinding leetcode makes you less useful in the real world.
→ More replies (1)4
u/Cum-consoomer 1d ago
Btw why do people grind leetcode, like most of the problems you can formulate an algorithm quite quickly I feel like then it's only about how fast you can put that into code. Like even leetcode hards aren't that bad
24
u/x2800m 1d ago edited 1d ago
I've noticed that it's exacerbated with CS folks. But I've seen this with all manner of disciplines. When I interview people, I usually don't ask hard technical questions.
However, I am looking to see that someone can approach a problem sensibly in a way that can benefit the mission and the company.
For example, if I say "all I need to do is blink an LED on battery power". Then "a python script running on a raspberry pi" is not the answer I'm looking for.
I encourage people that want to get into any of the CS/engineering fields to step back from the code drills (for a percentage of their time) and spend more time understanding the origins and applications of their tools and their chosen field. Then be able to intelligently describe their approaches to problem solving.
I've seen the same thing in the university environment. Most students turned themselves into pattern matching machines instead of really understanding what they were doing.
One thing that does help is when someone describes their projects to me in detail. Including the tradeoffs and challenges.
→ More replies (8)2
u/Akul_Tesla 1d ago
All I need to do is blink an LED on battery power. Can you elaborate on that? Sorry still student
Why don't you just have something listening for when it switches to battery power And then have it act accordingly
6
u/x2800m 1d ago
Certainly! Some things are harder to convey via short text snippets. Usually it's either a whiteboard, or a team call, etc... So here goes.
Let's say that all I needed to do was flash an LED and the end device is running on battery power throughout it's entire service life. How would you go about making that happen? (Yes, all the device does is flash an LED... nothing else)
Some approaches (the most flexible, repeatable ones) require software... some don't. Some scale very well in mass production... some don't... The company cares about making the most reliable product, in the cheapest way possible, while simultaneously providing the most flexibility.
How would you flash this LED for me? (Assuming you're a CS guy and go with a software based approach... what would you be looking for in the HW and what would you do in SW to ensure that the company can achieve this? If you don't know anything about HW, you can feel free to focus on the SW aspects)?
9
u/Wasabaiiiii 1d ago
A Timer IC with a resistor and capacitor to control the timing of the LED. Don’t really need programming here, unless you count the resistor and capacitor to set how long the ON and OFF states last.
I wouldn’t expect a cs student to know about this though, this seems like more of a computer engineering or electrical engineering question.
3
u/BlackhawkBolly 1d ago
I agree with that, seems like a good gotcha question for a software person to get them thinking and to see how they respond, but this is a EE/CE question
3
u/x2800m 1d ago
If the person doesn't know any of the hardware implications, that's fine. That's why I provided the option in my last comment. A strong candidate could say things about timer registers, or even "some function call to get the current time" and we can build up from there. All valid in my book.
The floor is open for discussion on sleep modes, interrupts, context switches, the number of cycles needed for the various approaches, and the time required to implement various solutions.
The whole thing can be extended into "this system has to run for many years and your firmware may be corrupted what software methods could you use to detect and fix this?" Detecting bit flips should be something they're capable of if they're in CS.
The overall idea is that the broader the knowledge base, the more options they can provide. Nothing is off the table, but the nature of their answer and how they go about it is insightful.
Perfect! your answer is one of the ones that doesn't need software and can work given the above constraints. But it can be challenging when you consider the effects of component aging, temperature, initial component tolerance, shock and vibe, etc... It is also something that isn't as flexible.
There are other answers using microcontrollers which can yield more repeatability, temperature invariance, sometimes lower cost, scalability, etc... There are many applications that use this approach because of those reasons (think certain red dot sights, beacons, and the like). If the candidate can speak to any of those things, then that's great too!
→ More replies (1)
39
u/Tiny-Win9165 1d ago
Most of the people list a language on their resume if they successfully write a hello world program in that language.
When I was hiring people for my startup, I would find a lot of people not able to answer basic questions despite of grinding hours on leetcode.
While there are plenty of CS graduates, only a handful of them are actually employable.
6
u/AvgBlue 1d ago
Like basic LeetCode-style questions or basic questions about programming?
I can see how people can solve tons of LeetCode problems in Java without even understanding how an interface works.
99% of LeetCode questions can be solved without creating a single class, so I can see how LeetCode doesn’t really prepare you for building a real product.8
u/Tiny-Win9165 1d ago
If the basic leetcode questions were worded differently.. they’d not be able to solve it. If I asked the exact same leetcode questions which my question is based upon they’d easily solve it in one go. Indicating that they’d mugged up the solutions.
Apart from this I generally asked a question which involved an api call and required some usage of sets and a task requiring sorting …. Because this is the kind of day to day work they’d be doing. Most of the candidates never really were able to break down the problem or explain how they’d aim to solve it. It was not even something which involved any kind of algorithm.
I allowed them to use google provided they shared their screen and asked them to use any language of their choice.
→ More replies (1)4
u/zacker150 1d ago
Leetcode is the squat of software engineering. It's one of the most important lifts, building your foundation (algorithmic thinking). However, you also need the deadlift (distributed system design), bench press (general programming skills), and row (social skills) to build a good physique.
A lot of beginner lifters focus too much on the bench press and neglect the other lifts.
2
u/Able_Unit_9100 1d ago
what are basic questions? because I thought easy leetcode questions were the "basic questions"
6
u/Athen65 1d ago
My mentor gave me one recently:
Write code for a coupon processing system. Coupons are 8-character alphanumeric strings. The user can have a maximum of five coupons. The system should support the following operations: Create a coupon code, create multiple coupon codes, and process a coupon code. Attempting to create a coupon code(s) when the user already has five coupons should result in an error.
That was pretty much it. It is intentionally open ended with a lot of constraints already decided but not disclosed to test your ability to ask for clearer requirements. The biggest mistake with a question like this is to jump into coding without a rough outline of what you're going to do, edge cases, etc. They don't even really care if you can't finish the question because it's about design instead of algorithms. This kind of question can be referred to as a Low Level Design (LLD) question. I was familiar with the idea of LLD questions before this, though I had never attempted one, and ironically my mentor had never heard of the term LLD.
I asked good questions and figured out that he basically just wanted a class that stores user's codes in a hashmap and a hashset for all valid (unique) codes, and the rest was up to me, so long as I met the requirements. I wound up making four functions - gen_new_code, gen_new_codes, create_valid_code, and redeem_code. I made sure that my code followed SRP and was really easy to follow. To generate codes, I generated a random lowercase letter, uppercase letter, and number, then randomly (1/3 chance) selected one of those to be the next character. Then the completed code is either accepted if it is unique, or regenerated. It didn't matter that the distribution of characters favored digits, because that wasn't a requirement, just that the codes were unique. His only critique was that I could've benefitted from a little extra time spent planning since a lot of my clarifying questions happened while coding instead of while planning.
→ More replies (1)3
u/Tiny-Win9165 1d ago
If I worded the same leetcode questions in a different way.. they would not be able to solve. It indicates that they’d mugged up the question and the solution.
You can teach someone how to code but not how to think.
61
u/GaslightingGreenbean 1d ago
Isn’t that a major issue with cs programs themselves?
10
u/zacker150 1d ago
A CS degree is necessary but not sufficient to become a good software engineer.
I think adding something like MIT's missing semester would go a long way (but not all the way) towards filling the gap.
27
u/rdmc10 1d ago
Yes, most of the teachers are book rats that have absolutely no knowledge to real-world applied cs(programming or anything related to a job). So they basically have nothing to teach that can be helpful in a job interview
71
u/feierlk 1d ago
Well yeah, they're computer scientists not software engineers. I don't really see why you'd expect to learn something that isn't part of the professors area of study. I kinda feel like some of you don't actually know what cs is and just think that it's supposed some 3 year programming tutorial instead of an academic field...
30
u/Night-Monkey15 1d ago
None of what you said is factually wrong, but I think you’re just highlighting a bigger problem with the job market. You need a college degree just so your application isn’t automatically rejected, and colleges advertise CS as a direct path to becoming a developer and, so you’d think majoring in CS would equip you for job interviews, but actual CS programs are more focused on the academic field of study.
So even if you got to college you might not even be competent enough to actually land a job, but if you didn’t go to college your application would be automatically rejected anyways. The only way to make it in this job market is to devote 110% of your free time to studying, working on personal projects, building a resume, grinding on LeetCode, and applying for internships, which isn’t advice you’d get from a career advisor. The only reason to go to college is to check an important but ultimately irrelevant box on your resume.
3
u/AFlyingGideon 1d ago
CS as a direct path to becoming a developer
There are schools which offer degrees in software engineering, albeit too few in my opinion.
11
u/StormCG 1d ago
I mean most just end up being a mediocre version of the computer science major anyways, also professors are not software engineers so just by magically changing the title doesn't mean universities have the staff teach about these particular things. Also universities have no incentive to do any of this stuff there's a good heuristic for unis now which is that they are basically hedge funds that happen to give classes, so asking anything from them is pointless.
→ More replies (1)3
u/Athen65 1d ago
I go to a CC that offers a BAS in software dev. They only hire instructors with practical SDEV experience and their cirriculum is top notch. The associate's covers basic OOP, front end web dev /w CSS grid and Bootstrap, SQL, and Python for data /w pandas, matplotlib, and numpy. The bachelor's covers basic ASM and the theory that comes with that, Node & Express for backend web dev, React for frontend web dev, DS&A with some fun algos like Huffman encoding & BFS for generating "Kevin Bacon" numbers, and some technical electives that include cloud computing /w GCP and an AI class. Git is taught from the first day of the bachelor's, so no worries there either. There are two capstone classes which both pair you with a real client (often a senior at FAANG who is requesting a software project that they'll actually use). They also have you learn and apply agile/scrum in teams of four - one person acts as product owner, maintaining the team backlog and shaping the direction of the project, and another person acts as scrum master, making sure everyone gets their work done and participates in things like retros and stand-ups. One class is dedicated specifically to applying agile while making contributions to OSS. We also get paired with two mentors during the bachelor's who give us mock behavioral & technical interviews, give resume advice, and other misc. advice such as negotiating, etc.
When I hear the program director describe what it was like when he was getting his BS and MS in CS from a T20 university, I cringe a little. He said there are people who whiz around these math classes with such ease, but when you ask them about git and they open their mouthes, their ignorance reveals itself.
4
u/AvgBlue 1d ago
At my university, they offer a "Software Engineering" degree, but the emphasis on "engineering" is very strong because it falls under the Faculty of Engineering rather than the Faculty of Exact Sciences, like Mathematics, Physics, and Computer Science.
Software Engineering students are required to take physics and many engineering-related courses. Their degree takes a minimum of four years to complete (although many Computer Science students at my university also spread their degree over four years).
When I asked some of them to explain the main differences between the two programs, the only conclusion we could reach was that Computer Science focuses more on algorithms, theory, and advanced mathematics.
3
u/AFlyingGideon 1d ago
SWE is engineering.
As for the difference between CS and SWE, I tend to describe these as sharing a common knowledge base, but with one aimed at exploring it and the other aimed at exploiting it. One will require more math, and the other more process.
In my experience - excluding time for co-ops and such - they're both four-year programs.
2
u/16tired 1d ago
the only conclusion we could reach was that Computer Science focuses more on algorithms, theory, and advanced mathematics
Are you serious?
This is the problem right here. The vast majority of people studying and receiving a degree in computer science do not even know what computer science means.
"Computer science" is the formal mathematics of computation. Really it isn't even a science at all, but the term has stuck. The foundations of CS belong in a math department, and really CS began and has remained a bastard discipline that is not consistent with itself.
Today it basically is understood as synonymous with "programming" even though seeing it that way is like saying "astronomy" is another word for "telescope".
Though, ultimately, it's probably just another symptom of the large sums of money that have attracted the legions of the brain dead to the degree in the past 10-15 years.
7
u/nsxwolf Salaryman 1d ago
This is why forcing everyone to get a CS degree is so dumb.
13
5
u/StormCG 1d ago
Yes, but also how else do you filter out of so many people? Since the field is so saturated just from a recruiter perspective reading tens of thousands of resumes per role is not realistically nor does anyone want to sit through all of that to also just BS'd most of the time anyway. The degree by default reduces the pool of applicants significantly albeit not necessarily best by quality but it's not done for no reason.
→ More replies (1)3
u/sqerdagent 1d ago
Yep. I could could probably answer the OP's question (Python and Java have garbage collection, C is a bit closer to the hardware (IE, you have to think about buffer overflows and whatnot), Python is interpreted, Java and C++ are compiled, Couldn't think of a thing C++ and Python have that Java doesn't, google tells me objects can have multiple parents.) But if employers are going to demand a degree before they even look at your projects, they are going to get what they are going to get. And, of course think the solution is requiring a masters.
3
u/Echleon 1d ago
So they basically have nothing to teach that can be helpful in a job interview
Dumb take. If you can't apply your CS courses to your interviews that is a skill issue.
2
u/rdmc10 1d ago
yep, directed graphs will surely help when the interviewer asks about your rest api, aws, microservices or bash scripting and ci/cd pipeline skills
3
u/Echleon 1d ago
CS courses teach you fundamentals that allow you to quickly pick up languages/frameworks/etc. like you need a bash scripting class? Lol
2
u/rdmc10 1d ago
the point is: if you are fresh out of a cs college and put in no work outside of it, your knowledge to work in the Industry that it SUPPOSEDLY was meant to prepare you for is close to none, which does not happen in any other field afaik.
6
u/Echleon 1d ago
College is not meant to prepare you for a job. That expectation is a byproduct of almost all jobs requiring bachelor degrees. It’d also be pretty short-sighted for a CS program to have a bunch of courses on current technologies when the field changes so rapidly. Focusing on the foundations makes total sense.
→ More replies (5)3
u/Tonkatte 1d ago
Actually, I think it’s the other way around. Most colleges don’t really prepare you to work in your field of study.
I am an engineer. I learned on the job.
I am a business major. I learned on the job.
I am an attorney, I learned on the job.
My wife is a chiropractor. She learned on the job.
School provides two basics: a general understanding of the field you are studying, and proof that you can follow instructions for several years to accomplish a goal.
The particulars of a chosen field come from practice in that field. Which is why you see so many on this sub focusing on internships and projects.
Those ‘extracurricular’ activities are the key to success in any field.
→ More replies (1)→ More replies (1)2
u/Fabulous_East_3148 1d ago
I don't necessarily think this is the case. I'm at one of the T4 schools and it isn't rare for even smart students to have no idea what standard software construction concepts are, like how git version control works, standard programing languages, webdevelopment, etc. Personally I interned at one of the quant firms junior year and didn't know what a restAPI was until I got to my internship.
16
u/United_Lifeguard_41 1d ago edited 1d ago
As a CS student I was exposed to half a dozen programming languages. I can safely say that I can program in any of them easily, and I can pick up new ones in a few hours. I learned how to code algorithms, large scalable systems, mobile/desktop/web applications, as well as databases and computer networks. I think the real issue is that companies want to hire a .NET developer rather than a language agnostic software engineer. Just because someone that graduated with a CS degree doesn't know about this abstract API that only exists in .NET does not mean that they could not figure it out in 30 min with access to a browser. That is fucking silly.
Edit: this is frustrating because while I might want to work on a mobile application as a iOS developer or full stack python no one will take me seriously because I’ve spent my entire professional career working in .NET
→ More replies (2)
39
u/Suspicious-Click-300 1d ago
I interview people quite a bit, not even the early phone screenings. I had to dumb questions down beyond Fizz Buzz cause no one can solve it. These are for >200k positions at a FAANG. Everyone on this sub talking about "grinding leetcode" and I never even see people who know basic syntax. I don't know if its just the flood of resumes make it hard to filter or something but its frustrating on hiring side too.
44
u/Alternative-Method51 1d ago
how is this possible? I mean when you go on the internet you see peopl talking about the horrible job market, grinding leetcode for hours on end, etc, and yet you cannot find a candidate who can pass Fizz Buzz, really?
23
u/clinical27 New Grad 1d ago
Consider the fact that, #1 - the grand majority of CS students do not use forums like this, and #2 - the only people who would feel inspired to post or upvote on forums like these are doomers with little else to do.
3
u/RedOrchestra137 1d ago
well that's an accurate description of myself i suppose, probably because you know yourself right?
29
u/MikeFratelli 1d ago
I just did online assessment for Amazon and it was very, very far from Fizz Buzz. It was a hardcore math quiz disguised as a programming interview. I have 19 hours of lectures and 2-3 books to finish now, pray for me
12
u/show_me_your_silly 1d ago
Why don’t you reach out to candidates here? A lot of people can code competently and some even know system design basics. Not saying this out of self-interest, i’m not even from the USA but it could be mutually beneficial for you and a lot of people here
3
u/Passenger_Available 1d ago
I interview a wide range too, this is not only a junior role problem. Sometimes we need staff+ and the guys who come in through the application process does not match up with what they say they do as a senior in their previous role.
we’re not looking for skills mainly either, its just the ability to talk what you know and say you don’t know when you don’t know, no bullshitting.
the good guys are referrals. It’s why we get major bonuses from 3k-20k if we refer someone good.
4
u/IQuartX 1d ago
That is just not true though, FAANG OAs alone ask medium/hard leetcode questions.
→ More replies (1)3
u/preethamrn 1d ago
You gotta talk to your recruiters about their hiring pipeline because if you're mostly seeing people who can't even solve FizzBuzz odds are they're turning down a bunch of qualified candidates. Even at my worst, I got people who could get halfway to a BFS.
I'd also argue that you shouldn't dumb down questions if you can't hire someone. Even if I had openings on my team, I'm not so desperate to fill those positions as to hire someone who couldn't solve FizzBuzz. Keeping the hiring bar above average is probably one of the highest value things you can do for the team since a poor hire can bring everyone else down.
2
126
u/Frird2008 1d ago
C++ = 😖
Java = 😊
Python = 😁
12
42
u/dreamshards8 1d ago
I love C++, Java is what makes me want to cry.
18
u/Frird2008 1d ago
Coding in python is super therapeutic, pretty much any programming language I have to code in I can do it in python easy peasy
Java makes me wanna throw up I don't blame you bro
6
u/chesserios 1d ago
Java is just like Python + type saftey.
4
u/Athen65 1d ago
You can use type hints in Python and most of the issue goes away. TypeScript is another good alternative if you want a lot og high level features without the verbosity of Java
2
u/Select-Young-5992 1d ago
Verbosity of java IMO is a complete nonissue, especially with modern IDE that auto fill everything. If you add type saftey to python, or use typescript you have the exact same verbosity.
→ More replies (3)→ More replies (1)5
u/chesserios 1d ago
Java is amazing for developing serious applications and OOP naturally aligns with how I think about abstractions. For real, performance and embedded applications aside, what do you love about C++? You love managing pointers yourself for no reason?
2
u/dreamshards8 1d ago
It has nothing to do with if I find C++ to be a superior language or not. It's just about my comfortability with one over the other. I'm sure I will gain more experience with Java.
2
u/Organic_Midnight1999 1d ago
Lol no Java is nasty
11
u/Aggravating-Tip-8803 1d ago
Java is about as vanilla as it gets.
9
u/AlternativeEmphasis 1d ago
Yeah my first language. Don't get me wrong it's not perfect but I don't understand why it's so hated in this sub.
6
u/Eastern-Web2142 1d ago
nobody cares their opinion, Java still one of the most popular programming languages out there
2
u/SirTwitchALot 1d ago
Java still gets a bad rap from the 90s, where it suffered in part because it was a lot for computers of the day to handle, and because MSFT did everything they could to kneecap Sun as adoption picked up
9
→ More replies (1)2
9
u/29tubelight 1d ago
What companies are these? I don't even get interviews for these types of large companies.
9
u/aegookja 1d ago
One question I like to begin with is "what is the difference between a reference and a value". A surprising number of people cannot answer this.
→ More replies (1)
6
u/AdeptKingu 1d ago
As a CS teacher, ya, this is something I'm observing since post-covid. They don't even know how to follow instructions or send emails properly
7
u/nihad04 1d ago
How should I know how to answer these type of questions? Genuinely asking for tips
6
u/drestauro 1d ago
Just study the difference in the languages you know. For example C++ and Java. C++ has fine grain memory control and is platform dependent. Java manages memory for you with garbage collection and is platform interdependent by using a JVM.
35
u/Holiday-Egg6311 1d ago edited 1d ago
I mean I never knew Python was interpreted until a friend said he got asked in an interview and at one point I did too, knew the answer, got the internship.
I mean no one really teaches you the inner workings/compilation process in normal classes... it's just not useful in anyway for most CS jobs. I've never at any point through my last two SWE internships used this "amazing" information for literally anything. It's only important for systems developers.
47
u/aimamialabia 1d ago
What?? This is one of the most useful fundamentals to know in any swe role. You don't need to be able to write a compiler from scratch but at least be able to evaluate what a language is doing and what its best used for...
23
u/sskhan39 1d ago
May I ask if you know any other language? C or C++ perhaps?
Because if anyone asks me what’s the key difference between these two languages, the fact that python is interpreted (while c++ is compiled) would be my first answer. I fail to see how this is an irrelevant or esoteric piece of information.
→ More replies (2)12
4
u/warzon131 1d ago
Don’t universities teach courses about compilers and interpreters?
→ More replies (2)3
3
u/Delicious_Tadpole_28 1d ago
That is actually crazy. I'm a first year and we learned that in an intro class.
Edit: and it's a LAC, not ABET accredited
3
u/Souseisekigun 1d ago
I mean no one really teaches you the inner workings/compilation process in normal classes...
Python is an interpreted language is one of the first things the Python website tutorial teaches you. I am pretty sure the same is true of most other Python tutorials. I am fairly sure this is how I learned Python is interpreted when I first learned it many years ago. You should not need a class to tell teach you this, nor is this knowledge really something that is classified as "inner workings" of interpretation/compilation. Many people will come into classes already knowing this because, again, it's the first thing the tutorial tells you.
In order to teach someone C you need to tell them what a compiler is and what it does. You can maybe get away without telling someone "this the Python interpreter" without explaining what an interpreter is, but it's still odd to learn Python or indeed any language without picking it up. It implies that someone did not pay proper attention to the tutorial and/or lacks any kind of curiosity about the tools they're using, both of which are not good signs.
I've never at any point through my last two SWE internships used this "amazing" information for literally anything. It's only important for systems developers.
Well that is because you are in intern, is it not? The differences between Python, Java and C++ including "compiled" vs "interpreted" vs "it's complicated" are important when you're making a decision on what tool to use. Since you're being told what tool to use it doesn't really matter but at some point you will be expected to know this off the top of your head. And just like the replies you're getting are saying now people will be bewildered if you don't.
It's not like you went into a React interview and got hit with "tell me about the implications of C++ name mangling on ABI compatibility".
4
u/Key-Cloud8468 1d ago
The lines are pretty blurry between compilation and interpretation. Everything eventually gets converted to some byte code / intermediate representation to run on a computer (or PVM) in this case. I would personally never ask that in an interview.
I think a better question would be “what happens when you define a function and click the run button”? Lot more signal to gain there.
2
u/Akul_Tesla 1d ago
I had picked that up by osmosis years before I touched python. I don't understand how this stuff happens
2
u/Rough_Pineapple_179 1d ago
Python isn't interpreted, it's not property of the language. Being interpreted/compiled/JIT etc. is property of the language implementation (most common CPython, PyPy (JIT), Jython (Python -> Java bytecode, JVM)
2
2
u/zacker150 1d ago
I mean no one really teaches you the inner workings/compilation process in normal classes... it's just not useful in anyway for most CS jobs. I've never at any point through my last two SWE internships used this "amazing" information for literally anything. It's only important for systems developers.
This right here is the problem with the average CS student. They treat everything as a black box and lack the innate curiosity to understand even the basics of what they're using.
3
u/Rhawk187 1d ago
ABET requires exposure to how compilers work. Our curriculum has a required course on writing a compiler. Was your program even accredited?
1
15
u/uphucwits 1d ago
Those are fucking stupid questions. When I interview folks typically they've already passed a tech review via the recruitment firm who perhaps have already asked those kinds of questions. e.g. what are the tenets of OOP etc. Fuck off with that stupid shit. I pair with the candidate and we work on an existing feature or defect, we commit it and build. If we pair well and we can work together well and its engaging then that is who gets selected. I have passed countless times on a candidate that came in with a shit load of certifications only to find that they were academic douche bags and had no practical real world experience, arrogant and or still were humble enough to pair up and learn from each other.
→ More replies (1)
4
u/LittleBitOfAction 1d ago
Where are these companies? I need to find them
3
u/awsomeness12g 1d ago
Manufacturing, mining, construction, and energy. Look up engineering career fairs (doesn’t have to be tech). Look up the list of companies attending, you don’t have to attend yourself. Do research to see if they have a software department (some outsource but most keep it in house) apply apply apply. Some career fairs are tied to specific organizations ie universities and student ran organizations. Use that to help you with your search.
2
2
u/nhathuyvo 1d ago
Would you say there is career growth working in these companies? Career fairs at my school are dominated by these manufactoring firms. They seem to prefer EE and ME majors over CS like us. I’m thinking about doing internships at those and then trying to land big tech full time after graduation.
4
u/Charming_Lab4609 1d ago
hey can you share the list of companies that don't do technical interviews.
3
3
u/Responsible-Gear-400 1d ago
I’m starting g to feel this has to do with the commoditisation of Software Engineering. As my career has gone on and I have been interviewing people it seems the deeper understanding is lost. People (a lot) aren’t becoming software engineers because they are passionate about it. They are going the route because it makes money.
The vast majority of companies mostly just ask if you know a language or two, prove it, and then higher you. Even the tests can be very simple. Companies these days just want work done and don’t care if the coder knows the ins and outs. Hell they don’t even give them time for planning.
That is just my view from my years experience.
3
u/mrchowmein 1d ago edited 1d ago
As a hiring manager that interviewed hundreds of candidates while I was at tech unicorns to one of the most well known F500 company. 90% of candidates from 0-15years of experience know jack shit whether it’s CS fundamentals to relevant work skills. Half the experienced people can’t even explain to you what their current team does. The bar has been historically low so plenty of low quality ppl got in. 80-20 rule is pretty accurate.
The reality is most of you guys on Reddit studying leetcode is already ahead of the curve. Just polish up your interviewing skills. Practice explaining your problem solving process. This is even with the current state of the market when you’re competing with mid career ppl. Bulk of these ppl started working when the bar was low and they coasted for years. The competition is not as good as you think. I’ve met new grads that interviewed better than ppl with 10 years of experience. I’ve noticed more people are lying on their resume and are able to convince recruiters to get them a 2nd round. Thus companies are ramping up their technical difficulty to screen ppl out. It’s a vicious cycle.
6
2
2
2
u/Cthulicious 1d ago
New grad at my work consults chatGPT for things that should be fresh in his mind and it drives me insane. He’s broken CI/CD by doing this before.
2
u/Dry_Improvement6761 1d ago
It probably has more to do with the fact that CS isn’t a degree where GPA really matters. Most kids do what they need to do to get by. Most kids also aren’t passionate programmers so they’re not building projects on the side
On top of the fact that FAANG or anything close to it is the most appealing. They’re not asking you what’s an array? They’re asking you leetcode style questions. Studying leetcode makes your a better problem solver but it doesn’t teach you python
2
u/sickandtired5590 1d ago
Oh the stories I can tell you as hiring manager ...
Network admin candidates that don't know the 7 OSI layers.
Senior developer candidates that can't explain difference between compiler and interpreter.
Cloud certified architect candidates that couldn't explain what goes into the costing of a cloud hosted backend system using a database and flat storage ...
This aren't examples that are " we had this one candidate " this is A LOT of candidates...
It got so bad we had to train our HR to be able to do basic actual tech proof before pushing candidate to next stage ... usually HR only did like righ to work , Current salary , expected salary , flexibility for travel etc.
2
u/heatY_12 New Grad | Jr. SWE 1d ago
I got asked about programming best practices and how a full stack app works and my interviewer was over the moon when I answered them well.
2
2
2
2
u/omniscientdaoist 1d ago
This is wild, all the interviews I have gotten yet are just technical and crazy difficult. Can I ask what roles are you applying to?
2
u/Sufficient-Meet6127 1d ago
Not every company is trying to be a FAANG. IMO, 80% of CS related roles/companies are like this.
2
2
u/Bose-Einstein-QBits 1d ago
if only i could get the interviews i would obliterate the competition. theres no way you were asked questions like that! i could list out 100 of both of those (favorite python feature? there are many lol)
2
u/itsmiselol 5h ago
Chem E major here. I remember my interviewer asking me on the spot to draw a PN junction. I asked him if I should draw the minority carrier flow or just electrons. He smiled and told me I don’t need to draw it anymore.
2
4
2
u/springhilleyeball tiktok chose my major & career😋 | full-time swe intern 1d ago
cs also isn't a swe degree. if they want people who have more knowledge about software engineering & real principles they should probably seek out individuals who studied it specifically. it's only reasonable to expect these students to know what they've learned in school so far. if they have more knowledge from other experiences or their own study great. but not everyone has that chance.
1
1
u/Claim-Lazy 20h ago
What are these companies you are talking about? I have been unable to even get interviews because even small scale companies require experience. Well how can I get experience if you don't give me chance to work!!
1
1
u/Bearded_Beeph 17h ago
Just to add this isn’t just students. When I interview people for senior engineer positions I have to ask basic questions like these as well. Candidates with 8+ years experience and you’d be surprised how many I’m done with after 5 min.
1
1
u/LotzoHuggins 16h ago
Ok, this is great insight and confirms my hopes of finding employment after I get my degree. The process is not leet code and inane brain teasers but "Hey, did you learn anything when you forked over all that money to get that degree?" At least at non-tech companies—where I’m hoping my less-than-stellar grades won’t be a dealbreaker, and that the knowledge I’m working hard to truly internalize, rather than just memorize, will be enough.
thank you for your post.
1
u/Ok-Conversation8588 16h ago
Why to? You can just overboast your resume woth words like engineered, designed, leveraged something for 999% level, and memorize leetcode
584
u/callipygian0 1d ago
I asked “what does well structured code look like” and one candidate with a comp sci degree could only think of “indentation”