Programming School for 21 st Century syllabus MOBILE BACKEND DEVOPS
Overview Refactory Syllabus This is our guideline to help students improve their programming skills, to be an international-level so ware developer. We will implement this to the students in a fun and challenging way. Continuous 12-Weeks (On-site) or 8-weeks (Remote Immersive): Creating world-class so ware developers. During bootcamp process, you'll be primarily working in groups on a real project (yes, you read it right) pu ing in 11-hour days at a minimum, 6 days a week. This way, you will get both learning and working experience. In Refactory, student is prepared for so ware development career with specific skillsets depend on their track of choice: DevOps Back End Application Development Mobile Application Development Prior to main specific skillsets above, every student needs to conduct and finish preparation and foundation steps. A er finishing those steps, student will concentrates on his / her main specific skillsets.
Curriculum Preparation This phase is used to prepare student for bootcamp. There are three activities in this phase: Development tools setup Self Study Tasks Development Tools Setup Generally, student should install and configure development tools which will be used for their main tools in bootcamp process as the student Necessary for All Students - Linux OS (Ubuntu latest version, or maybe other Linux distro provided that student understand how to efficiently use the distro). You may also use Mac especially for ios mobile application development. - Git - Docker - NodeJS
Self Study All students should do self study related with their track. The materials will be provided when a student is on preparation period. Besides, there are some self study item that must be completed by all students: - WPM (Word Per Minute) for typing speed exercise - English - Git - Linux Command Line - Docker - Algorithms Tasks Student should finish basic tasks related with all materials above. This will be determined by Refactory.
Curriculum Foundation and Programming Languages These materials are prepared to enhance student s knowledge so that they have a strong foundation towards application development process. Foundation These materials are used to prepare you in sharpening your skills at basic and foundational knowledge towards so ware application development. So ware development can be just viewed as programming alone eventhough programming is the main process in so ware development but there are many things which should be understood beside programming. This material consists of: - Overview of IT and Its Ecosystem - Cloud Computing - So ware Taxonomy - So ware Development Methodology - Introduction to Linux - Linux Shell - Introduction to Fullstack Application Development - Introduction to Database Management System
Programming Languages Programming language specification and its implementation is the main part in so ware development activities. Refactory may use one or more programming language(s), so these materials are expected: - JavaScript - Java - Objective-C - Swi - Ruby - Python - PHP - Go Daily Improvements WPM (Word Per Minute): metrics to measure typing speed. English Communication Skills. Contribution to Open Source projects. StackOverflow points. Solving HackerRank programming problems.
Main Skillsets DEVOPS
DevOps DevOps basically is culture and process in so ware development with released so ware product as the end results. It has strong relationship with tools to automate development and operations in so ware development activities. Although not mandatory, this knowledge usually are practiced in Cloud Computing - IaaS and Paas - environment. The materials for DevOps track are: Intro to DevOps Container Technology DevOps Toolchain - Introduction to DevOps Toolchains - Collaboration Tools - Toolchain for Product Creation - Toolchain for Product Verification - Toolchain for Product Packaging - Toolchain for Product Release - Toolchain for Product Configuration - Toolchain for Product Monitoring Spesific Tools Devops Track - Kubernetes (Kubctl + Minikube) : A popular open source container orchestration. this so ware can be downloaded from h ps://kubernetes.io/docs/ ge ing-started-guides/minikube/
Main Skillsets BACKEND APPLICATION DEVELOPER
Back End Application Developer These materials are used to prepare students to have a hands on and practical knowledge in back end aspect of every so ware development life cycle. The materials are: Microservices RESTful API Frameworks - Ruby on Rails - Flask - Laravel Other Topics: - GraphQL - Realtime App
Back End Application Developer Spesific Tools Back End Application Development Track Interpreter/Compiler for Programming Languages: - Python: Python from Python So ware Foundation (also known as Cpython). This so ware can be downloaded from h ps://python.org. Framework: Flask h ps://flask.pocoo.org - Go: Go from Google. This so ware can be downloaded from h ps://golang.org - Ruby: MRI ( Matz's Ruby Interpreter ) or CRuby (since it is wri en in C). This so ware can be downloaded from h ps://www.ruby-lang.org. Framework: Flask h ps://rubyonrails.org - PHP: PHP Interpreter from PHP Group h p://php.net embedded as Apache HTTPD module. Framework: Flask h ps://laravel.com - Apache HTTP Server : A free and open-source popular web server. This so ware can be downloaded from h ps://apache.org Database: - MySQL: h ps://www.mysql.com Tools: - IDE / Editor of your choice: Vim or Emacs or Atom or Visual Studio or the like. Make sure that there are plugins for programming language of choice.
Main Skillsets MOBILE APPLICATION DEVELOPER
Mobile Application Developer There are three subcomponents for mobile application developer track: Cross Platform Mobile Application Development Native Mobile Application Development for Android Native Mobile Application Development for ios Cross Platform Mobile Application Development React Native is used for this track. The materials are: - Introduction and Ge ing Started - React Native and ReactJS - JSX, Components, and Basic Components - Customizing Components with Props - Managing Dynamic Data/Component using State - Styling React Native Application using Style - Component Size - Height and Width - Layout with FlexBox - Handling User Input - ScrollView - ListView - Access Remote Endpoint - Redux for State Container(rn-redux.md) - Native Modules for Android and ios - Performance Tuning - Application Deployment using Fabric
Mobile Application Developer Spesific Tools Cross Platform Mobile Application Development Track Main: - JavaScript - Node.Js - React Native h ps://facebook.github.io/react-native/ - Swi and Objective C: Objective C and Swi SDK from Apple Developer h ps://developer.apple.com. Tools: - Atom editor with Nuclide plugin
Mobile Application Developer Native Mobile Application Development for Android These materials are specific towards Android application development using Java or Kotlin as its native development tooling. The materials are: - Development tools - View Layout - Activity & Fragment - Basic Concept - Background Service - Network Access - Android Common Libraries - Permission - Data Storage - Content Sharing - Account Manager - Material Design - Accessing Device API - Multimedia - Performance Tuning - App Distribution
Mobile Application Developer Spesific Tools Native Mobile Application Development Track - Java: JDK from Oracle, can be downloaded from h ps://java.oracle.com - Kotlin: JetBrains Kotlin, can be downloaded from h p://kotlinlang.org. Tools: - Android SDK and Android Studio: Development kit for android development. These so wares can be downloaded from h p://developer.android.com/studio/index.html - Gradle : Build tools for android application h p://gradle.org
Mobile Application Developer Native Mobile Application Development for ios In this subcomponent, student will learn how to develop ios application using native development tools: Swi and / or Objective-C. The materials are: - Ge ing Started - Familiarizing to XCode - Controller - Understand UI Storyboard - Common Design Pa ern in ios Development - Data management - Real-time Transaction - User Authentication - Native Features - Reactive Programming in Swi - Testing your App - Performance Tuning - Distributing app Spesific Tools Native Mobile Application Development Track - Swi and Objective C: Objective C and Swi SDK from Apple Developer