Make Development Easy

Learning Development tools, working with Projects, is the key to a rapid entry into Code/Code/Coding. A Computer, Git, and an Code Editor are the starting points for coding. Add Jupyter Notebooks (computational documents) and you bridge a Computer with Data Science. The beauty of Jupyter Notebooks is that it creates a computational narrative, a document that allows code and data with visual analysis, hypothesis, and conjecture.

  • A laptop, bring a laptop to class every day with the Development Tools installed on it. Preferred laptops are MacOS or Windows. Computers using either MacOS, Windows, or Linux are requirements for the course. Computers issued by the School, ie Chromebook, are not as effective because of the restrictions placed on adding software by PUSD. If you only have access to a school issued Chromebook, we will provide an option to access a Linux machine on AWS.
  • Sharing Code. GitHub, is the defacto hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere in the world. Git enables tracking changes, collaborating with others, and reverting to previous versions if needed. Think of it as the Google Docs for Coders. We will clone/push/pull changes to and from GitHub, this is the server where we store and share code in the cloud.
    • Setup GitHub with a personal ID, not a school ID. GitHub Account. It is best if you can incorporate you first name or initials into your account, for recognition by those who know you.
  • Visual Studio Code (abbreviations VS Code, VSCode or VSC) is a powerful Code Editor. VSCode performs a lot of magic and automation behind the scenes to make your Code/Code/Coding life easier, ie telling you about errors in syntax. VS Code supports many programming languages, and has a marketplace of plugins and extensions that enhance the coding experience.
  • GitHub Pages will be used to host your personal web site, notes, and experiences. GitHub Pages allows students to showcase their projects and create personal websites. Students can publish their coding projects, technical notes, and experiences on GitHub Pages for others to see.
  • Jupyter Notebooks will be used to build running JavaScript, Python, or Java Code in to your own Technical Notes. Jupyter Notebooks is a valuable tool in data science and coding. It provides an interactive environment for running code, analyzing data, documenting code, and writing explanations.
  • Slack Account and App, install App on Laptop, get used to reading announcements. Slack is a messaging tool similar to Discord. There will be important announcements and daily messages will be shared through Slack.
  • Windows Desktops install WSL. WSL enables students to work with Linux tools and environments on Windows machines. WSL supports a Linux-like terminal experience within the Windows operating system. WSL users will install WSL 2 and Ubuntu distriibutions. Everyone in this class will be working on a form of Linux when in Terminal.
  • Docker is an open platform for developing, shipping, and running applications. Docker allows students to create isolated environments for testing and deploying their applications, ensuring consistency across different systems. Docker Desktop allows users to test deployment scripts on their local machines, enabling them to debug and troubleshoot their applications before deploying them on AWS.
  • Tools and Terminal Installs
    • DeprecatedAnaconda (Conda) is the environment manager. Conda is an open-source package and environment management system that runs on Windows, MacOS, and Linux desktops. Conda is an environment manager that is very popular for data science projects. It helps you manage you tools in a controlled manner, this is called a virtual environment. Likely we will move away from Anaconda. The purpose of Conda is to avoid dependencies, but many people had problems with managing Python and Pid in VSCode related to Conda shell.
    • Install a package manager. A package manager helps you install tools and manage updates. Homebrew is a package manager specifically for MacOS, while Ubuntu and AWS EC2 machines require the apt package manager for installing additional tools.
      • Homebrew (brew install) for MacOS will be used to install tools. Homebrew is a package manager for MacOS. Apple’s MacOS does not have a development package manager by default. Install Homebrew
      • On Windows, Windows Subystem for Linux (WSL Ubuntu), use (sudo apt install) installs for packages. Things like Java, Python, and more will require installation with apt, as they are not included in Ubuntu by default.
      • On AWS Linux EC2 machines we will use (sudo apt install), similar to WSL, but is temporary to session. An AWS/Kasm Account for cloud computing will be required., account access will be provided by Teacher. AWS Cloud Computing and Electric Cloud Computing (EC2’s) will be used to run Development Enviornment from the Internet.

Hacks

Review all the items mentioned above and get started with setup. Try to understand the concepts behind these tools and seek clarification when needed. Each student needs to take the setup process seriously and should highlight that consistent access to the necessary tools is essential for active participation in the class.

  • Bring your computer daily. If you don't have computer and tools access, you are effectually absent!!!
  • Review material on tools, draw a picture. Installing tools can be a bit of a process. Read, review, and get started. After you do it a little, it starts to become easy.
  • Blog why you love your tools. Do not fear your tools, love your tools'. Then you become familiar and proficient in using your tools, they become extensions of your abilities and empower you to accomplish Code/Code/Coding tasks more efficiently.
  • Add yourself to Users Database. We need you registered so we know how to support you best. This registration will be used for automation now and through the year.