Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
TeachMeCode235697dIf I could, i would upvote this until I run out of limbs to press my phone screen
crow2249844097dTake 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.
AleCx042698097d@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.
lotd781297dA 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?
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.
Wisecrack562997d@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?
Fast-Nop3580797dActually, 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.
bad-frog66697dwell, 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.
Hazarth345697dThe 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)
dontknowshit25296dThis rant is too long and jumps back and forth too much, so it’s hard for me to form a decent response.
I will say this, I do not have a degree in any subject, but I am passionate about my field of work, so I taught my self CS.
I do not think a developer, needs a degree but they certainly should have studied computer science.
Your analogy of doctors and mechanics learning from YouTube and blogs is a bit unrealistic and is generalising a bit too much.
You can’t learn to become a good doctor or mechanic just by taking a university course either.
It takes years of experience to become a master in your field and a degree is just one way of starting that journey.
I can’t actually tell if you are saying that everyone should have a degree or that every developer should have studied computer science?
Parzi946796dI 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.
@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.
TeachMeCode235696dTo 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.
dontknowshit25296d@AleCx04 I agree with everything you said apart from “developers should have some sort of degree”.
You either have a degree or you don’t, there is no sort of.
I think you will find that developers who were motivated to study CS while getting a degree or not will both be as capable as each other, all other things being equal of course.
Anyone who scoffs at either side should just be ignored. Learning proper data structures and algorithms is a fundamental concept to being a good developer.
The people who don’t agree or can’t be bothered are just either lazy of don’t have the same passion that you do and being a developer is just a pay cheque to them, they usually have little pride in their work.
@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.
C0D46576096dYep, 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.
craig939393335496dI 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.
@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.
SuaveSteve7896dI don't write software that kills motherfuckers but sometimes I wish I did.
bzq8466095dI 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.
fgysin35994dI 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.
piratefox138692dI 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”.
AleCx042698091d@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.
Fast-Nop3580791d@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.
bzq8466091d@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.
piratefox138691d@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)
piratefox138691d@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.
TeachMeCode235691dLet’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
AleCx042698090d@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.
bzq8466089d@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"
AleCx042698088dindeed, this is why i hate devs
eval71282d@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
eval71282dFit. But then you need s scientist who can program, and not a 0815 developer...
AleCx042698081d@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.
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
AleCx042698054d@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.
bzq8466054d@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"
Fast-Nop3580752d@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.