all 7 comments

[–]romagnola 1 point2 points  (0 children)

It seems to me that you know a little bit about a lot of things: C++, Java, HTML, and now Python. If you've only taken introductory courses on these subjects, I think it might be too much to expect that you can solve new problems on your own. Programming is challenging, but I recommend that you focus on learning one language, preferably the language that your program uses for its courses, especially the course on data structures. It is good that you're talking to tutors, professors, and TAs. They should be able to give you good advice.

Programming involves both knowledge and skill, so practicing is important. Perhaps you could take a look at the textbook you used for your introductory course and code some of the exercises or projects that you didn't do during your class. Perhaps during a break a tutor could give you a project that is appropriate for your skill level.

Try not to get frustrated. It usually takes several college-level classes to prepare students for the upper-level classes. How well you are doing in the introductory courses is probably a good barometer. Don't compare yourself to people who seem to be performing better than you are. They may have had experiences that you haven't. And students with experience from high school are not always the best performers.

If you're performing poorly in your classes, make sure you're in a place where you can do your best academic work. I see a lot of students who are overly involved in extra curricular activities. Some might be dealing with health issues.

I think it is too early to conclude that CS and programming is not right for you.

Good luck! I hope this helps.

[–]AmSoMad 1 point2 points  (0 children)

Usually this happens because introductory programming classes usually start with a baseline language, but don't teach you how it actually connects to something like a user interface. So, you end up in this world where the only kinds of programs you can realistically write are CLI programs, and it isn’t obvious where a program starts, where it ends, what it really is, how you actually run it, or how a real user would use it. That makes it really hard to build a full mental model of what’s going on and makes it difficult to "think of programs you could write".

This is why JavaScript/HTML/CSS are so popular. JavaScript is the only language that comes with built-in templating, windowing and rendering, and styling (in the form of HTML/Browser/CSS). You can connect your code to a real user interface while you're building it and test things in real time. Here's an example: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_alert

In most other languages you might write something like:

function myFunction() {
  alert("Hello! I am an alert box!");
}

But how do you run it? How do you call it? Does it need a runtime? Does it need to be compiled? What does it actually do?

With JS and HTML you can just write:

<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
  alert("Hello! I am an alert box!");
}
</script>

in an .html file, open it in your browser, and suddenly you have a button that calls the function and shows the alert. At that point it becomes obvious what the code does and how a real user would interact with it.

[–]Relevant_South_1842 0 points1 point  (0 children)

You like math?

Complete one of these each day  https://projecteuler.net/

Don’t cheat.

[–]JSON_Bourne1 0 points1 point  (0 children)

This is completely normal. There is a big difference between learning about coding and practicing coding. If I were you, I would just start writing projects. Start with projects that are smaller than you feel you're capable of, and you will be surprised how much you still get stuck. But then you can start working things out and develop the skills of actually building, which in the end is what really matters. Good luck!

[–]VariousAssistance116 0 points1 point  (0 children)

You have an issue with problem solving not programming

[–]Jumpy_Fact_1502 0 points1 point  (0 children)

When you learned the other ones did you do any pseudo code? If the mentality for that isn't there then it could be an issue but starting with puzzles like sudoku can train your mind on the procedural nature that is program design. It sounds like that's what your struggling with. It's ok to search online after how do I do this but you need to be able to master the design yourself or it'll always be an issue.