The Student Room Group

Learning programming for CS – Need advice on projects and what to focus on

I’m thinking of pursuing a cs degree at uni, and I’m looking to start learning programming in preparation. I’m thinking of diving into Python but I’m not quite sure where to start. My main question is: How much project work should I be focusing on at this stage, and what types of projects are most beneficial for a beginner? I’d appreciate some suggestions for good books, youtube tutorials, or online courses to help me get started. I’ve already enrolled in the CS50x course, but that’s about it so far.
Additionally, are there any maths related resources I should be focusing on? I’m considering doing some more reading through the Decision 1 textbook for FM as I know there will be an overlap with cs concepts. I’m interested in getting into Unity, as a complete beginner, and creating a simple 2D game (like a top down shooter). I’d also like to implement a visual version of the A* algorithm to understand pathfinding better (Dijkstra’s). Would these projects be manageable as a beginner?
It feels overwhelming so I’m not sure what my priority should be right now. I’d really appreciate any help, and if anyone would be interested in collaborating on a simple project together, that would be nice!
Original post
by competitiveAct
I’m thinking of pursuing a cs degree at uni, and I’m looking to start learning programming in preparation. I’m thinking of diving into Python but I’m not quite sure where to start. My main question is: How much project work should I be focusing on at this stage, and what types of projects are most beneficial for a beginner? I’d appreciate some suggestions for good books, youtube tutorials, or online courses to help me get started. I’ve already enrolled in the CS50x course, but that’s about it so far.
Additionally, are there any maths related resources I should be focusing on? I’m considering doing some more reading through the Decision 1 textbook for FM as I know there will be an overlap with cs concepts. I’m interested in getting into Unity, as a complete beginner, and creating a simple 2D game (like a top down shooter). I’d also like to implement a visual version of the A* algorithm to understand pathfinding better (Dijkstra’s). Would these projects be manageable as a beginner?
It feels overwhelming so I’m not sure what my priority should be right now. I’d really appreciate any help, and if anyone would be interested in collaborating on a simple project together, that would be nice!

Hi @competitiveAct
I'm a current student at Brighton. I'm not sure what Uni's you are looking at but I thought I could give you some advice, as someone who was in your shoes a few years ago.

I would suggest looking at the universities your interested in and see if they require computer science in your subjects. If not there's a high chance that they will teach computing from scratch. By looking at the course info you can also see what languages they teach and cater your learning to them. Also some unis (for example Brighton) don't require any prior maths knowledge apart from a pass at GCSE and teach all the maths you will need in the modules

In personal statements, universities look for passion in your chosen subject. If you are not doing comp sci as an A-level, doing some programming projects is deffo a good idea! When I applied I talked about my coursework project I did for my A-Level which was a basic platformer game so I would suggest maybe focusing on one bigger beginner-intermediate project, maybe look at peoples A-Level coursework for ideas as those are the people who will also be applying for the comp sci courses. I would then talk about the best of the best projects you have done and how they made you more passionate for computing.

I think the level of learning you should do is based on how competitive of a university you want to apply to. For example, applying to Cambridge I would do a lot more for and it would be to a higher level.

If you're going into programming from zero knowledge I would recommend learning the foundations of programming no matter what language. This is data types (string, integers, etc), iteration (loops and conditional loops) and data structures. By knowing and understanding these you can pretty much code anything!

I would then try and make some terminal based programs such as a calculator, a rock paper scissors game (you can learn about generating random integers here) and so on.

Once you feel confident you can learn how to develop GUIs (for example for the A* algorithm idea you had). This could be using Java Fx or Java swing if youve been coding in Java or your could use HTML and CSS for JavaScript or Tkinter for python. With that you could use your previous projects and add a UI for them

I hope this helps you and I wish you good luck!
If you have any questions feel free to ask
Blue- TSR Student Ambassador
Original post
by competitiveAct
I’m thinking of pursuing a cs degree at uni, and I’m looking to start learning programming in preparation. I’m thinking of diving into Python but I’m not quite sure where to start. My main question is: How much project work should I be focusing on at this stage, and what types of projects are most beneficial for a beginner? I’d appreciate some suggestions for good books, youtube tutorials, or online courses to help me get started. I’ve already enrolled in the CS50x course, but that’s about it so far.
Additionally, are there any maths related resources I should be focusing on? I’m considering doing some more reading through the Decision 1 textbook for FM as I know there will be an overlap with cs concepts. I’m interested in getting into Unity, as a complete beginner, and creating a simple 2D game (like a top down shooter). I’d also like to implement a visual version of the A* algorithm to understand pathfinding better (Dijkstra’s). Would these projects be manageable as a beginner?
It feels overwhelming so I’m not sure what my priority should be right now. I’d really appreciate any help, and if anyone would be interested in collaborating on a simple project together, that would be nice!

Hey,

It's great to hear that you’re thinking of pursuing a computer science degree and already taking the initiative to prepare. Diving into Python is an excellent choice for a beginner because it’s widely used and beginner-friendly. Learning Python will give you a solid foundation in programming and also develop the logical thinking skills essential for computer science.

At university, a lot of the topics in coding and maths are taught from scratch, so there’s not usually too much emphasis on prior knowledge. That said, getting a jump start now can definitely make the transition smoother and boost your confidence when tackling more complex concepts later on. Since you’ve already started the CS50x course, which is an amazing resource, you’re already on a solid path. You might find it useful to complement this with a focus on basic projects - starting small and working your way up. For example, simple projects like a number guessing game or a basic calculator are a great way to apply the concepts you’re learning and build your confidence as a programmer.

Your interest in creating a 2D game with Unity and implementing algorithms like A* for pathfinding is ambitious but absolutely achievable with time and patience. I’d recommend starting with small steps, such as learning C# (Unity’s main language) and building a simple project like a Pong clone.

On the maths side, topics like graph theory, shortest paths, and logical reasoning will overlap significantly with computer science concepts. These areas are particularly useful for algorithms and problem-solving, so having a basic understanding before university can give you a head start. If you’re interested in going further, looking into discrete Mathematics could be useful to see some advanced ideas in a computer science context.

At university, you’ll likely find a strong support system to help you with your learning. For instance, at the University of Salford, we emphasise starting with the fundamentals and have excellent resources like coding workshops, peer study groups, and career services to help students build their skills and confidence. It’s worth checking if any universities you’re interested in offer similar support or student-led programming societies, which can be a great place to meet like-minded people and collaborate on small projects.

Finally, don’t feel overwhelmed by the amount you want to achieve. It’s all about taking small, consistent steps. Start with the basics, gradually work on projects that excite you, and remind yourself that it’s okay to take time to learn.

Good luck,
Arslan University of Salford Student Representative

Quick Reply

How The Student Room is moderated

To keep The Student Room safe for everyone, we moderate posts that are added to the site.