Học lập trình
Chương 1
Giới thiệu kỹ thuật về
phát triển Ứng dụng
Máy tính làm việc như thế nào?
• Máy tính là một chiếc máy hoàn thiện hơn những máy móc
khác, nhưng máy phụ thuộc vào các câu lệnh bên trong để
biết phải làm gì. Ví dụ, khi bạn nhấn nút ON trên máy, lô gô
của máy tính thể hiện, và hệ điều hành Windows sẽ bắt đầu
tải, kế đó là biểu tượng chuột xuất hiện, và rồi màn hình
chính desktop của máy tính được tải.
• Máy tính trông có vẻ thông minh, nhưng kỳ thực, máy thực
hiện các hành vi theo các câu lệnh tương tự. Máy tính sẽ
chỉ hoạt động theo các câu lệnh.
• Lập trình là đưa ra các câu lệnh để máy làm gì đó, từ đơn
giản tới các hoạt động phức tạp nhất, nhưng kết cục lại, đó
sẽ chỉ thuần túy là những câu lệnh mà thôi.
Làm thế nào để đưa ra các câu lệnh?
• Thông qua khóa học này, chúng tôi sẽ chia sẻ
với các bạn về những câu lệnh, và bạn sẽ đi
qua các từ lạ mà chúng ta đặt cho những câu
lệnh này..
• Bạn sẽ nghe về các thuật ngữ như CSS,
Javascript, C#, MVC, Java, SQL, Ruby, Python,
C, C++, WPF, Android, IOS, Windows Phone,
Windows 8, REST, JSON, XML, AJAX, AJAJ
Services
Làm chủ mọi mặt trên ma trận
• Hãy bắt đầu. Chúng ta đã đọc về nội dung của
khóa học này trên máy tính. Chúng ta có thể
đọc vì có người đã viết hệ điều hành trên máy,
và ai đó khác đã viết chương trình Internet
Explorer để lướt web và giúp chúng ta gắn kết
tại đây. Hơn thế, một vài người đã lập trình
trang web này để các bạn có thể tìm được tài
liệu này.
Làm chủ mọi mặt trên ma trận (tiếp)
• Bạn có sử dụng điện thoại? .. Để nhắn tin hoặc
gọi điện.. Bạn có thể kết nối vì hãng điện thoại
đã có chương trình CNTT để kiểm tra xem bạn
là ai, bạn có tiền trong tài khoản để gọi điện
không, và chương trình sẽ dò tìm bạn gọi ai
theo số bạn vừa bấm, rồi gửi tín hiệu tới máy
gọi để máy reo chuông và thiết lập cuộc gọi..
Phương thức làm việc của máy?
• Chúng ta được chia sẻ rằng máy tính không thông
minh, nó chỉ biết biểu đạt các nhiệm vụ liên tục
theo cách hiệu quả nhất.
• Mỗi lúc chúng ta nhìn thấy nhiệm vụ được thể
hiện theo cách tương tự, đó đồng nghĩa là nhiệm
vụ đã hoàn toàn phù hợp với chương trình được
lập của chúng ta.
• Đó là lí do chúng ta cần hiểu rằng, việc lập trình là
nhằm bảo cho máy tính về các bước thực hiện
nhiệm vụ.
Ví dụ về game
• Chúng ta có một Game và các thuộc tính. Khi
chúng ta bấm vào nút trên thanh joystick định
nghĩa nó là nhảy.
• Nếu phím được bấm đi bấm lại, nghĩa là thuộc
tính sẽ nhảy như bước trước.
• Hãy tập trung vào nhảy, dù có điều gì xảy ra
cho phần còn lại của game, nó sẽ chỉ tập trung
vào việc nhảy.
Ví dụ về game (tiếp)
• Đây là nhảy, bởi vì ai đó đã lập trình cho nút này thao tác đó. Sẽ có
những bước như sau:
–
–
–
–
–
–
–
–
–
Vẽ tính năng này lên màn hình
Chờ người dùng làm gì đó với thanh joystick
Một tín hiệu được nhận từ joystick, người dùng bấm một nút
Anh ta bấm phím nào? Nếu là nút Up, tiếp tục
Đọc vị trí hiện tại của màn hình tính năng
Tính khoảng cách bước nhảy, 20pixels, 30pixels
Tải hình ảnh kết quả theo những khuôn hình của bước nhảy
In những màn hình kết quả của bước nhảy theo sự thay đổi tương ứng
Quay lại bước 2
• Cũng vậy, một game không chỉ có một thuộc tính như nhảy, sẽ có
nhiều các sự việc khác diễn ra đồng thời, nhưng chúng cũng sẽ chơi
tuần tự từng bước như vừa kể và được lập trình bởi chuyên gia lập
trình.
Nguyên tắc lập trình đầu tiên
“Bất kể hành vi lặp đi lặp lại nào và có thể tiên
đoán, đều có thể được lập trình”
Tay máy robot
• Nếu chúng ta đã mô tả tuần tự các bước để vận hành
tay robot, như trong ví dụ game, chúng ta sẽ thấy đó là
điều tương tự.
• Cả 2 đều hoạt động một cách logic, được điều khiển và
theo các bước tuần tự.
• Nếu hành vi là tương đương, thì kết quả cũng tương
đương.
• Có được điều này là nhờ lập trình CNTT, dù đó là ngôn
ngữ gì, thì cũng là sự khác biệt đáng trân trọng.
• Trong khi tay robot tương tác với thế giới vật lý, đi từ
phần này tới phần kia, thì một phần khác lại tương tác
với thế giới ảo, in hình ảnh kết quả lên màn hình.
Tay máy robotic (tiếp)
• Cả 2 quy trình đều cần chương trình CNTT điều khiển, và
người lập trình viết ra các bước hành động.
• Sự khác biệt chỉ là việc tương tác với thế giới bên ngoài.
• Trong trường hợp của robot, ngoài việc thực hiện các bước,
kết quả sẽ là các chuyển động vật lý nhờ tay robot.
• Bên này, để thể hiện, hệ thống CNTT sẽ tương tác với thế
giới bằng cách in ra các kết quả hiển thị trên màn hình.
• Yếu tố quan trọng để thiết kế bất kỳ hện thống nào là nó
sẽ tương tác với thế giới bên ngoài như thế nào.
• Trong khóa học này, chúng ta sẽ làm việc với các quy trình
ảo, không phải vật lý để đọc giá trị từ giao diện người
dùng và thực hiện những tương tác này để có kết quả
mong đợi.
Ứng dụng Online hay Offline
• Khi tạo ra một ứng dụng, điều quan trọng cần làm
là quyết định ứng dụng sẽ chạy trên nền tảng
internet hay chạy cả khi không có kết nối internet.
• Điểm khác biệt đầu tiên là bởi ứng dụng sẽ chạy
hoàn toàn khi online hay chạy kể cả lúc offline.
• Ứng dụng Online đòi hỏi luôn có kết nối internet,
và nó sẽ không chạy khi kết nối không tồn tại.
• Một ví dụ tiêu biểu là mạng lưới game. Không có
kết nối Internet, nó sẽ không vận hành.
Websites
• Vậy website có phải là một ứng dụng?
• Nếu websie cho phép bạn làm gì đó, như ứng dụng và
tính năng chính của nó là các ứng dụng vận hành khi
kết nối internet tồn tại.
• Khi một website được sử dụng để làm gì đó đặc thù,
nó tương tác với người dùng, và nó làm gì đó với
thông tin và trả về kết quả. Đó sẽ là ứng dụng.
• Khác biệt chính giữa 1 website và một ứng dụng web
là sau đó, người dùng có khả năng tương tác và sửa
dữ liệu của tương tác đó không.
• Websites cho phép bạn làm gì đó gọi là ứng dụng web
online.
Ứng dụng Offline
• Một ứng dụng offline phải được cài đặt hoặc
chạy trên một thiết bị vật lý, trong khi ứng
dụng online thì có thể chạy nhờ truy cập
Internet.
• Ví dụ Microsoft Word, Visual Studio, …
Tôi cần học gì để biết cách lập trình?
• Để học lập trình, bạn cần biết 2 hoặc 3 ngôn ngữ
lập trình và 2-3 công nghệ khác nhau dựa trên 4
yếu tố chính sau:
• Tôi sẽ tương tác với người dùng như thế nào?
– Tôi phải quyết định người dùng tương tác thế nào với
ứng dụng.
– Người sử dụng dùng smart phone, nhấn nút, sử dụng
camera.
– Người sử dụng truy cập website để dùng ứng dụng
của tôi.
– Người dùng sử dụng thiết bị cảm ứng, bàn phím đặc
biệt hoặc màn hình cảm ứng.
Tôi cần học gì để biết cách lập trình
(tiếp)?
• Tôi có cần nhớ thông tin không?
– Tôi phải quyết định liệu ứng dụng có lưu trữ dữ
liệu, nếu nó có liên quan đến việc làm khảo sát,
chấm điểm, lưu dữ liệu để có thể lấy về vào
những thời điểm yêu cầu.
– Người dùng không lưu dữ liệu nào cả. Bất kỳ thời
điểm nào mà anh ta dùng ứng dụng, nó cần bắt
đầu từ đầu.
– Người dùng lưu thông tin và có thể lấy lại dữ liệu
đó.
Tôi cần học gì để biết cách lập trình (tiếp)?
• Tôi có cần kết nối vĩnh viễn không?
– Tôi phải quyết định liệu ứng dụng của tôi có cần liên
hệ với người dùng khác để chạy, hay có cần một
đường internet ổn định không
– Người dùng tương tác với người dùng khác nhờ xem
dữ liệu hoặc kết nối với họ
– Người dùng không cài đặt gì cả khi chạy ứng dụng,
anh ta chỉ đơn giản là truy cập website
Tôi cần học gì để biết cách lập trình (tiếp)?
• Nếu ứng dụng đòi hỏi kết nối với ứng dụng khác:
– Ứng dụng sử dụng bản đồ Internet hoặc kết nối với
ứng dụng khác để chia sẻ dữ liệu
– Ứng dụng truy cập máy chủ với các khởi động người
dùng
– Ứng dụng không đòi hỏi kết nối với bất kỳ ai
Công Nghệ chúng ta sử dụng phụ thuộc vào cái
chúng ta dự kiến lập trình.
Công Nghệ
• Người dùng có truy cập bằng website?
– HTML + CSS + Javascript
– Adobe Air + Java
• Người dùng truy cập bằng smartphone?
– PhoneGap + HTML + CSS + Javascript
– Bằng máy Windows Phone?
• Windows Mobile WPF + Window Phone + C# .NET
– Bằng máy dùng Android?
• Android Development Kit + Java
– Bằng máy IPhone?
• IOS SDK + Objective C
Công Nghệ
• Người dùng truy cập qua tablet?
– PhoneGap + HTML + CSS + Javascript
– Tablet Windows 8?
• Windows WPF + Window 8 + C# .NET
– Tablet Android?
• Android Development Kit + Java
– Tablet iPad?
– IOS SDK + Objective C
• Người dùng có dùng định vị GPS, Camera,
Accelerometer?
– IOS SDK, Android Development Kit
- Xem thêm -