Back
Question
Asked

If your younger sibling (or a good friend) wanted to learn how to design and build websites/apps, what would you recommend? and why?

Title says it all, but we've got CS college, Graphic design college, online courses, tutors, learning on the job, boot camps. And these all have tradeoffs and timelines. How would you respond if someone asked you the best way to learn how to design and build web applications?


You missed “just start building” which is easier than ever to do with ChatGPT being a thing

You might assuming basic knowledge.

For example, I wouldn't even know what to put into generative AI to prompt it properly because I don't know the lingo.

I read this as someone's looking for a "tell me like I'm 5" kind of resource that walked them through a project so they could learn as they built -- while also learning foundational knowledge to better use AI to build later.

You don't need basic knowledge to get started, though.

Think of an idea you want to build, then ask ChatGPT how to build it in <whatever language you want - I recommend something simple like Python or PHP to start with>. Then ask clarifying questions as needed if there's something you don't understand and just keep going.

A CS degree is great if you want to get a full time job in software development as you won't be taken seriously by companies without one, but if you just want to build stuff as OP is asking about, the only advice that makes sense is to start building. Anything else will be slower and less effective in getting you to that goal of building something.

Even having someone say, "I recommend something simple like Python or PHP to start with" would be immensely valuable to someone like me who's a total novice who wouldn't even know which language to start with (or which languages are best suited for specific projects or which languages are even out there).

Also, I'm laughing that you called those simple. I'm just proud that I remember basic HTML from Myspace lol.

While I might be the exception to the rule because kids know WAY more than we used to when we were their age, we also don't know what we don't know.

ChatGPT could help with figuring out which language to use, but in my experience with using it to generate answers, I have to constantly fact check everything it generates because it gets things wrong sometimes.

Yep simple is relative of course. ChatGPT gets it wrong sometimes, that's where you can reach out to humans and ask for help on a specific problem. But it'll do a good job of steering you in the right direction.

ChatGPT is great for me - because I have 13 years of experience. But I find that new devs don't know what to ask. If you're using it like an encyclopedia and asking it to tell you about how things work, it can be great - but people also just grab code from it - and will ultimately not really learn what they are doing and why.

Kids don't know anything haha. They memorize how to use the UI of their apps but mostly don't have any conscious connection to how anything works. There's no model. People don't know what they don't know. So - I think that working with an expert guide is pretty smart. I learned all this stuff on my own - with no network or anything and while it worked out... it wasn't smart.

Depends what kind of learner your sibling/friend is. Self-directed, intrinsically motivated and prefer learning by doing? Then just start building something small. Pick up bits and pieces of code and knowledge along the way.

But if learner style is more mainstream/traditional, prefer classes, theory than practice, having a tutor handholding, then take Udemy or Youtube courses first.

Following because I'm practically a child with coding/developing/designing, but I'm curious about learning.

I've looked at Skillshare, which has some good classes.

Like other answers have said, it depends on their learning style. Learn by Doing, or Learn by Studying?

You're right that you need the fundamentals first. I tried to build apps using ChatGPT, and sure - they work - but when you don't know the difference between frontend and backend, how a database is used, where CSS / JS / HTML / React / Laravel / and ten thousand other buzzwords apply, then it's very easy to get lost.

I'm 50 hours (!) in to the Web Developers Bootcamp by Colt Steele on Udemy. It's very good, but 74 hours long. It covers everything from absolute beginner to building a complete app with posts, comments, logins, databases, react, etc.

I'm also taking a break and watching laracasts to get some knowledge on the PHP side of things as opposed to the Colt Steele course which is mainly javascript.

Sounds like it's going pretty well for you. What do you plan to build afterward?

I have several apps in mind - I'm writing a guide on UK tender responses, and will build a larger app around that subject once the guide is done, with a bunch of smaller apps to directly support the guide (freebies to drive interest, essentially). We'll see how it goes; I'm not expecting magic, but it's a good exercise to learn code with a specific goal in mind.

When you're done with the Udemy course, it could be fun to have a chat about it. If you ever want a code review or something - let me know. : )

My gut response would be to point them towards Codecademy. IMO, its a great way to align learning and building for a complete novice. It's also served as a refresher for me over the years.

While there are plenty of ways to jump right in and start building right away, and much can be learned through that approach, it might not be best for newcomers with no base knowledge to grow. The only time I can partially relate was when I wanted to build a mobile app, decided on Flutter (for whatever reasons at the time in late 2018), and bought a Udemy course. After following along for a few basic apps, I was motivated and ready to go build what I wanted. Starting small proved that it wasn't impossible, yet I did have 20 yrs experience in tech and understood how things worked - just not the language. And I still would not consider myself a programmer, but I have now built a mobile app.

Most of my experience is with infrastructure and networking, and anytime I hired a new engineer their first task would always be to create diagrams for the network. Gives them something they can easily do and makes them familiar with the network they will need to maintain. A seed of confidence in knowing what they are working on helped them ramp up more quickly. Plus I could gauge the depth of their knowledge by what they produce.

Haptic learning is a great way to start, and Codecademy fits the bill IMO.

Based on this, I'm surprised your suggestion isn't to start out by diagraming out the product. I feel like if you had one day, that might have more value than the time spent in a gamified sandbox.

The best way is to have a friend who already knows how to do it who will help you at each step.

If you don't have that, my next recommendation would be to use Udemy to get an overview (if they've got the motivation to go through it all), or just to jump in with ChatGPT like Ben said. They'll for-sure want to use ChatGPT once they actually start working on something.

a friend who already knows how to do it who will help you at each step

This would certainly be my ideal! (for pretty much everything) and it's surprising how rare it is that someone suggests it.

This is how i'd advise them right now

Learning Design:

  1. Learn Figma basics on Youtube
  2. Replicate designs on dribbble.com until they get comfortable producing clean designs themselves
  3. Read about uxlaws, copywriting, and follow the internet to give an understanding of other designer's process to go from 0 to 1 about designing webs/ apps

Learning to code

  1. Use sites like codecademy to get familiar with basics like HTML / CSS / JS
  2. Start building any of the designs they've designed and make it real.

Learning business / production stuff
1. Follow other makers and learn from their journey

In all the above steps, ChatGPT or other AIs can be used to answer their queries, deep dive into concepts – basically use them as assistants to accelerate their learning from a main source like Youtube / Articles / Books

I don't think I would have agreed with starting out in Figma a few years ago, but I'm using it more and more to explain things now that it has autolayout and variables. I kinda show a little Figma, show a little HTML, a little Figma, a little HTML and it works great.

I would just recommend starting out with Webflow University courses — they are free, quite short, entertaining, and funny. The production is like Hollywood level!

The courses teach basics of HTML and CSS without actually doing it (I mean the code part) which is amazing.

Webflow is a great tool and gives the ability to get started building stuff right off the bat — well, assuming a person watches the lessons, since it’s never good just head diving into tools without prior knowledge.

Those are pretty funny commercials. I can see how you'd learn a lot about the layout and things via webflow. But in this case, the person is trying to learn how to write the code by hand.

“Commercials”, lol :D

Well, yeah, Webflow’s team is really cooking with the video content.

In your case, I think, Webflow can be a good option too if a person wants to get results like really fast — but, yeah, for those who want to start coding right off the bat it’s necessary, well, to do so.

If you really want to learn design just follow some design systems. They will teach you best practices. The most common ones are Material Design, Ant Design Fluent Design etc. check this link for more: www.linkedin.com/pulse/top-10…

But these might be overwhelming for a starter. Use templates using these design systems and whenever you have a question about how to do something check what this design system says.

just follow some design systems

Tell me more. I can't imagine learning how to design web applications just by looking at a UI library. that's like the tiiipppy tip of the iceberg.

For ex: Material Design thought me a lot. Its not a UI library, it’s a design system. Read their docs, they mention from how to place components to how they should react or how they should move etc. As an engineer myself following that kind of instructions is just easy if you don’t have an artistic mind. But as you keep following it and using it, then your brain now learns how a UI should look and how it should behave.

These design systems are created with tens or hundreds of design experts and researchers, so following those is no brainer and its out there for you to have it.