Writing a personal development plan

Crafting a Personal Development Plan (PDP) is a self-reflection exercise that can allow you to grow and improve. A well-structured PDP helps you pin down the precise skills and knowledge you’ll need for your project. This rough guide will walk you through the process of creating your own PDP, ensuring you gain the right expertise to achieve your goals or at the very least that this expertise is within reach – it’s OK to be ambitious, but when your project is severely time-constrained you need to make sure this skill acquisition will not overtake the actual work. It is aimed at final year undergraduate students with dissertation, MSc students, and PhD students and it is a practice that I have been doing informally with most of my students, that I decided to write down and formalise to simplify my work.

Section 1: Defining your project goals

Not having a clear direction is the best way to end up going nowhere. Before you can figure out what to develop, you need clarity on where you’re heading. The objective of this section is to help you outline the requirements of your project.

  • Project overview: Provide a short and focused summary of your project. This could include your core research question(s), the problem you’re addressing, and the main objectives you aim to achieve.
  • Key skills and knowledge required: Start brainstorming! Think about:
    • Theoretical concepts: What are the fundamental theoretical underpinnings of your research area? Having a strong grasp of these concepts will help you approach challenges more effectively.
    • Statistical methodologies or AI/ML techniques: Does your project involve tasks like natural language processing, computer vision, or reinforcement learning? Identify the specific techniques that underpin your research question.
    • Programming languages, software, tools: Are you proficient in Python, Java, or C++? Will you need to learn a new language like R for statistical analysis, or a specialised language for a particular AI framework? Will you be using established software packages like TensorFlow or PyTorch, or working with custom codebases or cloud platforms?
    • General skills: Some skills are not strictly related to your project, but still important things that you need to master in order to complete it. For example: writing, reading, presenting, critical analysis of research, etc.

Section 2: Assessing your current skillset

Now that you have a clear picture of your requirements, you need to self-reflect and (honestly) analyse your existing abilities. There is no need to be overly critical, as any time developing a skill which does not need developing will be taken away from an actual area where you need to improve. On the other hand, do not be overly optimistic either: it is very easy to under-estimate the time it would take to become good at something and when you are doing a project, time is a sensitive thing. Aim for somewhere in the middle.

  • Strengths: Start positively! List areas where you already have competence. This includes programming languages, experience with techniques (either from classes or work experience), theoretical knowledge, and any relevant software tools. Don’t underestimate the value of transferable skills such as problem-solving or prior research experience, even if they aren’t directly project-related.
  • Areas for development: This is where a bit of critical self-reflection is needed. Be honest about the skills, knowledge, or experience you’ll need to build or improve to tackle your project confidently. Refer back to those key requirements you outlined in Section 1 to be thorough.

Section 3: Creating your development plan

The goal of this section is to help you design a structured plan to bridge the gap between your current skillset and your project’s needs.

  • SMART goals: Produce a set of SMART (Specific, Measurable, Achievable, Relevant, Time-bound) goals. I don’t really like SMART goals because they tend to be peddled by management consultants, but I can’t really thing of an easier format that gets the job done for now. Make sure they are specific to the needs of your project:
    • “By [date], I will complete an online course in Natural Language Processing with a minimum grade of 80%.”
    • “By [date], I will be able to implement a decision tree classification model from scratch using Python and scikit-learn.”
  • Skill development strategies: There are a variety of ways to achieve your development goals:
    • Formal courses and workshops: Most universities have a series of academic skills workshops that can be taken asynchronously. You could also make use of platforms like Coursera, EdX, etc. Finally, you can sometimes request access to external modules which would help with your project (but that will depend on the good will of the module convener, so you should not rely on this).
    • Textbooks: Textbooks are the gold standard for learning new stuff. Textbooks are everywhere and exist for almost anything. Their quality varies but they tend to be self-contained (unlike research papers) meaning that you will only need to read the relevant chapters (and the chapters they depend on) in order to get a good understanding of something.
    • Online tutorials and documentation: Online tutorials can be excellent in some cases, terrible in others, depending mostly on the skills of the person who wrote them. The main issue with tutorials is that they mostly target highly technical content, which gets stale very fast. Then those tutorials never get removed or updated and show up in your online searches, hiding away the more current ones. However, they tend to be good for niche stuff that does not have formal courses or textbooks.
    • Reading research papers: This is what you need to do if you want to understand the cutting-edge stuff. The things which are too new or too niche to have made their way to textbooks, online courses, or helpful tutorials. The really cool stuff.

Section 4: Timeline and tracking progress

This section focuses on setting realistic timelines and finding ways to monitor your advancement.

  • Realistic milestones: Break down your larger PDP goals into smaller, achievable steps. Distribute these across your project’s timeline, taking into account deadlines and other commitments. For example, if a goal is completing an online course, milestones could be finishing individual modules by specific dates.
  • Tracking methods: Choose methods that work best for you:
    • Checklists: Simple and satisfying for marking off tasks.
    • Spreadsheets: Offer greater detail for tracking deadlines and progress notes.
    • Project management apps: Tools like Todoist, Trello or Asana can be useful if you have multiple, interlinked goals. Keep in mind that Outlook and Gmail have their own built-in task management tools, which can be good if you just don’t want to deal with a new tool.
    • Visual timelines: Creating a visual representation (e.g., Gantt chart) can provide a helpful “big picture” view. This can allow you to judge the feasibility of your goals.
  • Adaptability: Projects rarely follow a perfectly straight line. You should revisit your PDP regularly, make adjustments to timelines, and even sometimes revise the goals themselves.

Section 5: Building skills for your professional future

Your project (whether it is undergraduate, masters, or PhD) is a significant milestone, but it’s just one step in your broader career development. This section helps you think strategically about skills that will open doors after graduation, whether you pursue a PhD, an industry position, or a research-focused role.

  • Career aspirations: Take a moment to picture your ideal career path after graduation. Do you see yourself in academia, at a cutting-edge tech company, or perhaps founding your own start-up?
  • Transferable skills: You might think that your tech skills will carry you forward, but the truth is that you will be competing with people with equal to superior tech skills. Instead, start thinking about the other types of skills you have demonstrated:
    • Effective communication: The ability to write clearly, present technical concepts, and collaborate across domains.
    • Problem-solving and critical thinking: Essential for tackling complex challenges in both research and industry settings.
    • Project management: Demonstrating organisation and self-direction is valued by employers and essential for managing research projects.
    • Time management and self-direction: The ability to work independently while balancing multiple priorities.
  • Targeting opportunities: Weave professional development activities into your PDP to enhance your skillset and build a strong professional profile:
    • Attend meetings, conferences, meet-ups: Gain exposure to cutting-edge advancements, network with professionals in your field of interest, and learn about potential career paths. When that is not possible, ask about research group meetings within the school and attend those.
    • Network with professionals: Connect with researchers, industry practitioners, or alumni on platforms like LinkedIn. Seriously, that is the only useful thing about LinkedIn, and the only reason why I allow it to spam my inbox. Make use of it. Attend university-organised career fairs or conduct informational interviews to gain insights into different career paths and explore potential opportunities.
    • Seek internships or research assistantships: Gain valuable practical experience working on real-world projects directly related to your desired career goals. This allows you to test your skills in a professional setting, build your network, and potentially strengthen your candidacy for future positions.
    • Contribute to open-source projects: Contributing to open-source projects allows you to showcase your technical abilities to a wider audience, collaborate with developers from around the world, and learn from experienced professionals. This not only enhances your coding skills but also demonstrates initiative and a passion for your field. Where no relevant project exists, create one!
    • Build an online portfolio: Create a platform to showcase your projects, research work, and technical expertise. This could be a personal website, a professional profile on platforms like GitHub, or contributions to online coding communities. An online portfolio allows you to take control of your professional narrative and make a strong first impression on potential employers or research collaborators.


Typically, the most valuable part of a Personal Development Plan isn’t the plan itself, but the thinking that goes into making it. It forces you to really consider your strengths, identify what you need to learn, and figure out a path to reach your project goals. It feels contrived and artificial, but it is a useful thing to do. Even if you never look at the written plan again, the process of creating it builds a mindset of focused improvement. You can choose to share it with your supervisor (and in fact if I sent you to this page I expect to see it!), or you can burn it as soon as you finish writing it, and it would be the same.