The Basics and Helpful Commands to Know

Most computer science students have at least heard of Git and GitHub. However, if you’re anything like I was, that’s as familiar as you are with this tool. Let’s see if I can help by starting with the basics:

Git is one of the largest version control tools for software development. It can be used by an individual for a side project or by a group as a collaboration tool. Either way, this tracking system tool, keeps versions and configurations of a software project organized.

GitHub is a code hosting platform that uses Git. By which, multiple members of an…

So it’s my first week of work as an associate software engineer, which means lots of on boarding and discussions around tech best practices. While it’s still fresh, I wanted to take some time to go over Agile for anyone who may be unfamiliar or wants a refresher :)

So. Agile is a way to approach a project and in my case, a software development project. This process capitalizes on constant communication and collaboration. Teams will work on a certain amount of work for a sprint (1 to 4 week period) in order to work towards the overall goal. After…


Object Oriented programming relies on objects to solve whatever problem the developer is currently facing. Objects are created, or instantiated, from files called classes. Classes are blueprints that describe what an object is ‘made of’ and how this object will ‘interact’ with the outside world. How well these classes are defined is often the most weighty factor in determining your code’s elegance and efficiency.

SOLID is an acronym to help developers create classes that are maintainable and extendable. Each letter stands for a design principle that should be followed when writing a class for an object oriented project.

S is…


Ok. So if you’ve spent any time at all sitting in a college level computer science course or at a local software developer meetup, you’ve probably heard of the word ‘abstraction.’ If you haven’t, you should definitely tack it onto your ‘look it up later’ list. Or just keep reading :) Today, before diving into the concept of abstraction being applied to specific topics such as data structures, let’s begin the conversation about abstraction from a bird’s eye view.

Abstraction is just hiding certain ideas/concepts/information from a party.
Abstraction is just hiding certain ideas/concepts/information from a party.
Abstraction is just hiding certain ideas/concepts/information from a party.

We, as engineers and developers, are often asked to create some sort of application to solve a client’s problem. The client…

Bailey Cheung

Sometimes I feel inspired to share my understanding of software engineering principles & practices, hopefully I can help you learn too :)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store