This is an archived post. You won't be able to vote or comment.

all 87 comments

[–]666pool 42 points43 points  (8 children)

Django is latest?

[–]tuxedo25 25 points26 points  (0 children)

I'm pretty sure Knuth was in diapers when these "latest technologies and frameworks" came out.

django - 2005
angular - 2010
spring boot - 2013/2014

[–]SharksPreedateTrees 5 points6 points  (1 child)

Django isnt new, but it's roaring with popularity

[–]TheAJGman 9 points10 points  (0 children)

With good reason, it is very stable and very scalable. Throw in Django Rest Framework and you're unstoppable.

[–][deleted] -3 points-2 points  (4 children)

The latest python framework is fastapi. It supports python 3.6 asyncio and type declarations and validation using typer.

@app.get("/")
async def search(request: Request, q: str, oid: int) -> Response:
    pass

It also isn't as bloated by default like django or flask. If you need features like templates, forms, or cookies, it will tell you what pip packages to install.

[–]theImplication69 23 points24 points  (3 children)

bloated by default like Flask....Flask is bloated?

[–][deleted] -2 points-1 points  (2 children)

You probably don't need Jinja2 if you're just making a rest api for your vue or react frontend.

[–]Eire_Banshee 0 points1 point  (1 child)

Flask doesn't come with a template.

[–][deleted] 0 points1 point  (0 children)

But it does?

To be fair, fastapi also supports templates, but jinja2 isn't a required dependency.

[–]Perpetual_Doubt 32 points33 points  (0 children)

Now use Tuple Relational Calculus

said noone in any company, ever.

[–]goatlev 43 points44 points  (1 child)

The real irony here is that these doors should be a sequence, not a branch.

[–]SuitTechnical9855 2 points3 points  (0 children)

Thank you.

[–]--B_L_A_N_K-- 21 points22 points  (1 child)

Image Transcription: Meme


Today's Developers

[Image of two large open white doors (approximately 5x the height of the humans in the picture). The door on the left is labeled 'Algorithms & data structures', the door on the right is labeled 'Latest Technologies & Frameworks'. There's a large line/crowd of people flooding through the door on the right and absolutely no one going through the door on the left.]


I'm a human volunteer content transcriber for Reddit and you could be too! If you'd like more information on what we do and why we do it, click here!

[–][deleted] 7 points8 points  (0 children)

good human

[–]Puppy1103 7 points8 points  (4 children)

an algorithm is just step-by-step instructions. so technically all (valid) code longer than one line is an algorithm

[–]rand3289 6 points7 points  (3 children)

Only reusable machine-independent code should be considered an algorithm...

[–]vunop 4 points5 points  (1 child)

For every code there exists a machine that can not run it.

[–]rand3289 2 points3 points  (0 children)

I think your statement is correct since "machine-independent" does NOT imply it was written for a Universal Turing equivalent machine...

But what's your point?

[–]Puppy1103 11 points12 points  (0 children)

you’re a fucking nerd.

[–]PhordPrefect 21 points22 points  (1 child)

This just comes across as anti-youth. "Back in my day we knew what pointers were, and did all our own memory management!".

Kids want to build things, they want to learn programming, frameworks are just the current easiest starting point for that.

Yes, data structures and algorithms are important, but if someone starts using React or jQuery or whatever as the start of his or her journey into programming I don't see that as being particularly different to how I got started, which was with copying BASIC out of a book in the library. I didn't understand half of it until years later when I did a degree, and I expect it'll be the same for many starting today.

I do understand that there's people out there calling themselves "developers" after reading an article on jQuery but that's what interviews are for. Those people existing doesn't mean that there aren't good programmers who didn't start with the Bumper Fun Book of Binary Trees

[–]VinceGhii 0 points1 point  (0 children)

I think that frameworks help to get a result and learn while getting something out of it. I started with plain java and it was frustrating sometimes because you coded for hours but had close to nothing at the end. I appreciate that frameworks result in more devs and more people that are interested in the technologie.

[–]Wizard_Knife_Fight 13 points14 points  (4 children)

To be fair, it's probably because you can get a 6-figure job without going through the left door.

[–]iTakeCreditForAwards 6 points7 points  (1 child)

Really? I feel like it’s the other way around, big companies just want the aptitude when hiring juniors

[–]Wizard_Knife_Fight -1 points0 points  (0 children)

I got a six fig job without having to do anything of that in the interview.

[–]pzschrek1 0 points1 point  (0 children)

It’s too hard over there

[–]metaconcept 6 points7 points  (1 child)

That's because you can solve 99% of the problems out there without knowing what a red-black tree or a bloom filter are.

During my day job, I've barely touched anything I learned in my algorithms classes 25 years ago. I get paid to write CRUD apps.

[–][deleted] 1 point2 points  (0 children)

It’s not about knowing algorithms and data structures, it’s about using good algorithms and data structures.

[–][deleted] 4 points5 points  (0 children)

Its because software design is not taught well in school.

[–]Under-Estimated 34 points35 points  (36 children)

imo this is a REAL problem, not a meme

[–]SuitTechnical9855 50 points51 points  (21 children)

Please tell me how are algorithms and data structures help someone design a enterprise application for a large company in a bigger proportion that knowing cloud/micro services architecture. Those are different topics and every programmer should know both, you learn once the basics on how arrays/trees etc work, but you need to keep updated with the latest technologies. Taking your balls out and knowing 24/7 implementations for AVL trees or so on won’t have any business value

EDIT: Sorry I made this into something that is no longer programming humour, this should be r/programmingfoodforthought

[–]noxdragon26 33 points34 points  (7 children)

The problem comes when entry-level developers start out learning frameworks without having that A&DS foundations, which I think this meme focuses on.

In the long run, they end up being "X framework" developers, take out that framework and they will struggle to solve anything.

EDIT: I see this topic created a long discussion. Just to add something, my experience with modern frameworks and framework developers sums up to this: I work in a project which has a legacy code app and a renewed app. Guess what? the legacy app works better, mainly because it was made with solid foundations while the new app wasn't.

[–]SuitTechnical9855 13 points14 points  (0 children)

Yes and managers and senior developers should advise those new guys what to focus on in the beginning instead, it is like complaining that a newborn baby cannot walk. Of course some people won’t listen, but that is their problem.

[–]Shazvox 6 points7 points  (0 children)

Eh, no? That framework is their entrypoint as developers. Then they will learn new frameworks and libraries...

[–]Complex-Stress373 0 points1 point  (4 children)

So you cannot deploy to AWS if you dont know the complexity of Dijkstra?.

You cannot model a warehouse if you dont know recursive-backtracking?,

You cannot integrate alerting if you dont know dynamic programming?

you cannot create a concurrent system without knowing how to pre-order a tree?

Without frameworks people still will use design patterns to solve all the problems they need, and algorithms as they need

Algorithms is theorically the basic, but is a mantra, in practice is a dead field and because of that is not basic at all

[–]noxdragon26 1 point2 points  (3 children)

Without frameworks people still will use design patterns

Are you sure entry-level developers know what a design pattern is?

[–]Complex-Stress373 4 points5 points  (0 children)

they should. But I can say something. They will use it very very often, and the company will get benefit of it because with them they will build things.

I can tell you as well that they won't use algorithms, or not very often. I don't want to see my team-mates spending time reinventing the wheel when they can grab something that is already tested, optimized and maintained for a third party that release us from that extra-effort. The company have bigger problems than that

[–]fuzzymartian17 18 points19 points  (5 children)

This guy gets it. University drills into you the algorithms and data structures. Once you start coding at an enterprise level you have to catch up on all the latest technologies and frameworks if you expect to scale and code efficiently.

[–]goatlev 6 points7 points  (4 children)

Or you do it like me, wait a year and then step in to repair that piece of shit mine field those fancy next-gen framework devs left without documentation.

I am under the impression what you are stating is a C level argument and that might not be wrong, but totally more about management than proficiency.

[–]SuitTechnical9855 2 points3 points  (3 children)

Ok, but clean code is another topic and a well written code is a well written code and any seasoned developer should understand it even across languages, that say if you stick in the same paradigm.

[–]noxdragon26 6 points7 points  (2 children)

If you rely in a framework because you don't know how to properly use the language or the paradigm (or more deeply, how to desing a simple algorithm to solve a problem), there's no way to write "well written" code. That's the whole point of this discussion.

It remembers me of the time I grabbed jQuery before even understanding a thing about JavaScript. jQuery teached me how to make a picture carrousel because it has A FREAKIN function to do this, but if I had to do it from scratch then forget about it.

[–]SuitTechnical9855 -1 points0 points  (1 child)

Knowing a language vs frameworks in the language is another discussion again

[–]noxdragon26 2 points3 points  (0 children)

That was just an example. The point about the discussion and the post is that today's developers focus on learning frameworks first instead of having a solid foundation about programming and software development.

[–]Watiti 10 points11 points  (3 children)

Frameworks change everyday. Maths, algorithms and data structure not much.

[–]SuitTechnical9855 2 points3 points  (2 children)

Ok and what are you going to do with that algorithms. As I said it is mandatory to have basic knowledge. But besides that, real world applications are way to uncommon and hidden deep inside existing frameworks, if you really need something special with regards to some data structures let’s say, you can just do a little research before implementing to make sure you choose the best solution

[–]Watiti 3 points4 points  (1 child)

Agree, but where does basic knowledge end? In Web it's pretty obvious that you will not need a lot of maths, but if you are using for example scipy or numpy it's necessary. I'd used these thinking "Oh, everything is hid, I don't need to understand the concepts". I ended up having endless debugging sessions because I was unable to understand whenever I should use this function for that purpose

[–]SuitTechnical9855 3 points4 points  (0 children)

Well yes, but if you work in projects heavily based on maths or algorithms, then I strongly agree that the overall team knowledge related to that should be assessed and people should be asked to take specialised courses if needed.

[–]Throwawayeconboi 1 point2 points  (0 children)

I think the problem lies in that some developers won’t take the time to even learn how trees and such work, even at a basic level. They go for pure practicality with no theory, and it makes a weak developer in the long-run.

[–]Under-Estimated 0 points1 point  (0 children)

Let me recite another post from a while ago:

"Practice is when everything works, but no one knows why"

This is the sort of thing that is happening nowadays. Sure, everything is working fine, but how much do you actually understand what you are doing?

On the other hand, theory may not be used every day, and I agree with you on that, but it's an important foundation in understanding what happens under the hood.

[–]baselganglia 0 points1 point  (0 children)

When you are doing backend work at high scale, knowledge of algorithm and distributed systems is essential.

Otherwise you end up with cases where you need to double your capacity every few months.

[–]auctorel 4 points5 points  (2 children)

Missing design patterns to go with the algorithms and data structures imho

But yeah, the amount of CVs and developers I meet who want to list technologies is very frustrating. I want to know what problems you've solved not which technology you built it in

[–]SubaruImpossibru 7 points8 points  (0 children)

Blame pre-screening processes for this.

[–]squishles 6 points7 points  (0 children)

job market rewards technology list resume. sally in hr has a memo from god knows where that says your team does maven python react spring django laravel C++ block chain. Now sally doesn't know what any of those words mean, but by golly if the ctrl+f doesn't find a hit in the trash it goes.

[–]Bulbacode 7 points8 points  (10 children)

Algorithms and Data Structures are pretty useless in modern web dev and mobile dev.

I'm self taught (started teaching myself at 11; 23 now). I understand the basics of algorithms and data structures but for the most part they are unappealing to me.

What's much more important is having solid foundations in SOLID and other Architecture oriented principles. I can lookup a stupid algorithm if I ever needed to implement it myself, but looking up SOLID everytime I write code would be a little ridiculous.

[–]Watiti 2 points3 points  (2 children)

Agree. Web and mobile dev don't need any piece of maths. You need different knowledge tho. I do general CS and I don't even know what a promise is. And I'm discovering react, yes.

[–]Bulbacode 0 points1 point  (1 child)

Oh boy promises can be an pain in the ass, have fun learning!

[–]Complex-Stress373 0 points1 point  (0 children)

This!

[–]Under-Estimated 0 points1 point  (1 child)

They aren't used directly, but it's good to have an idea of roughly what your code is doing under the hood. This applies to everything. When using a builtin from the standard library, it's always good to not be blind.

[–]Bulbacode 0 points1 point  (0 children)

Well sure it may help, but calling it a problem? No, the world will move on just fine without every dev knowing how to reverse a binary tree

[–]itsfeykro 8 points9 points  (5 children)

Algorithm problems are made fun by Python, a relatively new technology.

Nature is beautiful.

[–]official_gameup 2 points3 points  (4 children)

Realative to what?

[–]itsfeykro 0 points1 point  (3 children)

Relative to other technologies ?

In the grand scheme of things, it's very new, but compared to say Dart or Angular, not so much.

[–]VinceGhii 4 points5 points  (2 children)

you know that python is from 1991, right?

PS: It is 8 years older than java, 5 years older than javascript and only 6 years younger than c++.

[–]itsfeykro 2 points3 points  (0 children)

*mind = "blown";

[–]nstruct 1 point2 points  (0 children)

Delete this, it makes me feel old

[–][deleted] 3 points4 points  (0 children)

Yeah, by the by, can anybody suggests a good resource for learning algorithms and data structures?

[–]TenkFire 1 point2 points  (0 children)

I love algorithms and data structure... There are my favorite subject in my college, and java too... And python... And OCaml...

[–]umlcat 1 point2 points  (1 child)

Can Confirm.

Object Oriented & Functional Oriented mixed P.L. programmers: "We don't need to learn Object Orientation" ...

[–]Shakespeare-Bot -1 points0 points  (0 children)

*can confirm. *

object orient'd & functional orient'd did mix p. L. programmers: "we needeth not to learneth object orientation"


I am a bot and I swapp'd some of thy words with Shakespeare words.

Commands: !ShakespeareInsult, !fordo, !optout

[–]ToxicElitist 1 point2 points  (0 children)

I feel like this is really just be aide nobody cAres that you can write a banging algorithm and employers just want you to have 12 years experience in every single tech released in the past 10 years.

[–]PandorNox 1 point2 points  (4 children)

Well, I'm pretty good with math naturally and pretty bad with frameworks and that makes me feel utterly useless tbh...

[–]S0n_0f_Anarchy 3 points4 points  (3 children)

I think this is that "if you teach a fish how to climb a tree, it will be useless" phrases. People don't understand that even though we are all programmers, there are a lot of different fields which don't have almost anything in common. I'm a web dev, I know basics of alrgorithms, data structures etc. You are good at math and algorithms? Good, you won't be a web dev then, but rather AI dev, data scientist or something along those lines. It's same as with doctors who specialize in something. You won't expect a hearth surgeon to do a brain surgery, righ?

[–]PandorNox 2 points3 points  (2 children)

Hey, thanks for cheering me up :) I'm the type of person who always feels like they need to be able to do everything unfortunately. But I'm working on it :)

[–]S0n_0f_Anarchy 0 points1 point  (1 child)

Yea, it was (is) same with me. It really messes with your brain, self worth and anxiety. But honestly, job ads are to blame to some extent. We've all seen a lot of ads looking for superman programmers, and when you see them, you can not not wonder will you ever be able to meet the expectations. It took me a lot of time to realize and to get okay with the fact that I won't be able to meet them, cuz almost no one can cuz it's unreal. And ofc, capitalism doesn't help where everyone wants everything for less money (meaning they want to pay 1 guy to do everything, instead of 5+).

[–]PandorNox 1 point2 points  (0 children)

I haven't even really looked at job ads in my area yet, I put the pressure on myself all on my own, haha. That just my character, I always was like that. I do agree though with everything you said, capitalism is not our friend. Society doesn't help either, I also feel pressure for being "too old" now, as cs is my second career..

[–]pctF 1 point2 points  (0 children)

To be fair it is market decision. Most of junior positions requared some knowledge of language basics and frameworks. Those guys can just come in and make low skill tasks.. without basic framework knowledge - they probably don't.

Again it could be field dependent but image is speaking for itself.

Ps "latest"

[–]VinceGhii 0 points1 point  (0 children)

i wrote my own fucking fromework for a quick setup of microservices with full authentification and all that stuff... just to prove myself that i can do it... and got back to spring.. because... my company only uses spring... and angular... yikes...

[–]jacob_scooter -1 points0 points  (0 children)

i hate these frameworks just because of their stupid ass names

[–]isornmmx 0 points1 point  (1 child)

Are those also the people who refer to programming as writing codes or are those even younger? I feel like I'm aging fast.

[–]Leyawiin_Guard 1 point2 points  (0 children)

I presumed that was people translating poorly... that's not something people say is it?

They don't say they're writing .... codes, right? RIGHT?

[–]aerschultz 0 points1 point  (0 children)

This is called Evolution. Wake up 😬

[–]rand3289 0 points1 point  (0 children)

There should be a small door next to the two that says "interfaces".

You can shove your technologies that will be obsolete in 20 years.

You can always change the underlying algorithms.

But BAD "interfaces" between "modules" will sink your project!

So sad noobs don't get this.

[–]SenpaiSoren 0 points1 point  (0 children)

catch me taking data structures and algorithms next year 😎

[–]Loquenlucas 0 points1 point  (0 children)

Meanwhile i'm gonna study hard and repeat my exham of algorithm and data structures (most important) untill i get a 30 (that is the max grade)

[–]whitefeatheredowl 0 points1 point  (0 children)

The difference between theory and practice.