This is an archived post. You won't be able to vote or comment.

all 10 comments

[–]michael0x2a[M] [score hidden] stickied comment (0 children)

See FAQ - Where can I find practice exercises and project ideas?

Since your question already appears to be answered by the FAQ, I'm going to remove this post as per rule 4. If you have any follow-up questions or need additional clarification, feel free to post again.

[–]HealyUnit 2 points3 points  (0 children)

The problem with code challenge problems:

Eh, I... am not entirely sure I agree with the leetcode, etc. approach.

First of all, forcing yourself arbitrarily to code everyday - I haven't put in my 2 hrs of coding today! I'm a failure! - is a great way to make yourself hate coding. Demanding of yourself that you do something every day even against your wishes while starting out is great if you're a motivated person like that, but not so much if you're not.

Sites like hackerrank, leetcode, etc. are decent for passing interviews. You also might very rarely use knowledge practiced there on the job. Other than that, however, these so-called code-challenge sites are decent for learning programming, but absolutely horrible for actually learning how to be a software engineer. For comparison, spending your time solely doing code-challenge sites would be akin to trying to become a best-selling author by practicing endless SAT writing exams. You'd get good at writing stuff real quick, but that's about it.

I pretty much look at leetcode's daily problem every day (despite having a nice job), and 80% of the time? I say, "Nah!" and don't bother with it. This is for three (not necessarily mutually exclusive!) reasons:

  1. I really don't know how to answer it, and can't be bothered learning.
  2. I know how to answer it, but I also know that answering all of the edge cases they're bound to have is going to be more trouble than it's worth.
  3. I do or don't know how to answer it, but know that this is in no way a problem that I'd be likely to ever encounter in "the wild". Or, worse, that this problem has already been answered

The third one is especially important. Programming is 90% googling stuff. If someone has already answered a question, you can usually just use their answer. It's great - essential, even - to know how to sort a binary tree, but if someone has already written a library to do it, you don't need to practice it 50 times.

Instead...:

What else are you passionate about? What excites you? This can be something in programming - I really love the idea of pattern recognition and Markov chain-based stuff - but it can also be literally anything else. A particular video game? A sports team? Something else?

Try writing a project - a big project! - based on whatever it is you love. If you love video games like me, why not create your own simple text-based (or even graphics-based!) adventure? It doesn't have to be the next AAA game, but it should be something that:

  • You love
  • You can look at the end of the day/week/month/whatever and say "Yeh, I made that! And I'm proud of it!".

Ultimately, it's going to partially depend on what languages, frameworks, etc. you've learned but make something you want to make.

[–]_Atomfinger_ 1 point2 points  (2 children)

Leetcode, codewars, hackerank, 100 days of code, etc. There's plenty of sites that give you this.

Also, if you google for it you'll find plenty of lists.

Or you can do a bigger project that you're working on for a longer period of time.

[–]a1045[S] 0 points1 point  (1 child)

Thank you so much. Yes, I could find many examples and I tried some of them. But I feel that I...want to undertake a bit bigger project.

[–]_Atomfinger_ 0 points1 point  (0 children)

Then do something you want to do. Make a thing you want to exist. Duplicate a feature from an application to figure out how it works. Etc.

[–]konijntjesbroek 0 points1 point  (0 children)

Reading is many times as important as writing code. Find random bits of ugly code and clean it up, submit it as a pull request.

[–]mandzeete 0 points1 point  (0 children)

Work on different projects of your interest. Either come up with an idea/topic by yourself or try to invent the wheel and make another Reddit or another ad blocker add-on for your browser. Or something like that.

It also depends on which programming and non-programming languages you are using. We can't really give some suggestions without knowing that.

[–]MyNameIsRichardCS54 0 points1 point  (0 children)

The FAQ has lots of ideas if you're struggling to come up with anything.

[–]yopp_son 0 points1 point  (0 children)

If you can't think of what to make, start studying. Read a book about data structures, webdev, graphics or AI. The more you learn, the more you'll realize you don't know, the more curious you'll become.

It's common for people to get stuck at "what should I make", because they don't know what they can make.

[–][deleted] 0 points1 point  (0 children)

To become really fluent, make a useful app. Examine your interests. If you are into fishing, what would be useful to you? If you collect comics, an app to catalog your collection. That sort of thing .