15 votes

Topic deleted by author

10 comments

  1. [3]
    szferi
    Link
    I would recommend the following two books: Learn Python The Hard Way How to Think Like a Computer Scientist Both will teach you the basics and some of OOP stuff.

    I would recommend the following two books:

    Both will teach you the basics and some of OOP stuff.

    10 votes
    1. cfabbro
      Link Parent
      Full Stack Python is quite good for an online resource as well... though some of it is a bit dated now.

      Full Stack Python is quite good for an online resource as well... though some of it is a bit dated now.

      3 votes
    2. [2]
      Comment deleted by author
      Link Parent
      1. aphoenix
        Link Parent
        I no longer recommend Learn Python the Hard Way. I don't want to get in an argument about it with anyone, but I think there are significantly better resources now. Here's a pretty great list of...

        I no longer recommend Learn Python the Hard Way. I don't want to get in an argument about it with anyone, but I think there are significantly better resources now.

        Here's a pretty great list of resources: https://www.reddit.com/r/learnpython/wiki/index

        I'd start here if you're into programming: https://github.com/JeffPaine/beautiful_idiomatic_python

        There are also a number of videos on Udemy Tech's channel on YouTube that are a good place to start.

        4 votes
  2. [2]
    Deimos
    Link
    These books might be a bit too basic for you, but some of the later chapters might be useful (and I think they're framed in a little more useful/interesting way than a lot of books): Invent Your...

    These books might be a bit too basic for you, but some of the later chapters might be useful (and I think they're framed in a little more useful/interesting way than a lot of books):

    4 votes
    1. [2]
      Comment deleted by author
      Link Parent
      1. kej
        Link Parent
        I want to second Automate the Boring Stuff.... It's light on CS topics like data structures, but it's great for hands on practical things like moving around files or scraping the screen or sending...

        I want to second Automate the Boring Stuff.... It's light on CS topics like data structures, but it's great for hands on practical things like moving around files or scraping the screen or sending emails. It covers what your tuples and lambdas actually do.

        4 votes
  3. [2]
    sid
    Link
    I run a website of free learning resources that has a section on programming and computers. Check out https://www.zencyclopedia.org/#computers-electronics.

    I run a website of free learning resources that has a section on programming and computers. Check out https://www.zencyclopedia.org/#computers-electronics.

    3 votes
    1. JamesTeaKirk
      Link Parent
      Very cool resource! Bookmarked for further use in the future

      Very cool resource! Bookmarked for further use in the future

  4. [3]
    jgb
    (edited )
    Link
    Hi OP, I know quite a few people who have achieved very good grades on their Year 13 project, and they all tell me the same thing - your ability to write high quality software has very little...

    Hi OP,

    I know quite a few people who have achieved very good grades on their Year 13 project, and they all tell me the same thing - your ability to write high quality software has very little bearing on how well you will do in your coursework. My advice is to be cynical and even a bit jaded from the outset, treat the whole project like the box-ticking exercise that it is, and make sure that there's no ambiguity as to whether you fullfil the various criteria to get the marks.

    That said, learning to program well will serve you excellently in your future studies (and indeed in general), assuming you intend to do CS at University. I've been through the CS application process in the past year, so I'm probably fairly well positioned to answer any questions you have about the university application process - please don't hesitate to ask me, either here or via PM!

    As for learning intermediate and advanced Python - there's no good substitute for keyboard-time; that is, time spent writing programs and learning from your own experiences. Below are some ideas for interesting projects which will hopefully extend your abilities. I've given each a very rough difficulty rating - don't pay it too much attention :)

    • Implement a classic arcade game like snake or pong in a library such as pygame. Research game programming concepts such as the event loop (main loop) and callback functions / listeners [3/10]

    • Write a command line utility to achieve a simple task of your chosing. Add support for more complex forms of program input, like command line flags or the ability to take input from either a file or standard input (stdin). [3/10]

    • Use a library like Flask or CherryPy to create a simple website or web service [4/10]

    • Write a program that utilises more complex python features like metaclasses or custom decorators [5/10]

    • Investigate Python type annotations, including tools like mypy, and consider the benefits and drawbacks of programming languages that use type checking [5/10]

    • Implement a classic algorithm like QuickSort. Try using both imperative and functional styles and consider the benefits and drawbacks of each. Compare performance with a benchmarking tool like timeit, and think about (or research) how the performance of the algorithm could be improved if you could make assumptions about the input data [6/10]

    • Write a recursive descent parser and interpreter for a simple imperative language [8/10]

    Finally - be curious, and study things that interest you. Use the summer to your advantage. If you can point to something that you've studied or implemented that's captured your imagination when writing your UCAS statement, it'll give you an advantage. If you intend to apply to Oxbridge and anticipate having to sit an academic interview, it'll be even more advantageous to be able to demonstrate passion for the subject.

    3 votes
    1. [3]
      Comment deleted by author
      Link Parent
      1. [2]
        jgb
        Link Parent
        If you want to book open days, you need to do that sooner rather than later. Don't put it off and then end up pulling your hair out trying to determine where you want to spend the next four years...

        Thank you for your advice on university, I've been (probably stupidly) pushing it to the back of my mind because it seems quite overwhelming.

        If you want to book open days, you need to do that sooner rather than later. Don't put it off and then end up pulling your hair out trying to determine where you want to spend the next four years of your life on the basis of google images!

        1 vote
        1. [2]
          Comment deleted by author
          Link Parent
          1. jgb
            Link Parent
            Well, Computer Science (G400) is broad enough to allow specialisation into a variety of fields and has excellent employability prospects.

            Well, Computer Science (G400) is broad enough to allow specialisation into a variety of fields and has excellent employability prospects.

            1 vote