Technical Bootcamp

Targetted at training institutions, private individuals looking to switch career, or internal programmes designed to facilitate cross training.

Our modern world is dominated by the internet, and the industrial world is collectively in the process of shifting into this connected way of thinking[]. This course is focused on web development in an agile environment. As a base skillset it’s applicable to almost all industries at some level, and the need for people in the workforce to understand and be able to effect change with these systems isn’t slowing down[].

Computers are a tool, and development is a trade. You don’t have to love the tool or the trade to be good at it. I find it extremely satisfying to bring something into the world that didn’t previously exist, and software is low mess, easy to correct if you get it wrong, and fairly low barrier to entry to make a career out of.

Unlike say, carpentry.

Bootcamp administration

  • Owning your own growth / diarising each session
  • Note taking and software maps
  • Necessary homework / 5 year of experience vs 1 year of experience 5 times
  • Intended outcome: job offer for junior developer.

Deriving a definition of a developer

  • Examining what the market is looking for
    • Front end: Javascript, jQuery, React (so some HTML, CSS skillz)
    • Back end: OO, C# (MVC), Python (Django)
  • Construct a job description
  • Dev behavioural interview

Bootstraping to developer

Programming is about precision. If you get the wrong mental model for a subject, you tend to compound errors as you apply a thought process that is incorrect or invalid.

Technical knowledge

  • How a computer works
  • The architecture of the internet
  • Protocols and communications
  • Serial and parallel computation
  • Virtual machines

Tools

  • VS Code with Live Share extension

  • Browser inspector

  • Git

  • Trello

  • Postman

  • Development VM

  • Deployment VM

  • Nginx

  • Docker

  • Github

Functional skills

  • Language types (compiled, interpreted, managed, unmanaged … )
  • Language semantics (function declarations, ends of line)
  • Control structures (if, else, when, switch, until)
  • Primitive types (numbers, strings)
  • Collection types (maps, arrays, lists)
  • Functional programming idioms / higher order functions (map, fold, etc)
  • Augmenting with other libraries (HTTP / Ajax)
  • TDD / BDD
  • Problem derivation / business logic
  • Object orientation / SOLID principles
  • Design patterns / CRUD / MVC

Practical application

  • Back end development / server-side C#, APIs
    • Connecting to a database
  • Front end development / jQuery, React
    • Making AJAX calls (mostly now AJAJ)
  • Deploying to a web server

Behaviour and attitude

  • Owning your own growth (also helps with promotion)
  • Responding to feedback
  • Giving feedback
  • Escalating problems
  • Stakeholder management

Processes

  • Personal time management
  • Agile (manifesto)
  • Scrum vs Kanban

Where to go next

Crafting a CV

  • Hero paragraph
  • Explain the change, explain what excites you
  • CV is just a foot in the door

Applying for jobs

  • Most jobs don’t mean what they say (ignore requirement lists)

Applying CV and interview feedback to continuous learning and development