I was recently asked by a Computer Science college fresher about plans and advice for this new adventure of theirs. Here is the exact reply I sent.

Hi Slim,

I don't know if this will be a self-fulfilling answer. But here it goes.

The truth is, you can't really plan a lot. At least, that's what I believe in. Instead, find something that you are interested in, and do it.

Like, for example, at first, I got interested in how Android apps were built. So I learned the shit out of Android development in a couple of days. Obviously, you can't do that by following a course or something (it helps though I will say).

I think the most important thing in the process of learning is putting it into practice. As they say "All work and no play makes Jack a dull boy". Maybe, this is something similar to that.

If you just learn a lot and don't do anything practical with it, you won't make much real progress. I for one have felt this in fitness, and other personal areas. I have read a lot, I know a lot but I am not a lot.

So that's my #1 advice I will give to anyone.

If you are specifically asking about courses and such, my best suggestion would be learning from the best Udemy courses.

Just go up there and search for the term you want to learn. Like "Python".

You will see courses with a high number of ratings (10k+) and a good average score (4.5+). Those are the courses that you can blindly pay for. And they are cheap, like 700Rs (10$) so no harm done if it doesn't help you.

And apart from that, keep an eye open on internship opportunities (use Angel.co). There are remote internships which don't require to be physically present in the company's office. You can apply for them, even with college going on (not recommended though).

I know, at first you might feel that you are not good enough for those internships, but trust me, everyone feels like that.

Even if you are 40-50% of what the internship demands, you should apply for it. You can always learn more things later, either when you are actually doing the internship OR in the time you have before starting the internship.

Internships are important because there is just so much you can learn by making personal projects.

They give you a glimpse of real-world software development that is invaluable. I will go as far as to say that you should be open to taking an unpaid internship as your first, provided you are taking it soon enough.

I think that's pretty much what I can think right now. Maybe I missed something but I am writing a lot these days.

You can follow my mailing list at https://aviaryan.com.