Junior Programmer study plan
Junior Programmer · Give each week a clear focus.
8 weeks · About 6 hours per week
Programming fundamentals: syntax, variables, data types, operators, expressions
Write and run 20 short programs that declare variables of at least five data types (integer, float, string, boolean, list) and print each value together with its runtime type.
Convert values explicitly between types 10 times and log which conversions are lossy (float to integer, string to number with bad input) versus safe, noting the exact result of each.
Build a one-page cheat sheet of 15 operator-precedence and expression rules covering integer division, modulo, comparison chaining, and short-circuit evaluation, then verify every entry by executing it.
Repair 10 deliberately broken snippets (unclosed string, type mismatch in arithmetic, assignment instead of comparison, off-by-one in a formula) and record the error message and the fix for each.
Your checkpoint
A runnable 'fundamentals' source file containing 20+ commented programs that execute with zero errors, plus the verified operator cheat sheet and a 10-row bug log table.
Programming fundamentals: syntax, variables, data types, operators, expressions & Control flow: conditionals, loops, and logical decision making
Write 12 conditional blocks that combine comparison and logical operators, including at least three nested conditionals and one multi-branch chain, and predict the output before running each.
Convert five nested conditionals into flatter early-return or guard-clause forms and note which version reads more clearly.
Write while loops, counted for loops, and at least three loops that use break and continue correctly; produce a hand-written trace table for two of them showing variable values per iteration.
Add input validation to a program so that empty, non-numeric, and out-of-range inputs each produce a distinct, friendly message instead of a crash.
Your checkpoint
A command-line menu or number-guessing program of 60-100 lines with input validation, at least one loop, nested conditionals, and three sample-run trace tables.
Data structures and strings: arrays/lists, dictionaries/maps, iteration and manipulation & Control flow: conditionals, loops, and logical decision making
Create, index, slice, concatenate, and reverse lists, and extract first, last, and middle elements without causing an index error; test each operation on empty, single-element, and multi-element lists.
Insert, update, and delete elements at the head, middle, and tail of a list, then time 10,000 such operations to feel why position matters.
Iterate over collections with index-based, value-based, and enumerate-style loops, and rewrite five index loops into value loops while confirming identical output.
Implement linear search and one simple sort (bubble or insertion) by hand, then compare their output against the standard library search and sort on 20 randomly generated lists.
Your checkpoint
A 'list toolkit' module with at least eight reusable functions plus a results file showing hand-written search/sort output, matching library output, and the operation-timing table.
Functions, parameters, scope, and modular code organization & Data structures and strings: arrays/lists, dictionaries/maps, iteration and manipulation
Extract five repeated code blocks from weeks 1-3 into functions that take parameters and return values, verifying each with at least three inputs including an edge case.
Demonstrate local versus global scope, default and keyword arguments, and mutation of a list passed into a function; write a short note on which variables actually changed and why.
Split a multi-line text into words, count occurrences in a dictionary map, and print the top 10 entries sorted by count.
Normalise and reshape strings using concatenation, interpolation or f-strings, joins, case conversion, whitespace stripping, and substring replacement, applying each technique at least twice.
Your checkpoint
A word-frequency command-line tool organised into at least three functions in one module that reads a text file and prints total word count plus the top 10 words with counts.
Object-oriented programming basics: classes, objects, attributes, methods, inheritance
Define three classes with constructors, attributes, and methods; instantiate at least five objects and print their state to confirm each object holds independent data.
Build one base class and two subclasses that override a method, call the parent implementation from a subclass, and show the same method call producing different results per type.
Encapsulate one validated attribute (for example a non-negative quantity or a balance that cannot go below zero) and demonstrate three rejected invalid assignments.
Model a small domain (library loans, bank account, or inventory) with three collaborating classes and a demo script that exercises every method.
Your checkpoint
An object-oriented mini-system with four or more classes, real inheritance, one overridden method, and a demo script that runs every class, accompanied by a text-based class diagram showing is-a and has-a links.
Error handling, debugging, and basic testing practices & Functions, parameters, scope, and modular code organization
Trigger eight common runtime failures (index out of range, missing dictionary key, division by zero, wrong type, null or None access) and record the exact message and traceback line for each.
Wrap at least three risky operations in try/except/else/finally or an equivalent construct, catching specific error types rather than a blanket catch, and prove the happy path still runs.
Write 10+ assertion-based tests for functions built in weeks 4-5, covering normal, boundary, and invalid inputs, and run them all in one command.
Debug a 100-line deliberately broken program: set breakpoints or insert targeted print statements, and log each hypothesis, the evidence, and the fix.
Your checkpoint
A test file with 10+ passing assertions plus a debugging log listing at least five bugs found, the symptom observed, the root cause, and the one-line fix for each.
File handling and use of standard libraries & Algorithms and problem solving: searching, sorting, and simple complexity reasoning
Read, write, and append to text files, handle a missing or unreadable file without crashing, and use a context-manager block for every file operation.
Parse a CSV or JSON file using standard-library modules only, compute counts, minimum, maximum, and average, and write the summary to a new output file.
Implement binary search over a sorted list and count the comparisons it makes versus linear search on 1,000 and 100,000 items, tabulating both results.
Classify every operation used this week in Big-O terms and identify which loop or call dominates the runtime of the file-processing script.
Your checkpoint
A file-processing script that reads a CSV, computes summary statistics, writes a report file, and ships with a one-page complexity note containing the linear-versus-binary comparison table.
Development tooling and version control basics & Programming fundamentals: syntax, variables, data types, operators, expressions
Initialise a Git repository for the week 4-7 projects, make at least five meaningful commits, create a branch, merge it, and inspect history and diff output.
Add a .gitignore, write a README with setup and run instructions, and tag a release version.
Re-solve 15 mixed questions from domain 1 (types, operators, precedence) without notes to confirm the early material is still solid after seven weeks.
Take a timed 30-question mock exam spanning domains 1-8, then write a corrected explanation for every missed question and tag each by domain.
Your checkpoint
A version-controlled project repository with README, .gitignore, five or more commits, and at least one merged branch, plus a mock-exam score log with a per-domain remediation list.
Milestones
Week 2: Score 80% or higher on a closed-book 20-question, 25-minute quiz on domains 1-2, and run the week-2 program with no syntax errors and three documented input cases.
Week 4: Write a 40-line program from scratch using at least three functions, one list, and one dictionary in under 45 minutes with no reference material, and have it run correctly on the first or second attempt.
Week 6: All 10+ unit assertions pass in a single command, and you can read five seeded tracebacks and state the failing line and root cause within 60 seconds each.
Week 8: Score 80% or higher overall on the timed mock exam with no single domain below 60%, and show a Git repository whose log contains five meaningful commits and a merged branch.