Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
Search - "algorithms programming"
-
Another one, teach secure programming for fucks sake! This always happened at my study:
Me: so you're teaching the students doing mysql queries with php, why not teach them PDO/prepared statements by default? Then they'll know how to securely run queries from the start!
Teachers: nah, we just want to go with the basics for now!
Me: why not teach the students hashing through secure algorithms instead of always using md5?
Teacher: nah, we just want to make sure they know the basics :)
For fucks fucking sake, take your fucking responsibilities.31 -
Just sharing my experience of my spontaneous interview with Facebook. I'm not good at writing these but here you go :)
- I was working as an Android dev and didn't have much knowledge in algorithms nor competitive programming, never ever interviewed with big companies.
- a random day on LinkedIn, a recruiter from Facebook contacted me
- I ignored it for few week because I thought it's so out of my league, then somehow, out of blue, I had a thought of giving it a try, so I did
- passed first round
- start studying algorithms a little for phone interview in 3 weeks
- recklessly took the phone interview
- passed
- start studying intensively (while working fulltime) for the on-site interview in 2 months
- almost got the job, they gave me one more chance by a followed up interview
- messed up the last chance real bad
- failed!!!
- Initially I just wanted to give it a try, but the fact that I failed at very very last chance, frankly, bothers me a bit. Maybe I will interview with FB or big companies if I have chance later, but I know for sure that the studying had made me a much better dev. All the code I write now is much more efficient (I think), I can and not anymore afraid of reading complicated code.
- Overall, it does takes a lot of time (~4 months studying while working fulltime), but also benefits myself a lot though I didn't get the job, so basically, good experience, but better if I got the job 😁
Oops, wanted to write a few lines and it's a long post already.. I should stop here :D9 -
My programming teacher is a freaking degenerate. He spend 7 months teaching us basic stuff like if-clauses, while-loops and stuff like that over and over again - everyone was annoyed but he didn't listen to us because "some people still don't get it". (The reason for this could be their total absence during lessons but who am I to tell.)
Beginning of 2018 he realised we hadn't much time left to prepare for our final exam so he tried self-taught learning. 8 sorting algorithms, recursion, how to write classes and objects in less than a week. And of course there was a classtest about this - needless to say that like nobody passed it. He still has no clue why we are "so lazy and dumb".
One of his favourite code examples is a calculator. I don't know how many i've programmed and they've gotten more and more ridiculous. (Who the hell would want interfaces like IComparer in a calculator?)
He even wanted to convince us that for-loops can't count down (and that things like "i--" doen't exist.)
I could go on and on about this guy and his craziness.27 -
To become an engineer (CS/IT) in India, you have to study:
1. 3 papers in Physics (2 mechanics, 1 optics)
2. 1 paper in Chemistry
3. 2 papers in English (1 grammar, 1 professional communication). Sometimes 3 papers will be there.
4. 6 papers in Mathematics (sequences, series, linear algebra, complex numbers and related stuff, vectors and 3D geometry, differential calculus, integral calculus, maxima/minima, differential equations, descrete mathematics)
5. 1 paper in Economics
6. 1 paper in Business Management
7. 1 paper in Engineering Drawing (drawing random nuts and bolts, locus of point etc)
8. 1 paper in Electronics
9. 1 paper in Mechanical Workshop (sheet metal, wooden work, moulding, metal casting, fitting, lathe machine, milling machine, various drills)
And when you jump in real life scenario, you encounter source/revision/version control, profilers, build server, automated build toolchains, scripts, refactoring, debugging, optimizations etc. As a matter of fact none of these are touched in the course.
Sure, they teach you a large set of algorithms, but they don't tell you when to prefer insertion sort over quick sort, quick sort over merge sort etc. They teach you Las Vegas and Monte Carlo algorithms, but they don't tell you that the randomizer in question should pass Die Hard test (and then you wonder why algorithm is not working as expected). They teach compiler theory, but you cannot write a simple parser after passing the course. They taught you multicore architecture and multicore programming, but you don't know how to detect and fix a race condition. You passed entire engineering course with flying colors, and yet you don't know ABC of debugging (I wish you encounter some notorious heisenbug really soon). They taught 2-3 programming languages, and yet you cannot explain simple variable declaration.
And then, they say that you should have knowledge of multiple fields. Oh well! you don't have any damn idea about your major, and now you are talking about knowledge in multiple fields?
What is the point of such education?
PS: I am tired of interviewing shitty candidates with flying colours in their marksheets. Go kids, learn some real stuff first, and then talk some random bullshit.18 -
"Hey nephew, why doesn't the FB app work. It shows blank white boxes?"
- It can't connect or something? (I stopped using the FB app since 2013.)
"What is this safe mode that appeared on my phone?!"
- I don't know. I don't hack my smartphone that much. Well, I actually do have a customised ROM. But stop! I'm pecking my keyboard most of the time.
"Which of my files should I delete?"
- Am I supposed to know?
"Where did my Microsoft Word Doc1.docx go?"
- It lets you choose the location before you hit save.
"What is 1MB?"
- Search these concepts on Google. (some of us did not have access to the Internet when we learned to do basic computer operations as curious kids.)
"What should I search?"
- ...
"My computer doesn't work.. My phone has a virus. Do you think this PC they are selling me has a good spec? Is this Video Card and RAM good?"
- I'm a programmer. I write code. I think algorithmically and solve programming problems efficiently. I analyse concepts such as abstraction, algorithms, data structures, encapsulation, resource management, security, software engineering, and web development. No, I will not fix your PC.7 -
It wasn't my curiosity that introduced me to programming. Actually, it was my mother.
It was about six years ago, when I'd told her I'd like to make video-games, like all kids do. She didn't just nod and go about her way. She found a free course that taught programming to kids my age and immediately enrolled me. Looking back, it was surely the best thing she'd done for me, because it gave me a purpose and a future to look forward to.
The course was interesting. We learned the basics of C++, then moved on to harder topics like algorithms and data types. But more and more, I was beginning to feel left behind. Like I didn't belong there. It didn't help that I only programmed on the course, with no practice back home.
I felt scared of the future. Thought I didn't have what it takes to become a programmer. I might have broken the last straw when I started playing truant and went to McDonald's to pass the time. Because every time I did go to the course, I felt stupid and anxious. So I simply skipped.
Time passed. I got more depressed, became more antisocial, my self-esteem took a nosedive. And when it comes to depression, people always seek an escape path.
I got my escape in fiction. Started reading books, tried writing stories, and it got to the point where I asked my mother if I could become a writer and not a programmer.
And guess what? She said, "Do what brings you happiness. This is your life."
It's funny, that such a silly line stopped and got me to think. Turned out, I didn't program for fun, for myself or for my career. I'd done it for my parents, for their expectations and I was scared that in failing, I'd become a loser in their eyes.
I dropped out of the programming course. Not because it sucked, but because I wasn't going there for myself, but for my parents. But I didn't quit programming. No, I watched countless tutorials, youtube videos, browsed StackOverflow, read some books, coded every day, and now I can say without hesitation, that I love programming. I'm hooked. And I don't want to stop.
If you've read this so far, I'm sorry for my rambling. I will now leave you with only one tip: If you decided to do something, do it for yourself. Forget about parents, expectations, career, future, time or money and do it only because you want to. Because nothing else matters. Only your happiness.7 -
1. No more coding on paper! Why can some already write essays on laptops but programmers are stuck with "analog"?
2. No vendor lock-ins! Teach free, cross-platform development, not VB.NET.
3. No more professors stuck in the eighties! If all you know is 6800 assembly, GTFO. I heard NASA was hiring...
4. Enforce code style consistency, proper documentation and even VCS for larger projects
5. Algorithms -> scripting -> programming. Don't quickly explain the basics, then throw students straight into Java.10 -
Okay, story time.
Back during 2016, I decided to do a little experiment to test the viability of multithreading in a JavaScript server stack, and I'm not talking about the Node.js way of queuing I/O on background threads, or about WebWorkers that box and convert your arguments to JSON and back during a simple call across two JS contexts.
I'm talking about JavaScript code running concurrently on all cores. I'm talking about replacing the god-awful single-threaded event loop of ECMAScript – the biggest bottleneck in software history – with an honest-to-god, lock-free thread-pool scheduler that executes JS code in parallel, on all cores.
I'm talking about concurrent access to shared mutable state – a big, rightfully-hated mess when done badly – in JavaScript.
This rant is about the many mistakes I made at the time, specifically the biggest – but not the first – of which: publishing some preliminary results very early on.
Every time I showed my work to a JavaScript developer, I'd get negative feedback. Like, unjustified hatred and immediate denial, or outright rejection of the entire concept. Some were even adamantly trying to discourage me from this project.
So I posted a sarcastic question to the Software Engineering Stack Exchange, which was originally worded differently to reflect my frustration, but was later edited by mods to be more serious.
You can see the responses for yourself here: https://goo.gl/poHKpK
Most of the serious answers were along the lines of "multithreading is hard". The top voted response started with this statement: "1) Multithreading is extremely hard, and unfortunately the way you've presented this idea so far implies you're severely underestimating how hard it is."
While I'll admit that my presentation was initially lacking, I later made an entire page to explain the synchronisation mechanism in place, and you can read more about it here, if you're interested:
http://nexusjs.com/architecture/
But what really shocked me was that I had never understood the mindset that all the naysayers adopted until I read that response.
Because the bottom-line of that entire response is an argument: an argument against change.
The average JavaScript developer doesn't want a multithreaded server platform for JavaScript because it means a change of the status quo.
And this is exactly why I started this project. I wanted a highly performant JavaScript platform for servers that's more suitable for real-time applications like transcoding, video streaming, and machine learning.
Nexus does not and will not hold your hand. It will not repeat Node's mistakes and give you nice ways to shoot yourself in the foot later, like `process.on('uncaughtException', ...)` for a catch-all global error handling solution.
No, an uncaught exception will be dealt with like any other self-respecting language: by not ignoring the problem and pretending it doesn't exist. If you write bad code, your program will crash, and you can't rectify a bug in your code by ignoring its presence entirely and using duct tape to scrape something together.
Back on the topic of multithreading, though. Multithreading is known to be hard, that's true. But how do you deal with a difficult solution? You simplify it and break it down, not just disregard it completely; because multithreading has its great advantages, too.
Like, how about we talk performance?
How about distributed algorithms that don't waste 40% of their computing power on agent communication and pointless overhead (like the serialisation/deserialisation of messages across the execution boundary for every single call)?
How about vertical scaling without forking the entire address space (and thus multiplying your application's memory consumption by the number of cores you wish to use)?
How about utilising logical CPUs to the fullest extent, and allowing them to execute JavaScript? Something that isn't even possible with the current model implemented by Node?
Some will say that the performance gains aren't worth the risk. That the possibility of race conditions and deadlocks aren't worth it.
That's the point of cooperative multithreading. It is a way to smartly work around these issues.
If you use promises, they will execute in parallel, to the best of the scheduler's abilities, and if you chain them then they will run consecutively as planned according to their dependency graph.
If your code doesn't access global variables or shared closure variables, or your promises only deal with their provided inputs without side-effects, then no contention will *ever* occur.
If you only read and never modify globals, no contention will ever occur.
Are you seeing the same trend I'm seeing?
Good JavaScript programming practices miraculously coincide with the best practices of thread-safety.
When someone says we shouldn't use multithreading because it's hard, do you know what I like to say to that?
"To multithread, you need a pair."18 -
I was curious about how the Genetic Algorithm works, wanted to try it out.
So I've created some toy cars using Three.js and "asked" them to do the self-parking with a little bit of Genetic Algorithm help.
It was fun to see how those toy cars were evolving and actually started to be less stupid :D
Here are some more details:
https://trekhleb.dev/blog/2021/...10 -
I've been coding for over 8 years, and whenever a recruiter says we have you do these coding challenges or recite them an algorithm from memory, I say "You know, the longer you've been programming, the less you remember how to do this stuff, because you don't use it in real life." They say, "Well we just want to see how you think and how you solve problems." B.S.
These types of algorithmic programming challenges besides the simpler ones don't show how you think. A lot of stuff like the dynamic programming and other optimization problems were solved by phd professors after many years of research. Nobody would think up these solutions on their own.
These programming challenges weed out
experienced developers unless they want to
take the time to re-learn this stuff. It explains why google, facebook or amazon are filled with young and inexperienced developers and how come it takes so many thousands of them to get anything done, and they still have buggy products...23 -
!rant
I'm building a complex software that computes stuff with advanced algorithms and linear programming. That kind of software that proved itself strong, but you know a bug discovery would be a disaster.
The client is a dick, always acting as a bully in every email.
Last email, writes me about a supposed error of the software, while of course complaining that the software is complete crap to ensure that I keep a positive attitude.
After some hours of trying to find the cause of the fucking problem, I realized that the software was actually right since the beginning.
I've replied explaining *why* the software says what it says (acting like it was the most obvious thing in the world). Waiting for a response.
I hope that moron will feel humiliated at least a little bit.2 -
So this happened last week.
Last week I went as a volunteer to give an introduction class basic programming to some guys and gals who are going to attend computer science soon next year.
The class lasted one week and we had done some basic algorithms and programming in Python.
Besides that we also did some very basic websites (html, css and javascript).
Obviously all those people were very enthusiastic.
Some were a little bit too enthusiastic...
There were these 2 guys who were best friends. They already knew everything apparently. Even though they just finished high school they had been programming for over 10 years, had already made countless of websites, applications, 'hacked Windows', RATs and some amazing games.
So there were some people there who never had programmed before. I started giving the lecture and warned people who already knew some basics of programming the first day might be a quite boring but I could not simply skip it obviously.
Those 2 dickheads acted like the biggest childs ever, started screaming in class, making sure everyone knew they were bored, and were constantly complaining to me that they know what print, for, while and strings were. I stayed calm and tried to explain them again I simply couldn't skip parts of the lecture for them.
Every hour and every day it started getting worse and worse with them. Not only but the whole class were furiously mad at them. Some other students even started screaming at them. They screamed back insulting everyone they even didn't what php was and stupid stuff like that.
At some point they interrupted me AGAIN and asked me how long I programmed. I told him little them over 5 years or something. They started laughing at me. Those 2 dickheads looked at me like they were so much better than me because they programmed over 10 years.
At some point, almost the last day, I had enough of their bullshit, interruption, screaming, insulting other students who asked questions, ... I said you know what, you give the lecture!
They refused because they felt too good for all these other 'noobs' (the other students). They would never become good and blah blah more bullshit.
I said alright, we're doing websites, you've made some websites, show me your most impressive website.
He was happy and felt honered.
He sent me the whole folder and I showed his website on code on the big screen in the room.
Then I said: "Everyone, pay close attention to this!"
That dickhead smiled and felt good
Me: "This is how NOT to make a website"
I started explaining to everyone all things that were complete shit and all things that were straight up sins.
That one friend of the dickhead stayed quiet. The other dickhead became as red as a tomato. At some points you even saw tears in his eyes. At some point he insulted me I was a scriptie and simply left.
The class started clapping.
One of the weirdest but also best moments of my life
Moral: Don't act like a complete bigheaded dickhead, don't feel better than everyone and show some respect
Thank you for reading
Have a nice day!3 -
University Final Viva for OOP with C++
(Yeah, that first line is a rant in itself for the likes of me and Mr. Torvalds)
Assistant Professor:
Tell me a few "functions" in C++ STL algorithm header
Me:
*starts off with the first one that came to my mind*
sort()
AP: Huh? a I'm asking the Algorithms in C++ STL
Me: Yes, this is one of them Ma'am.
She looked at me as if I told her that I'm dating her daughter. It became clear she doesn't know about it and she'll gladly deduct my marks for getting it wrong. So I explained how Sort() is a hybrid of quicksort, heap sort and insertion sort. (Read about it an hour ago while doing a competitive programming question)
AP: Tell me the ones we did in class.
I haven't attended those classes, so I just told her the ones I knew.
After a couple more infuriating questions, which themselves sounded right from a book published in the 90's, she gave me 10/15.
This is what's wrong with India's Education system, even the teachers know only the stuff mentioned in the course hand-outs. Forget brownie points, you get screwed over by the teachers for actually knowing stuff and using it.8 -
Not learning data structures and algorithms. Not learning programming languages. Actually not learning anything to answer during a job interview.
I am more of a learn-while-you-do kind of guy. I never learn anything, instead just do it. Interviewers think I am useless because I know nothing. But I can get a job done, any kind of job done. I have no learning period, I can start working from first day in a all new language, in a all new IDE, in a all new OS.
I know nothing, and I learn nothing. I am a problem solver. You got a problem, I can solve it.6 -
Got my first laptop while I was overseas.
It was a windows hp laptop with Vista.
It was an absolute piece of shit.
Decided to find the people responsible of it.
Got to what a software engineer was.
Boss told me to look in the library to see if i find some books on the subject. Got a Java and C++ book.
Shit was hard af cuz I had no clue what I was doing, but I liked it. Decided to look more into an application wise platform of study rather than doing basic CLI shit. Got into web development with Java. Got a hold of more JS. Liked JS more cuz shit was easy, found about server side JS with classic ASP, did VBScript as well.
Eventually found Python, fell in love but hated the whitespace ussage for block level code etc. Found Ruby, to this day the most beautiful language according to me. Read about why's poignant intro to Ruby.
Dug it, but wanted some other things. Found out about the study of data structures ans algorithms, then harvard's free cs50 course, then mit courseware, rice's python class. Took all of them. CS50 introduced php, liked it, sounded like a drug, was easy to use, for whatever fucking reaskn my ass decided to use version 4 even though 5 was already out. Learned to appreciate advancements in programming language even more
Hipster phase, while studying php got more into JS and web design with more css concepts, wanted my shit to be pretty. Somehow landed with Common Lisp. Mind fucking blown.
Continued with php. Got into uni, math made sense through programming, ok so I am stupid, but not that stupid, python is the best calculator ever.
bring it bitches.
Graduated.
Still don't know what I am doing.1 -
I propose that the study of Rust and therefore the application of said programming language and all of the technology that compromises it should be made because the language is actually really fucking good. Reading and studying how it manages to manipulate and otherwise use memory without a garbage collector is something to be admired, illuminating in its own accord.
BUT going for it because it is a "beTter C++" should not constitute a basis for it's study.
Let me expand through anecdotal evidence, which is really not to be taken seriously, but at the same time what I am using for my reasoning behind this, please feel free to correct me if I am wrong, for I am a software engineer yes, I do have academic training through a B.S in Computer Science yes, BUT my professional life has been solely dedicated to web development, which admittedly I do not go on about technical details of it with you all because: I am not allowed to(1) and (2)it is better for me to bitch and shit over other petty development related details.
Anecdotal and otherwise non statistically supported evidence: I have seen many motherfuckers doing shit in both C and C++ that ADMIT not covering their mistakes through the use of a debugger. Mostly because (A) using a debugger and proper IDE is for pendejos and debugging is for putos GDB is too hard and the VS IDE is waaaaaa "I onlLy NeeD Vim" and (B) "If an error would have registered then it would not have compiled no?", thus giving me the idea that the most common occurrences of issues through the use of the C father/son languages come from user error, non formal training in the language and a nice cusp of "fuck it it runs" while leaving all sorts of issues that come from manipulating the realm of the Gods "memory".
EVERY manual, book, coming all the way back to the K&C book talks about memory and the way in which developers of these 2 languages are able to manipulate and work on it. EVERY new standard of the ISO implementation of these languages deals, through community effort or standard documentation about the new items excised through features concerning MODERN (meaning, no, the shit you learned 20 years ago won't fucking cut it) will not cut it.
THUS if your ass is not constantly checking what the scalpel of electrical/circuitry/computational representation of algorithms CONDONES in what you are doing then YOU are the fucking problem.
Rust is thus no different from the original ideas of the developers behind Go when stating that their developers are not efficient enough to deal with X language, Rust protects you, because it knows that you are a fucking moron, so the compiler, advanced, and well made as it is, will give you warnings of your own idiotic tendencies, which would not have been required have you not been.....well....a fucking idiot.
Rust is a good language, but I feel one that came out from the necessity of people writing system level software as a bunch of fucking morons.
This speaks a lot more of our academic endeavors and current documentation than anything else. But to me DEALING with the idea of adapting Rust as a better C++ should come from a different point of view.
Do I agree with Linus's point of view of C++? fuck no, I do not, he is a kernel engineer, a damn good one at that regardless of what Dr. Tanenbaum believes(ed) but not everyone writes kernels, and sometimes that everyone requires OOP and additions to the language that they use. Else I would be a fucking moron for dabbling in the dictionary of languages that I use professionally.
BUT in terms of C++ being unsafe and unsecured and a horrible alternative to Rust I personaly do not believe so. I see it as a powerful white canvas, in which you are able to paint software to the best of your ability WHICH then requires thorough scrutiny from the entire team. NOT a quick replacement for something that protects your from your own stupidity BY impending the use of what are otherwise unknown "safe" features.
To be clear: I am not diminishing Rust as the powerhouse of a language that it is, myself I am quite invested in the language. But instead do not feel the reason/need before articles claiming it as the C++ killer.
I am currently heavily invested in C++ since I am trying a lot of different things for a lot of projects, and have been able to discern multiple pain points and unsafe features. Mainly the reason for this is documentation (your mother knows C++) and tooling, ide support, debugging operations, plethora of resources come from it and I have been able to push out to my secret project a lot of good dealings. WHICH I will eventually replicate with Rust to see the main differences.
Online articles stating that one will delimit or otherwise kill the other is well....wrong to me. And not the proper approach.
Anyways, I like big tits and small waists.14 -
I hate time.
Yes, that dimension which unidirectionally rushes by and makes us miss deadlines.
Also yes, that object in most programming languages which chokes to death on formatting conversions, timezones, DST transitions and leap seconds.
But above all, I hate doing chronological things from the point of view of code, because it always involves scheduling and polling of some kind, through cron jobs and queues with workers.
When the web of actions dependent on predicted future and passed past events becomes complicated, the queries become heavy... and with slow queries, queues might lock or get delayed just a little bit...
So you start caching things in faster places, figure out ways to predict worker/thread priorities and improve scheduling algorithms.
But then you start worrying about cache warming and cascading, about hashing results and flushing data, about keeping all those truths in sync...
I had a nightmare last night.
I was a watchmaker, and I had to fix a giant ticking watch, forced to run like a mouse while poking at gears.
I fucking need a break. But time ticks on...2 -
The worst part of being a dev
My social dilemma
In a fast paced world where the average human spends at least 6 hours a day with technology, deriving basic entertainment, pleasures and engaging in various activities.
Here we are the developers that have to engage with technology for longer hours for a living , having to keep up with deadlines, immersing our minds in complicated algorithms and then the endless possibilities of entertainment from the machine in so few human hours a day , you wonder how you’d get off, and to top it up, I personally work from home.
And then the dilemma of overcoming different suggestions from various parties in taking a break off, a break off to what you later ask yourself, thus creating the shadow of doubt, splitting the fragile programmer’s mind , trying to solve this imaginary puzzle, “this bug of the mind”.
Then the challenge often arises in creating a balance, telling yourself, just catching up with people with this same technology takes a whole day, or then again quitting my Job, but from my little experience of life, nobody likes a poor visitor, this is actually worse than a “bug” and as I bask in this quagmire, “a little voice in my head keeps singing keep doing what you love doing”.
Like an infinite loop of crazy, spiralling back to these machines, trying the find and fix the balance of normalcy. Always remembered the cool years of college tho, with so much people around and then again that was college.
An then the thought arises, maybe something else might be worth doing, but after so much time spent in building your skills and the enormous joy of programming even typing without looking at the keyboard is a real pleasure, and yeah sure the days are short with the reality of a constant need to survive, remain sane, compete and make the best of life in such short time.
Then how do we know if we have fallen off the so-called “social track”, when we have only lived so little to really comprehend the most parts of life? with such constant stream of unanswered question, you’d realise you shouldn’t have burdened the mind creating such questions in the first place
But then again maybe it gets better, one of the above, the disturbed mind or the situation as whole and yes I try oh I try, I place calls, do some visiting, no relationship tho but with a good perspective in mind.
In this race of life, you sometimes ask yourself would you rather be in a different position, or maybe already put exactly where we belong. For this illusionary fight with self is a fight with reality as a whole and true bliss comes from actually letting go as time and people pass you by.
And my greatest achievement to date aside family and my work is getting into the 1000 club on devRant.2 -
C is probably my favorite programming language. I use it for learning new concepts and implementing algorithms.
It's just sometimes I hate that I have to do everything myself when I need to focus on the solution/concept instead.
P.S., I hate C++ from all my heart. It's an abomination and a deformity of C.21 -
My last successful project was a small project I did together with my gf in javascript. She needed to make some algorithms for school for transfering
freight containers and picking them up. I made some visuals and buttons for her to press. And she added a file with algorithms based on the helper functions I created. such as: GetFirstEmptyPosition() or PlaceContainerAt(x, y)
She learned a bit of programming. And I learned a bit of javascript.5 -
Honestly? I was always good at maths and creativity. And so, programming was natural to me. I was always good at it with minimum effort. ¯\_(ツ)_/¯
... Algorithms were a whole other story tho. I'm still not confident 'bout any algos I program from scratch. But hey, if it works, it works. (that became my motto about algos, kinda)
Forgot one thing tho: looking at relevant code to whatever I'm doing, be it in a tutorial or stackoverflow. I don't need the text or tutorial or explanation, I need to see code examples.2 -
So I'm not sure I understand this question fully, if it is meant only through code, than I guess none or those people I got to know while I was doing my algorithms and data structures project last semester where we were helping each other with our code
If it's meant generally through code related activities then I gained lots of friends in uni in classes and here on devRant of course and actually yesterday I got to talk unexpectedly about coding and programming languages on an event with a guy who actually studied financial maths in Vienna but now works as a tester and works with databases, that was nice6 -
I’m slacking been so busy, forgot to post yet another book..
Soo here ya go..Engineering A Compiler.
For those who don’t like the Red Dragon compiler book for whatever reason, most don’t like it because they don’t believe the dragon book covers topics in a “Teachy way” and doesn’t explain certain things. As well as not cover one topic.
Then this may be the book for you. It’s significantly newer than the “Dragon book” and I believe it does do a better job laying out for “learning”.. I could see this book being used in universities.. I’m sure it is, but mine never had a compiler course so whatever. Good book
Fun fact.. it references the dragon book, as well as the other books the dragon book authors wrote as well as articles in the ACM..AND! It also references Knuths art of computer programming and other books of knuth AND references the Algorithms book. All books I have previously posted.
I have not read this book, only skimmed as I have recently received it this one. May do a follow up or even at it to the list to make a YouTube playlist going chapter by chapter thru the book.8 -
I’m so sick and tired of the cattle-minded people in the software world. I love coding and improving myself; I've got over 18 years of experience. I enjoy what I do, and I like being good at it. I know my way around a variety of different technologies, and I could easily outperform most engineers with similar experience. If I don’t know something, I get excited to learn and I ask questions. I don’t enjoy standing in the spotlight about what I know; I prefer supporting, helping, solving problems, improving solutions, and simplifying everything.
From my experience, the best solution is the simplest, shortest, fastest, and leanest one. But unfortunately, there are people in the workplace who think the opposite of me and blindly follow this so-called prophet named Uncle Bob, zealously writing all his SOLID principles and dogmatic code, turning their work environments into a toxic mess. I’m so done with it. You have no idea how harmful a person can be when they cling to the teachings of a guy like Uncle Bob—someone who probably hasn't even written the "s" in software himself and is just trying to sell his book. In almost every job or team I join, there’s one of these people who drags junior developers into writing dogmatic code by chanting about SOLID principles, Uncle Bob, and object-oriented programming.
Software engineering isn’t something you can learn from a book written by people like Uncle Bob, who haven’t coded a decent product in a real development process. Experience is something entirely different, and from my experience, everything taken to extremes turns out badly. Wherever I see an Uncle Bob disciple, the work inevitably slides into the extremes. For someone writing in C and C++, it’s disheartening to hear about object-oriented programming, SOLID principles, and agile nonsense. I’m tired of seeing people cluttering their code with interfaces for every little thing, over-engineering patterns, and stuffing every piece of code with interfaces to make it “testable.” They run around claiming they’re writing SOLID code, doing TDD, following “best practices,” yet they can't solve any real problems or algorithms. They take a week-long task and drag it out to six, making simple things complex and distancing themselves from real solutions. I’m sick of these types.
If you’re a junior developer, please ignore the fools trying to lead you down this path, and don’t become dogmatic about what you learn, especially if you’re writing C++.
I’ve never seen any real engineer who takes this SOLID, object-oriented nonsense seriously. Believe me, once you reach a certain threshold, you won’t hear these words anymore. Software isn’t just about that. Object-oriented programming, especially if you’re not writing Java or C#, and especially if you’re working in C++ (thankfully, C doesn’t even have it), is something you should definitely steer clear of. Robert C. Martin, aka Uncle Bob—if only you had written your book with a focus on Java or C#. These dogmatic code writers with 7-8 years of experience crying at the sight of free functions in C++ really give me a headache. Because of you, these people exist, and I don’t have the energy to deal with this nonsense at my age.rant agile uncle bob object oriented solid c dogmatic code oop solid principles c++ tdd robert.c martin7 -
Travels to another state, about 6 hours of journey. After finally reaching the office, had to wait another hour for my turn. The interview starts
Q: How long have you been programming?
A: for nearly 2 years, I mainly code in python.
Q: Nice! (Puts a piece of paper infront) explain how the shortest distance between 2 cities is calculated by Google maps using graph theory..
I go blank and stay silent for an awfully long amount of time. Gets rejected.
After coming outside, I ask myself... Why the fuck does a normal tech company need written algorithms on graph theory used by Google maps?7 -
Fuck my country's universities, fucking greedy assholes that ruin lives, suck wallets and sucks life from the young.
I'm currently studying something completely non related to programming: History. And I really love it. I love reading 1000 pages for each test and essay and talking about the problem of naming the Cold War a war and cold and etc. The problem is that I won't make as much money as I would make even as a self taught developer.
After considering my possibilities, I thought I could enter the computer science carreer. I don't know how this works in other countries but here you would have to study 3 years of an engineering common plan and then specialise in some sort of industrial engineering while getting an specialisation also in computer science. After some counting, I got to the conclusion that I would be studying 6 years (or more), and wasting half of those years learning stuff that I would never use nor care about.
But that's not all. This semester I took the introductory class for programming. It's pretty basic stuff but at least they teach a little bit about algorithms and problem solving. It turns out that a friend of mine that's about to graduate from computer science applied as a helper for the prof. I was so excited I could finally talk with someone about code!
Since the start of the semester I have been passing a lot of time with him and talking about the future. Turns out he doesn't understand shit about code but somehow he learns everything by hard and has passed every computer science course without having any practical abilities. I don't blame him, he's studying hard and playing by the rules, and turns out that he has wasted precious time of his life also learning biology, chemistry, structural engineering, hidraulic engineering, transportation engineering and a ton of engineerings that he won't use.
If the university would instead take that time to teach better courses of practical programming or leave him some time to try out the stuff he learns by hard, he wouldn't have to hear me talking about stuff he doesn't comprehend but feels that should, and wouldn't be utterly depressed, he wouldn't take SIX years to learn less than what he could learn in less than THREE years. And this isn't just a random university, it is one of the 2 best universities we have here and was in 2014 the best of all Latin America.
And wait, here comes the best part. In my country, levels of education are heavily stratified. After school, superior studies give different titles according to the time you've been studying. Yes just the time. And these titles are what your employers will see to give you different work positions. So for studying a 2 year carreer you get a technic job which pays well but not too well, then at 4 years you get a license title which only proves that you know stuff, then at 5 or more (depending on what you are studying) you get a professional degree and will get payed as a full fledged professional. So here, even though in other countries it takes 6 years to have a masters in engineering, they give you just the engineering degree, and it would take 2 (or more) more years to have a master. Even though you can totally teach engineering in 4 years, here they take BY LAW 2 years more, while paying what a fucking full stack of pairs of kidneys would cost in the black market.
So fuck that shit, I won't be throwing my money at any university. I hope they get reformed soon becouse this is fucking dumb, really really dumb. Like 2 year old shit dumb. I'll just learn a bit more, make some projects until I have a decent portfolio and apply to some company that cares for real knowledge and not just a piece of paper with letters and a shitty logo on it.undefined student job revolución fuck university shitty universities student life education im just a bit pissed11 -
Do you get filled with anxiety and mental anguish when asked for your availability for a technical interview, knowing you’ve spent all your time recently programming and not working on algorithms/data structures and so you’re terribly unprepared but have no idea what the acceptable amount of time to schedule out without seeming like you’re incompetent is?
No?
....me neither. (She says, lying)8 -
my vision about life changed as I started learning about algorithms and programming, which I consider as an advantage, tho I can't help but wonder if people in different fields feel the same.
it also feels like I over-think since then, a constant need to analyze things which is overwhelming sometimes.3 -
For skilled mid-career engineers, dynamic programming problems, np-complete bar raisers.
For new engineers, simple questions that can't be taught in school (questions that require business prioritization)
For older engineers, questions they haven't done since college (big-O, writing algorithms from memory)12 -
I always feel inspired by programming when I create some algorithms or programs which I can use when I need to.
Small utilities and command line programs r what I make at times... and I also enjoy trying to implement them awesome algorithms 😍
However, most inspiration I get is from looking at C code though ( especially the Linux kernel... that code is SO clean 😍😍 )2 -
It is the time for the proper long personal rant.
Im a fresh student, i started few months ago and the life is going as predicted: badly or even worse...
Before the university i had similar problems but i had them under control (i was able to cope with them and with some dose of "luck" i graduated from high school and managed to get into uni). I thought by leaving the town and starting over i would change myself and give myself a boost to keep going. But things turned out as expected. Currently i waste time everyday playing pc games or if im too stressed to play, i watch yt videos. Few years ago i thought i was addicted, im not. It might be a effect of something greater. I have plans, for countess inventions, projects, personal, for university and others and ALL of them are frozen, stopped, non existant. No motivation. I had few moments when i was motivated but it was short, hours or only minutes. Long term goals dont give me any motivation. They give as much short lived joy, happines as goals in games and other things... (no substance abuse problems, dont worry). I just dont see point of my projects anymore. Im sure that my projects are the only thing that will give me experience and teach me something but... i passed the magic barrier of univercity, all my projects are becoming less and less impressive... TV and other sources show people, briliant people, students, even children that were more succesful than me
if they are better than me why do i even bother? companies care more for them, especialy the prestigious ones, they have all the fame, money, funding, help, gear without question!
of course they hardworked for ther positions, they could had better beggining or worse but only hard work matters right?
As i said. None of my work matters, i worked hard for my whole life, studing, crafting, understanding: programming, multiple launguages, enviorements, proper and most effcient algorithms, electronic circuits, mechanical contraptions. I have knowlege about nearly every machine and i would be able to create nearly everything with just access to those tools and few days worth of practice. (im sort of omnibus, know everything) But because had lived in a small town i didnt have any chances of getting the right equpment. All of my electronical projects are crap. Mechanical projects are made out of scrap. Even when i was in high school, nobody was impressed or if they were they couldnt help me.
Now im at university. My projects are stagnant, mostly because of my mental problems. Even my lifestyle took a big hit. I neglect a lot of things i shouldnt. Of course greg, you should go out with friends! You cant dedicate 100% of your life to science!
I fucking tried. All of them are busy or there are other things that prevent that... So no friends for me. I even tried doing something togheter! Nope, same reasons or in most cases they dont even do anything...
Science clubs? Mostly formal, nobody has time, tools are limited unless you designed you thing before... (i want to learn!, i dont have time to design!), and in addition to that i have to make a recrutment project... => lack of motivation to do shit.
The biggest obstacle is money. Parts require money, you can make your parts but tools are money too. I have enough to live in decent apartment and cook decently as well but not enough to buy shit for projects. (some of them require a lot or knowlege... and nobody is willing to give me the second thing). Ok i found a decent job oppurtunity. C# corporation, very nice location, perfect for me because i have a lot of time, not only i can practice but i can earn for stuff. I have a CV or resume just waiting for my friend to give me the email (long story, we have been to that corp because they had open days and only he has the email to the guy, just a easier way)
But there are issiues with it as well so it is not that easy.
If nobody have noticed im dedicated to the science. Basicly 100% scientist that want to make a world a better place.
I messaged a uni specialist so i hope he will be able to help me.
For long time i have thought that i was normal, parent were neglecting my mental health and i had some situations that didnt have good infuence on me as well. I might have some issiues with my brain as well, 96% of aspargers symptoms match, with other links included. I dont want to say i have it but it is a exciuse for a test. In addition to that i cant CANT stop thinking, i even tried not thinking for few minutes, nope i had to think about something everytime. On top of that my biological timer is flipped. I go to sleep at 5 am and wake up at 5pm (when i dont have lectures).
I prefer working at night, at that time my brain at least works normaly but i dont want to disrupt roommates...
And at the day my brain starts the usual, depression, lack of motivation, other bullshit thing.
I might add something later, that is all for now. -
The saddest and funniest side of our industry is (atleast in India): someone works hard and makes it to the best colleges, do great projects on AI, ML; get a good score on Leetcode, codechef; gets a job in FAANG-like companies...
Changes colors in CSS and texts in HTML.
And, why is there so much emphasis on Data Structures and Algorithms? I mean, a little bit is fine, but why get obsessed with it when you never write algorithms in production code?
Now, don't tell me that, we use libraries and we should know what we are doing, no, we don't use algorithms even in libraries.
Now, before you tell me that MySQL uses B-tree for maintaining indexes, you really don't need to solve tricky questions to be able to understand how a B-tree works.
It's just absurd.
I know how to little bit on how design scalable systems.
I know how to write good code that is both modular and extensible.
I know how to mentor interns and turn them into employees.
I know how to mentor junior engineers (freshers) and help them get started.
Heck I can even invert a binary tree.
But some FAANG company would reject me because I cannot solve a very tricky dynamic programming question.4 -
Fellow Deviants, I need your help in understanding the importance of C++
Okay, I need to clarify a few things:
I am not a beginner or a newbie who has just entered this community...
I have been using C++ for some time and in fact, it was the language which introduced me to the world of programming... Before, I switched to Java, since I found it much better for application development...
I already know about the obvious arguments given in favour of C/C++ like how it is a much more faster and memory efficient than other languages...
But, at the same time, C/C++ exposes us and doesn't protect us from ourselves.. I hope that you understand what I mean to say..
And, I guess that it is a fair tradeoff for the kind of power and control that these languages (C/C++) provide us..
And, I also agree with the fact that it is an language that ideally suits our need, if we wish to deal with compilers, graphics, OS, etc, in the future...
But, what I really want to ask here is:
In this age and times, when hardware has advanced so much, where technically, memory efficiency or execution speeds no longer is the topmost priority... These were the reasons for which C/C++ was initially created...
In today's time, human concept of time matters more and hence, syntactical less complicated languages like Java or Python are much more preferred, especially for domains like application development or data sciences...
So, is continuing with C++, an endeavour worth sticking with in the future or is it not required...
I am talking about this issue since I am in a dilemma about the use of C++ in the future...
I would be grateful if we could talk about keeping AI, Machine Learning or Algorithms Optimisation in mind... Since, these are the fields in which I am interested in...
I know that my question could have been posted in a better way.. But, considering the chaos that is present in my mind, regarding this question doesn't allow me to do so...
Any kind of suggestion or thoughts would be welcome and much appreciated...
P.S: I currently use C++ only for competitive programming or challenges...28 -
I am beyond pissed at my Machine Learning class in college. you would think an advanced topic in Computer Science would require some prior knowledge of the field, but apparently not. A quarter of the class has ZERO programming knowledge, and the professor is basing the class around that. I took this course to learn how to CODE Machine Learning algorithms, not spend weeks upon weeks on learning how to calculate probabilities...2
-
Just found this on Reddit
"I used to think that everybody should learn programming. When I first started learning –thinking about how to organize the world in terms of data structures and algorithms– I thought, "Wow, this is such an amazing way to organize information. Everybody should learn to do this!"
I don't think that anymore.
I think there has to be something seriously wrong with you in order to do this work. A normal person, once they’ve looked into the abyss, will say, “I’m done. This is stupid. I’m going to do something else.” But not us, ‘cause there’s something really wrong with us."
Douglas Crockford1 -
5 years of leetcode with no progress. I'm giving up.
First some background, I have an undergraduate degree in computer science and one and a half years of professional coding experience which ended when I got fired for performance issues. I have worked diligently at Leetcode for those 5 years (exceptions occurred when I got ill). I have been personally coached by a google software engineer for months. I have done and given 100s of mock interviews and paid for some to be done by professionals. I have spent 100s if not thousands of hours on Leetcoding and algorithms trying to improve in any way I can imagine. I'm still not good enough.
This all came to a head yesterday when someone on Leetcode made a post about being able to solve every single Leetcode problem in a year within a year while managing a post doc degree and having almost no programming background (link at bottom of post). It made it clear that Leetcode is a game of talent not hard work. The difference between someone like her and someone like me must be noted by the programming community. The majority of people would not ever be able to accomplish that. I dedicated myself for 5 years to Leetcoding almost exclusively and still am no where near what that person has accomplished. I have put in much more work than that person and have gotten much less from it.
I believe the programming community can learn from this contrast. The culture of always trying harder and thinking success stories apply to everyone that is pervasive in programming circles is toxic. The is reality not everyone is lucky enough to be intellectually gifted to succeed and not all hard work pays off. I am proof of that and this is the type of story that needs to be shared and heard too.
I am quitting programming out of humility and recognition of my limitations. It’s ok to give up and wise to do so when you aren't good enough for something.12 -
I’m stressing out man. I can look at let’s just say a sorting algorithm for now. I can look at that insertion sort and I can understand what’s happening, but if you were to tell me I was supposed to be able to write that just based off a description I couldn’t. I need to be able to design and understand algorithms but I don’t know where or how to start. There was some course I was gonna try and see what that does. I put aside JS completely to focus on C# but I’m just stressing out over here. I learned the basics of C# although I feel like I’m learning it wrong but I’m moving on to SQLite and it’s my first Database experience and it’s confusing me and I also don’t know how I’m going to be able to use it for my future applications yet I’m just expecting too much out of me idk I love programming but sometimes it’s a cruel mistress13
-
I just had a thought while thinking about Algorithms and data structures. Honestly other than for technical interviews I have never really had to use specific implementations.
Then I suddenly had a thought... What if I wanted to build my own operating system... I would also learn c++ as well....
I can't think of a reason to build my own OS though... Hm.. What about a programming language? Would that be like a mini-OS, and also need all this stuff?2 -
I am wondering how a #FunctionalProgramming based implementation of a Binary Search Tree would look like?
Has anyone tried it?11 -
Major rant incoming. Before I start ranting I’ll say that I totally respect my professor’s past. He worked on some really impressive major developments for the military and other companies a long time ago. Was made an engineering fellow at Raytheon for some GPS software he developed (or lead a team on I should say) and ended up dropping fellowship because of his health. But I’m FUCKING sick of it. So fucking fed up with my professor. This class is “Data Structures in C++” and keep in mind that I’ve been programming in C++ for almost 10 years with it being my primary and first language in OOP.
Throughout this entire class, the teacher has been making huge mistakes by saying things that aren’t right or just simply not knowing how to teach such as telling the students that “int& varOne = varTwo” was an address getting put into a variable until I corrected him about it being a reference and he proceeded to skip all reference slides or steps through sorting algorithms that are wrong or he doesn’t remember how to do it and saying, “So then it gets to this part and....it uh....does that and gets this value and so that’s how you do it *doesnt do rest of it and skips slide*”.
First presentation I did on doubly linked lists. I decided to go above and beyond and write my own code that had a menu to add, insert at position n, delete, print, etc for a doubly linked list. When I go to pull out my code he tells me that I didn’t say anything about a doubly linked list’s tail and head nodes each have a pointer pointing to null and so I was getting docked points. I told him I did actually say it and another classmate spoke up and said “Ya” and he cuts off saying, “No you didn’t”. To which I started to say I’ll show you my slides but he cut me off mid sentence and just yelled, “Nope!”. He docked me 20% and gave me a B- because of that. I had 1 slide where I had a bullet point mentioning it and 2 slides with visual models showing that the head node’s previousNode* and the tail node’s nextNode* pointed to null.
Another classmate that’s never coded in his life had screenshots of code from online (literally all his slides were a screenshot of the next part of code until it finished implementing a binary search tree) and literally read the code line by line, “class node, node pointer node, ......for int i equals zero, i is less than tree dot length er length of tree that is, um i plus plus.....”
Professor yelled at him like 4 times about reading directly from slide and not saying what the code does and he would reply with, “Yes sir” and then continue to read again because there was nothing else he could do.
Ya, he got the same grade as me.
Today I had my second and final presentation. I did it on “Separate Chaining”, a hashing collision resolution. This time I said fuck writing my own code, he didn’t give two shits last time when everyone else just screenshot online example code but me so I decided I’d focus on the PowerPoint and amp it up with animations on models I made with the shapes in PowerPoint. Get 2 slides in and he goes,
Prof: Stop! Go back one slide.
Me: Uh alright, *click*
(Slide showing the 3 collision resolutions: Open Addressing, Separate Chaining, and Re-Hashing)
Prof: Aren’t you forgetting something?
Me: ....Not that I know of sir
Prof: I see Open addressing, also called Open Hashing, but where’s Closed Hashing?
Me: I believe that’s what Seperate Chaining is sir
Prof: No
Me: I’m pretty sure it is
*Class nods and agrees*
Prof: Oh never mind, I didn’t see it right
Get another 4 slides in before:
Prof: Stop! Go back one slide
Me: .......alright *click*
(Professor loses train of thought? Doesn’t mention anything about this slide)
Prof: I er....um, I don’t understand why you decided not to mention the other, er, other types of Chaining. I thought you were going to back on that slide with all the squares (model of hash table with animations moving things around to visualize inserting a value with a collision that I spent hours on) but you didn’t.
(I haven’t finished the second half of my presentation yet you fuck! What if I had it there?)
Me: I never saw anything on any other types of Chaining professor
Prof: I’m pretty sure there’s one that I think combines Open Addressing and Separate Chaining
Me: That doesn’t make sense sir. *explanation why* I did a lot of research and I never saw any other.
Prof: There are, you should have included them.
(I check after I finish. Google comes up with no other Chaining collision resolution)
He docks me 20% and gives me a B- AGAIN! Both presentation grades have feedback saying, “MrCush, I won’t go into the issues we discussed but overall not bad”.
Thanks for being so specific on a whole 20% deduction prick! Oh wait, is it because you don’t have specifics?
Bye 3.8 GPA
Is it me or does he have something against me?7 -
How i love US companies and their tendency to just lazily send out a programming quiz as a part of the interview.
Look i swear i can make a fucking java bean, i just suck at coming up with algorithms okay?1 -
What do you guys think about people who call themselves programmers after learning few technologies from Onlinecourse’s . I don’t want to call someone programmer who doesn’t know very important and useful concepts called data structures and algorithms.2
-
Me(the first day fo spring semester): Data Structures and Algorithms shouldn't be too hard of a class! This will be interesting!
Me(a couple days into class): I don't understand anything she's saying and the programming problems are in some pretty rough English...why me?!?2 -
One problem for CS education is that the salaries for academia are so low compared to industry that if someone is even vaguely competent, they can at least double their income by working a 'real' job. Now this may be different at higher levels of colleges but generally those folks are such bullshitters they wouldn't last outside of academia.
As what to improve?
Depends if it's a research or vocational course.
For vocational; heavy on group projects, common tools, methodologies and architectures. All demonstrated in something like c#/java/python. And one project must have a web app (db, app layer and JavaScript from end)
Basic knowledge of algorithms, runtime analysis (O notation) and some data structures and you're an instahire.
For research, go wild. Deep dive into the math, algorithmic side. Read up lots of research papers. Try out different programming paradigms. You would aim for a career in academia, AI, quant finance etc...2 -
ok, fuck people. i mean the people who talk about things that are a big deal. you don't need to take a course in html/css to build a website, you need documentation.
people act like programming languages are a whole separate literacy. they're not. it is not a big deal, nor an accomplishment of any significance, to learn any language to a basic extent. variables, control flow, functions and scope should not be considered challenging topics, and people should stop bragging about them. i'm pretty sure this is because programming is new. as people, i think when something is new we tend to think of it as more complex and harder to understand. basic programming is not that.
ok that was a tangent from my real point. college is a scam. anyone can learn anything from books and the internet. any time you want to learn about something, go to google, and search "${my topic} site:*.github.io" and you'll have a page about that topic written by someone who is knowledgeable and passionate of the topic. colleges don't teach people how to think like these books/websites do. and i'm fucking sick of people who'd rather see a degree then a portfolio. fuck them shits bro. i can distinct my smart friends because my smart friends speak logically and enjoy becoming smarter. i would take the kid who watches aerodynamics videos on youtube and then built a plane over a kid who studied and got a five on his ap physics exam. watching then doing is better learning than watching and repeating. after all, creativity is not at all measured in our grades, and i'd like to argue that sometimes intelligence isn't even measured. i mean, people can say they're good at math, but the kids who talk about fibinnoci numbers and why there can never be two primes more than 7 (i if i remember properly) integers apart or the ones who prove cryptographic algorithms. i guess what i'm trying to say is the dumb kids aren't dumb and the smart kids aren't smart (well not that) but kids who are passionate and just do something instead of waiting for their degree to do the same thing are the best and brightest. i forgot what i was talking about. sorry it is almost 2 am and i am intoxicated , and i don't believe i got my point across very well either.7 -
After 5 frustrating days, I have my laptop running again. Just in time for a data structures and algorithms exam.
TL;DR: driver issues aren't fun.
It all started on Friday, after the creators update. I was doing notes on lectures, and Windows crashed. I thought not much of it, it was just a "random" crash. I'd gotten a similar crash before, but I didn't think anything of it. This time was different, again it was my touchpad drivers that caused the issue, but this time a restart didn't work. I couldn't boot into Windows. I had to roll back to the last recovery point, effectively undoing the update.
This was fine, and fixed the issue, until Windows automatically updated my touchpad again, after me previously changing the driver. Another restart later and I couldn't boot. Time to roll back to recovery, right? Wrong. My drive had somehow, corrupt most of the Windows files.
And so, starts the journey of dismantling my laptop, changing the hard drive and putting it back together, a process that took 3 days due to not having the correct tools originally, and a late delivery.
(I could have rolled back to my backup system image, but that was before the creators update, and would have essentially postponed the issues I was having)
Finally, I managed to get Windows loaded from boot media (thankfully, they seem to tie your Windows licence to your account now) and am currently in the process of regaining all my lost files (which I have to pull from a system image, so it's a lot of digging through compressed files).
On a positive note, things are running well, and the faster hard drive (7200rpm vs 5400rpm) is a nice upgrade. And the touchpad drivers (the same one that kept crashing) haven't caused any problems since.
Now at least, I can get back to programming :D1 -
Lots of good suggestions up in here.
My personal prefference:
Such as there are governing bodies indiciating how a programming language evolves and a web consortium...there should be a computer science one. That dictates fundamental approaches covering everything that belongs to this wonderful branch of science. Everything from math to differenr scientific branches all the way down to turtles. And for it to be standarized and updated. Indeed, if you want to spend your entire existence gobbling js in the form of web sites then that is fine, but you should have sufficient knowledge to branch out into more academic pursuits if required.
Also, updated tools would be better, every aspiring computer scientist shall be able to navigate through all major operating systems and programming environments regardless of their beliefs and or prefferences and schools should provide said environments in their classrooms.
Data Strucrutes and Algorithms should be a must. Software engineering principles should be a must. Calculus, Algebra and Statistics as well as Physica should be a must.
And succesfully navigating over different engineering areas should be a must.
Not to cleanse the industry. Fuck your elitist mentality. If you think that programming is a sacred art that should exclude people then I really hope you fucking disapear from existence. No, not to cleanse. But to expand the industry and maybe show people that there is more than fucking around between node modules or gemsets.
Peace pendejos
**drops your mom's fatass...i mean mic** -
Reading CLRS ~> Spend half hour reading how to cut rods to profit the most... I love Algorithms 😍😍😍😍
-
Did I get old or did I just finish plucking all the low hanging fruit?
When I started on a programming journey about a decade ago everything feel exciting and I learn a lot of things per day (variable,loop,method,class,---etc)
Now a decade later I am more concern with the overall system design,algorithms usage (Big O Notation),how reliable the system it,and how the configurations are set up and how easy is it to change them.
I now notice that I don't really learn anything learn new.Everything feel the same.
Want redundancy? Use more server
Want faster performance? Make a parallel system.
Want program to run on low end device? Think about how memory and storage will be used in system.
Is this a stage everyone went through like puberty? or I am just having a mid life crisis?
PS : I haven't even reach 30 yet but I feel too old.4 -
Not so much a problem with the way CS is taught, but I think it's a problem that a lot of people put emphasis ONLY on programming (and maybe data structures and algorithms) and ignore things like Computer Architecture or Theory of Computation.
Most of the CS syllabi I've seen are built very well, but many students (and some teachers) seem to ignore a bunch of subjects because they don't contribute to making them "hireable". -
What do you guys think about competitive programming, how does it impacts your programming in the long run?
I feel depressed when I take more than enough time to complete a competitive programming challenge marked as "Easy". 😥1 -
So... Portugal already have CS classes for almost 20 years. Don't know what they teach now but everyone would know how to use windows, word and excel (specially kids without computers). My course was computers (what was called back then) and we spend half an year doing logic programming in paper and algorithms...
Any class that teaches programming should always start with logic programming, because you can apply it to any language...
Example: my latest programming class was 3 years ago, I did a CNC course (to work with machines that make molds... Think a 3d printer that cuts steel instead of pushing polimers) and my first question was :don't we start with logic programming or algorithms? The teacher first teased me... Then asked what is logic programming....
Resuming... At the end I was the only one who could use functions and variables... (check g-code and heidenhein, you'll get it).
Other then that I was the only one who got a job working cnc machines, everyone else that also got a job whent for the manual labor part (the molds are finished by hand)...
So... My thoughts... Any CS class that teaches programing should start with logic programming and algorithms... That's the foundation to learn any programming language.7 -
Hello everyone
I want to know of the educational systems around the world because I think that my country's educational system is the worst over them all.
In my country schools literally turn students into books & their worth is overwhelmingly decided by their marks. Because of that system students don't try to learn anything outside of school program. Currently I am suffering from that because I can't keep up with my school program & learning programming & algorithms for competive programming at the same time.
Sorry for my bad article & my bad English 😢.8 -
I just learned C and I have created some projects like Parking System and Library Management System. My problem is I don't know mathematics and I want to learn DataStructures & Algorithms and become pro in it. In the whole September I will still be focusing on C and create more projects. I have started learning Mathematics today from High School level to College level. I thik maths will take 1 year to complete. After September in the October I want to start learning C++ and finish C++ till the end of Dec 2019. I want to know that do I have to first finish my maths learning which will take 1 year then I should start learning Data Structures and Algorithms? As I said I want to become a professional in Algorithms. I think its not possible to learn DS&A yet I have to wait 1 year till I finish learning my Maths. I can't do more with C & C++ without knwoing DS&A? If I started learning DS&A with C++ in the future then I can't become good at algorithms? I want to do competitive programming and be at Top 1 of Hacker Rank and other sites like this.7
-
This is more of an essay than a rant. TLDR at the end. I simply can't choose from all the shitty lecturers I've had, so I'm going to have to go through them one by one. But of background. I'm currently in 7th year of college, I did a multimedia degree in 2 years, a intro course to Software Dev and I'm currently in my final year of my Software Dev degree. So let's start.
Intro Software Course
- we had a database module, which was thought by, I shit you not, the head of the psychology course in the college, she attempted to teach us Databases using access. And not even using SQL, using access GUI components and it's query builder. Need I say more?
1st year software dev
- We had a networking module, the guy that taught the labs, he literally didn't say more than 12 words the entire 12 week semester, his answer to any question you asked him was a grunt and "research it"
- We had a psychology module, I have no fucking idea why, but instead of learning something useful we were told to read this and get in touch with your feelings...
- database module. Yes we actually did SQL here, 12 weeks of select statements and normal form, talked about by a guy in a monotone voice, who sounded like he was contemplating bringing in an assault riffle some day. Also instead of using MySQL he decided to use Ingres. Why I will never know.
2nd Year Software Dev
- We had a module called Algorithms and Data Structures. The lecturer gave us problems she couldn't solve. Simple problems. She was also crazy. Absolutely nuts.
- Object Orientated Programming. I had this lecturer for 3 semesters up until 3rd year. This guy did COBOLT in college, graduated in the 70s or something and went straight into teaching, he taught us Java for nearly 2 years. He literally copied and pasted texts from PDFs and read through them in class. He told myself and another guy at one stage he really didn't care, and was just counting down the days to his retirement.
- Databases again, different lecturer from 1st year, taught us for 2 semesters (24 weeks) and somehow managed to teach us nothing.
3rd Year Software Dev
- software engineering.. This is where the biggest cunt I've ever met was introduced. He arrives into class 15 minutes late every time without fail, talks shit about stuff that has no relevancy to the topic at all, tries to turn everything into a rugby metaphor and every time you ask a question he somehow dodges it and swiftly changes topic. This cunts past profession? A Project Manager. Fucking typical. This dickhead has also thought me 2 other modules.
4th yr Software Dev
- El cunto mentioned above for 2 more modules. Need I say more.
- real time systems, this module took the piss, the module was written by the lecturer which is what earns his space here. Assignments given to us, which required more time to do than we had in labs so we had to work at home, the problem we that is we were using an obscure RTOS called OS9 which would only work on the college computers. When brought to the lecturers attention he just said "figure it out"
Internet of Things - There was 2 lecturers, each lecturer seemingly working off a different plan, one week you'd have one lecturer, the next would be the other one going on about something completely different and unrelated to anything else we'd done.
Some lecturers didn't even make this list as I couldn't be bothered trying to think back about how shit other ones were. These were the ones that always stood out in my mind.
My main take away point from this is that you go to college for the paper which says you have a degree. Learning things that are going to benefit you in a career is up to yourself.
TLDR; 90% of my college lectures were shit. You need to learn useful stuff yourself.1 -
I made a serious mistake that is to start directly a programming language without mastering the algorithms, because finally, without a good knowledge of Algorithms we will never be innovative in this field, that's why I reinitialize myself and I take a step backwards to start the algorithms right and master them well.
Your advices please. -
I don't know about you, but ever since I joined devrant I started learning JavaScript frameworks (because everyone talks about it) but I gotta tell you I am not a fan: I prefer programming algorithms and solve ctfs(deep into this). Who's with me?1
-
Competed in my first Competitive Coding contest on Codeforces. I could barely solve 1 question, and even in that I couldn’t got error in some pretexts. Still I was satisfied that I got the algorithm right.
But how the fuck are the top coders reading the problem and submitting the solution within 3 minutes !2 -
Help needed!
I have learnt the basics of programming languages such as C and Python but have not learnt Algorithm and Data Structures in any exclusive way. Although we were taught little about algorithms in the class. So is it a good idea to learn these topics now from any online courses or MOOCs?4 -
Craziest prep for interview :
Step 1 : Given sufficient time for the scheduled interview by any company, start by searching "How to prepare for Google interviews". Awe at the information before you and get all pumped up to jump in.
Step 2 : Starting with Algorithms, study each one and try not to mix any of them in confusion. In case you are stuck in whiteboard coding, close your eyes, take deep breath and visualize Don Kunth. If that doesn't help, well you are ruined anyway.
Step 3: Practice coding without internet connection, till you are able to write code while you talk about how the weather is really great today. Libraries and methods should flow like poetry. SO is sin.
Step 4: The X programming language which you added to your resume because you can write Hello World, head over to Wikipedia and read more about it just in case.
Step 5: Read some xkcd comics so you can impress the interviewer with some humor. You can try Dilbert too. -
Begin teaching fundamentals much earlier. For me, I learnt Java classes and some fundamentals for it, but more basic programming skills went by the wayside until 2nd year of Uni.
The course we did on logic was good both years, but stuff like data structures and algorithms (sorting, linked lists etc) should be taught first.
Something else that might be useful is maybe not learning Java initially. What annoyed me with that (and I'm sure confused some people) was the amount of
- "Hey what does that mean?"
- "Uhh, don't worry about it yet"
which while it might encourage you to go read about it, is more likely to encourage the opposite, and tend to ask less questions, even when switching language.
I can't say for other universities, but I think a larger focus should be on gaining skills in the field, rather than becoming employable through doing employability things.
I know plenty of second year students that still couldn't have completed our first semester first year assignment, which was essentially some object manipulation wrapped up in a few classes and a basic console I/O.2 -
(I'm not completely sure of what I'm saying here, so don't take this too seriously)
Settling on a language to write the api for ranterix is hard.
I'm finding a lot of things about elixir to be insanely good for a stable api.
But I'm having a lot of gripes with the most important elixir web framework, phoenix.
Take a look at this piece of code from the phoenix docs:
defmodule Hello.Repo.Migrations.CreateUsers do
use Ecto.Migration
def change do
create table(:users) do
add :name, :string
add :email, :string add :bio, :string
add :number_of_pets, :integer
timestamps()
end
end
end
Jesus christ, I hate this shit.
Wtf are create, add and timestamps. Add is somehow valid inside the create, how the fuck is that considered good code? What happens if you call timestamps twice? It's all obscure "trust me, it works" code.
It appears to be written by a child.
js may have a million problems. But one thing I like about CJS (require) or ESM (import) is that there's nothing unexplained. You know where the fuck most things come from.
You default export an eatShit() function on one file and import it from another, and what do you get?
The goddamn actual eatShit function.
require is a function the same way toString is a function and it returns whatever the fuck you had exported in the target file.
Meanwhile some dynamic langs are like "oh, I'll just export only some lang construct that i expect you to specify and put that shit in fucking global of the importing file".
Js is about the fucking freedom. It won't decide for you what things will files export, you can export whatever the fuck you want, strings, functions, classes, objects or even nothing at all, thanks to module.exports object or export statement.
And in js, you can spy on anything external, for example with (...args) => debugger; fnToSpyOn(...args)
You can spoof console.log this way to see what the fuck is calling it (note: monkey patching for debugging = GOOD, for actual programming = DOGSHIT)
To be fair though, that is possible because of being a dynamic lang and elixir is kind of a hybrid typed lang, fair enough.
But here's where i drop the shit.
Phoenix takes it one step further by following the braindead ruby style of code and pretty DSLs.
I fucking hate DSLs, I fucking hate abstraction addiction.
Get this, we're not writing fucking poetry here. We're writing programs for machines for them to execute.
Machines are not humans with emotions or creativity, nor feel.
We need some level of abstraction to save time understanding source code, sure.
But there has to be a balance. Languages can be ergonomic for humans, but they also need to be ergonomic for algorithms and machines.
Some of the people that write "beautiful" "zen" code are the folks that think that everyone who doesn't push the pretty code agenda is a code elitist that doesn't want "normal" people to get into programming.
Programming is hard, man, there's no fucking way around it.
Sometimes operating system or even hardware details bleed into code.
DSLs are one easy way to make code really really easy to understand, but also make it really fucking hard to debug or to lose "programming meaning".7 -
Really wish there was a site that contained a library of fundamentals of development processes like basic networking, specific game mechanics and the such.
I don't mean show code but explain some of the maths and algorithms that go into the programming itself.
If I had the time I'd build it...5 -
Books.
Do you guys know a good book for professional PHP 7 programming, especially OOP, concepts, design patterns, abstraction, algorithms, security and data structures?
Please not that beginner stuff, I want to dive deeper into PHP 7 😁
Maybe in German or English 😋3 -
I love the logic that underlies algorithm. But nowadays I fear that this is almost disappeared, now programming a software is 5% logic and 95% read system specificactions, documentation, implement third part solutions, think about who developed the system thought it had to be and rant because you don't understand it. I like to solve math problems using algorithms rather than deal with user interactivity, for example. Yes, all this is pointless, but sometimes I miss the exercises that I did at school or in "IT Olympiad"
-
I was thinking to read some books on algorithm and mathematics required in programming, especially for CP. After some searching I got across some books that are considered great in the field. Among the books, 'Introduction to Programming by CLRS', 'Algorithms Design Manual by Steven Skiena', 'Concrete Mathematics by Donald E. Knuth' and 'The Art of Programming by Donald E. Knuth', in which order should I read them? I've already started reading CLRS as it would be required in my college course too.5
-
I was in Chemical Engineering and had a class about algorithms. The teacher barely knew about C but learned some basic programming. Afterwards I switched to Systems Engineering and learned Java. I feel old... xP
-
I was taking a look at my past rants and I came across this one from not so long ago: https://devrant.com/rants/3646525/...
TL;DR: I said I was happy about my new internship because I was going to work on backend and it had pretty good pay for an intern. I also mentioned it was too good to be true, so there had to be a catch.
Welp, after almost 4 months, here's how the "great" job is going:
- Even though I was hired as a backend developer, I basically just did mobile for 2 months and a half and now I've been doing web frontend for the past month.
- I found out I'm actually being underpaid (like, at best I'm earning 50% of what I should).
I can't complain much though, it's my first job ever and I got it at the 2nd semester in CS without prior professional experience. But still, it's not very motivating seeing friends that started learning programming from scratch a year ago and are already being paid more...
Luckily my contract ends in two months and then I'll finally be able to start studying quantum computing and hopefully (in time) I'll be able to write simple "quantum algorithms" or whatever the hell they're called. I also have some projects I want to make (especially one that involves learning C++ 😋).1 -
So, to improve my programming I’m going to work or implementing some algorithms in several languages.
For example, Luhns algorithm in c, c++, and c#.
Can anyone suggest a good place to read up on some common algorithms etc that I can try out?1 -
I am aiming for google, I have some questions regarding to interview process, I choose to proficient myself into development world and data structure and algorithms, But I have almost 0 skills in competitive programming and I don't have any ranking all competitive programming platforms but I really want to work for google, How do I fulfill my goal to work for google and how do I clear google interview process?2
-
DEVIANTS!! NEED ADVICE...
I have been focusing on learning and implementing data structures and algorithms through participating in competitive programming sites...
Whenever I face an issue and struggle to find an answer (which is more often than not), I ask the forum about the fundamental principles involved in the question...
I avoid looking at the solution, as much as possible.. And, when I do look at them, I still question the author of the code about the reasoning behind a particular section of code which I don't understand...
I don't wish to copy and paste code, but sometimes, I wait for days on end, but I don't use the code until I receive an answer...
Is this the right way or are there any other way which I could implement to strengthen my algorithmic thinking??10 -
Is it just me or are books on algorithms split between being too simplistic and being too detailed to be practical. I read Donald Knuth's book "The Art of Computer Programming Vol.1" read about 10% of it , which is like 3 chapters. I really enjoyed those chapters, Knuth's is such a genius but then the rest of the book was so complicated that the introduction and definition of terms was longer than some whole chapters in the same book. I decided to look for another, found a really good one, but it was analyzing algorithms in Java, sigh, I hardly code in Java so it was exactly easy for me to follow when he keeps mentioning the "comparable" attribute on sorting algorithms. I then got another really followed it till the keep on referencing indicator variables, I had read 3 books now and had not had of these indicator variables. Am sure they are not that common in the Computer Science literature so I was left wondering why I had to learn to analyze code with indicator variables though it was not a standardized in the "Computer Culture" would I be the only one who does this?.. I hence gave up on learning algorithms till I got that book that was just right for me5
-
Top 12 C# Programming Tips & Tricks
Programming can be described as the process which leads a computing problem from its original formulation, to an executable computer program. This process involves activities such as developing understanding, analysis, generating algorithms, verification of essentials of algorithms - including their accuracy and resources utilization - and coding of algorithms in the proposed programming language. The source code can be written in one or more programming languages. The purpose of programming is to find a series of instructions that can automate solving of specific problems, or performing a particular task. Programming needs competence in various subjects including formal logic, understanding the application, and specialized algorithms.
1. Write Unit Test for Non-Public Methods
Many developers do not write unit test methods for non-public assemblies. This is because they are invisible to the test project. C# enables one to enhance visibility between the assembly internals and other assemblies. The trick is to include //Make the internals visible to the test assembly [assembly: InternalsVisibleTo("MyTestAssembly")] in the AssemblyInfo.cs file.
2. Tuples
Many developers build a POCO class in order to return multiple values from a method. Tuples are initiated in .NET Framework 4.0.
3. Do not bother with Temporary Collections, Use Yield instead
A temporary list that holds salvaged and returned items may be created when developers want to pick items from a collection.
In order to prevent the temporary collection from being used, developers can use yield. Yield gives out results according to the result set enumeration.
Developers also have the option of using LINQ.
4. Making a retirement announcement
Developers who own re-distributable components and probably want to detract a method in the near future, can embellish it with the outdated feature to connect it with the clients
[Obsolete("This method will be deprecated soon. You could use XYZ alternatively.")]
Upon compilation, a client gets a warning upon with the message. To fail a client build that is using the detracted method, pass the additional Boolean parameter as True.
[Obsolete("This method is deprecated. You could use XYZ alternatively.", true)]
5. Deferred Execution While Writing LINQ Queries
When a LINQ query is written in .NET, it can only perform the query when the LINQ result is approached. The occurrence of LINQ is known as deferred execution. Developers should understand that in every result set approach, the query gets executed over and over. In order to prevent a repetition of the execution, change the LINQ result to List after execution. Below is an example
public void MyComponentLegacyMethod(List<int> masterCollection)
6. Explicit keyword conversions for business entities
Utilize the explicit keyword to describe the alteration of one business entity to another. The alteration method is conjured once the alteration is applied in code
7. Absorbing the Exact Stack Trace
In the catch block of a C# program, if an exception is thrown as shown below and probably a fault has occurred in the method ConnectDatabase, the thrown exception stack trace only indicates the fault has happened in the method RunDataOperation
8. Enum Flags Attribute
Using flags attribute to decorate the enum in C# enables it as bit fields. This enables developers to collect the enum values. One can use the following C# code.
he output for this code will be “BlackMamba, CottonMouth, Wiper”. When the flags attribute is removed, the output will remain 14.
9. Implementing the Base Type for a Generic Type
When developers want to enforce the generic type provided in a generic class such that it will be able to inherit from a particular interface
10. Using Property as IEnumerable doesn’t make it Read-only
When an IEnumerable property gets exposed in a created class
This code modifies the list and gives it a new name. In order to avoid this, add AsReadOnly as opposed to AsEnumerable.
11. Data Type Conversion
More often than not, developers have to alter data types for different reasons. For example, converting a set value decimal variable to an int or Integer
Source: https://freelancer.com/community/...2 -
Teacher : So today we'll study Dynamic programming.
In DP we solve the problem LCS.
Student : Ok one more algorithm atleast I'll improve my algorithms.
Teacher : (after 10 minutes) so this is how we make the table and find the solution. Now let's move to another topic
-- End of Dynamic Programming --
@algorithms_in_india6 -
I remember reading a book on HTML. I also remember reading about how to implement the towers of Hanoi, which I never attempted to this date. For a most of the time while I was learning I didn't have a computer, so I would still up in a friends room banging away at the keys. I have, however, implemented a lot of algorithms to date. I had to sit up countless nights trying to debug programs, I still do. I think programming is a life long learning situation. There are no off days. I have had situations where all I needed to do was add a missing colon or so. Greatest lesson learned know your syntax, APIs, frameworks etc. And above all follow best practices and move with the times.
-
In my university there was a programming teacher who taught the basics "algorithms and data structures". This was the first subject about programming ever.
He mostly just showed us the idea behind each and sometimes showed a slide of an algorithm or data structure in C. He was also supposed to carry out lab classes where he would teach us the basics of C.
Guess what?
He thought that programming could not be taught in class but only self learned... so he didn't do a single computer lab class the entire year. The rate of students who passed his subject the first time was low. We ended up talking to the dean and the teacher was given an assistant for the lab classes the next year. Fun right?1 -
I started coding as soon as year 5 of school. It was more learning how to write algorithms at first. This gave me the necessary grounds for being able to solve complex problems in my head by splitting them up. Actual programming started out in year 9 when I first met Pascal, younger programmers probably don't even know what it is(I'm 20 and I say that) 😂. Then I moved on to C and C++ in the following year and that made me realise that all languages are really similar.
-
How many of you have formalized knowledge in computer science theory? Do you find yourself using that knowledge in your daily engineering life? For example, knowing random search algorithms, or obscure data structures. I ask this because of the modern "technical interview" trending towards discrete math instead of actual programming ability. Instead of coding projects I care about or reading research papers, I'm just doing discrete math problems to prep for recruiting. While it's not the worst thing to do I just wish there was a more direct way of interviewing a person's engineering abilities.1
-
I feel compelled to figure out how to use software in a gaming setting to teach skills like CS and Math. But do it in a way that is fun and not feeling like a "math game".
I want to spend more time learning about algorithms, architectures, design approaches, etc. Writing such a game would force me to understand what I present in a very intimate way.
I can see a way to create algos in game using very visual ways. Then allowing someone to make superstructures combining those algos to solve tasks.
I was inspired by how some algos require data to be sorted a certain way before starting. As the algo as a side effect resorts the data to know when it has completed. I realized if an algo is generic enough it can be combined just like functions or objects.
I also want to learn math better, especially in conjunction with code. So making a platform for learning these would be a lot of fun. I would definitely want both visual and textual interfaces to the code. I have to imagine a real programmer being frustrated with a visual interface unless it was really compelling.
I find it interesting that a lot of algos are represented visually when trying to show how it works. I realize some probably cannot be visualized so easy though.
I also want to use software like this to teach someone to think more deliberately and help people be more disciplined in their thinking. I know I could use this.
I have a secret goal of being able to use such software to help someone become a math/programming wizard. I don't know if this is achievable, but having exercises that help solidify root concepts in a fun way would be really useful IMO. -
Started with flow chart programming in a robotics club after class in middle school.
Joined another club where I spent the first 3-4 weeks learning Python and JS basics on freecodecamp.
Programming classes on algorithms and frameworks in high school and college.
Beyond that, mostly reading documentation, stackoverflow and some udemy courses. -
My first year of a 2 year course our teacher had only taught us 2 theory topics of 6 and hadn't begun to teach us the other 2/3 of the course which was programming. The only reason he took so long was because he wanted everyone to understand the topic before he moved on which meant waiting for the people who shouldn't of been allowed to take the subject because they never paid attention and showed no interest in the subject. But he refused to move on without them.
To drag those 2 topics out more one of them was algorithms. At the time he had sprained his wrist shadow boxing and instead of preparing them before hand to give us some help he would type them out while we sat and watched wasting half the lesson. Then a month or so into our second year he left leaving the other teachers to make up for everything he failed to cover with us. -
I had a conversation with a friend.
I : since most modern programming languages handle most of the algorithms like sorting algorithms for arrays / dictionary or finding shortest path algorithms for path location. Do you think it is still important to learn to algorithms and design since most modern programming languages handle those for you.
Friend : Nope, since it’s already available for you why should you care of how they works since they are already embedded in the programming language itself. If you are a computer scientist yes, you must learn those stuff, but if you are an IT graduate or a mere developer you dont need to learn those stuff. That’s why I am confuse in my college days why did we need to learn algorithm and design.
What is your opinion guys? Quite disappointed with his answer.4 -
Since I lack proficiency in Object Oriented Analysis and Design and Datastructures and Algorithms and this has caused me many problems at work, I must review these.
You'd think you don't need to know the 'dry theoretical matter' as they say, oh but you do.. I found out first hand at one of my tougher programming jobs where you have to create everything manually.
And now, looking at my entire first and second year of university courses regarding this matter.. the amount I have to study is enormous. Datastructures and algorithms alone: 1000+ page book + 500+ slides.. and that's only fresh man year! Yep.
I could say there's a way around it but.. I don't really think there is. If I keep just knowing the basic programming concepts, I won't get far. I need to dive deeper.
Until I master this material, it will keep haunting me in programming jobs.
The frustrations of a developer..7 -
Do you guys know of any online course that teaches data structures, algorithms and other competitive stuff, but which is like, semi-online :
- the course would run for ,say 3 months
- the instructor would add videos/livestream on a specific day/days and give the assignment questions/tests
- assignment questions/tests are expected to be completed before the next video, where these questions , along with new concepts are discussed?
I hate those udacity/udemy courses where you have a large playlist of videos open up as you pay. It makes me loose half of my motivation since i know i can watch them later and end up watching them never. Plus there is no competition to motivate
I want this as my job does not allows me to stay sharp in competitive programming and it would be nice to remain in touch with that( without being too much stressed about it).2 -
TLDR: Opinions of area of interest between these subjects (specializations):
1 Algorithms
2 Programming languages
3 Business analytics
4 Pervasive computing
Hi, I'm about to choose specialisation of my software development masters. I'm almost certain what I'll go with (algorithms), but I wondered what other people thought and would choose if they had the opportunity. I'm still not too experienced in all of these areas, making the choice a bit hard :-)2 -
I am still learning programming and coding. Would some of you like to make a group and understand how algorithms work or how programming works as a whole?
Lets develop and grow together I guess. Interested people dm
insta : lucmonstar6662 -
any advice/suggestions to intensively brush up on modern C++ and multithreading for an interview that will likely be technical and cover bases like algorithms, data structures, etc?
I haven’t done c++ for awhile since a few courses in college - I did parallel programming and GPGPU on the side, but nothing on a professional level.
I’ve been mostly doing front web dev since I got out of school and C#, so I’ve been more on design/higher level of abstraction in dev and if I am asked things about pointers, memory allocations, etc I would probably draw a blank but I am motivated to no life it hard for the next week to catch up again.3 -
I am feeling a lot doubtful right now.
I am an average undergrad student who has been dedicating efforts in java/Android for most of my college life.
As of now i have decent command over java , launched 2 simple apps on playstore, worked as an android dev intern in 3 companies and make decent medium complexity apps. I will say i am 40-60% down the path of an expert native Android dev.
However apart from Android, am dumb as a stick. I know shit about ai,ml, web dev, js , react, hybrid stuff, and am not very good with competitive programming and system topics ( os, Algorithms, networking, etc)
So this closes a lot of doors for me. I can't apply to some top tier companies as they would either want expert competitive skills or expert Android dev skills.
I had bad experiences with startups which are usually willing take rejected students like me for the post of a droid dev... there is usually low packages , high pressure, and treatment like a slave
So i am very unsure what to do next. I have tried to learn web dev/ ai-ml-data sciences. They are not very interesting to me, but again, what is interest really :/
What should be my focus now?
A) I could be learning competitive and other interview related topics so that i could crack interviews of top companies , and later try to get a position of android developer there.
B) i could focus on become better in Android and start learning things that i don't know like rx, kotlin, etc. I could then hope to crack interview of medium sized app dev companies which would mainly focus on my android knowledge in their interviews
C) i could increase my skill set and learn web dev or ai/ml topics to increase my recruiter pool. It would be like option B, but i will have more medium sized companies willing to take me.
Currently i am in a shit storm. I am about to go into a mass recruiter company in which i have heard would be doing more or less data entry work2 -
While programming is imperative (how to x) rather than declarative (x = y) (mathematics), it deceives me from the idea that I won't have to touch a lot of math.
To my dismay, I now realize that in order for the imperative process to be correct, I have to do immense amounts of declarative thinking (algorithms, proofs,..). That which is written has to work.3 -
Hi.
I know python and javascript and I'm interested in solving algorithms. But I have a problem, that is I don't the algorithm that I have designed is optimum. I mean it has lower order complexity. I want to know if I want to improve my skills, I should solve programming challenges or, start to read data structures and algorithm design?
I should add my ultimate goal is machine learning.5 -
What is your favorite programming language to implement algorithms and data structure?
Or to be more specific, if you write interpreter and compiler, what is your choice of tool?5 -
Is there any way to sort an array in such a way that picking 3 numbers a,b,c randomly from the array and performing a cyclic right shift then place them back in the array??10