THE STARTING POINT
Programming foundations
Turn curiosity into confidence. Learn to think through problems and write code you can explain.
SOFTWARE DEVELOPMENT. HUMAN POTENTIAL.
AI is changing how we write software.
Your understanding is what makes it work.
Learn the fundamentals. Build things that matter.
Become the developer behind the decisions.
// The most important part? You.
const developer = {
curiosity: true,
tools: ['code',
'AI'],
judgement:
'human'
};
Built on experience.
Grounded in the real world.
Your mentor has built
software at
01 / FIND YOUR DIRECTION
Start where you are. Build towards the developer you want to become.
Learning paths in developmentTHE STARTING POINT
Turn curiosity into confidence. Learn to think through problems and write code you can explain.
CONNECT THE PIECES
Go from an empty page to a working application. Understand what happens on both sides of the browser.
MAKE THE TOOLS WORK FOR YOU
Use AI as a capable collaborator. Learn to give it context, challenge its output, and verify what you ship.
02 / THE VIRGO APPROACH
Generating code is becoming easier. Knowing whether it solves the right problem still takes a developer.
At Virgo, we start with understanding, put it into practice, and bring AI into the process with intention.
See the thinking in actionBuild a mental model, not a collection of snippets. Know what your code does and why it works.
Work through real problems. Make decisions, encounter mistakes, and discover how to move forward.
Ask AI better questions. Read the changes. Test the assumptions. Take responsibility for the result.
03 / A LITTLE LESS MAGIC. A LOT MORE UNDERSTANDING.
A small example of the thinking we want to teach. What would you check before shipping this code?
// AI suggests a way to total a basket
function basketTotal(items) {
return items.reduce((sum, item) => {
return sum + item.price * item.quantity;
});
}
PUT YOUR DEVELOPER HAT ON
A good review starts with questions. Click below to unpack the problem and a possible improvement.
Without an initial value, reduce() throws for an
empty array. With basket objects, it also uses the first object
as the accumulator instead of a number.
items.reduce((sum, item) =>
sum + item.price * item.quantity, 0);
Now test empty and multiple-item baskets. For production, validate inputs and represent money in integer minor units or use an appropriate decimal library.
Workplace photography · Mikhail Nilov / Pexels
04 / MEET YOUR MENTOR
Software developer. Technical lead. Curious by nature.
From financial systems at BlackRock and payment platforms at HMRC to streaming applications at Sky and web experiences at News UK, Josiah brings experience building software across finance, government, and media.
His public projects explore C++, Vulkan, graphics, and physics. That same curiosity shapes Virgo Academy: start with the fundamentals, investigate how things work, and learn by building.
A FEW GOOD QUESTIONS
The foundations path is being designed for people starting from scratch. If you've already written some code, the web and AI paths offer another starting point.
Both, with understanding at the centre. You'll learn to reason about software yourself, then use AI to explore ideas, review work, and support development. You should be able to explain the code you build.
Our web path starts with HTML, CSS, and plain JavaScript in the browser, with Node.js and Express on the server. We want the moving parts to be understandable before adding more tools.
Virgo Academy is taking shape. Learning paths, dates, and delivery details are still being developed. You can explore the proposed paths now and contact Josiah to discuss your interests.
YOUR NEXT CHAPTER STARTS WITH CURIOSITY.
You don't need all the answers. Just a place to start.