Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
Algorithms don't play a huge role in my day-to-day. Certainly, there are algorithms implemented in libraries/utilities I use on the day-to-day, but I don't have to implement/change them on a daily basis. #DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
Algorithms help make efficient software on your day to day projects. In my opinion algorithms are best taught by iterating over many coding puzzles which show off the results on how effective algorithms can be. #devdiscuss
We sometimes think of algorithms as an "introductory" topic, but you can *always* learn more about algorithms. Having a vocabulary of useful algorithms is incredibly valuable in software development.
#DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
I feel like the field would be much more accessible, and maybe resistant to hype-cycles / suspicion from non-practitioners, if we used the words “playbook” or “recipe” or something instead
#devdiscuss
That said, I do have to consider the performance/complexity of an algorithm I implement for my code. This is different than say implement a new binary or depth-first search IMO. If I am looping over a bunch of data, how big is that data? is linear time OK? #DevDiscuss
- Explore-Exploit
- Exponential backoff
A couple types of high-level algorithms I've made good use of lately. I come from a pseudo-self-taught background, so I have a good appreciation for the algorithms I do make use of.
#DevDiscuss
Algorithms around searching tress are worth knowing because they are very efficient when you need them. Breadth-first vs depth-first are two good ones to compare. #DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
- Algorithms are good for technical proof-of-concepts, sequence diagrams of the product and development helpers.
- Djikstra and Shor, for the culture.
- I think it can be easily taught with a natural language approch, like a philosophy course.
#DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
100% agree. Every time I hear the term "algorithm" I think back to my undergrad and CS classes. The reality is that there are different types of algorithms that fit into various places in the stack. It's not all sorting and searching trees and lists. #DevDiscuss
Algorithms are important in the sense that you should be aware of the performance characteristics of the algorithms you use but not per se necessary to be able to implement from memory. #DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
#devdiscuss I see algorithms everywhere. A daily workflow of events invariably has some algorithm firing based on some trigger and sending information of some sort to someone. From automated time based batch jobs to reminders. One merely has to look.
Algorithms are helpful but we don’t need every developer to know them.
The typical ones like sorting are great but built into most languages these days. Teaching them should be about understanding efficiency and good patterns. #DevDiscuss
Algorithms are good to have in your utility belt when it comes to code cleanups and optimizing your code. I always brute force my solution to a problem first and based on time available or it's usablity I'll go back research algorithms or general ways to optimize #devdiscuss
I have the monster book of Algorithms that I have been slowly working through and it is hella educational but not something I would ever intentionally re-roll myself for prod stuff (but love doing it). Knowing those pieces are there helps though #DevDiscuss
I think business logic can be better explained in terms of algorithms. I feel like sometimes we don't get algorithmic enough when thinking about user-centric concerns.
#DevDiscuss
#devdiscuss As a teacher algorithms is one of the first things we have focused on in https://t.co/uOvXc4aKTM. Asking students to critically look @ and think about where they have seen an algorithm work, how does it work, what does it do etc. establishes a personal connection.
#devdiscuss For students to learn new information, something they already know should be used as a bridge/an anchor. So allowing them to explore that helps in them getting a good introduction to the core concepts of writing and managing algorithms.
You should know how tree traversal, search, etc works but you should know where to look up what you need to know rather than feel like you have to memorize everything. #DevDiscuss
You don't just use algorithms every day when you write code, you use also use them in your everyday life.
Your morning routine is an algorithm.
Multiplication is an algorithm.
Making a PB&J is an algorithm.
#DevDiscuss
I strongly believe developers need not learn complicated algorithms for most jobs and tasks.
Learning to google and find what you need if and when you actually need it is an immensely better use of time and space in your head. #DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
My use of algorithms increases the more that I build developer tools and use low-level libraries. Outside of that, I find high-level abstractions to be friendlier for building applications, but there are still use cases for algorithms everywhere. #DevDiscuss
We sometimes think of algorithms as an "introductory" topic, but you can *always* learn more about algorithms. Having a vocabulary of useful algorithms is incredibly valuable in software development.
#DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
For those of us who didn’t get a formal education in CS, algorithms feel super foreign and distant from day-to-day work. I’m very unsure when I’d ever use one, except for possibly in an interview. Would love to face down the beast 👹 #DevDiscuss
Algorithms are my favorite.
First let's define them: they are " a set of precise steps that need no great mental effort to follow but which, if obeyed exactly and mechanically, will lead to some desirable outcome." - from https://t.co/dwGlRMgvmN#DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
For those of us who didn’t get a formal education in CS, algorithms feel super foreign and distant from day-to-day work. I’m very unsure when I’d ever use one, except for possibly in an interview. Would love to face down the beast 👹 #DevDiscuss
You don't just use algorithms every day when you write code, you also use them in your everyday life.
Your morning routine is an algorithm.
Multiplication is an algorithm.
Making a PB&J is an algorithm.
#DevDiscuss
Algorithms are fun AF because they are language agnostic. Once you understand them, they apply to every language and paradigm you will use in the future.
You can used optimized algorithms to optimize *so* many processes.
#DevDiscuss
I think the book Algorithms to Live By is a really great book. Even though it's presumably written for the laymen, I think it's incredibly relevant for software developers of all skill levels
https://t.co/7bRIIXYPaS#devdiscuss
#devdiscuss Agree. Students learn best when examples of their daily lives are documented that way in a step by step routine. They are amazed at how much they manage to do without even thinking about it!
I think algorithms are often classified as math heavy, or all about Big-O efficiency. In some ways we use algorithms informally every day but don’t call them by that name. Maybe if we did they’d feel more accessible to everyone. #devdiscuss
Some of my favorites:
* Binary Search
* Merge Sort
* A* traversals
* Binary search trees
These are super relevant and well used.
At this point, if you want to make some major advancement in CS, create a new algorithm. We don't even know all the prime #s yet.
#DevDiscuss
The fact that algorithms are things that people think are just for interviews and are incredibly intimidating is one of the most aggravating things to me.
Algorithms are cool AF -- don't be an ass in an interview and ruin them for everyone w/ your gatekeeping.
#DevDiscuss
Teach algorithms in simple terms *after people understand CS fundamentals.* They will love them, I promise. I say this as someone whose taught this stuff to a lot of people.
They aren't hard. Don't make them hard when you teach them.
#DevDiscuss
Algorithms are useful to know but I try to avoid getting hung up on the 'formal' definition of them from CS days, but that is harder than it looks. #DevDiscuss
I find it far more valuable to know the big-oh profile of various algorithms (and data-structures) instead of the actual implementation of them. I care that I can test membership in O(1) or find an item in O(log n); not that it uses a red-black tree under the hood.
#DevDiscuss
Teach algorithms in simple terms *after people understand CS fundamentals.* They will love them, I promise. I say this as someone whose taught this stuff to a lot of people.
They don't have to be hard. Don't make them that way when you teach them.
#DevDiscuss
Define "algorithm." Aren't all programs algorithms (i.e. a set of instructions* to follow to solve a particular problem)? #DevDiscuss
*I mean "instructions" here colloquially, not necessarily CPU instructions.
#devdiscuss One of the first things we look at in CS classes is algorithms. I have found that if it is made to look complex than any other knowledge about computing starts becoming amplified. For young minds the idea of connection is key. So keeping it relatable is the way to go.
This should definitely be the priority. If you can think through the efficiency of your code and pick the best data structure that’s the most important piece. And the most applicable for developers. #DevDiscuss
In reply to
@gumnos, @Nick_Craver, @ThePracticalDev
With algorithms and with coding in general, I am a squinter.
I prefer a concept of the general shape/concept of an algorithm over the nitty gritty details. IMO big picture notions win the day. #DevDiscuss
“Greed is good”
Greedy methods very very often end up being the best first strategy. I think that if you’re just setting out on a new problem, greedy is often helpful to consider—when it’s not right, it provides great insight where to look next.
#DevDiscuss
I think you need to really understand the basic data structures before diving into algorithms. Once you are ramped up on those you can really get into the meat of algorithms. Get 1,2,3 under your belt and it becomes simpler #DevDiscuss
I quit coding after data structures and algorithms because I thought that coding wasn't for me.
It wasn't me though -- it was the way it was taught. This is my *shit* now.
Don't 👏 make 👏 things 👏 harder 👏 than 👏 they 👏 are
/rant
#DevDiscuss
Brute forcing code is always the best way to start. Make it more efficient! But don’t perfect it forever, there is a middle ground. Working clean code that hasn’t been optimized to death is the goal! #devdiscuss
Amazing resources!!! Thank you....been meaning to find a cheatsheet! Making myself one as well. Will upload my own as well to help pass on the torch. #devdiscuss
This! Learning data structures gets glossed over for new coders in favor of algorithms because of coding interviews....unless the needed data structure is in the algorithm 🤷🏻♀️ #DevDiscuss
I quit coding after data structures and algorithms because I thought that coding wasn't for me.
It wasn't me though -- it was the way it was taught. This is my *shit* now.
Don't 👏 make 👏 things 👏 harder 👏 than 👏 they 👏 are
/rant
#DevDiscuss
Also worth considering though, does it *need* to scale. Sometimes I find myself overarchitecting a solution that would scale with O(1) performance in the big picture, but has so much overhead that a simple O(n) linear search of the 5 items would be far faster. 🤷♂️
#DevDiscuss
I love algorithms, but I honestly have never implemented any of them in my career. I have however written my own algorithms, that are often inspired by them. Although I hate that I have to remember the classics for interviews cause I always look them up 🤣 #devdiscuss
I didn't quite finish the other work but the code to determine the winner works. No idea if it's terribly optimized, though.
https://t.co/Soo1hybUxt#DevDiscuss
Whoops, adding more.
I have used them in my day to day job -- I took a job that took 15+ mins to run to seconds by using a more efficient data structure and thinking through the Big O efficiency.
This stuff actually *does* matter.
#DevDiscuss
Correct. But the algorithms we’re talking about are exactly that, the algorithms we learn and teach to help people implement more efficient and effective code. Not the perfected library algorithm that people use from a third party #DevDiscuss
As I’ve currently been focusing on learning Functional Programming I’m wondering if algorithms might become more practical.
What do you think @getify 🤔 Can understanding FP make algorithms more common place?
#DevDiscuss
Time for #DevDiscuss 😻
Tonight's topic is ALGORITHMS 🤖
Some jump-off questions:
- Where do "algorithms" fit in with practical day-to-day development?
- Which named algorithms are noteworthy and worth learning?
- How should we teach algorithms compared to other concepts?
In a million item array, in the worst case scenario, a linear search will check 1,000,000 items to see if they are equal to the item you are searching for. In a binary search, that number is 20! That is a huge difference.
#DevDiscuss
And that’s part of why we have these conversations. Vocabulary is important and within the industry we often overload terms, algorithm being a good example. Oh wait, this sounds familiar 😂 #seagl2018 talk. #DevDiscuss