Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "matrices"
Started being a Teaching Assistant for Intro to Programming at the uni I study at a while ago and, although it's not entirely my piece of cake, here are some "highlights":
* students were asked to use functions, so someone was ingenious (laughed my ass off for this one):
* "you need to use functions" part 2
*moves the whole code from main to a function*
* for Math-related coding assignments, someone was always reading the input as a string and parsing it, instead of reading it as numbers, and was incredibly surprised that he can do the latter "I always thought you can't read numbers! Technology has gone so far!"
* for an assignment requiring a class with 3 private variables, someone actually declared each variable needed as a vector and was handling all these 3 vectors as 3D matrices
* because the lecturer specified that the length of the program does not matter, as long as it does its job and is well-written, someone wrote a 100-lines program on one single line
* someone was spamming me with emails to tell me that the grade I gave them was unfair (on the reason that it was directly crashing when run), because it was running on their machine (they included pictures), but was not running on mine, because "my Python version was expired". They sent at least 20 emails in less than 2h
* "But if it works, why do I still have to make it look better and more understandable?"
* "can't we assume the input is always going to be correct? Who'd want to type in garbage?"
* *writes 10 if-statements that could be basically replaced by one for-loop*
"okay, here, you can use a for-loop"
*writes the for loop, includes all the if-statements from before, one for each of the 10 values the for-loop variable gets*
* this picture
N.B.: depending on how many others I remember, I may include them in the comments afterwards22
My favorite client just brought in a new team member who thinks he's god's gift to web development and design. Every week he gives me a long list of things he thinks are wrong with the website.
Now he's cloning pages of the site and adding hideously distorted images and excel screenshots of information matrices formatted the way he wants them. And he wants them published as he has made them because his ideas are obviously the best ones! (guess who he voted for)
He also claims that nobody can figure out how to purchase anything on the site, including him! Even after I've made it so you'd have to be frickin' Helen Keller not to be able to stumble over a BIG FAT BUY NOW BUTTON literally everywhere you look because this site is for geriatric senile MORONS who can't click their way out of a paper bag!!!5
And once again:
18:00: *writing a Mandelbrot algo in glsl for the GPU*
19:00: "This should be working now..."
22:00: "why isn't it working??!"
22:30: "Oh my uniform vectors become zero when they arrive on the GPU"
01:00: "Oh. I uploaded them as matrices..."
I wasted about 4 fucking hours because I suck dick.5
Work for 2 days trying to solve a Level 2 foobar problem and then realize I need to know linear algebra to solves matrices programmatically... And the results have to be in Fractions10
I'm in the 7th semester of an 8 semesters carreer (computer science) and my first class is at 7:00 am and for some reason since the semester started I haven't get in time for that class (the best I've done is 7:40), but the teachers are cool with that and they allow me to give them the activities later that day. The only consequence I've had with being late for school is one time the teacher explained one of the programs we had to make for the next week that consisted in making a VB project that, in a windows form, draw a cube and putting buttons to move the cube (up, down, left, right), change the size (bigger, smaller) and rotate the cube (in x, in y, in z). In order to do this we needed to use different matrices to calculate the position of each corner and convert the 3-dimension coordinates to 2-dimension coordinates... It was a long process but once you get it its pretty easy to understand.
The thing is, none of my classmates understood the process and no one could tell me anything further the fact that we had to use matrices. So I looked for the teacher for that week and fortunately he had a free hour on Friday (the program was supposed to be for Thursday but since no one did it and those who did it weren't what the teacher wanted he told me that if it worked by Monday and if it had no bugs or errors he would accept it) and explained me the same thing he explained at class.
Well, this experience helped me to increase my ego because I finished the program in 5 hours and my classmates couldn't finish it in the whole week. I told them I could have helped them but no one helped me in first place.
In that moment I knew I choose the right career.
I'm porting code. Help.
I barely know the madness behind this - zero comments, undescriptive 2 or 3 letter variable names, matrices shown as a bunch of vec3s, inconsistent naming conventions (Fuck naming conventions when the variable names are near nonsense anyway - vs, na, ba, ca, a, b, c, Rxy/Ryr/Rzr0/1/2, cx, sx, cz, sz, n0, n1, n0v, n1v, dotrzrxry, sy to name a few).
Solution: Just copy this code, slightly adapt it to use my own inputs, and never look back on it ever ever again ever.
This code has been out and in use for over a year and some months now. Over that time, a few brave souls like me have looked at it and tried to make sense of it. No-one has dared to decode the madness behind that section this entire time.
Oh and don't even get me started on the rest of the code! 943 lines, 4 of which are comments, next to no blank spacing lines, basically zero horizonal spacing also, integers dependent on knowing exactly how much madness there is, etc.
And all the other files have basically zero comments/spacing also.6
Shit Developers say:
Fuck you Jasmine and your camelCase
I’ve been wrestling cucumbers all day
Oh no all the cucumbers are broken
In a fit of refactoring madness I have gone and changed a lot
Did you seriously just give ME nil?... No!
If the shit sticks, then we put nice paint on it
Fucking red dot motherfucker (Ben and his failing specs)
You know what we don’t do often..kill each others builds. Kill them and reschedule for later. Mwahaha ha ha.
This build is going to be so rad...(5mins later)...Ok this is not going to pass..I can feel it in my waters!
Can i do that in a digital way or do i have to move my meaty body downstairs to find him?
All the donkeys have be out the gate by sundown
God, imagine if you could patent mathematical solutions
actually, I wouldn't be surprised if you can in the states "no, you can't use a laplace transform, you haven't got the rights, you have to use a less accurate transform on your matrices"
ooooo a boolean that's phrased in the negative, my favourite for code review destruction!
Fuck the police i'll call the object here
Web RTC - its super easy, all you have to do is..probably some hard stuff
I want to go to that conference so I can start arguments with dickheads about semicolons. Just for fun.
This this is not the same as that this.
Can’t come to work I can’t find any clothes. It’s best for everyone if I just don’t come in. ...2 hours later... Yeah my clothes were just in the other room and i couldn’t be fucked moving
(OH about bad bug reports) - you know when they are all like oh joogly joogly doesn’t doodle doodle and it should wobbly doodle you know? and im all like fuck i don’t know any of that shit you are talking about.
Him: "I don’t like it, it’s against REST convention its so 2006 that my eyes are bleeding. As a privileged white male i feel entitled to complain about this." Me: "you. were. eleven in 2006
Source: Kellective Github6
Got a mathematics library I develop and maintain. Someone filed a feature request ticket for matrices of matrices. As in, each value of the primary matrix is another matrix. Not understanding why anyone would need such a convoluted concept, I asked for clarification.
Response: "This piece of shit library isn't feature complete without it, now stop being a lazy fag in your mother's basement and actually do something"
Lololololol. Sure thing. Let me go waste two or more weeks of my life developing something i've never seen used in math, without any justification beyond "feature".4
Whenever I'm looking at automata, matrices, sets, anything confusing and maths based, I always remind myself how I used to be in awe of the year 6's (5th grades) getting to learn about negative numbers...
Negative number seem so much easier than sets and strings...
Fuck you MATLAB and your shitty inefficient for loops. Now I have to rewrite most of my code to use matrices instead of structures cause you take so long. Fuck you and your stupid ability to scale my neural network.....who needed sleep anyway6
Taking an online test to practise programming. They give me code that takes two 3x3 matrices as inputs and outputs a third. I have to multiply them together and ouput results.
Within minutes I've worked my head around it, got four lines of code to do it all. Output fails.
Twenty minutes later, nearly failing the time limit I find out that they couldn't output the array proplerly in C++
;( What a hair puller.1
First and foremost, students should be carefully taught the logic and mentality behind programming. Most of the time I see that the introductory programming courses waste so much energy in teaching the language itself. So students kinda just get fucked cause many people end up ending the course without having actually gained the "programming perspective".
Stop teaching pointers and lambdas and even leave the object oriented stiff till later. If a student doesn't know why we use a For loop then how can they learn anything else.
I believe once that thing in your brain clicks about programming, everything goes smooth from there... kinda :P
Second of all, and this pertains mainly to the engineering and science disciplines.
We need a fundamental and strong mathematical foundation. And no I don't mean taking fucking double integrals. Teach us Linear Algebra, Graph theory, the properties of matrices, and Probability theory.
One of the things I suffered from most and regret in university is having a weak foundation in math and having to spend more time catching myself up to speed.
It's so annoying reading a paper on a new algorithm or method and feeling like an idiot because I can't understand what magic these people did.
Ok this is more deeper, maybe a 2nd year course.
But this is something we take for granted.
Computers don't magically add and subtract and multiply.
They fuck up.
And it'll bite you in the ass if you're not even aware that the computer we all love so much isn't as perfect as we think
Some hardware knowledge.
Probably a basic embedded systems course with arduinos
just so you can get a feel for how our beautiful software actually makes those electrons go weeeeeeeee
just give me the internet and some projects
Ill learn everything else
Projects are the best motivation
I hate this purely theoretical approach
where we memorize or read code and write these stupid exams
Test what we are capable off
make us do projects that take sleepless nights and litres of coffee
And judge our methods, documentation, team work, and output
Team work skills and tools (VCS, communicating, project management, etc.)
Documentation and Reporting
maybe even with LaTeX :D
Yeah that's the gist of whats on my mind at the moment regarding an ideal computer science education
At least the foundations
The rest I leave it to the next dude.
Why is vectorization library faster than hand-written for loops ? I mean, somewhere down the line, the matrices/vectors must be multiplied (or any other operation) and thus be one-by-one (for loop??) calculated and stored.
Why is it then faster to use these libraries than just manually writing for loops all over the place ?
I guess some low level magic (OpenBLAS ?) goes on there but I just don't see it..
P.S. [Would have posted it on stack overflow but I'd be ripped apart so I'm pioneering new ways]11