Khu00f3a hu1ecdc public application trong 3 tiu1ebfnguff01 lu1eadp tru00ecnh rails tu1eeb con su1ed1...

Preview:

Citation preview

0

Công ty cổ phần Dive into CodeFounder CEO 野呂 浩良 (Noro hiroyoshi)

Kĩ sư có chứng chỉ Rail3 Bronze

[Nhập môn] Public application trong 3 tiếng!Khóa học Lập trình Rails từ con số 0

Có trên 2000 học viên đã tham gia

1Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Nội dung

1. Giới thiệu ( 10p)Giới thiệu bản thân, Mục tiêu khóa học

2. Kiến thức nền cần cho việc phát triển ( 50p)Phát triển hệ thống, Công việc phát triển, Môi trường phát triển, Ngôn ngữ pháp triển, Ruby on Rails, Cơ sở của phương pháp làm việc

3. Bài tập thực hành (110p)Phát triển trial app, Quản lý version bằng Git, Public trên internet bằng Heroku

4. Bí quyết để nâng cao skill (10p) 3 phương pháp để trở thành engineer5. Phụ lục

Suggest các site học, sách tham khảo, tools …

2

Nhiệm vụ của chúng ta

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Xây dựng xã hội thành nơi mà tất cả mọi người coi công nghệ là vũ khí và phát huy được năng lực của bản thân

Học trực tiếp mặt đối mặt

& Net

Basic Rails

Team development

• Ruby(Rails)• PostgreSQL• HTML• CSS(Bootstrap)

WEB engineer

Kinh nghiệm 0

Basic design

SNS function

Offshore development

Group task function

Offshore development

3Copyright © 2015 TimeShift Corp. All Rights Reserved.

Giới thiệuNoro Hiroyoshi Có 2 lần từng lập trình từ con số 0

Là Thạc sĩ quản trị kinh doanh, Kĩ sư kiêm Giảng Viên. Có nhiều năm kinh nghiệm làm việc ở nhiều vị trí, ngành nghề đa dạng chẳng hạn như làm việc tại Recuit, Works Applications. Ông tính toán tất cả thời gian công việc từ đó xây dựng phương pháp nâng cao năng suất của bản thân từ con số 0 để đạt kết quả tốt trong 1 thời gian ngắn dù ở vị trí mà chưa có kinh nghiệm. Ông từng có trải nghiệm quý báu tại chương trình đặc biệt「Chương trình khám phá năng lực giải quyết khó khăn」của Work Application đồng thời cũng nhận thức sâu sắc về việc thiếu hụt nhân lực engineer trong 1 năm đầu khởi nghiệp. Từ những kinh nghiệm đạt được, ông đã sáng lập lên High level programing school「DIVE INTO CODE」nhằm đào tạo nhân lực trở thành kỹ sư

4

Lý lịch công việc

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Trên 10 năm là nhân viên không biết kĩ thuật. Sau nhiều lần chuyển vị trí, ngành nghề, cùng với việc đi học tại trường đại học kinh doanh thì đã chính thức thành lập công ty vào tháng 4 năm 2015

- Sinh năm 1980

- Năm 2003: Làm việc tại công ty cổ phần Sumiya ( Phụ trách : Tư vấn bán hàng)

- Năm 2006: Làm việc tại Công ty cổ phần Recruit (Phụ trách: Sales)

- Năm 2009: Làm việc tại Công ty cổ phần Work Applications (Phụ trách: Vận hành và bảo trì)

-Năm 2012: MBA (thạc sĩ quản trị kinh doanh) trường đại học viện Kinh doanh Globis

- Năm 2015: Thành lập công ty Cổ phần Dive into Code

5

Cơ hội tiếp xúc với nghề lập trình

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

①Chương trình khám phá năng lực giải quyết khó khăn( Tháng 10 năm 2009 ~ Tháng 3 năm 2010)

・Không internet・Không tham gia bài giảng・Không tài liệu・Gọi & Có hướng dẫn

Sách Mạng

COBOL

DELPHI

ORACLE DB(SQL)

Engineer

Không kinh nghiệm

Tự lực

COBOL

COBOL

DELPHI

DELPHI

6Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

②Lean Startup (Từ tháng 4 năm 2014~ Tháng 10 năm 2014)

・ Ideathon X lần・ Hackathon X lần・Startup Weekend 3 lần・Mokumoku X lần

SáchMạng

300Ý tưởng

3Kế hoạch

1Kế hoạch

Engineer member

0Tự phát triển

Tự phát triển

Enginner ・・・

Cơ hội tiếp xúc với nghề lập trình

7Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ hội tiếp xúc với nghề lập trình

Tự phát triển Web application [Hệ thống quản lý Homeru X Task(Quản lý task group)]

※Thời gian phát triểnGiữa 8 ~ cuối tháng 10 năm 2014

8Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ hội tiếp xúc với nghề lập trình

6/11/2014: Đỗ [Chứng chỉ kỹ sư Rails 3_ Bronze ]! Chỉ sau 2 tháng rưỡi kể từ lúc bắt đầu học Rails

9

Cơ hội tiếp xúc với nghề lập trình

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

-Vấn đề của: những người không phải là kỹ sư đang có ý tưởng kinh doanh nhưng không thể thực hiện được vì cứ cho rằng “tự tôi thì không thể làm được” nên sẽ đi tìm kĩ sư.-Giải quyết vấn đề: muốn lean startup, muốn làm việc như 1 kỹ sư-Giải quyết bằng cách: phải nắm được kĩ năng để tự mình có thể tạo prototype

Giải quyết vấn đề của ai? Giải quyết vấn đề gì? Giải quyết như thế nào?

10

Mục tiêu của buổi hôm nay

Đạt được 3 điều sau:

1. Có thể nắm được cốt lõi của việc học từ con số 0

2. Có thể nắm được nền tảng của phát triển Web application

3. Nâng cao được động lực phấn đấu

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

11Copyright © 2015 TimeShift Corp. All Rights Reserved.

Kiến thức nền cần thiết cho việc phát triển

12Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Bức tranh tổng thể

Flow phát triển hệ thống

Flow công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển Ruby on Rails

Cơ sở của phương pháp làm việc

Từ flow phát triển hệ thống tới phương pháp tiến hành công việc thực tế đều đòi hỏi vốn kiến thức sâu rộng

Phát triển hệ thống

Công việc phát triển

Mô trường phát triển

Ngôn ngữ phát triển

Phương pháp làm

việc

13Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Flow phát triển

Flow phát triển : thiết kết/ phát triển/ test_ đưa cơ chế muốn thực hiện trên thực tế đến gần với cơ chế của máy tính

Cần cái gì?Định nghĩa điều kiện

Thành phần tổng thể?

Basic design

Nội dung của màn hình?

Details Design

Công việc phát triển

Test từng phầnUnit test

Test từng cấu tạoIntergration test

Test tất các phần đã hoàn thànhSystem test

※Trong Lean start up thì không chú trọng việc test

Bài giảng hôm nay

Thế giới thực tiễn

Trong máy tính

Phát triển hệ thống

Công việc phát triển

Mô trường phát triển

Ngôn ngữ phát triển

Phương pháp làm

việc

14Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Flow công việc phát triển

Chi tiết công việc phát triển Các soft sẽ sử dụng trong khóa học1. Cấu trúc môi trường phát triển ※Chỉ thực hiện ở lần đầu tiên

■Cloud9 ★□Install Vagrant + CentOS cho PC□Hoặc install trực tiếp vào PC

2.Tạo cấu trúc nội bộ bằng ngôn ngữ phát triển (Coding)

■Ruby (Ruby on Rails) ★□PHP (CakePHP)□Java, etc

3.Tạo hộp chứa data (Coding)

■PostgreSQL ★□MySQL□MongoDB, etc

4.Vẽ UI hiển thị trên trình duyệt (Coding)

■CSS■HTML□jQuery, etc

5.Quản lý source code đã phát triển ■Git ★ (Dùng cho team phát triển) □Bitbucket (Dùng cho team phát triển) □Github etc

6.Public trên internet ■heroku ★□Hợp đồng cho thuê máy chủ, etc

Công việc phát triển được chia thành 6 phần

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp làm

việc

15Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Flow công việc phát triển

Nếu sử dụng 2 cloud service thì có thể public miễn phí trên internet.

Cấu trúc môi trường phát triển

Coding

Quản lý source code đã phát triển Public trên internet

Cloud9

Git

Heroku

Source code

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp làm

việc

16Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Môi trường phát triển

Phải chuẩn bị sẵn tool và nơi cần cho công việc phát triển

開発言語

Phát triển hệ thống

Công việc phát triển

Ngôn ngữ phát triển

Phương pháp làm

việcMôi trường phát triển

17Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Trước đây cần chuẩn bị PC và phải install rất phức tạp nhưng hiện tại có thể thực hiện chỉ với 1 button

Trước đây Khóa học này

・Chỉ cần nhấn 1 button là OK

Xong ngay trong 1 phút!

Cloud9・Chuẩn bị PC để install↓・Install ngôn ngữ phát triển↓・Install Framework↓・Install hệ thống quản lý database↓・Install hệ thống quản lý version etc

Lần đầu sẽ mất khoảng 3 ngày…

Môi trường phát triển Phát triển hệ thống

Công việc phát triển

Ngôn ngữ phát triển

Phương pháp làm

việcMôi trường phát triển

18Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Do ngôn ngữ và tool đã được cài sẵn trong Cloud9 nên chỉ cần mở trình duyệt ra là có thể dùng được

Folder viewer File Viewer

Terminal

Môi trường phát triển Phát triển hệ thống

Công việc phát triển

Ngôn ngữ phát triển

Phương pháp làm

việcMôi trường phát triển

19Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ngôn ngữ phát triển

Là ngôn ngữ mà cả con người và máy tính đều hiểu và là thứ mà có thể giúp ta cấu trúc chương trình và khiến máy tính hoạt động

Ruby PHP

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

20Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ngôn ngữ phát triển

Ngôn ngữ phát triển ra đời cách đây 60 năm. Cùng với dòng chảy của thời đại, rất nhiều ngôn ngữ lập trình cũng đã được sinh ra. Ruby được ra đời năm 1995

※出典:ひつじTOWN「C言語あれこれ」

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

21Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ngôn ngữ phát triển

Trong các ngôn ngữ phát triển trên thế giới, Ruby là ngôn ngữ phát triển duy nhất được ra đời tại Nhật Bản

※Người phát triển ra ngôn ngữ này là ngài Matsumoto Yukihiro

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

22Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Ruby là 1 ngôn ngữ phát triển. Ruby on Rails là 1 framework được viết trên ngôn ngữ lập trình Ruby

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

23Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Được tạo ra bởi David HeinemeierHansson_ nhà sáng lập Basecamp nhằm giảm bớt thời gian lãng phí

DRY (Don't repeat yourself) CoC (Convention over Configuration)

“Việc mà tôi đang làm là giảm thời gian lãng phí . Giảm việc mất thời gian vào những việc không đâu”

「Không lặp lại cùng 1 việc」 「Quy ước vượt trên cấu hình」

※Source:HR Navi Thần thoại「「Programmer X10」, Chìa khóa để tăng năng suất làm việc mà cha đẻ của Ruby on Rails đã nói là?」

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

24Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Lý do chọn Ruby / Ruby on Rails (Chủ quan)

1. Engineer đánh giá caoRule rõ ràng. Kể cả người mới bắt đầu cũng có thể sử dụng và được những engineer coi trọng năng suất cao khuyên dùng.

2. Cảm thấy tinh tưởng và thấy có tiềm năngĐược dùng để phát triển “Cookpad”(website giới thiệu món ăn). Đây là website mà tôi đang lấy làm hình mẫu theo đuổi.

3. Thị trường tuyển dụng kỹ sư rất lớnVới nhu cầu tuyển kỹ sư cao thì bạn có thể “được tuyển với mức thu nhập hàng tháng trên 300.000 Yên”

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

25Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Trong các công ty Web service thành lập vào năm 2013, cũng có trường hợp đã thay PHP bằng Ruby

“Khi thành lập vào năm 2013,tôi đã nghĩ rằng có rất nhiều kĩ sư dùng PHP, việc tuyển dụng sẽ thuận lợi thôi. Tuy nhiên trên thực tế sau khi hiểu rõ được môi trường tuyển dụng start up trong vài tháng gần đây và việc sử dụng Ruby đang tập trung vào các kỹ sư ở độ tuổi 20 thì quan điểm tuyển dụng cũng đã dần dần thay đổi. (Thực tế là Wantedly có trên 100 kĩ sư nhưng lại có ít người dùng cake nhưng lại có rất nhiều người dùng Rails)”

“Do Framework của những người dùng Ruby chủ yếu là Rails nên kể cả có merge với resource của công ty khác thì vẫn dễ dàng sử dụng (Khá bất ngờ là trong PHP, có khá nhiều người dùng các Framework khác ngoài cake)”

“Trong vài năm qua, các service liên quan tới Rails đã khá đầy đủ. Chúng tôi đã nghĩ tới việc install CI service dành cho team phát triển tuy nhiên khá ngạc nhiên là có rất nhiều service lại chỉ cho dùng Git + Rails”

Cứ vài năm thì ngôn ngữ lại bị thay thế. Đối với kỹ sư, việc catch up ngôn ngữ mới là 1 việc đương nhiên giống như con người cần hít không khí vậy.

CEOCông ty vận hành hệ thống truyền thông y tế

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

26Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Ví dụ về Web service được tạo bằng Ruby on Rails:「Street Academy」

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

27Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Internet

Thông tin được truyền qua trình duyệt. Kết quả xử lý được trả về từ máy tính của đích truyền tin. Màn hình sẽ được hiển thị trên trình duyệt.

Truyền tin http RequestGET, PUT, DELETE …

ResponseHTML, images …

URL

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

28Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Hiển thị màn hình Xử lý nội bộ Quản lý data

HT

TP Server

Controller

View

Model

Trong hệ thống quản

lýD

atabase

Máy tính sẽ nhận truyền tin http và tương ứng với vai trò mà xử lý sẽ được truyền theo thứ tự rồi trả về response.

RequestGET

ResponseHTML

RouterURL

① ② ③ ④ ⑤

⑥⑦⑧⑨10

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

29Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Mỗi vai trò sẽ tồn tại dưới dạng file trong các folder chỉ định. Các file đó sẽ được viết bằng ngôn ngữ Ruby

http Server

Controller

View

Model

Hệ thống quản lý database

Router

Cấu trúc folder theo vai trò.Các file được viết bằng Ruby

Trong Cloud9Sơ đồi khái niệm

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

30

http Server

def index

@blogs = Blog.all

end

<% @blogs.each do |blog| %><% end %>

class Blog < ActiveRecord::Baseend

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Phán định đích tiến hành xử lý từ tổ hợp truyền tin của http và URL. Dòng truyền tin sẽ thành C→(M→DB→M→C)→V→C

/config/routes.rbURL

/blogs

httpGET

blogs#index

/controllers/blogs_controller.rb

/models/blog.rb

PostgreSQLBlogs Table

/views/blogs/index.html.erb

h1 {}

/assets/stylesheets/blogs.css.scss

“O/R Mapper”Blog.all↓Convert từ Ruby sang SQL↓SELECT * FROM blogs;

Ruby on Rails Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

31

http Server

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Front là HTML, CSS. Back là Ruby, SQL. Rails sẽ tạo flow từ http request tới response.

/config/routes.rbURL

/blogs

httpGET

blogs#index

/controllers/blogs_controller.rb

/models/blog.rb

PostgreSQLBlogs Table

/views/blogs/index.html.erb

/assets/stylesheets/blogs.css.scss

Ruby on Rails Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

32Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ruby on Rails

Hiển thị màn hình Xử lý nội bộ Quản lý data

HTTP Server

Controller

View

Model

Hệ thống

quản lý databaseD

atabase

Bước đầu tiên để hiểu được Rails là ta phải hiểu được flow từ http request tới response.

RequestGET

ResponeHTML

RouterURL

① ② ③ ④ ⑤

⑥⑦⑧⑨10

Phát triển hệ thống

Công việc phát triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp công

việc

33Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ sở của phương pháp làm việc

Sử dụng keyboard rồi thao tác trên Terminal. Terminal là cửa sổ để thao tác với máy tính bằng dòng lệnh

Terminal

Phát triển hệ thống

Công việc phat triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp cong

việc

34Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ sở của phương pháp làm việc

Terminal chỉ ra lệnh được cho máy tính 1 lần/ 1 dòng (prompt)

Prompt

Directory đang ở hiện tại (=Folder)

Hãy làm quen với việc thao tác máy tính bằng bàn phím

Phát triển hệ thống

Công việc phat triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp cong

việc

35Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ sở của phương pháp làm việc

Input command rồi thực hiện bằng cách nhấn enter. Cho chạy từng dòng một, không ra nhiều lệnh cùng 1 lúc

Di chuyển tới folder achieve bằng command 「cd achieve」

※Thao tác này bằng với việc dùng chuột để mở folder.

Phát triển hệ thống

Công việc phat triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp cong

việc

36Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ sở của phương pháp làm việc

Input command rồi thực hiện bằng cách nhấn enter. Cho chạy từng dòng một, không ra nhiều lệnh cùng 1 lúc

Di chuyển tới folder code nằm ở lớp trên của folder achieve bằng command [cd..]

※ Thao tác này bằng với việc dùng chuột để mở folder

Phát triển hệ thống

Công việc phat triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp cong

việc

37Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ sở của phương pháp làm việc

Input command rồi thực hiện bằng cách nhấn enter. Cho chạy từng dòng một, không ra nhiều lệnh cùng 1 lúc

Quay lại folder code nguồn

※ Thao tác này bằng với việc dùng chuột để mở folder

Phát triển hệ thống

Công việc phat triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp cong

việc

38Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ sở của phương pháp làm việc

2 điểm cần chú ý khi thao tác trên terminal

Chú ý① Thao tác bằng ký tự halfsize

Chú ý② Nắm được mình đang ở folder nào

Phát triển hệ thống

Công việc phat triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp cong

việc

39Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cơ sở của phương pháp làm việc

Xem manual. Copy command. Input vào terminal. Chạy lệnh bằng cách nhấn enter

① Xem mannual ② Tạo command ③ Input vào terminal

Cần edit

Có thể dùng nguyên như vậy

Copy& Paste

Edit rồi hoàn thành command

※ Trong sổ memo, halfsize ["] và ['] sẽ được tự động convert thành fullsize nên bị cấm sử dụng

Phát triển hệ thống

Công việc phat triển

Môi trường phát triển

Ngôn ngữ phát triển

Phương pháp cong

việc

40Copyright © 2015 TimeShift Corp. All Rights Reserved.

Bài tập thực hành

41

Bài tập thực hành

https://diveintocode.jp/diver/seminar_documents

if you don’t have a credit card, use Codeanywhere.【STEP0】Môi trường

https://docs.google.com/document/d/1anKSp3U7aUhY-Ao8kpGSO0pMgWtp-52Wtc6nIE4-yWY/

42

Bài tập thực hành

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Public Web Application trên internet chỉ với 3 bước!

Cấu trúc môi trường phát triển trên Cloud9

Phát triển trial application

Quản lý version bằng Git

Public trên internet bằng Heroku (Lần đầu)

① ② ③

1

2

3

0

43

Bài tập thực hành

[ Lược đồ ] 3 bước

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

① ② ③

0 Cloud9

CV

M DB

Heroku

HTTP Server

CV

M DB

Ghi vào trong Git (File)

CV

M

1

2

3

HTTP

Server

44

Bài tập thực hành

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Cấu trúc môi trường phát triển trên Cloud9

3 ưu điểm khi sử dụng Cloud9

1. Có 1 máy tính miễn phí dùng cho phát triển2. Có thể install ngôn ngữ phát triển và tool ngay lập tức3. Nếu kết nối internet thì có thể làm việc ở bất cứ đâu

① ② ③

0

45

Cấu trúc môi trường phát triển trên Cloud9

Bài tập thực hành

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

① ② ③

0

Cloud9 1 Workspace

Install:Ruby, PostgreSQL, Git, Heroku Toolbelt …

Tạo mới workspace

Đăng ký account

Install:Ruby on Rails 5

Khởi động PostgreSQL

46

Bài tập thực hành

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Phát triển trial application trên Cloud9

Sử dụng “Ma thuật của Rails” = phát triển trong nháy mắt

・Có thể tạo “Structure”, “Flow electric signal” cho application trong nháy mắt bằng cách dùng lênh [rails new name]

・Có thể tạo bộ màn hình mà có thể access qua URL chỉ định trong nháy mắt bằng cách dùng lệnh「rails g scaffold Screen name」

① ② ③

1

47

Bài tập thực hành

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Phát triển trial application trên Cloud9

① ② ③

1

Cloud9

HTTP

S

erver

C

V

M DB

rails new achieve -d postgresql

rails g scaffold Blog title:string content:text

rake db:create db:migrate

rails s -b $IP -p $PORT

cd achieve

48

Bài tập thực hành

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Quản lý version bằng Git trên Cloud9

2 ưu điểm khi sử dụng Git

1. Có thể giúp ta nhớ được toàn bộ folder, file và toàn bộ nội dung

2. Có thể gửi nội dung đã nhớ đến Heroku chỉ trong 1 câu command

① ② ③

2

49

Cloud9

Bài tập thực hành

Quản lý version bằng Git trên Cloud9

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

① ② ③

2

HTTP Server

CV

M DB

Ghi vào trong Git (File)Folder, file

CV

M

git add .

git commit –m “メッセージ”

git init

git config –global 〜

git loggit status

50

Bài tập thực hành

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Public trên internet bằng Heroku trên Cloud9 (Lần đầu)

3 ưu điểmcủa việc sử dụng Heroku

1. Có thể public application trên internet2. Có thể public application miễn phí bất cứ lúc nào3. Không cần phải cài đặt bất cứ thứ gì

① ② ③

3

51

Cloud9

Git

Heroku Đăng ký New user

Bài tập thực hành

Public trên mạng bằng Heroku trên Cloud9 (Lần đầu)

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

① ② ③

3

heroku login

HTTP Server

CV

M DB

CV

M

1APP

Gitgit push heroku master

HTTP Server

CV

M DB

CV

M

heroku create

heroku run rake db:migrate RAILS_ENV=production

52Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Bài tập thực hành

Tiếp đất!!(Hoàn thành)

① ② ③

53

Mục tiêu của hôm nay

Bạn đã có thể đạt được 3 điều sau chưa?

1. Có thể nắm được cốt lõi của việc học từ con số 0

2. Có thể nắm được nền tảng của phát triển Web application

3. Nâng cao được động lực phấn đấu

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

54Copyright © 2015 TimeShift Corp. All Rights Reserved.

Bí quyết để nâng cao skill

55

1. “Quen hơn là học”Nếu tay không hoạt động thì chắc chắn không thể hiểu

2. “Set thời gian giới hạn”Nếu thấy vướng mắc trên 30 phút thì nên hỏi, không nên giấu

3. “Bắt đầu từ Thủ trong Thủ- Phá- Ly”Làm y nguyên như trong sách và tài liệu tham khảo

Bí quyết để nâng cao skill

3 nguyên tắc khi học lập trình

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

56Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

3 phương pháp

Tự học

3 phương pháp để trở thành engineer

Học ở trường

Chuyển việc

57Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Tự học

Cô đơn. Có mơ màng không hiểu thì cũng không ai bảo. Thời gian thì cứ thế trôi đi.

58Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Tuy nhiên, ta có thể tích kiệm được tiền. Việc tiền quan trọng hơn hay thời gian quan trọng hơn thì tùy thuộc vào quan điểm của bạn…

Tự học

59Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Học tại trường

Tốn tiền. Khoảng 100.000~300.000 Yên. Nếu “chỉ” để học thôi thì khá đắt đỏ.

60Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Học tại trường

Tuy nhiên, vì có người để hỏi nên sẽ tiến bộ nhanh. Nếu người để hỏi đó mà có chuyên môn thì tốt. Chỉ mong là không phải toàn người nghiệp dư…

61Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Chuyển việcỨng tuyển, làm bài test, phỏng vấn…Không chắc là trúng tuyển. “Thế cậu đã có kinh nghiệm làm việc chưa?”

62Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Nhu cầu tuyển dụng kỹ sư biết Rails

Đã xác nhận: Có trên 1000

công ty có nhu cầu

63Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Ví dụ về thông tin tuyển dụng

64Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

転職 「Thế,

cậu đã có kinh nghiệm làm việc

chưa?」

65Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Chuyển việcNếu may mắn có khả năng được tuyển đi chẳng nữa…

Cái này, chẳng phải cậu lấy trên google hay

sao!?

66Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

3 phương pháp

Hỏi được Tiền Kinh nghiệm làm việc

Tự học × ○ ×

Học tại trường ○ × ×

Chuyển việc △ ○ ○

67Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.Copyright © 2015 TimeShift Corp. All Rights Reserved.

Chỉ có 1 chiếc chìa khóa

duy nhất

68Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Chỉ có 1 chiếc chìa khóa duy nhất

Tự học

Học tại trường

Chuyển việc

Kinh nghiệm làm việc

69Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Chỉ có 1 chiếc chìa khóa duy nhất

DIVE INTO CODE đã tạo ra…

Hỏi được Tiền Kinh nghiệm làm việc

Lý tưởng ○ ○ ○

con đường để có được mọi thứ

70Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Chỉ có 1 chiếc chìa khóa duy nhất

Học tại môi trường cho phép hỏi thỏa thích và có được kinh nghiệm và có khả năng kiếm tiền như 1 kỹ sư thực thụ!『Rất hoan nghênh các bạn làm trái nghề』

http://diveintocode.jp/

71

Bạn muốn trở thành kỹ sư_Hãy đến với DIVE INTO CODE

受講体験記のご紹介

Hãy cùng chúng tôi nâng cao khả năng kiếm tiền!

Chúng tôi đang rất mong chờ sự tham gia của các bạn !

72Copyright © 2015 TimeShift Corp. All Rights Reserved.

Chứng chỉ kỹ sư↓

Con đường ngắn nhất dẫn tới thành công

73

Chứng chỉ kĩ sư Rails3_Chứng chỉ Đồng

Đỗ chứng chỉ này bạn có thể nhận được offer tuyển dụng vị trí kỹ sư với mức lương từ 300.000~400.000 yên kể cả không có kinh nghiệm

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Sẽ được đánh giá tốt trong các buổi phỏng vấn ở các công ty vừa và nhỏ chẳng hạn như:・Start up phát triển dịch vụ nội bộ trong công ty

・Công ty phát triển uy thác liên quan tới Ruby

・Công ty phát triển dịch vụ Web đang tập trung vào các lĩnh vực mới.

Như một kỹ sư thực thụ…!

74

Chứng chỉ kĩ sư Rails3_Chứng chỉ Đồng

Dự thi

Cấu trúc môi trường

Phát triển trial app

RailsTutorial

Tài liệu chuẩn

Bài test mẫu

Trước khi dự thi, cần phải trả lời được toàn bộ câu hỏi trong bộ đề thi mẫu trước. Để làm được thế, cách tốt nhất là học hiểu bằng cách làm trên thực tế và học theo các tài liệu chuẩn

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

75

Chứng chỉ kĩ sư Rails3_Chứng chỉ Đồng

Bạn có thể cấu trúc môi trường, phát triển trial app luôn. Không cần cố cấu trúc môi trường phát triển local

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

76

Chứng chỉ kĩ sư Rails3_Chứng chỉ Đồng

Rails tutorial: tuần đầu tiên copy tất cả các phần (trừ phần test). Tuần thứ 2 hiểu tất cả các phần (trừ phần test). Tuần thứ 3: làm test

Nguồn:http://railstutorial.jp/Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

77

Chứng chỉ kĩ sư Rails3_Chứng chỉ Đồng

Tài liệu chuẩn: có thể lấy từ các khóa học ở các trường đã được chứng nhận. So với các tài liệu ngoài thị trường, thì những tài liệu này đã được sắp xếp theo thứ tự và có kèm giải thích.

Tài liệu chứng nhận_ Bài kiểm tra chứng chỉ đồng _Chứng nhận kỹ sư Rails 3

Tổng số trang:350 trang

Môi trường install giả định:Linux / Windows

Ruby version:1.9.2

Rails version:3.0.x

DBMS:SQLite3

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Nguồn:http://www.railscp.com/text/

78

Chứng chỉ kĩ sư Rails3_Chứng chỉ Đồng

Đề thi mẫu được đăng tại @IT và shikakuZine. Cần cố gắng để có thể trả lời hết các câu hỏi .

Nguồn:http://jibun.atmarkit.co.jp/scenter/ittrain/123_today_q.html

Nguồn:http://shikakuzine.jp/article/corner/9

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

79

Chứng chỉ kĩ sư Rails3_ Chứng chỉ Đồng

Tham gia dự thi tại Odyssey Communications CBT Test Center (Trung tâm kiểm tra và cấp chứng chỉ )gần nhất

Nguồn:http://www.railscp.com/bronze/Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

80

Rails source code

Chứng chỉ kĩ sư Rails4_Chứng chỉ Bạc

Dự thi

Sách đối sách Silver

Cú pháp Ruby cơ bản

Rails guide

Kinh nghiệm team phát triển

Trước khi dự thi : cần tự tạo đề bài mẫu từ kinh nghiệm làm team phát triển và từ Rails guide đồng thời cũng cần hiểu cú pháp của Ruby

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

81

Chứng chỉ kĩ sư Rails4_Chứng chỉ Bạc

Sách Luyện thi chứng chỉ Bạc: phải làm được hết các câu là điều đương nhiên rồi. Lặp đi lặp lại cho đến khi có thể giải được hết tất cả các câu hỏi

Nguồn:http://www.railscp.com/text/Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

82

Chứng chỉ kĩ sư Rails4_Chứng chỉ Bạc

Cú pháp Ruby cơ bản: bạn có thể học miễn phí tại [ Ruby minituku ]. Hiểu được cú pháp Ruby là điều bắt buộc.

Hãy cùng nhau hoàn thành cả 2 khóa [Khóa học Ruby nhập môn], [Khóa thực hành Ruby]

Nguồn:http://www.minituku.net/?locale=jaCopyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

83

Chứng chỉ kĩ sư Rails4_Chứng chỉ Bạc

Rails guide: mua bản điện tử rồi in 1000 page. Sau đó nhớ toàn bộ method và cơ chế mà bạn chưa biết

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Nguồn:http://railsguides.jp/

84

Chứng chỉ kĩ sư Rails4_Chứng chỉ Bạc

Phải làm sao để lúc nào cũng có thể check được source code Rails trên Github. Phần nào không hiểu thì nhất định phải xem source.

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Nguồn:https://github.com/rails/rails

85

Chứng chỉ kĩ sư Rails4_Chứng chỉ Bạc

Đến với DIVE INTO CODE, bạn có thể học hỏi kinh nghiệm làm việc và có khả năng kiếm tiền như 1 kỹ sư thực thụ!『Rất hoan nghênh các bạn làm trái nghề』

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

Nguồn:http://diveintocode.jp/

86Copyright © 2015 TimeShift Corp. All Rights Reserved.

Appendix(Phụ lục)

87

Appendix

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

[Suggestion] Site tự học

donotinstall(Có cả license cho công ty)

School(Khóa học lập trình)

https://www.ruby-lang.org/ja/http://dotinstall.com

88

Appendix

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

[Suggestion]Website dùng để confirm specRuby / Ruby on Rails

Rails guide(Dùng cho 4.2) RubyA PROGRAMMERS BEST FRIEND

https://www.ruby-lang.org/ja/http://railsguides.jp/

89

Appendix

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

[Suggestion]Website dùng để confirm specGit, UNIX command

Nhập môn Git_Đến khỉ cũng biết Linux command

http://www.backlog.jp/git-guide/ http://www.linuxmaster.jp/linux_skill/01linuxcommand/

90

Appendix

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

[Suggestion]Website dùng để điều traTất cả ngôn ngữ, hệ thống chung

StackOverFlowBản tiếng anh(Có cả bản tiếng nhật)

QiitaDịch vụ chia sẻ thông tin kĩ thuật của lập

trình viên

http://qiita.com/http://stackoverflow.com/

91

Appendix

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

[Suggestion] Sách tham khảoRuby / Ruby on Rails

Basic Ruby on Rails (Bản sửa đổi lần 3)

Interesting Ruby (Bản sửa đổi lần 4)

http://www.amazon.co.jp/dp/4797372273http://www.amazon.co.jp/dp/4844338153

92

Appendix

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

[Suggestion]Template dùng cho kế hoạchService plan

LEAN CANVAS User ExperienceDesign system

http://www.slideshare.net/studytech/ss-23454300

• Mô tả các giả thuyết về các vấn đề của khách hànghttp://leanstartupjapan.org/?p=283

• Thoát khỏi interview giả thuyết về các vấn đềhttp://leanstartupjapan.org/?p=597

• Interview nhập môn dùng cho UX, Design, lean startup http://www.webd-labo.com/?p=1854

• Lean ư? Cụ thế thì phải làm thế nào?http://www.loftwork.jp/column/2013/20131226_lean_startup.aspx

93

Appendix

Copyright © 2015-2016 Dive into Code Corp. All Rights Reserved.

[Suggestion] Sách tham khảoService plan

Running LeanLean startup thực tiễn

Lean UXUX design theo quan điểm Lean

http://www.amazon.co.jp/dp/4873116619http://www.amazon.co.jp/dp/4873115914

94

Bạn muốn trở thành kỹ sư_Hãy đến với DIVE INTO CODE

受講体験記のご紹介

Hãy cùng chúng tôi nâng cao khả năng kiếm tiền!

Chúng tôi đang rất mong chờ sự tham gia của các bạn !