Firstly, if you're going to be studying Computer Science at university, then everything you do at A-level will make your life easier when you get to university.
Programming is something that you can teach yourself in your own time at your own pace. Here's some good links for learning Python and general programming:
https://www.py4e.com/https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-0001-introduction-to-computer-science-and-programming-in-python-fall-2016/http://greenteapress.com/wp/think-python-2e/https://docs.python.org/3/tutorial/index.htmlhttps://pythonforbiologists.com/29-common-beginner-errors-on-one-page/Also remember that a programming language is
just a tool. Learning the syntax and structure of a programming language is obviously important, but that alone isn't really enough to 'be a programmer' (certainly not enough at university level anyway). The real skill in programming is all about
Computational thinking, and being able to use a language to get the computer to solve problems for you. There's only one way to pick up that skill, which is just to keep on practicing until everything starts to 'click'.
Here's some good links worth looking at where you can practice solving various programming challenges:
https://www.hackerrank.com/domains/pythonhttps://leetcode.com/problemset/all/https://projecteuler.net/archivesThe 2nd year programming project at A-Level is a project that you get to decide upon yourself. Broadly speaking you need to find some kind of "real world" type problem to solve. Usually that means writing some kind of app or other bit of software . You can pretty much choose from anything and any kind of technology; it could be a Web app, mobile app, desktop app, text-based console app, or maybe even something running on a microcontroller like Arduino.
In terms of the kinds of apps that the exam boards expect to see, people usually go for something where they're able to replicate some kind of existing well-known app/website, write a game, or build some kind of software which ties into something related to their other courses or interest (e.g. a mathematical or physics simulation). For example:
- Some kind of "information management" app with a database - e.g. A web app for to manage employees/warehouse/products/sales/etc.
- A social media type app - e.g. user profiles, messaging, emails, media sharing, network communication
- A game (e.g. using PyGame in Python to create some kind of 2D game like space invaders, or a card game, etc).
- Any other kind of app based on something you might frequently use on your phone/laptop, or based on a web app you use frequently
(but also don't forget that the coursework also has a report element which is really important for getting the marks -- you need to define what your project is all about in quite a lot of detail, including its objectives, requirements, testing, design, etc.)
When it comes to writing a fully functional project, there are a lot of guides and tutorials you can follow - for example, using Python you can very quickly and easily get web app up and running through Visual Studio using the 'Flask' web framework following these 5 tutorials:
-
https://docs.microsoft.com/en-us/visualstudio/python/learn-flask-visual-studio-step-01-project-solution?view=vs-2017(Visual Studio 2017 Community Edition is free and includes full support for Python. Also the "Polls" template project is pretty good for seeing what kind of web apps you can build with Python )
- There's another good set of video tutorials for web apps in Python here too:
https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-worldThat's not to say you need to build a web app - you could build a game in PyGame, or a UI app in TkInter. There are tonnes of frameworks and tools out there which will get you started, and lots of "getting started" type tutorials which will help you build some basic apps to get you going without needing to spend months learning all the heavy detail. You will however still need to spend a lot of time on Google and StackOverflow to get your head around the basics of these tools/frameworks though, and seeing what their capabilities are.
Also, one extremely important skill you
NEED to learn as a programmer is how to use the debugger for the programming language and whichever IDE you've got for that language. e.g. debugging Python in Visual Studio:
https://docs.microsoft.com/en-us/visualstudio/python/tutorial-working-with-python-in-visual-studio-step-04-debugging?view=vs-2017https://docs.microsoft.com/en-us/visualstudio/python/debugging-python-in-visual-studio?view=vs-2017If you've never used a debugger and breakpoints before then it's worth 15-20 minutes of your time to learn about it.
If you use some other Python IDE like IDLE and PyCharm then you'll have the same debugging/breakpoints capability in those too.