loading...

"Just make something" is not the best advice

mathewthe2 profile image Mathew Chan ・1 min read

Recently I bombed two interviews with system design, database, and scalability questions. My conclusion? If I want to get hired at these companies, I need to go out of my way to learn these concepts. I won't "learn along the way" if I'm only making hobby side projects with less than 5 users. Do you agree?

Discussion

pic
Editor guide
Collapse
alexanderjanke profile image
Alex Janke

What kind of position did you apply to? Front- and backend?

I won't "learn along the way" if I'm only making hobby side projects with less than 5 users.

Heavily depends on what you try to achieve and what you want to be. I'd personally value more fleshed out solutions over sheer amount. Quality over quantity. Anyone being able to plan and execute a more complex project (even without active users) can most likely adapt/learn new things easier than someone who keeps getting distracted by that new shiny thing and just doing the absolute minimum to get the product running.

Collapse
mathewthe2 profile image
Mathew Chan Author

Fullstack. It's unlikely someone trying to build one or two projects will learn everything they need to know about these topics unless they're actively researching stuff beyond the scope of their project.

Collapse
ahferroin7 profile image
Austin S. Hemmelgarn

I’d strongly argue that that depends on how proactively you are designing your project. Just because you don’t expect to have millions of users doesn’t mean you shouldn’t design a system that can handle that many users.

Brings to mind one of my friends looking at me like I was crazy when I told him that I was rewriting the Discord bot I had just finished implementing in Python in Elixir. The Python code worked for my use case, but because of the limitations of Python and the bot framework itself quite simply could not be made reasonably scalable, so I chose to rebuild in a language that I could make more scalable than the Python code was with almost zero effort, and can easily make exponentially more scalable by putting in a bit more work. Yes, the scalability from this rewrite is overkill for my usage, but it’s also good practice for writing scalable systems.

Collapse
alexanderjanke profile image
Alex Janke

What kind of scope are you thinking about for a project?

As a fullstack you should be really comfortable with databases and their design. What helped a lot for me was to draw the database layout on a whiteboard/paper/online. I still do it before touching any new database, just to see the bigger picture and potentially notice errors early.

Thread Thread
mathewthe2 profile image
Mathew Chan Author

When I quote "just make something", I mean people who literally mean it that way to encourage people to build some weeklong template project. Look, I've worked with NoSQL in both work and personal projects now, so I've completely forgotten denormalization was a thing when I was asked on the spot about read optimization.

Collapse
mike239x profile image
Mike Lezhnin

Get hired as who? If you aim for internship, you need none of that, if you aim to be a senior dev, then ofc you need more than a few hobby projects behind your back.
Imho becoming an intern and learning first hand some specifics of the craft is easier route than learning it on your own and then trying to apply to a higher position.

Collapse
mathewthe2 profile image
Mathew Chan Author

You're right. "Just build something" might be applicable advice only for people applying to internships.

Collapse
n4n0gh profile image
n4n0

While it would benefit you to know about different architectures and what problem they try to tackle, it's also good if you just build stuff for 5 users. The driving factor is getting dirty with the knowledge you gathered so you don't only have theoretical knowledge but know how to use that as well. It also helps to get first-hand experience with potential issues or limitations some architectures or tech-stacks throw at you while working with them.

So I'd say it's a balanced mix of the two things.

Collapse
mathewthe2 profile image
Mathew Chan Author

Yeah both are important. That's my point.