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 - "computer science is everywhere"
In the school we were using slow PCs for learning MS Office things. Every single step we did took ages. There were one guy who was an informatics antitalent: he never were able to work fluently with any electric machine from a microwave to anything smarter. In addition he was a semi-pro athlete and he had some kind of anger management issues, sometimes yelled to the teacher after a bad mark or with us when we lost a in-school soccer match. You know, he was that competitive guy.
One time on computer science class he was very focused. He tried to follow every steps precisly and his machine seemed faster than as usual. He felt like he broke some kind of wall which was between he and the machine.
When we had a break and he went out we tought that we should make a prank. We made a fullscreen screenshot from the desktop and set it as the wallpaper, then killed explorer.exe. As a result the icons and the start menu was only on the screen by the wallpaper.
When he came back he said that there were some bad news from some of the sport event he wanted to go, so he was angry. But then... You know the gif when the guy first hit the side of the screen multiple times then throws out the machine? Yeah, we saw that in real life, but not in that office. First he was just clicking everywhere, we just watched how his face just transforming. Then he started to talk just in himself as the machine could understand. After two minutes he just yelled to the machine why did it freeze, but the last drop was when the teacher said: You'll have to send me your work and it will be marked. In this moment he was just roard a huge and droped the CRT out of the window from the second floor. Luckily the window was facing to a brushy part of the garden so no one was there. He just standed there, looked out to the CRT sitting in a brush for a while, then he turned to the teacher as "Mr, I think something is wrong with my machine"3
I'll use this topic to segue into a related (lonely) story befitting my mood these past weeks.
This is entire story going to sound egotistical, especially this next part, but it's really not. (At least I don't think so?)
As I'm almost entirely self-taught, having another dev giving me good advice would have been nice. I've only known / worked with a few people who were better devs than I, and rarely ever received good advice from them.
One of those better devs was my first computer science teacher. Looking back, he was pretty average, but he held us to high standards and gave good advice. The two that really stuck with me were: 1) "save every time you've done something you don't want to redo," and 2) "printf is your best debugging friend; add it everywhere there's something you want to watch." Probably the best and most helpful advice I've ever received 😊
I've seen other people here posting advice like "never hardcode" or "modularity keeps your code clean" -- I had to discover these pretty simple concepts entirely on my own. School (and later college) were filled with terrible teachers and worse students, and so were almost entirely useless for learning anything new.
The only decent dev I knew had brilliant ideas (genetic algorithms, sandboxing, ...) before they were widely used, but could rarely implement them well because he was generally an idiot. (Idiot sevant, I think? Definitely the idiot part.) I couldn't stand him. Completely bypassing a ridiculously long story, I helped him on a project to build his own OS from scratch; we made very impressive progress, even to this day. Custom bootloader, hardware interfacing, memory management, (semi) sandboxed processes, gui, example programs ...; we were in highschool. I'm still surprised and impressed with what we accomplished.
But besides him, almost every other dev I met was mediocre. Even outside of school, I went so many years without having another competent dev to work with. I went through various jobs helping other dev(s) on their projects (or rewriting them), learning new languages/frameworks almost every time: php, pascal, perl, zend, js, vb, rails, node, .... I learned new concepts occasionally (which was wonderful) but overall it was just tedious and never paid well because I was too young to be taken seriously (and female, further exacerbating it). On the bright side, it didn't dwindle my love for coding, and I usually spent my evenings playing with projects of my own.
The second dev (and one one of the best I've ever met) went by Novo. His approach to a game engine reminded me of General Relativity: Everything was modular, had a rich inheritance tree, and could receive user input at any point along said tree. A user could attach their view/control to any object. (Computer control methods could be attached in this way as well.) UI would obviously change depending on how the user could interact and the number of objects; admins could view/monitor any of these. Almost every object / class of object could talk to almost everything else. It was beautiful. I learned so much from his designs. (Honestly, I don't remember the code at all, and that saddens me.) There were other things, too, but that one amazed me the most.
I havent met anyone like him ever again.
Anyway, I don't know if I can really answer this week's question. I definitely received some good advice while initially learning, but past that it's all been through discovering things on my own.
It's been lonely. ☹2
I'm graduating in summer and I was thinking of pursuing Masters in Finance so I went to my uni's business advisor office. When I entered, CNBC was on the tv and suddenly I thought about how nice it would be if my computer science advising office also had a tv when I saw this2