| Projects are great but there's a deceptively challenging step in "formulate a small and feasible project idea". It's really hard to come up with a small and feasible project when you're a beginner. First, beginners don't know what's feasible. To a beginner all of programming is computer magic. There's not a lot of difference to a beginner between training a machine learning system for classifying different apples and a proper auth flow with OAuth[1]. Second, beginners don't have experience with product skills like scope cutting, setting milestones, etc. Some may say "that's all business nonsense!" but the lack of these skills has an effect. When I'd mentor underclassmen in college, they'd always say something like "let's build a mobile app that lets people create accounts for their pets and then uses machine learning to pair them with the best possible dog walker" as their "small and feasible" project. And I'd have to be like woah there buddy let's get us to "a mobile app that lets you create an account and sign in" first. What I always tell people is that they should make an outrageously simple project. One of my first projects was a blog in Rails. That's literally the first tutorial for Rails! But it turns out if you add stuff like comments and responsive design and deploy the blog, you end up learning a lot. Start stupidly simple and you'll be surprised how much you learn. [1]: https://xkcd.com/1425/ |
Fortunately, actual delivery of a beginner project is pointless. The only point is to learn by doing and you accomplish that regardless of whether your project fails. And failing projects is a lesson in itself on scope, estimation, and research; you won't get this experience if someone else is scoping for you like in a school project .