Courses


Python Python Coding

Research by pypl.github.io showed Python to be the second most popular and fastest growing language of all as at the end of 2016. Most importantly, Python is easy to learn, easy to read, incredibly powerful and lets you become productive quickly. We guide you to becoming proficient in this highly sought after language and help incorporate it into your arsenal of tools.

We realise that the best way to learn a language is to use it to produce an app that you deeply care about. We provide you with fundamentals and practical knowledge, then strive to discover and guide you through what you love coding, be it web sites, network apps, data crunchers and visualisers, system automation tools, graphics apps or games.

We take a highly practical approach to get you productive and feeling accomplished as quickly as possible.

Linux Linux Systems Administration

Our bread and butter. We love Linux, know it intimately and love teaching it. Linux and open source stacks are exactly that, transparent systems that hide nothing about themselves to those who are curious. Learn how to peel back the layers of your systems. Feel empowered to be scientific in problem diagnosis and resolution, as well as creative in systems design and implementation. Learn to wield the most relevant server and cloud operating system on the planet.

Learn the command line and hone your bash-fu. Create and deploy clusters of services. Treat your systems as cattle rather than pets. Build in resilience and failure tolerance. Harden your systems for security. Integrate and optimise applications. Learn the joy and power of working with open source software.

DevOps  DevOps Engineering

Practical DevOps training for Linux engineers. Learn and apply the fundamentals of modern DevOps engineering. This course lets you wear the two hats that comprise this multi-diciplinary role, that of a developer and of an operations engineer. As a developer, learn how to produce and package deployable, testable software in Python. As an ops engineer, learn how to deploy software reliably, rapidly and continuously.

If you're a developer wanting to extend your skills in software deployment and systems management, or a systems administrator wanting to write code to optimise and automate your workflow, DevOps engineering training will take you to the next level in your career.

Our In-house Training Lab

Hosted in a modern computer and electronics laboritory in Turramurra NSW (Sydney, Australia), close to the Macquarie Park technology hub, the LinuxDojo Lab is a perfect location for high tech training.

Our lab features:

  • A spacious, air conditioned training room with a maximum limit of 5 students to ensure a low student-teacher ratio and a highly personalised experience
  • Individual desktop workstations running the latest Fedora Linux, a large front of room display and a whiteboard
  • A stocked electronics engineering workspace for robotics, computer and electronics applications
  • Fridge, kitchenette, bathroom and microwave facilities with a a quiet, tree-lined out door break-out area
  • Lunch and dinner catering for any dietary requirement
  • and... a small showcase of 1980's technology in separate annex, a homage to our glorious beginnings!

On-premise Training

We come to you, be it anywhere within Australia or abroad. Multi-day training courses, focus groups, consulting and engineering servces. We provide a Linux Dojo master trainer, all course material and software. You provide:

  1. A room with a front of room display (we can provide a projector if required) and ideally a whiteboard
  2. An Intel-based PC per student. We supply bootable Linux USB keys or VirtualBox VM's which don't affect any software on your systems.
  3. A wired/wireless network with internet access on which all workstations are connected

For a tour of our training lab:

Contact us for enquiries...

 

We adopt a highly collaborative teaching environment. Any student can share their display to the front of class so that people can easily observe and learn through others' examples at the comfort of their own workstation. We also use collaborative text editors so that code and config snippets can be easily shared with the class.

Our courses focus on practical, hands-on training. Along with our standard courses in Python, Linux and DevOps, we also provide tailored training in specialised areas such as, for example, data processing and visualisation or automated Linux server provisioning.  Our training method involves expert led instruction interspersed with practical exercises and personal guidance.

We get a huge kick out of helping people accelerate through their professional development journey. Our split roles as teachers and consulting engineers helps us refine our own skills as modern technical practitioners. We're super excited to help you obtain a mastery of the art and achieve your goals.

LDPY01: Introductory Python Coding (3 day course)

Python programming introduction and fundamentals.

  • Python fundamentals including types, lists, tuples, dictionaries
  • String manipulation
  • Conditionals and loops
  • Functions
  • Exceptions
  • List and dictionary comprehensions
  • File manipulation
  • Coding style and structure, PEP-8, text editors and IDE's
  • Modules and libraries
  • Introduction to Jupyter for rapid prototyping
  • Version control using Git
  • Python package management using PIP

This course is suitable for people with:

  • no prior experience in Python programming
  • basic familiarity with programming concepts, or programming in another language

LDPY04: Advanced Python Coding (3 day course)

Advanced programming and application deployment using Python.

  • Object oriented programming
  • multiprocessing
  • Iterators and generators
  • lambda functions
  • Web app developent using Django
  • Templating with Jinja2
  • ORM's including Django's builtin and SQLAlchemy
  • API development
  • Rapid prototyping, data processing and visualisation and productionisation using Jupyter
  • Task and scheduling Integration with Celery
  • Packaging, productionisation and deployment with Virtualenv and Conda

This course is suitable for existing Python programmers who:

  • have completed LinuxDojo course LDPY01: Introductory Python Coding

or have the following skills or experience:

  • Understand and apply basic Python idioms
  • Understand basic Python data types and iterative/conditional/exception-handing code
  • Understand Python functions
  • Have used and applied code version control

LDSA01: Linux Systems Administration (3 day course)

Linux Systems Administration for course for systems admins with minimal Linux experience.

  • BASH command line tools, filesystem heirachy standard
  • Installing, removing, upgrading and querying installed applications, package management
  • Controlling system services
  • Users, groups, discretionary access controls, permissions, pluggable authentication modules
  • libnss/nsswitch.conf and passwd/shadow/group databases, intro to directory services
  • Storage, filesystems, partitions, logical volume management, network file systems
  • File management and compression
  • SSH, rsync, FTP and other file and control protocols
  • Understanding the Linux bootstrap, GRUB boot loader and system initialisation
  • Basic networking including interfaces, routing, nat
  • Security management including basic application hardening, firewalls, and SELinux
  • Scheduling using cron
  • System logging services, how to query logs for problem diagnosis

This course is suitable for existing Systems Administrators who:

  • have minimal experience with Linux
  • have experience with Windows systems admin/engineering

LDSA04: Linux Systems Engineering (3 day course)

Advanced Linux Systems Engineering for course for existing Linux systems admins.

  • Process management (processes, threads, zombies, CPU affinity, cgroups, monitoring, load and utilisation, kernel netlink interface)
  • Local, network and user land (FUSE) based filesystems
  • Memory management
  • Automated host provisioning
  • Filesystem management with LVM
  • Network services including iptables, nat, routing including policy routing, advanced networking
  • Shell scripting, BASH command line in depth, VIM, terminal multiplexers including Screen and Tmux
  • Bootstrapping the kernel, boot loader installation and configuration
  • System logging and monitoring
  • Systemd unit files, timers, sockets
  • Xinetd based services
  • Network and system services including SSH, web servers, databases, mail servers, time servers, etc
  • Backup and restore of data stores and databases
  • System security, scanning, server hardening, netcat and other tools
  • Diagnosis with strace, iostat, vmstat, sar and other tools
  • mdadm and software RAID
  • backup/restore with rdiff-backup

This course is suitable for existing Linux Systems Administrators who:

  • have completed LinuxDojo course LDSA001: Linux Systems Administration

or

  • have 1-3 years experience as a Linux Systems Administrator

LDDO04: Linux DevOps Engineering (3 day course)

Applied DevOps Engineering training. Take the role of both a developer and operations engineer in this course. Write a quick web app as a basis for the course, then learn how to wield both dev and ops diciplines to deploy your applications and upgrades autonomously.

Dev component:

  • Code development in Python: creating a database backed web application using Django, MariaDB, NginX.
  • Python containerisation using Virtualenv and Conda
  • Version control with Git
  • NginX configuration
  • Database Configuration
  • Makefiles, build toolchain, BASH CLI and scripting
  • DNS API Integration

Ops component:

  • RPM packaging and distribution to custom yum servers
  • Database maintenance: backup, schema version control, restore
  • Continuous integration and delivery: Using GoCD and other tools for automated testing, distribution, deployment and delivery
  • Blue/Green deployment
  • Automated target host provisioning (cloud-based and on-premise)
  • Orchestrative configuration management with Ansible
  • Roll-back/forward, data store and DB Backup and restore
  • Treating configuration as code

This course is suitable for existing Linux administrators and engineers who:

  • have completed LinuxDojo course LDSA01: Linux Systems Administration

or:

  • have completed LinuxDojo course  LDSA04: Linux Systems Engineering

or have the following skills or experience:

  • Experience with Python programming and version control using Git
  • BASH command line and scripting familiarity
  • RPM Package management
  • Basic understating of systemd, user management, database administration
  • Basic understaing of TCP/IP fundamentals
  • Installing web services on Linux

About

We are consulting Linux systems engineers and trainers.

We help businesses optimise their operational workflow and deliver software rapidly.

Learn more

Team

Contact

Linux Dojo Pty. Ltd.
ABN: 30 611 885 262

Headquarters
Suite 3, 7/122 Arthur Street
North Sydney NSW 2060 Australia

Computer Training Lab
Turramurra NSW 2074 Australia

+61 2 8311 8686
info@linuxdojo.com

Contact us