Hacker News new | ask | show | jobs
by alexanderscott 2032 days ago
no offense, but from this list the author is either 1) stuck in a particular domain or language or 2) not very proactive in broader learning or side projects.

I agree it’s ok to not program C or understand network/transport layer in depth. but things like unix shell basics, python, micro services, docker - these are all fundamentals I assume everyone (backend, frontend, mobile, or game engine) has working understanding of in order to be a proficient developer today.

nice that the author recognizes the areas they lack, and should commit to learning in 2021. happy to give good recommendations on books or online classes.

more curious to see this list authored from someone with more diverse experience.

4 comments

Co-creator of redux, he was partly motivated to write the article to counter ideas you need to be fluent in everything, often propogated (intentionally or not) by "as a hiring manager...red flags" posts like yours.

Fwiw: https://github.com/gaearon

On one hand I agree with his sentiment. But being a co-creator of redux is not really a good argument. I would probably flat-out reject members of the core redux team when hiring, considering redux's design.
What's wrong with the design of Redux?
It is not composable. I.e. you cannot use one "redux-application" within another one.

Some ideas of redux are great, but the execution could have been much better. I think lack of experience (maybe also related to Javascript) is the reason.

Why isn't possible to embed one Redux application into another? You can have multiple Redux stores so I don't see how Redux applications are unable to be composed.

I _think_ this demonstrates something similar to what you're talking about: https://redux.js.org/recipes/isolating-redux-sub-apps

I'm also curious which parts of Redux weren't executed well, especially considering how small the library is.

Thank you for your link. I think the link captures it quite well. It says:

> These <SubApp>s will be completely independent. They won't share data or actions, and won't see or communicate with each other.

and

> This pattern is not recommended for parts of the same app that share data.

This is precisely where it gets interesting. Composition is important to combine things without these things knowing that they will be combined in advance and having to change them.

So imagine there exists a redux application that shows a dashboard which lists sales within a timeframe. Now I build a new redux application that wants to use two of the existing redux applications next to each other, using one to show sales for last year and one to show sales for this year, using the same timeframe (months/days) but for different years. This is a very very simple case of composition, but it becomes tricky fast.

Question: how do can I align the timeframes within the two sub-applications? I want to make it so that if the user changes the timeframe within one of the subapplications, it should translate to the other one and vice versa. Can I do this _without modifying the code of the sub-applications_?

didn’t say need to be “fluent”, said need “working understanding” in today’s environment. countering that idea is futile.

working on an open source JS framework is great and all, but doesn’t make you a seasoned engineer IMO.

TlDR: take this list and dedicate time in 2021 to learning so you can be productive in real world business engineering teams

Obviously the author is productive on a "real world business engineering team" considering they work for Facebook. Since you seem to have a lot to critique about the post and the author, maybe it's worth putting in that effort into reflection and self-criticality as well.
"Wisdom is knowing what you don't know."

Maybe:

- The author is has a very acute sense of where his expertise is limited and that fact leads him to seek really expert help when he needs it?

- He has spent his time gaining deep expertise in an area rather than trying to spread his time across a number of unrelated?

- He works in a team where he doesn't need the skills he's listed?

- He's just modest about his capabilities?

> not very proactive in learning or side projects

Why do side projects matter for a job? Learning, maybe, but they both point to "extracurricular" time spent programming, which shouldn't affect someone's hiring. I've been on hiring panels and have pushed specifically against that mentality, because I strongly believe what a person is interested in outside of their work shouldn't affect my decision to hire them, as long as they're competent during the interview.

I agree with that. it shouldn’t have to be extracurricular. in fact, having outside interests other than programming is a plus.

but there are plenty of ways to learn the general basics of modern computing on company dime. whether thru training, talking with peers, reviewing others code, or taking a step back and looking at architecture outside your specific domain.

if I’m speaking with a frontend engineer on my team who doesn’t understand how his code is deployed or basics on the compute resources used to run that code it’s likely not going to be a very productive discussion

That seems like a weird list. Python? Micro services? Docker?

I have only passing familiarity with Python and as for the two others, I just know what the tools are for, but have never touched either, and I am certainly a proficient developer. My workplace just happens to use other tools.

I am very proficient with the unix shell myself, but there are certainly competent developers where I work that are not.