---
# System prepended metadata

title: 'Learning Goals: PDM & Next 12 Months'

---

# Learning Goals: PDM & Next 12 Months
*These are the areas I'm hoping to focus on in the next 3-12 months. Whether directly through the PDM program or as a part of self-study*

## Experiences

*I want to gain experience in the following areas during the PDM program or as soon as possible*

 - [ ] Write an API (use Fast API & Pydantic?)
 - [ ] Use Continuous Integration and Delivery (Github Actions)
 - [ ] Write a test suite (Pytest?, TDD?)
 - [ ] Deploy an app to the web 
 - [ ] Use Django in an application
 - [ ] Use a container application such as Docker
 - [ ] Publish something to PyPi if I write a useful and reusable module
 - [ ] Web scraping
 - [ ] Use Jupyter Notebook to create data analysis project
 - [ ] Look into machine learning, understand what it is
 - [ ] Advice on getting up to speed on a codebase quickly

## Coding / CS Skills

*These are the areas of Software Engineering and Python I'm not proficient in yet and need more practice*

### Comp Sci / Software Engineering
 - [ ] Recursion - I need to try to use this if I can. I get the basic premise but have never understood how and when to use it
 - [ ] Identifying time & space complexity in my code, knowing which algorithm to choose based on its run cost
 - [ ] Structuring a large program
 - [ ] Creating good classses
 - [ ] Writing useful docstrings
 - [ ] Advanced debugging skills
 - [ ] Improve communication with other developers (explaining concepts, whiteboarding)
 
### Coding
 - [ ] Decorators & Closures
 - [ ] Some lesser known dunder methods
 - [ ] REST
 - [ ] Generators
 - [ ] Typing module & type annotations
 - [ ] Iterators
 - [ ] Lambdas
 - [ ] Multi-threading / asynchronous

### Other
- [ ] Linux command line tricks
- [ ] Debug configurations
- [ ] App security & handling secrets

## Mindset

*These are the mental barriers I want to overcome*

- [ ] Feel more confident in myself
- [ ] Persistence in the face of hard topics
- [ ] Shut down the negative mental voices
- [ ] Stop thinking I'm not good enough to do things like be a software developer, or launch my own business
- [ ] Learn to slow down and be more careful and intentional - stop rushing and pressuring myself
- [ ] Be more patient and focused when reading text
- [ ] Learn to work deeply with more focus
