Essentials Tools for the New Terminal Programmer
The terminal--VIM--Git on the command line--Bash scripts--GDB. These are all tools that you have heard of, and likely used in a graphical user interface (GUI) or integrated development environment (IDE). However, did you realize that your point and click interface may be slowing you down? Or perhaps your graphical user interface does not allow you all of the features found with one of these tools. Do you need to automate a common task? Or have you ever had the need to connect to a remote machine across the world, but were left helpless? The answer to fixing these questions to to take the dive and equip yourself with skills to use the terminal.
If you have been avoiding how to learn the terminal or any of these popular tools on the command line, then this workshop is for you.
In this workshop I am going to teach foundational terminal-based tools useful for programmers and developers who have avoided learning how to use the terminal. We'll start at the basics of learning the commands, and then understand the foundations of each tool to build good habits for each of the following tools. When you understand the foundations of each tool, and how they are intended to work, you can then further accelerate your learning after this workshop.
Attendees will acquire a working knowledge of each of the following tools by the end of the session:
1.) Terminal - The command line interpreter that executes users text based commands. We'll learn basic navigation, common commands, how to get help, and how to start automating common tasks.
2.) VIM - A free widely available text editor run inside the terminal. We'll learn about the different modes of VIM, the methodology of how text editing is done, and how to work quickly in VIM.
3.) Git - The most popular version control system to back up your work. We'll learn a workflow to save and backup your work locally, and manage using Git in both small and large projects.
4.) Bash - A shell scripting language useful for automating common tasks. We'll learn the basics of this scripting language to continue automating our workflow.
5.) GDB - A debugger that can be used on the command line for several popular languages (C, C++, Go, Rust, and more). We'll look at examples in C and C++ for this portion. Note: That I'll also provide some equivalent tools for other debuggers at the end of the workshop for different programming languages for interested attendees.
Michael D. Shah completed his Ph.D. at Tufts University in the Redline Research Group in 2017. Michael finished his Masters degree in Computer Science in 2013 at Tufts University and Bachelors in Computers Science Engineering at The Ohio State University in 2011. Currently Michael is an assistant teaching professor at Northeastern University and occasionally consults as a Senior 3D Graphics Engineer.
Michael discovered computer science at the age of 13 when googling ”how do I make games”. From that google search, Mike has worked as a freelance game developer, worked in industry for Intel, Sony PlayStation, Oblong Industries, and researched at The Ohio Supercomputer Center to name a few. Mike cares about building tools to help programmers monitor and improve the performance of realtime applications–particularly any visual multimedia. Mike believes computer science can be learned by all.
In Michael’s spare time he goes for long runs, plays video games while on his exercise bike, learns guitar, and considers himself an amateur pizza and wine maker.