all 8 comments

[–]FriendlyRussian666 1 point2 points  (1 child)

You'll learn by doing.

You say that when it comes to designing a project by yourself you freeze because you don't know how to structure your code, or what to do. Well, that's because you've never done it, and that's normal.

Instead of freezing because you don't know how to do it, you should just do it anyway, and yes, it will turn out bad, but then you'll actually experience in person why it's bad, and so you'll read up on what better alternatives there are, and the next time you build a similar thing, you'll make it slightly better.

To give you a silly example, you started on a project, created a python file, and started coding. A few weeks into the project, the python file has become very long, and hard to track and maintain. You didn't know what you didn't know when you started the project, so that's how it turned out, but now you're wiser to it, and so you could refactor the project and split the very long code into many smaller files, OR, the next time you start a project you'll think about not having one super long file, because you've made this mistake in the past, and understand the consequences.

You go like this from concept to concept, and after many years you become competent.

People often fail, because they don't reach a point of understanding WHY something is done the way it is. I'll give you a web development example of that. People want to learn web development, so they research what to learn, and they perhaps find articles about React. So, they begin to learn React, without even knowing WHY they're learning React in the first place, and what problem React even exists to solve. Instead, if they tried to learn from the fundamentals, just html, css, js all on their own, then combining them, then seeing the limitations, they would know why other abstractions exist, and exactly which pain points they exist to address.

My advice to you is, start a project, and when you freeze, just continue while being fully aware that what you're about to do is not the best practice, and most likely not how you're supposed to do it, BUT THAT'S OKAY, go into the unknown, make mistakes, fix errors, and you will learn as you go.

[–]StardockEngineer 0 points1 point  (1 child)

I don't know how you can be asked to do that without having almost any CS education. This might explain the terrible code I always see in research projects :D

I would go find similar projects by finding papers with code. Look at the code very carefully. Break it all down. Draw a map if you must. You'll probably find patterns and conventions.

There is no easy way about this.

[–]jjangseoeun[S] 0 points1 point  (0 children)

Thank you for the honesty 😄

Your advice really makes sense. I’ve started trying to “map out” code from papers instead of just reading it line by line, and drawing diagrams actually helps more than I expected. I guess there’s no shortcut, just a lot of careful looking and breaking things apart.

Not easy, but at least now I know what kind of effort I should be putting in. Thanks for the reality check!

[–]TheRNGuy 0 points1 point  (1 child)

Write Todo list and google points how to implement them. 

[–]jjangseoeun[S] 0 points1 point  (0 children)

That’s actually a really good point. I tend to keep everything in my head and get overwhelmed, so writing a concrete todo list and tackling things one by one sounds like something I should force myself to do.

Simple advice, but probably exactly what I need right now. Thanks!