Bitfield Institute of Technology
About BIT
The Bitfield Institute of Technology (BIT) is a software engineering school focused on Go and Rust, but the engineering and design skills I teach are applicable to all programming languages.
The school offers remote training and certifications in Go and Rust development to students worldwide.
How it works
The BIT program is delivered online, to suit your schedule. As a student, you’ll take part in regular remote mentoring sessions with me. During these sessions, we’ll review your work, discuss any questions and problems, and figure out what to do next.
In between sessions, you’ll benefit from putting in as much solo work as you can, developing your projects, and doing your own technical study and research. We’re all busy people, though, so if you don’t have much time for study, that’s okay—the regular mentoring sessions will help you stay focused.
Approach
There’s no fixed syllabus at BIT: everybody is starting from a different place in terms of their skill and experience. We’ll start from where you are today, and figure out together how to get you to where you want to be.
I’ll help you learn to write clear, well-organised, and efficient programs, as well as master many important and commercially valuable software engineering skills:
- Building great software, guided by tests
- A user-centric approach to interface design
- Collaboration and communication skills
- Open-source contribution and maintainership
- A strong focus on safety, reliability, and correctness
- Concurrent and distributed programming
- Cloud infrastructure and container-based deployment
- Programming at large scale and high performance
While you can apply these skills using any language or tech stack, I can help you master both Go and Rust at a deep level, including best practices, tooling, writing idiomatic code, the standard libraries, and understanding language internals.
Software Engineer - Foundational
This is the first level of certification in the BIT program. Identified by a virtual yellow belt, in the tradition of martial arts schools, the Foundational certification indicates that the student knows how to:
- create and run simple programs and packages
- write and run tests
- use the ”guided by tests“ workflow to build projects
- write and test simple functions, including error handling
- use structs and key collection types such as Go slices or Rust Vecs
- use built-in types like strings and numbers
- use key standard library packages
To qualify for this certification, you’ll not only need to demonstrate your abilities, but you’ll also produce a portfolio project which is complete, well-documented, fully tested, and presented to a professional standard. This is a great way to show off your new-found skills to potential employers, for example.
Software Engineer - Intermediate
The green belt certification builds on the knowledge acquired at Foundational level, and shows that you can:
- write clear and idiomatic code following best practices
- test complex behaviours
- build projects from scratch to a working prototype state, guided by tests
- understand and use the core language syntax and features
- work both independently and collaboratively on projects
- explain fundamental Go or Rust concepts to beginners
To qualify, you’ll have to submit another portfolio project that demonstrates your ability to produce work at this higher level, as well passing a detailed language knowledge exam.
With this certification, you’ll be able to work on any software project with minimal help or supervision. It makes you a good candidate for any software engineering position at the junior or intermediate level.
Software Engineer - Advanced
At blue belt level, you’ll not only consolidate and deepen your ability to write conventional sequential programs, but you’ll also begin to master the rich and interesting world of concurrent and distributed systems.
With an Advanced certification from BIT, you’ll be able to:
- demonstrate a comprehensive knowledge of either Go or Rust (or ideally both)
- analyse and solve performance problems with profiling and benchmarking
- use concurrent programming techniques such as threads, channels,
contexts, goroutines, and
async
tasks - understand and avoid data races and ownership issues, using tools
such as waitgroups, mutexes,
Arc
s, and interior mutability - use iterators, generic functions and types, Go interfaces, and Rust traits
- test complex programs including network and database clients, and HTTP servers and clients
- design elegant, effective, and attractive APIs and user interfaces
- collaborate on large, complex projects with legacy codebases
- write excellent documentation
- mentor others, share and communicate your expertise
At this level, you’re a must-hire for any software development position, including at senior engineer and team leader level.
If you want to take your studies even further, and explore the world of technical leadership, staff engineering, consulting, open source, and running an independent business, well, I’m here for you! Just get in touch and let me know what you’d like to learn.
Prerequisites
There are no fixed prerequisites for study with me at BIT. If you’re a total beginner who’s never done any coding before, that’s no problem: many of my students started from scratch, and are now making terrific progress!
On the other hand, if you have many years or decades of professional experience, you’ll find fellow students at BIT with similar backgrounds. There’s always more to learn, and those who see themselves as lifelong learners tend to have the most career success, and find fulfilling jobs that they really enjoy.
You don’t need a degree in computer science or any other subject, or indeed any qualifications of any kind. Some of the smartest students I’ve worked with have come from completely non-traditional backgrounds.
And it should go without saying, but I’ll say it anyway: you’re welcome here at BIT whatever your nationality, skin colour, gender orientation, sexuality, or politics. All computer geeks on this earth are truly one, and BIT is our headquarters.
Costs
Ah, yes, well. Top-quality training isn’t cheap, and you wouldn’t expect it to be. I charge around $200 an hour for mentoring sessions, but it’s up to you how often you want to schedule the sessions, and there’s no minimum frequency. This compares very favourably with the cost of professional software engineering training in general.
There’s no charge to sign up for the program, and no ongoing retainer: you can pause your learning when you need to, and resume when you want to.
Not only do most students find my mentoring services extremely good value, I’ve helped many of them land much better-paid jobs, and in that sense the sessions have paid for themselves!
I think that when you’re investing in your own future, it makes sense to get the best training you can afford—don’t you?
The good news is that most companies have a personal training budget that you can tap into, and many of my students have their sessions with me paid for in full by their employer. Ask your boss if this is a possibility for you, and if you think your colleagues could benefit from the training too, you might like to consider some group mentoring sessions.
Getting started
If you like the sound of what I offer, go ahead and book a session right now, using the links below. I’ll be in touch to schedule a call and help answer any questions you might have. Otherwise, contact me through this website, or email me at john@bitfieldconsulting.com, and I’ll be happy to chat about your learning requirements.