Vector.rb (virb) features a 3-part "trimester" learning style that encourages the newcomers using the program to develop methods of study and practice that will help them to develop and create any type of application they wish. The program is designed to treat prospective coders as students to be taught and trained, and also offers plenty of hand-on and real life application for important programming concepts. The program has several tracks that are setup to help new coders learn exactly what they need to know to start developing the type of content that they want. ##First Trimester - Learning the basics of code with Ruby The first section of virb is designed to teach absolute newbies the basics of programming.
It will include a portion of the history of programming as well as basic programming concepts that apply to programming languages in general. It will then teach the specifics of Ruby and offer a comparison to other common languages. After this section the students should know basic programming constructs and be able to build and run basic Ruby programs.
At the end of this trimester, the student will be able to choose the field in which they would like to further their development. The program will then provide them with a set of recommended supplemental languages that they may find helpful in the future. In the second trimester they will have to learn at least one of these languages and pass an evaluation before moving on.
The currently planned/implemented development fields are listed here:
- Desktop Application Publishing
- Web-App Technologies
- Mobile App Development
- Video Game Programming and Design.
##Second Trimester - Analyzing programs and their languages The next section of virb teaches those with basic coding ability how to analze programs and languages.
In this trimester students will be exposed to many types of scripts and programs. They will be subject to many other languages that they can use hand-in-hand with Ruby or by themselves. It will also help to teach the students exactly what information they will need to gather in order to start programming in another language. This will be helpful in the second half of this trimester and in their future as programmers. After this section the students should have a basic understanding of the different types of languages and how/why/where they are used.
The second, and main, portion of this trimester is full immersion into a language. It will teach many of the most used concepts in each supported language. It will provide full documentation for setting up a build enviornment as well as challenges and programs to be completed in each language. At the end of this section the students should have a strong understanding and appreciation for the language(s) of their choosing.
The currently planned/implemented languages include, but are not yet limited to:
- CRuby (C-interpreted Ruby)
- Jruby (JVM-based Ruby)
- Opal (Javascript-transpiled Ruby)
- HTML5 (Latest implementation of HTML)
- CSS3 (Latest implementation of CSS)
- jQuery (Most popular Javascript implementation)
- Java (Most compatible programming language)
- C (Fastest and most relied-on language)
After learning more about these languages through code analysis and hands on projects, the student will be evaluated. ##Third Trimester - Developing and deploying to specific platforms The final section of virb walks the students through the steps necessary to build a project such as:
- Choosing a specific platform to target.
- Creating a workspace enviornment for building professional applications.
- Intergrating a new or un-familiar development framework.
- Using various types of publishing tools.
- Setting up multi-dev and crowd-sourced enviornments.
- Managing open-source and private/copywritten projects.
- Implementing various types of application deployment.
- Understanding program distribution and self-promotion.
######The next step after this will depend on the path chosen by the students in the first trimester. There will be walkthroughs available for each of the 4 tracks they selected at the end of the first trimester. The students will also be able to go back and learn previously skipped languages in order to progress on alternate paths, should they choose to do so.
The program will show them how to use one or more of the following technologies:
- Bundler
- Warbler
- ElectronJS
- FTP
- MySQL
- Rails
- Node.js
- RhoMobile
- RubyMotion
- Unity
- Unreal Engine
Afterwards, it will offer helpful tips regarding other useful development/deployment processes that may help the students to go the extra 10% on their projects. Such as:
- Application Packaging
- Web Publishing
- Alpha/Beta Testing
- Custom Engine Creation
- Cross-Platform Development
#####After completing the full program the students should be well-versed in programming lingo and should have a good understanding of how they want to use their newfound programming skills. Support will be continuously offered via hosted documentation, group chat rooms, and direct correspondance via email. I am hoping to be able to get mentors to support the upcoming programmers one the program has been fully fleshed out.