98
AleCx04
4y

Lads, I will be real with you: some of you show absolute contempt to the actual academic study of the field.

In a previous rant from another ranter it was thrown up and about the question for finding a binary search implementation.

Asking a senior in the field of software engineering and computer science such question should be a simple answer, specifically depending on the type of job application in question. Specially if you are applying as a SENIOR.

I am tired of this strange self-learner mentality that those that have a degree or a deep grasp of these fundamental concepts are somewhat beneath you because you learned to push out a website using the New Boston tutorials on youtube. FOR every field THAT MATTERS a license or degree is hold in high regards.
"Oh I didn't go to school, shit is for suckers, but I learned how to chop people up and kinda fix it from some tutorials on youtube" <---- try that for a medical position.

"Nah it's cool, I can fix your breaks, learned how to do it by reading blogs on the internet" <--- maintenance shop

"Sure can write the controller processing code for that boing plane! Just got done with a low level tutorial on some websites! what can go wrong!"

(The same goes for military devices which in the past have actually killed mfkers in the U.S)

Just recently a series of people were sent to jail because of a bug in software. Industries NEED to make sure a mfker has aaaall of the bells and whistles needed for running and creating software.

During my masters degree, it fucking FASCINATED me how many mfkers were absolutely completely NEW to the concept of testing code, some of them with years in the field.

And I know what you are thinking "fuck you, I am fucking awesome" <--- I AM SURE YOU BLOODY WELL ARE but we live in a planet with billions of people and millions of them have fallen through the cracks into software related positions as well as complete degrees, the degree at LEAST has a SPECTACULAR barrier of entry during that intro to Algos and DS that a lot of bitches fail.

NOTE: NOT knowing the ABSTRACTIONS over the tools that we use WILL eventually bite you in the ASS because you do not fucking KNOW how these are implemented internally.

Why do you think compiler designers, kernel designers and embedded developers make the BANK they made? Because they don't know memory efficient ways of deploying a product with minimal overhead without proper data structures and algorithmic thinking? NOT EVERYTHING IS SHITTY WEB DEVELOPMENT

SO, if a mfker talks shit about a so called SENIOR for not knowing that the first mamase mamasa bloody simple as shit algorithm THROWN at you in the first 10 pages of an algo and ds book, then y'all should be offended at the mkfer saying that he is a SENIOR, because these SENIORS are the same mfkers that try to at one point in time teach other people.
These SENIORS are the same mfkers that left me a FUCKING HORRIBLE AND USELESS MESS OF SPAGHETTI CODE

Specially to most PHP developers (my main area) y'all would have been well motherfucking served in learning how not to forLoop the fuck out of tables consisting of over 50k interconnected records, WHAT THE FUCK

"LeaRniNG tHiS iS noT neeDed!!" yes IT fucking IS

being able to code a binary search (in that example) from scratch lets me know fucking EXACTLY how well your thought process is when facing a hard challenge, knowing the basemotherfucking case of a LinkedList will damn well make you understand WHAT is going on with your abstractions as to not fucking violate memory constraints, this-shit-is-important.

So, will your royal majesties at least for the sake of completeness look into a couple of very well made youtube or book tutorials concerning the topic?

You can code an entire website, fine as shit, you will get tested by my ass in terms of security and best practices, run these questions now, and it very motherfucking well be as efficient as I think it should be(I HIRE, NOT YOU, or your fucking blog posts concerning how much MY degree was not needed, oh and btw, MY degree is what made sure I was able to make SUCH decissions)

This will make a loooooooot of mfkers salty, don't worry, I will still accept you as an interview candidate, but if you think you are good enough without a degree, or better than me (has happened, told that to my face by a candidate) then get fucking ready to receive a question concerning: BASIC FUCKING COMPUTER SCIENCE TOPICS

* gays away into the night

Comments
  • 16
    If I could, i would upvote this until I run out of limbs to press my phone screen
  • 18
    Take all my upvotes. Honestly the number of times I've found my coworkers using lists that grow into the millions to check membership and then still have the audacity to argue about the time complexity of using sets is driving me crazy.
  • 7
    @crow22498 bro it drives me crazy. I had to sit down the lead dev in my department to explain to him why his fucking php script needed to be modified due to similar constraints. He is my employee, and a close friend, so he took it to heart and got better.

    Now he is putting more emphasis on his algorithmic thinking, he knows his shit (securely create a website, set a server up, administration of dbs and proper frontend development) but he did not move a long way past an Associate Degree in computer science, it honestly does not matter that he has an Associates, but he STOPPED at that level and never continued to evolve in terms of his algorithmic thinking.

    Its fine to not be up to the level, what irks me is the disdain for it.
  • 2
    Agreed
  • 10
    A lot of ppl indeed doesn't know shit but loves to think they do.

    Lost count of how many times I've had to defend "wasting time writing tests"...

    The thing about this industry, if you're honest and says you don't know..
    Then somebody else will claim they do.
    And then you'll be under him or her, until they eventually floc off, leaving shit to your ass.

    What irks me the most, is even managers expect things to go smoothly, just because you've read some articles on it..

    Sure, scaling is easy.. that's why we have Docker, right?
    Well.. how do we make sure files and dbs are in sync across multiple nodes..
    How do we even make sure, that two writes to the same db row isn't conflicting, leaving the former to lose his content?

    How do I even voice my concerns, without discrediting my "trustworthiness" in the eyes of management?
  • 7
    I think there's a line somewhere here - I'd expect any senior to know what a binary search is to the point they can describe it at least, and code a basic implementation. I'd just consider that a pretty standard interview question, that's *barely* academic.

    The problem is when I see fresh grad roles / junior roles where the interview is geared around pretty much *only* advanced data structures and algorithms, which isn't an uncommon practice in my experience. That's just too much, unless it's somehow directly relevant for the role.
  • 5
    @AlmondSauce the problem I see is that schooling prepares you in the theoretical but doesn't prepare you to actually do the job itself whatever flavor it happens to be. Worse the software industry like every industry is basically trying to make Bank on Outsourcing so there's this consistent complaint of people aren't qualified enough.

    When really it's just the excuse they give to say well I guess we need to import more people to do the job. Which I'm not knocking nobody, huzzah for whoever happens to get the role.

    And anyway everyone hears this, and think "oh I better get a degree."

    And then these universities turn out people that can tell you the time complexity of an algorithm but who can't implement it correctly and don't know their way around the job there looking to get even just junior-level shit. because the universities aren't held to any standard.

    and then so many LIVING WAGE jobs now require a degree that shouldn't, people looking say well what is still hiring?

    code.
  • 6
    Actually, binary search isn't even CS specific - nested intervals for finding the root of a function is basic fucking math from high school, and it's the same concept.

    @Wisecrack The studies are meant as foundation. Like with a house - you can't live in the foundation because you also need walls and a roof and the interior stuff, but if your house has no foundation, then it won't stand.
  • 3
    well, i m not fighting you on the veracity of what you say...
    but you do know you could retype this exact rant except replace "ppl who winged college" by "people who went through college"

    the flip side being people who go through high studies, pass with 60% (or whatever the minimum is in your country), and are utterly incompetent because "college is for partying".
    thats 85% of high education students if were being honest.

    im thinking about the stories of incompetent medical doctors a friend of mine has to offer.
    sometimes he managed to save lives, sometimes he couldnt, and sometimes he just got ignored, lowly nurse that he is.

    those people go to college because they want to "become someone", not pursue their passion. as stated, sometimes with lethal effect.
  • 4
    The two topics I actually enjoyed in uni were "operating systems" and "structures and algorithms"

    I was already a good programmer when I joined Uni so basic C and Java classes didn't do that much for me (some did, like writting compilers was fun) but the more implementation specific stuff I loved...

    Even still though, I hate to admit it, but when I saw the rant about binary search I wasn't sure which one it was. I didn't remember it by name and had to google which part was the binary part. Ofc it came all flooding back once I read it, It's the simplest DnC and ofc we did it at uni and I wrote it at least a couple of times for fun... I know the concept and can write it easily but not by name... (Well, now I do, at least for a while hopefuly)
  • 2
    I can see the need for the more theoretical, academic skills, but from what I've seen elsewhere, the degree itself can mean either a lot or fuck all. Actually testing applicants on what they know is best. Of course don't just hire someone who watched a single youtube tutorial, but saying anyone without a degree is always going to be on that level is dumb.
  • 3
    @Parzi it is, which is why I did not say that.
  • 1
    @AleCx04 it feels very heavily implied, or it did to me. That may not have been the intent, though...
  • 3
    @Parzi look at my previous post before yours, I explained to the other ranter my intent. I do not believe that a degree constitutes mastery. I do think that it is a more realistic way to see who can make it into the field or not. But that is a different point and rant altogether.

    My point is more of not throwing away fundamental theoretical CS concepts because they are academic in nature and we want to think that the academic study of the field is bad or for dorks.
  • 4
    To everyone who thinks this rant is against those who don’t have a college degree, think twice. There’s a whole internet out there to learn CS concepts. The issue is the lack of respect for computer science treating it as useless theory bc we badass devs school sux algorithms what that shit pffft I’m a mothafuckin react gangsta bro. Tbh I picked up on the hot fad gangsta frameworks quickly using my understanding of computer science and theory of design patterns.
  • 0
    @dontknowshit And I agree with everything you said, but will add this to it: a developer should have some sort of degree.

    There are degrees in: computer science, software engineering, web development, data science etc etc. These examples constitute some sort of degree. Which truly, they have or don't, but there are many different types for them to have.

    You can agree or disagree with that, it is fine. The outcome for me on this is the same: It is still a ways to pass our selection process, and as the hiring manager and senior developer for my institution, the interview and test scenario will be given accordingly to academic credentials and/or knowledge.
  • 1
    @TeachMeCode thank you!!!! I'll buy you a drink if I ever get to see you man!
  • 2
    @AleCx04
    I'm going to read this one more time, slowly, Just in case you just called me motherfucking senior. 🤔
  • 1
    @AleCx04 sadly I live in New York. But yes, id be happy to enjoy a Tito’s bottle with you as vodka is my number one alcoholic beverage and nothing tops Tito’s aka Texas vodka.
  • 2
    Yep, you did, love you too man 😘

    Being the high school dropout your describing here with no degree, no education and have had to bust my nut over the years to teach myself how to grow into this industry. Yep, this guy exists.

    And no, I can't argue with your logic on this matter, you're right. Ass holes that throw a degree under the bus and write it off as useless, are typically useless them selves. But the degree (from my side of the fence) doesn't prove competence either, it shows you SHOULD know what you're talking about, but it's comes down to more then that, there's the small problem of a quick buck and a lack of pride going into the work that somehow cancels out that prior knowledge and slap some bullshit script together and run away making bank while some dumbass degree less prick has to pick up the pieces and workout what the fuck you just wrote and why the fuck you made the most inefficient mess I have seen to date.

    But I digress, a senior should know there fundamental shit, they should be capable of spitting something clean out and god help us I see the day a fucking degree actually makes the difference between a YouTube Dev and a university dev, when it all comes down to a quick buck and getting as far away as possible from your shit as quick as you can.

    This is a double sided coin, that comes down to ones pride and respect for the code they are writing, and unfortunately there's good eggs and fucking morons on both side of this one.

    Ps: still ❤️ you.
    PPS: mini rant of incompetence over.
    Ppps: not all devs are equal
    Pppfuckingps: I guess I have some leet code to go work through to redeem myself.
  • 1
    I posted on the rant in question. I agree with what you say but at the same time I still believe design skills are way more important than algorithms. That's not to say algorithms are not very important to know.
  • 1
    @C0D4 negative negative negative, this does in no shape way or form could ever be targeted at you, because I know (from before) that you do not have a degree yet kick absolute major ass all around. No bro, this was just aimed at people that think that the academic knowledge of the field, or those that have a degree are worthless.
  • 0
    @craig939393 oh most definitely. We are on the same boat. Both are important, but proper design is more important and beneficial on the long term.
  • 1
  • 2
    I don't write software that kills motherfuckers but sometimes I wish I did.
  • 0
    @SuaveSteve you know what? same fam, same
  • 1
    I guess you ment my post regarding BinarySearch. I'm glad you wrote this rant, you expressed 100% my frustration.

    I whish my bosses read it.

    Anyway, in my company now, it's more important that sh*ty bad "sEnIoR" developer have his feelings protected, has his safe working space. But it's me and everyone else who'll ever inherit their code, to suffer vast amount or frustration.
  • 2
    I hold a computer science degree from one of the top universities in the world, but still don't think asking applicants to implement some random algorithm given by name is useful.

    I don't care if a person remembers the exact specifics of Dijkstras Shortest Path, or Merge Sort, or whatever...

    But I DO care HOW they approach problems, how they deal with UNCERTAINTY, how they handle ERRORS and TESTING, etc.
  • 2
    I feel like university doesn’t make that much difference: I saw both bad devs with and without degree.

    A degree surely gives you a head start on dev quizzes, but what about your skill to recognise when a process should be automated and or when to apply the algorithms? :)
    Give your candidates a very repetitive task and ask them how it could be improved instead of giving them stuff you can find on uni books and you’ll see a more interesting picture regarding reasoning instead of seeing wether they studied “introduction to algorithms”.
  • 1
    @piratefox I do not get these comments, it is as if I was saying that academic training holds more value than standard best practices. I already agreed with another developer that design patterns are way more important, I had also stated in the rant itself that this is just part of it. My point, again, is that it is not something to be diminished, or thrown aside.
  • 3
    @piratefox Clueless devs don't know what e.g. time complexity is. They will code O(n²) shit left and right without even realising it and without getting that better options may exist.

    I had case where I had two large lists A and B, and I needed to find all items from list A that were not in list B.

    The stupid way would be to take each item from A and run through B to see whether it's there. That would be O(n²).

    So instead, I first sorted list B in O(n log n). Then I ran through list A in O(n), and for each item of A, I made a binary search in B with O(log n) per item so that this second step together was also O(n log n). That meant the whole approach was O(n log n) instead of O(n²).

    Easy enough, but you have to know about time complexity and binary search, or else you will not come up with that.
  • 4
    @AleCx04 whenever you give a solid diagnosis of some phenomena, based on your observations, and also include caveats etc. there will be always people who see it as "all or nothing".

    In this case, some ranters will argue untill their last breath that you don't need algorithms in every day work.

    That's true... But the point of asking it is to check, if candidate has knowledge about how things work under the hood!

    Otherwise, you end up in bunch of random people creating O(n square) algorithms, and than having no clue why something is slow in production.

    Fast forward, codebase is mess after 6 months, each feature or bug fix is just hacks here and there.

    So yes, I'll keep asking some theory questions of BASIC STUFF, but I'm happy if candidate explain in his own words. I don't ask for a tip-top book implementation.

    Clear?
  • 1
    @AleCx04 I was only trying to warn you to beware of generalisations, as it leads to errors due to assumptions, didn’t mean to diminish the importance or knowing the topic!
    To rephrase in a simpler way: be like a scientist, doubt about every variable you are given, grade included, when you test a candidate!
    (Plus test if they are just going to just repeat book cases or if they can apply it in a real world scenario)
  • 1
    @Fast-Nop not saying complexity is not important, just that some people go trough uni, “learn it”, are able to tell you back stuff during an interview, but de facto they never use that knowledge! Last job had 2 “special” colleagues: one pretended not to know about time complexity and forbid us to use variables in order to make if statements more readable cause it “costs us performances”, while throwing n^n code around, the other guy made 200 lines of code functions because his professor used to say that “hidden code is bad code”. And you guess it... both of them had done university.
  • 1
    Let’s not forget, asking candidates to solve an algorithm is a good way to test the most important skill anyone can have and is toughest to train: problem solving! It doesn’t need obscure academic graphs or mathematical tricks, arrays and hashmaps are good enough bc Im sure devs with lesser college experience would know what an array is. There are some hard problems that involve simple arrays and it makes it fair to everyone regardless of college background to ask algorithms that involve data structures used on the job
  • 1
    @piratefox You can have the basics in place and still fuck up, nobody denied that. But if you don't have your basics in place, there's no way how you wouldn't fuck up. We're talking necessary vs. sufficient here, a logical discernation from first semester math.
  • 1
    @bzq84 exactly, thank you. Now, I would be happy if the field was tinkered with in the same regard as something more akin to that of a trade. I have a lot of classes inside of my curriculum which I did not care for nor were interesting topics for me to pursue further. This is fine, for everything. I made the case for the value of academic notions inside of the field. YET they decided to ignore that, point at the things that moved their sensitivity towards a different area, disregard everything I said and comment on it.

    I guess I will have to fight for academic reasoning now, since READING comprehension is something that is shown during HS, but further increased during college.....annoying as all fuck, but here we are.
  • 3
    @AleCx04 it looks like brain reads something, a generic phenomena, which contradicts with its deepest beliefs, and RED ALERT got triggered. Then brain picks up just a single, out of context detail, push it to end of spectrum, and writes a contradiction comment based on that.

    E.g. "fundamental understanding of some basic algorithms is important for senior engineer" -> "asking detailed algorithm implementations during interview is not relevant to the job"
  • 0
    indeed, this is why i hate devs
  • 3
    @AleCx04 sorry, but this goes both ways.

    There's tons of people in academia that know everything about big O, can design ultra efficient algorithms but have so little practical experience that they don't know that serving 20MB pictures on a website is absolutely moronic.

    What you need is a mix, and i'd argue that for most of the positions percentage wise the self-thought dev that doesn't know what kruskal is is waaaayyy more useful than the algorithm whisperer that doesn't know how what docker is.
    Most jobs are not about rocket trajectories or surgical robots - and most of the time even O(n^2) vs O(n^3) doesn't matter because n is a list of size 20 containing information that noone would miss if it were gone. You don't need a CS degree to know how binsort works (and yes that's useful to know), you only need to be interested and watch like 2 indian youtube videos.

    And retards will stay retarded, with or without degree.

    If you're actually developing rockets tho, obviously this doesnt
  • 1
    Fit. But then you need s scientist who can program, and not a 0815 developer...
  • 2
    @eval good point but not sure if docker is essential knowledge. I never used it
  • 1
    @eval sorry, but i have explained left and right what I covered with this, if you did not bother to read and see that i also attacked left and right then I am not to be held liable for your reading comprehension skills.

    You are not wrong, that I can attest to, but I cover that shit enough to not make someone comment on it as if it was not covered in every other conversation and honestly it just reinforces my idea that you all require academia to facilitate such topics into.
  • 1
    @TeachMeCode give it a try :)
    No idea if it's useful for you, but i wish i'd tried it earlier cause it's the solution to a problem i never realised i had.
  • 0
    when you need your all caps over the top rage SENIOR web developer to know how to implement a binary search - let me know - and your organization as well, so i can steer clear.

    otherwise, for software for planes or other low level stuff as you described, sure.

    senior has widely different meanings in widely different contexts
  • 4
    @fullstackchris if you can't describe a simple binary search and at the same time say that you are a "senior" then I do not want anything to do with you.

    Same reason why people look down on web developers as proper engineers, they can't engineer shit if they do not know the basics, they cannot understand memory as a general scope etc.

    Web applications might have the same security and performance concerns as the biggest applications out there. It is essential to understand these points. Were this not true, Facebook would not have found a way to literally compile their entire php stack into C++ performant code under proper practices. Knowing your shit is essential, from GUI based apps to web and everything in between.
  • 1
    @AleCx04 wrong. a senior web dev can be the best in every aspect of their job without ever knowing about binary search
  • 3
    @fullstackchris the "binary search" is just a metaphor for knowing basics of computer science that is behind all frameworks we use now.

    Sure, one can miss "binary search" knowledge. But if someone is missing all basic computer science knowledge, than this person is not "senior engineer" but rather "senior [framework] developer"
  • 1
    @bzq84 sigh. my point is this: anyone can memorize binary search (and even all the CS behind it) and still be exactly where they were before they learned it. the field is simply too big to cherry pick a random “x” and claim “senior” = knowing “x”
  • 2
    @fullstackchris Obviously, as you just demonstrated by failing to grasp the difference between "necessary" and "sufficient", which is usually first semester math stuff.
  • 0
    @Fast-Nop when you need to break your argument down to a single word choice of mine, i think you've lost
  • 1
    @fullstackchris Your argument was: the field is simply too big to cherry pick a random “x” and claim “senior” = knowing “x”.

    You didn't even understand that nobody had made that point. The argument was a totally different one: not knowing x == no senior.

    Looks like you don't even know elementary Boolean logic. Maybe you should have studied that - it's first semester stuff.
Add Comment