What is the course about?
This course equips you with the skills expected of a beginning software developer. It integrates three of popular courses listed below, augmented by a general orientation to working in software development.
• Intermediate Python
• Advanced Python
• Algorithms in Python
By the end of the course you should be able to both “talk the talk” and “walk the walk” – having the contextual knowledge to discuss a job role in an informed way but also the confidence that comes from knowing you can “cut code” as well as any other candidate.
In the process, you will develop an ongoing project that can become the start of your online portfolio, a valuable job-hunting resource that will showcase your capabilities to potential recruiters.
This is a live online course. You will need:
- Internet connection. The classes work best with Chrome.
- A computer with microphone and camera.
- Earphones/headphones/speakers.
We will contact you with joining instructions before your course starts.
What will we cover?
• Data structures (lists, stacks, queues, trees, graphs)
• Modules and modularization
• Functions
• Object Oriented Programming
• Classic algorithms that most software developers know (searching, sorting, pathfinding)
• Complexity and issues around performance
• Good software development practices and typical team structures and roles
• Industry jargon and “general knowledge” about other aspects of technology (databases, networking, security etc)
• Indicative interview questions and strategies
• Basic use of GitHub for managing a software project.
What will I achieve?
By the end of this course you should be able to...
• Use a wide variety of standard data structures in your code and explain the intended purpose of each.
• Organise your code using Python functions and describe good and bad practices for function design.
• Use Object Oriented Programming to create custom data types (classes). Describe some pros and cons of Python’s implementation of OOP.
• Implement standard algorithms for sorting and searching data, and analyse and implement more complex graph-based algorithms.
• Create your own Python library containing custom functions, classes and variables.
• Analyse the complexity of your code and identify performance bottlenecks
• Recognise, at a general level, other elements of the technology stack that your code may interact with such as databases and networking.
• Answer some standard technical interview questions.
• Manage a project using GitHub
• Tackle medium-sized Python coding projects with confidence.
What level is the course and do I need any particular skills?
We build on your existing Python skills from Introduction to Python or similar; you should already be confident with the basics of Python coding including the use of numerical and string variables, conditionals (“if” and “else”) and loops (“while” and “for”).
Before the start of this course, you will be asked to complete the following challenge, bringing your solution to the first session:
Write a password generator that prints ten randomly generated 12-character passwords, then gives the user the option of repeating the process (to get ten more) more or stopping.
How will I be taught, and will there be any work outside the class?
We will use a mixture of presentation, discussion, problem-solving and guided project work in class.
This demanding, fast-paced course requires commitment. You will be expected to do much of the work on your project outside class, and the more time you can put into it the better the end result will be. In addition to your project, you will also be doing homework challenges each week to help you consolidate the technical material.
Are there any other costs? Is there anything I need to bring?
No.