The Odin Project is one of those "What I wish I had when I was learning" resources. Not everyone has access to a computer science education or the funds to attend an intensive coding school and neither of those is right for everyone anyway. This project is designed to fill in the gap for people who are trying to hack it on their own but still want a high quality education.
Thank Theodinproject π so much β€οΈ I have no experience at coding and don't know where should I start to become a web developer. But The Odin Project saved me. If you are a beginner and want to have a learing path, let's visit theodinproject.com now. Now, I am learning Ruby on Rails and this is my learning path in The Odin Projectπ
Feel free to fork my repo, or copy my path in README.md if you need help π π π π
All my notes written in Vietnamese (vi). I so happy if you can help me translate to other languages. Many thanks
Introduction noteGit note
HTML note
CSS note
Javascript note
Ruby-lang note
Ruby on Rails note
Computer Science note
SQL note
Testing note
View my folders structure
This is place where I saved all projects, files,... I have learned in The Odin Project. See below for more infomation about each folder.
.
βββ html-css
β βββ apple-page
β β βββ apple.html
β β βββ README.md
β β βββ style.css
β βββ grid-based
β β βββ mincss
β β β βββ assets
β β β βββ css
β β β β βββ styles.css
β β β β βββ styles.css.map
β β β β βββ styles.min.css
β β β β βββ styles.min.css.map
β β β βββ scss
β β β βββ _base.scss
β β β βββ _components.scss
β β β βββ _grid.scss
β β β βββ _list-variables.scss
β β β βββ styles.scss
β β β βββ _var-colors.scss
β β βββ test
β β β βββ homepage.html
β β βββ README.md
β βββ mint-sign-up
β β βββ README.md
β β βββ sign-up.html
β β βββ styles.css
β βββ newsweek
β β βββ assets
β β β βββ styles.css
β β β βββ styles.min.css
β β βββ home.html
β β βββ README.md
β βββ nyt-page
β β βββ nyt.html
β β βββ README.md
β β βββ styles.css
β βββ smashing-layout
β β βββ README.md
β β βββ smashing.html
β β βββ style.css
β βββ the-next-web
β β βββ assets
β β β βββ destop.css
β β β βββ mobile.css
β β β βββ setup.css
β β β βββ style.css
β β βββ home.html
β β βββ README.md
β βββ youtube-clone
β βββ README.md
β βββ styles.css
β βββ watch.html
βββ images
β βββ ...
β βββ ...
βββ js
β βββ library
β βββ home.html
β βββ main.js
β βββ README.md
β βββ style.css
βββ rails
β βββ README.md
βββ ruby
β βββ custom-enum
β β βββ spec
β β β βββ custom-enum_spec.rb
β β β βββ spec_helper.rb
β β βββ custom-enum.rb
β βββ data_structures-algorithms
β β βββ BST
β β β βββ binar_search_trees.rb
β β βββ knights_travails
β β βββ knight.rb
β βββ event_manager
β β βββ db
β β β βββ event_attendees.csv
β β β βββ event_attendees_full.csv
β β βββ lib
β β β βββ event_manager.rb
β β βββ output
β β βββ form_letter.html
β β βββ README.md
β βββ final-project
β β βββ data
β β β βββ history.yml
β β βββ lib
β β β βββ board.rb
β β β βββ cons.rb
β β β βββ game.rb
β β β βββ pieces.rb
β β β βββ player.rb
β β βββ spec
β β β βββ pieces_spec.rb
β β β βββ spec_helper.rb
β β βββ play_game.rb
β β βββ README.md
β βββ game_connect_four
β β βββ game
β β β βββ lib.rb
β β β βββ main-board.rb
β β βββ spec
β β βββ lib_spec.rb
β β βββ spec_helper.rb
β βββ game_hangman
β β βββ db
β β β βββ 5desk.txt
β β βββ lib
β β β βββ main.rb
β β β βββ model.rb
β β βββ log
β β β βββ history.csv
β β β βββ pause.csv
β β βββ README.md
β βββ game_mastermind
β β βββ ai_play.rb
β β βββ lib_game.rb
β β βββ play_game.rb
β βββ game_tic_tac_toe
β β βββ game
β β β βββ lib_game.rb
β β β βββ main_game.rb
β β βββ spec
β β βββ lib_game_spec.rb
β β βββ spec_helper.rb
β βββ linked_list
β β βββ linked_list.rb
β βββ methods
β βββ lib
β β βββ bubble_sort.rb
β β βββ caesar_cipher.rb
β β βββ merge_sort.rb
β β βββ recursion.rb
β β βββ stock_picker.rb
β β βββ sub_strings.rb
β βββ spec
β βββ caesar_cipher_spec.rb
β βββ spec_helper.rb
βββ web_dev
β βββ Etch-a-Sketch
β β βββ function-sketch.js
β β βββ index.html
β β βββ README.md
β β βββ style.css
β βββ google_homepage
β β βββ bower.json
β β βββ index.html
β β βββ README.md
β β βββ styles.css
β βββ rock_paper_scissors
β βββ mini_game.html
β βββ mini_game_with_ui.html
β βββ mini_game_with_ui.js
β βββ README.md
β βββ style.css
βββ notes
β βββ vi
β βββ intro-note.md
β βββ git-note.md
β βββ html-note.md
β βββ css-note.md
β βββ js-note.md
β βββ CS-note.md
β βββ SQL-note.md
β βββ ruby-note.md
β βββ rails-note.md
β βββ testing-note.md
βββ README.md
- π web_dev
π― Basic about web, git, front-end (html/css/javascript), back-end
- π ruby
π― Object-oriented design, testing, data structures
- π rails
π― Please read
README.md
in folder π rails to follow link to my projects
- π html-css
π― Deep learning about HTML and CSS for UX web development
- π js
π―
-
π Foundations
-
- π Ruby programming
- π Database
- π Ruby on Rails
- π HTML-CSS
- π JavaScript
- Introduction to Web development
- How does the web work?
- Installing and setting tools
- Git basics
- GitHub
-
HTML foundation
- Headings
- Paragraphs
- Text formatings
- Anchors and hyperlinks
- Lists
- Tables
- Classes, IDs
- Linking resourses
- Using CSS, Js in HTML
- Images
- Forms and input elements
- Div element, sectioning elements, media elements, iframes
-
CSS foundation
- Relation CSS with HTML
- Selectors
- Backgrounds
- Centerings
- Box model
- Margins, padding, border
- Overflow
- Media querries
- Positioning
- Box-shadow
- Floats
- Flexbox
- Grid
- Typography
- Colors, opacity
- Length units
- Tables
- Transitions, Animations, 2D-3D transforms
- Functions
-
JavaScript foundation
- [ ]
-
Developer tools
-
Projects
- Introduction about back-end and some frameworks
- Everything is object
- Data types: Integer, Float, Array, String, Hash,...
- Variables, contants
- Input, output
- Conditional logic:
if..end
,unless..end
,if..elsif..end
,case..when..end
- Loops:
while..end
,until..end
,loop..end
,times
,for..in
- Arrays, array methods:
#each
,#select
,#map
,#reduce/#inject
, ... - Hashes, hash methods:
#each
,#keys
,#values
, ... - Methods
- Enumerable
- Nested collections
- Debugs:
p
,puts
, pry gem
- Class
- Instance
- Methods
- Inheritance
- Modules
- Setters, getters,
super
keyword, ...
- File I/O
- JSON, YAML
- Block, proc, lambda
-
yield
keyword - Pattern matching - Ruby 3 (option)
-
Recursive
-
Common Data Structures and Algorithms
- Linked list
- Binary Search Tree (BST)
- Merge sort, Bubble sort
- Test driven development (TDD)
- RSpec
- Caesar Cipher Github
- Sub Strings Github
- Stock Picker Github
- Bubble Sort Github
- Merge Sort Github
- Tic Tac Toe Github
- Master Mind Github
- Event Manager Github
- File IO and Serialization (game Hangman) Github
- Custom Enumerables Github
- Recursion Github
- Linked Lists Github
- Binary Search Trees Github
- Knights Travails Github
- Ruby final project (Chess) Github | Live preview
- Database
- Relative database, SQL
-
A Railsy Web Refresher
- HTTP, REST, urls
- MVC
- APIs
- Cookies, sessions, authentication, authorization
-
Routing
- Root
- RESTful routes
- Route helper
- Non-RESTful routes
-
Controllers
- Naming
- Renders, redirects
- Params, strong params
- Flash
-
Views
- Layout
- Preprocessors (erb, scss, coffee, ...)
- Helper methods (
link_to
,image_tag
, ...) - Render
-
The Asset Pipeline
-
Webpacker
-
Deployment (with Heroku)
- ORM (Object-Relational-Mapping)
- Rails models
- Migration, rollback
- Validations
- Associations
- CSRF token
- Helper:
form_for
,form_with
,form_tag
,*_tag
, ... - Sessions cookies
-
Active record query
- ActiveRecord::Relation:
#where
,#all
, ... - ActiveRecord::FinderMethods:
#find
,#find_by
,#last
,#first
,#take
, ... - ActiveRecord::QueryMethods:
#select
,#from
,#group
,#having
,#order
,#includes
, ... - Highlight: chaining queries(
#order
, ...), checking (#any?
,#exist?
,#many?
,...), mathematical (#count
,#max
) - Problem N + 1 query =>
#includes
,#pluck
- Scopes
- Write pure SQL:
#find_by_sql
- ActiveRecord::Relation:
-
Active record associations
-
has_one
,has_many
,belongs_to
-
foreign_key
,class_name
,through
,source
- polymorphic
- dependent
- Self joins
-
-
Active record callback
-
before_create
,after_create
,around_create
,before_destroy
,before_rollback
, ...
-
-
Advanced form
- Helper:
select_tag
,options_for_select
, ... - Nested forms, delete nested form objects
- simple_form gem
- Helper:
- Basics create API app with Rails
- Rendering to XML, JSON
- Mailer
- Routing:
resource
,resources
, nested routes,member
,collection
,redirect
- Nested layout:
content_for
,yield
- Design pattern: SOLID
- I18n: Internationalization
- WebSockets
- []
- Elements tags, elements attributes
- Ids, classes
- Links, media, ...
- Tables
- Lists
- Forms
- Units: px, %, rem, em, vh, vw, ...
- Fonts, colors
- Box model: block, inline, inline-block
- Margin, padding, width, height
- Float, position
- Flex
- Grid
- Background, gradients
- Font: font-family (serif, san-serif, ...)
- Color
- UX
- Media query
- Introduction some CSS frameworks: Bootstrap, Zurb Foundation, TailwindCSS
- Animation
- Border radius, box shadow
- Transforms
- Pseudo-Elements
- Preprocessors: SCSS, SASS, LESS
- Objects and Object constructors
- Factory functions, module patterns
- Classes
- ES6 modules
- Webpack
- OOP principles
- Linting tools
- Dynamic user interface interactions, forms
- ES
- JSON
- Async
- Working with APIs
- Async and await
- State and props
- Handle inputs anh render lists
- Lifecycle methods
- Hooks
- Router
- Advanced concepts