DEV Community

Mathew Chan
Mathew Chan

Posted on

"Just make something" is not the best advice

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?

Top comments (8)

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

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
 
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

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
 
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
 
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

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

Collapse
 
mathewthe2 profile image
Mathew Chan

Yeah both are important. That's my point.