Upgrade to Pro — share decks privately, control downloads, hide ads and more …

My advice to CompSci graduates

Avatar for John John
March 21, 2026

My advice to CompSci graduates

Here I shared advice for graduates touching on AI, automated testing, legacy code, and the importance of understanding practical implementations of theory and concepts.

Avatar for John

John

March 21, 2026
Tweet

More Decks by John

Other Decks in Programming

Transcript

  1. AI

  2. Advice #1: Don't use AI* “While these tools offer unprecedented

    opportunities for enhancing learning and information access, their potential impact on cognitive development, critical thinking, and intellectual independence demands a very careful consideration and continued research” Paper: Your Brain on ChatGPT: Accumulation of Cognitive Debt when Using an AI Assistant for Essay Writing Task MIT Media Lab https://arxiv.org/pdf/2506.08872v1
  3. Advice #1: Don't use AI* ”Duplicated code was getting bad

    in 2023. In 2024, it started getting ugly.” Paper: AI Copilot Code Quality GitClear https://www.gitclear.com/ai_assistant_code _quality_2025_research
  4. Advice #1: Don't use AI* Paper: How AI Impacts Skill

    Formation Judy Hanwen Shen/Judy Hanwen Shen https://arxiv.org/pdf/2601.20245 ”Figure 6 shows that while using AI to complete our coding task did not significantly improve task completion time, the level of skill formation gained by completing the task, measured by our quiz, is significantly reduced”
  5. Advice #1: Don't use AI* Paper: How AI Impacts Skill

    Formation Judy Hanwen Shen/Judy Hanwen Shen https://arxiv.org/pdf/2601.20245 ”Figure 6 shows that while using AI to complete our coding task did not significantly improve task completion time, the level of skill formation gained by completing the task, measured by our quiz, is significantly reduced”
  6. Advice #1: Don't use AI* Paper: Measuring the Impact of

    Early- 2025 AI on Experienced Open-Source Developer Productivity Model Evaluation & Threat Research https://arxiv.org/abs/2507.09089 “We find that when developers use AI tools, they implement issues in 19% more time on average and nearly all quantiles of observed implementation time see AI-allowed issues taking longer. That is, developers are slower when using AI is allowed”
  7. Advice #1: Don't use AI* • Unchecked AI use impacts

    critical thinking and learning in a negative way • AI use has a negative impact on code quality • AI has a negative impact on reliability • AI doesn’t make you meaningfully faster… if it makes you faster at all
  8. Advice #1: Don't use AI* Observations based on interviews and

    hires 1.Juniors who heavily use AI perform worse in technical interviews. 2.Juniors who heavily use AI quickly stagnate. 3.Juniors who heavily use AI take less ownership and responsibility for the code/solution.
  9. Advice #1: Don't use AI* System complexity Time Max complexity

    AI can handle Max complexity you can handle
  10. Advice #1: Don't use AI* System complexity Time Max complexity

    AI can handle Max complexity you can handle
  11. Advice #1: Don't use AI* System complexity Time Max complexity

    AI can handle Max complexity you can handle
  12. Advice #1: Don't use AI* System complexity Time Max complexity

    AI can handle Max complexity you can handle
  13. Advice #1: Don't use AI* System complexity Time Max complexity

    AI can handle Lost knowledge due to AI outsourcing Who can work on this now? Max complexity you can handle
  14. Advice #1: Don't use AI* System complexity Time Max complexity

    AI can handle Who can work on this now? Max complexity you can handle
  15. Advice #1: Don't use AI* 1. Who will do the

    job when the AI can’t solve the problem? 2. How do we ensure that changes actually work? What about regressions? 3. How do we ensure that the AI doesn’t introduce unintended behaviours? 4. What about security? 5. How do we ensure people have insight into the product's inner workings? Who has insight into the nuances?
  16. Advice #1: Don't use AI* You must be in the

    driving seat To drive the AI, you need to be a better developer than the AI
  17. Advice #1: Don't use AI* You must be in the

    driving seat To drive the AI, you need to be a better developer than the AI You cannot become better than the AI if you’re dependent on the AI
  18. Advice #1: Don't use AI* You must be in the

    driving seat To drive the AI, you need to be a better developer than the AI You cannot become better than the AI if you’re dependent on the AI When learning, you should refrain from using AI
  19. Advice #1: Don't use AI* • Disable all AI completion

    in your editor, if you have to use AI, only use it in the browser • Never allow it to generate relevant code. Let it explain concepts, or generate example code, but never something that you can copy • Double check everything with non-AI sources
  20. Bettering your odds in the market Projects Projects with real

    users Projects with relevant technologies
  21. Bettering your odds in the market Open-source Do your own

    thing Join an existing project 1. Easy to work with relevant technologies. 2. Easy to work on something with users. 1. Shows that you can work independently. 2. Shows that you can take ownership. 3. More impressive if you also get users.
  22. Advice #2: "Working" is the bare minimum A software developer

    maintains and evolves a technical solution to remain relevant
  23. Advice #2: "Working" is the bare minimum A software developer

    maintains and evolves a technical solution to remain relevant Fixing bugs, improving performance, security fixes, adding new functionality, etc
  24. Advice #2: "Working" is the bare minimum A software developer

    maintains and evolves a technical solution to remain relevant Fixing bugs, improving performance, security fixes, adding new functionality, etc The ability to continue to evolve and maintain the product at a competitive pace.
  25. Reading recommendations: • Clean Coder: A code of Conduct for

    Professional Programmers • The Pragmatic Programmer: From Journeyman to Master • The Software Craftsman: Professionalism, Pragmatism, Pride Advice #2: "Working" is the bare minimum
  26. Advice #3: Don't just learn the theory ”Object-oriented programming (OOP)

    is a programming paradigm based on the concept of objects.[1] Objects can contain data (called fields,attributes or properties) and have actions they can perform (called procedures or methods and implemented in code)” Source: https://en.wikipedia.org/wiki/Object-oriented_programming
  27. Advice #3: Don't just learn the theory ”Object-oriented programming (OOP)

    is a programming paradigm based on the concept of objects.[1] Objects can contain data (called fields,attributes or properties) and have actions they can perform (called procedures or methods and implemented in code)” Source: https://en.wikipedia.org/wiki/Object-oriented_programming
  28. Advice #3: Don't just learn the theory ”Object-oriented programming (OOP)

    is a programming paradigm based on the concept of objects.[1] Objects can contain data (called fields,attributes or properties) and have actions they can perform (called procedures or methods and implemented in code)” Source: https://en.wikipedia.org/wiki/Object-oriented_programming Function Named map/Struct
  29. Advice #4: Write tests ”Code without tests is bad code.

    It doesn't matter how well written it is; it doesn't matter how pretty or object-oriented or well-encapsulated it is. With tests, we can change the behaviour of our code quickly and verifiably. Without them, we really don't know if our code is getting better or worse.” - Michael Feathers, working effectively with legacy code “Why do most developers fear to make continuous changes to their code? They are afraid they’ll break it! Why are they afraid they’ll break it? Because they don’t have tests.” - Robert C. Martin “Testing is not the point. The point is about responsibility.” - Kent Beck
  30. Advice #4: Write tests Unit tests Fuzz tests System tests

    System tests Contract tests Architecture tests
  31. #1: Don't use AI* #2: "Working" is the bare minimum

    #3: Don't just learn the theory #4: Write tests