What advice would you give to a designer that knows frontend development and want to learn more about full-stack development?

Simon Lind's profile photo
Simon Lind@simonlind

ยท

Nov 1, 2021

What advice would you give to a designer that knows frontend development and want to learn more about full-stack development?

I do a lot of frontend development in my day-to-day job. What I struggle with learning though, is all the things that make the site not just look and feel right, but actually make it work like creating a backend, communicating with a DB, CRUD actions, user authentication etc. I would love to be able to build something like what you've done with this site myself one day.

It seems like there are so many things I could learn; Next.js, Vercel, Firebase, Gatsby, Node.js, Ruby on Rails ... the list seems endless. I don't know where to start or how to approach it and would love to hear what you've done to be able to build something like this.

Brian Lovin's profile photo
Brian Lovin@brian

ยท

Nov 2, 2021

My advice is probably going to be frustrating to hear, but it's the only answer I can come up with: build lots of stuff! I've only learned how to build software by having a problem in mind, and Googling/copy-pasting my way towards a solution. After a few cycles of this, it gets easier, so you start chasing harder and harder problems to solve.

For example, with this latest iteration of my website I thought it'd be fun to build a commenting system. Previously, I had a form at the bottom of each post where people could email me feedback, but that was boring and anonymous and I felt really disconnected from the messages I received. But comments! Those could be fun, and social, and maybe it could actually make my writing stronger if there were follow-up conversations that happened over time.

Okay, so I want a commenting system. And since I'm not under time pressure, I figure I can build my own, rather than "buying" a solution like Disqus. So then my internal narration becomes something like:

Okay, well, to have comments I need user accounts. That means I need auth. What works here? I've heard of Auth0, maybe it's easy enough to learn since they've been around a while and have lots of documentation and example code... ๐Ÿ‡๐Ÿ•ณ

Then comments would need to be associated with something โ€” like a blog post, or a bookmark. So maybe a relational database is the right tool to link those kinds of things. I've never built anything on a relational database before, but I've heard of Prisma before, and I've seen PlanetScale on Twitter a bunch, so maybe I'll start poking there...๐Ÿ‡๐Ÿ•ณ

So this original idea that sounds fun โ€” what if people could comment on my stuff? โ€” ends up taking me down this rabbit hole of tools and ideas and technologies. I think that's the most fun and interesting way to learn this stuff, even if it's not necessarily the most efficient.

A last thought: if you have friends who are engineers, ask them questions! I feel really lucky that I got to spend a year and a half working closely with Max Stoiber building Spectrum.chat. He really helped me level up, pushed me to learn new technologies, and solve harder problems. At a certain point while you're learning how to build new things, you might get stuck โ€” find your Max!

danilo leal's profile photo
danilo leal@danilobleal

ยท

Nov 2, 2021

And how much like, computing theory do you know or went on trying to learn to actually be able to pull things off? I mean, there is a level to tech that doesn't even sound like English when you read it, and this is because I see myself considerably comfortable with development in general (probably not, lol). For example, I'm not capable of describing nor explaining what's a relational database...

Brian Lovin's profile photo
Brian Lovin@brian

ยท

Nov 3, 2021

I'm probably with you on most things โ€” I didn't study computer science, and so a lot of the theory is beyond me. But as far as practical terms and concepts, I think those can be learned on-the-fly as you're building. So for example, with the database stuff I think you could start with googling for things like "relational database pros and cons" and that will probably take you down a rabbit hole of other DB types, and learning about the tradeoffs of each.

Simon Lind's profile photo
Simon Lind@simonlind

ยท

Nov 3, 2021

Thank you Brian! I think the advice on learning something from a project-based perspective compared to learning from a programming language-based perspective is definitely useful. It makes the process more fun and interesting. I've gone through quite a few courses on "Full-Stack JavaScript Development", but I've always felt there's a big leap going from the small and theoretical code-quizzes in Team Treehouse to actually apply the knowledge in real-world projects. Will keep that in mind! I'm surrounded by smart engineers where I work, so will also try to leverage that more.

Brian Lovin's profile photo
Brian Lovin@brian

ยท

Nov 3, 2021

I've seen a lot of "end-to-end" tutorials, usually in the form of paid courses, floating around in the past couple of years. Maybe those are worth picking up? I think having the full experience of building an app will be more valuable than the code quizzes. It sounds like we're pretty similar in that way though, I always struggled to make the leap from code theory, quizzes, and books to the practical application.