If you're currently in college and wish to get placed in a major tech giant like Amazon or Facebook:

Don't learn React.js, instead learn Linked lists.

Don't learn Flutter, instead learn Binary search trees.

Don't learn how to perform secure Authorization with JWTs, instead learn how to recursively reverse a singly linked list.

Don't learn how to build scalable and fault tolerant web servers, instead learn how to optimally inverse a binary search tree.

These big tech companies don't really care what real world development technologies you've mastered. Your competence in competitive programming and data structures is all that matters.

The system is screwed. Or atleast I am.

  • 8
    Can't say I disagree with them.
  • 10
    I still think that a person who can flip bits and pointers around would have no trouble with any kind of development (perhaps apart from the design related stuff), but the other way round is not true.

    Thinking of it from the company's side - there are so, so many people who can rustle up a web app, how *do* you choose between them? And web/app dev is hardly the only kind of programming that folks recruit for.

    It's also nice in a way that it tests your knowledge of the common fundamentals rather than of how well you know {insert fancy library or framework}.
  • 0
    @RememberMe I agree. But, Shouldn't these "real world development skills" also be valued? It isn't impossible to test someone's competence with a given fancy framework. Knowing how to flip bits and play around with pointers alone won't land you in FANG. Hours and hours of competitive coding on leet code or any such platform is the only way to crack those interviews. Even if you are strong with your fundamentals, you can't solve a given given problem optimally unless you have already practiced a similar problem beforehand.
  • 7
    Why would you want to work for a meat grinder / moral atrocity factory like those companies anyway?
  • 2
    This is or at least should be more about how a developer lacking basic algorithm knowledge and ability to solve simple logic problems can call themseves “developer” in the first place. I am baffled on a daily basis by developers who can’t use a fucking logical operator properly, yet they declare themselves masters of the trade for being able to npm install some shit framework.

    And yeah fuck amazon and FB and while we’re at it fuck google too.
  • 0
    @molaram True. I've seen people calling themselves react developers after they create-react-app a simple Todo app.
  • 2
    @Root What?! Those "Day in the life of a software engineer at Google" videos on youtube said otherwise!
  • 5
    While I agree with everyone here I would point out that I have met people that can do all sorts of crazy algorithm processes while not being able to figure out how to connect to a simple mysql database or process a form in html using basic ass php.

    Yeah web dev can be learned, shit all manners of software development can be learned, having a solid ca background is definitely required, but ffs there definitely are some outliers in there that can do one and just not do the other at all man.

    People are....interesting.
  • 2
    You're missing an important angle here: most of that algorithm work is completely irrelevant to front end "development."

    The only way it's going to make a difference is where you are hiring for backend, or the dev wants to transition to native/backend. If I were hiring for front-end and a guy fresh out of college said "hey look, I can flip a linked list" my response would be a dry "yes, but what can you *build*"

    A lot of people can master the fundementals who can't competently go on to build anything from them.

    My proof of this: myself.
  • 3
    You don't build react by knowing react. You don't build YouTube by knowing how to write a good frontend and connect to fucking MySQL. You build YouTube by inventing a new database that can efficiently store 500 hours of video per minute while also streaming 700 000 hours of video in the same timeframe.
  • 3
    @Lor-inc realistically your average programmer isn't building the next anything.

    If your average programmer believes that then they're as delusional as I am.
  • 3
    @Wisecrack But Google's average programmer probably works on backend, because although building YouTube's frontend is a difficult task, building a backend for it is incomparably more difficult, and thus it takes a lot more people. Same goes for everything Google does. If a platform isn't popular enough to be a difficult optimisation problem they shut it down.
  • 0

    "If a platform isn't popular enough to be a difficult optimisation problem they shut it down."

    That actually sounds like a really interesting way of working. Always attack the hard problems. Make your entire business about attacking hard problems. Could spend a lifetime doing that.
  • 5
    @Lor-inc dude you’re completely wrong, got to excited by shitty advertising and surveillance companies.

    Youtube started as video dating site. When you grow you always change tech stack and the more you grow the more mature your tech stack is. It’s a problem of scale not a problem of company.
    That’s seniority of development that when you grow you don’t cry how miserable your life is because you don’t work in “amazing crap” that locks you with their own closed source products. You’re on the edge and you need to chose stack to solve grow problems that’s where data structures are fucking essential.

    To the point: data structures and basic knowledge of algorithms are a must otherwise you will be searching array for duplicates and reinventing dijkstra all the time.

    You want to fuck with some shitty crap all the time sure pick some corporate frameworks ex sharepoint it pays a lot nobody wants to do it cause it’s pain in the ass.

    Know your basics reactjs can be replaced cause enterprise like facebook that are on the edge will push it to some limit and abandon for other “better tool” when they need it.
  • 3
    Everyones focused on being "the next youtube, google" or whatever.

    Hate to break it to you. Theres only one YT for a reason.

    No one gives a shit about your fundamentals.

    Facebook was built in motherfucking *coldfusion* and it was absolute garbage then, as it is now.

    It is 'worth' billions.

    Its all shit stacks and shit-optimized bittwiddling with piles of investor money regurgitated into branding, because brand perception is now the basis of stock value, NOT performance, dividends, or even "algorithmic efficiency."

    Programmers find this is a hard message to swallow because wanting to be better is a core tenet of what we do, but the reality is the entire industry is built on pure unadultered bullshit, with *occasional* meaningful improvements.

    By the time you need *meaningful* improvements, not just some tard-level "dont reinvent pathing" examples, you're at the point where you would have had to improve the code anyway.

    90% of businesses fail. Merit is meaningless,
  • 1
    @Wisecrack um, you know that Facebook made their own high performance JIT compiler (HHVM), run it on customized servers, have a custom data access layer that serves data at their scale, and so on? Sure they're a pile of garbage at a lot of things but man their engineering is *legit*.

    Might want to listen to Andrei Alexandrescu's CPPCon talk about optimizing C++ in HHVM because small improvements in performance save the company a ton of money. (Any company that can employ someone of the calibre of Alexandrescu is legit, engineering wise at least).
  • 1
    @Wisecrack I don't believe that something of the magnitude of Google's services or Facebook can be written badly. It will freeze up and crash. These services _need_ a well engineered backend custom-built for their purposes. And a custom-built backend isn't maintained by people who have to know mysql, because there's no mysql in it. Or if there is it's modified anyway, so it definitely isn't enough to know how to connect to mysql.
  • 0
    @vane Obviously when you start out you use something simple, but Google isn't a startup, they're already big and they're looking for people who can handle their performance requirements.
  • 1
    @Lor-inc nah they’re looking for people who are willing to work for them, match their culture and have strong mathematical background if they hire for engineering.

    If suddenly nobody will want to work for them for some reason they will go bankrupt same if people who work for them start hiring toxic people and good people go away to work somewhere else and abandon their core projects.
    They are also very young company that didn’t really faced retirement problems of their core engineering team.
    Nothing lasts forever.
  • 0

    They didn't start out that way.

    Early on, the most important element to success seems to be the ability to pivot and iterate quickly because when you can't predict demand or the future (because people aren't oracles) the next best thing is to try everything until something works, or else to imitate (see gas stations across the street from other gas stations for details)

    Early on though, what google and facebook use *now* is overkill for everyone just getting started.

    If FANG had to *start out* with the stack they had now, they would have never went anywhere.

    It's premature optimization to the nth degree.

    Where you need are *good* engineers, and not "software engineers" is when it comes time to scale.

    Of course this is just my opinion and what I've seen.

    I think a lot of this though is coming from two different angles: I'm coming from the small business software angle, and others are coming from the 'desirability by large tech companies' angle.
Add Comment