Chủ đề nóng: Phương pháp kỷ luật tích cực - Cổ học tinh hoa - Những thói hư tật xấu của người Việt - Công lý: Việc đúng nên làm - Giáo án Điện tử - Sách giáo khoa - Học tiếng Anh - Bài giảng trực tuyến - Món ăn bài thuốc - Chăm sóc bà bầu - Môi trường - Tiết kiệm điện - Nhi khoa - Ung thư - Tác hại của thuốc lá - Các kỹ thuật dạy học tích cực
- Dạy học phát triển năng lực - Chương trình giáo dục phổ thông
Trở thành một lập trình viên
Từ VLOS
(đổi hướng từ Trở thành Một Lập Trình Viên)
Trở thành lập trình viên là một quá trình tích lũy xây dựng các kỹ năng của bạn qua thời gian, và đó có thể trở thành một công việc thích thú và được đền đáp xứng đáng (về cả trí tuệ, tinh thần và tài chính). Hướng dẫn này không hứa hẹn đem đến cho bạn một phương pháp thần kỳ để trở thành một lập trình viên một cách dễ dàng, và trình tự các bước cũng không quá quan trọng, nhưng bạn sẽ nắm được những nét chính về cách để trở thành một lập trình viên ở một trong những lĩnh vực lập trình hiện đại.
Mục lục
Các bước[sửa]
-
Tham
gia
một
khóa
học
giới
thiệu
về
một
(hoặc
toàn
bộ)
trong
các
môn
học
sau:
- Lôgic học
- Toán rời rạc
- Ngôn ngữ lập trình (người mới bắt đầu tốt nhất là nên học C++/ Java/ Python)
-
Học
về
các
khái
niệm
cơ
sở
dữ
liệu
như
các
bảng,
các
khung
nhìn/truy
vấn
và
các
thủ
tục.
Bạn
có
thể
sử
dụng
bất
kỳ
gói
cơ
sở
dữ
liệu
đơn
giản
nào
để
làm
việc
này,
ví
dụ
như:
- MS Access
- DB V
- Fox Pro
- Paradox
- MySQL là một cơ sở dữ liệu tốt để học tập vì nó miễn phí, thường được sử dụng, và các cơ sở dữ liệu thường được truy cập với các truy vấn SQL
-
Quyết
định
xem
bạn
muốn
trở
thành
kiểu
lập
trình
viên
nào.
Các
lập
trình
viên
nói
chung
thường
được
xếp
vào
một
trong
các
loại
sau:
- Lập trình viên Web
-
Lập
trình
viên
ứng
dụng
máy
bàn
- Lập trình viên hướng Hệ điều hành (gắn với một hệ điều hành đơn lẻ hoặc một tập hợp các hệ điều hành)
- Lập trình viên độc lập với nền tảng
- Lập trình viên ứng dụng phân tán
- Lập trình viên thư viện/nền tảng/khung công việc/lõi
-
Lập
trình
viên
hệ
thống
- Lập trình viên nhân Kernel
- Lập trình viên trình điều khiển
- Lập trình viên trình biên dịch
- Nhà khoa học lập trình
- Hãy nghiên cứu các công nghệ và ngôn ngữ lập trình liên quan tới mảng lập trình bạn chọn. Các phần tiếp theo sẽ phân chia nhiệm vụ của các kiểu lập trình khác nhau.
Lập trình Web[sửa]
-
Hiểu
được
lập
trình
Web
cần
gì.
Các
ứng
dụng
Web
là
các
thành
phần
phần
mềm
được
thiết
kế
để
hoạt
động
bên
trên
kiến
trúc
internet.
Điều
này
có
nghĩa
là
các
ứng
dụng
được
truy
cập
thông
qua
một
phần
mềm
trình
duyệt
như
Firefox
hoặc
Internet
Explorer.
Các
ứng
dụng
này
được
đặt
bên
trên
kiến
trúc
Internet
tức
là
nó
không
đòi
hỏi
phải
có
một
kết
nối
thực
sự
tới
Internet.
Có
nghĩa
là
các
ứng
dụng
Web
được
xây
dựng
trên
nền
tảng
các
công
nghệ
web
tiêu
chuẩn
như:
- HTTP
- FTP
- POP3
- SMTP
- TCP
- Các giao thức IP
- HTML
- XML
- Coldfusion
- ASP
- JSP
- PHP
- ASP.NET
-
Hãy
xem
nhiều
trang
khác
nhau
để
biết
chúng
thường
trông
như
thế
nào.
(Bằng
cách
nhấn
chuột
phải,
rồi
chọn
View
Source
(xem
mã
nguồn)
hoặc
nhấn
F12).
Bạn
nên
tìm
kiếm
sự
đa
dạng
trong
kiểu/nội
dung
của
trang
web,
chứ
không
phải
là
số
lượng
các
trang
web
bạn
xem.
Nhìn
chung,
bạn
sẽ
cần
ghé
thăm
ít
nhất
một
trang
cho
mỗi
loại
trang
web
sau:
- Các trang giới thiệu công ty (các công ty thương mại, các công ty/tổ chức phi lợi nhuận, các tổ chức chính phủ)
- Các công cụ lập chỉ mục Web (các công cụ tìm kiếm, các trang siêu tìm kiếm, các công cụ tìm kiếm chuyên dụng, các thư mục)
- Các trang khai thác dữ liệu
- Các trang cá nhân
- Các trang có tính tư liệu/bách khoa toàn thư (Wiki, các bảng dữ liệu, các tiêu chí kỹ thuật, và các thư mục liệt kê hướng dẫn người dùng, các blog và tạp chí, các trang tin tức và thông tấn, các trang vàng …)
- Các trang xã hội (các cổng xã hội, các trang đánh dấu và các trang ghi chép trực tuyến)
- Các trang cộng tác (bao gồm toàn bộ các loại ở trên, như các trang wiki và blog)
- Học ít nhất một kỹ thuật/phương pháp động não (brainstorming) và một phần mềm dùng để thực hiện phương pháp đó. Ví dụ: các biểu đồ động não và phần mềm MS Visio.
- Làm quen với cấu trúc trang web. Đây là việc tạo nên các biểu đồ web có tính khái niệm, sơ đồ trang và các cấu trúc điều hướng.
- Học một khóa đào tạo cấp tốc về thiết kế đồ họa. Hãy cố học ít nhất một gói phần mềm biên tập/thao tác đồ họa (Không bắt buộc nhưng rất khuyến khích).
-
Học
các
khái
niệm
cơ
bản
về
hạ
tầng
internet.
Nó
bao
gồm
việc
nắm
bắt
ý
tưởng
cơ
bản
về:
- Các giao thức dịch vụ Web thông dụng (HTTP, FTP, SMTP, và POP3 hay IMAP4)
- Phần mềm máy chủ Web (tốt nhất là phần mềm cho nền tảng mà bạn sẽ làm việc chủ yếu với nó nhiều nhất)
- Phần mềm duyệt Web.
- Phần mềm máy chủ và máy khách cho email
- Học các ngôn ngữ HTML và CSS. Bạn có thể cũng cần có gói phần mềm “What You See Is What You Get (WYSIWYG) (Những gì bạn thấy là những gì bạn có)” để biên tập HTML.
- Học XML và các công nghệ liên quan tới XML như XSL và XPath (không bắt buộc nhưng nên học).
- Tạo các trang web tĩnh đơn giản cho tới khi bạn quen thuộc và nắm vững với HTML.
- Học một ngôn ngữ lập trình kịch bản máy khách. Hầu hết người dùng học JavaScript. Một số khác học VBScript, nhưng nó lại không tương thích với phần lớn các trình duyệt.
- Tự làm quen với ngôn ngữ lập trình kịch bản máy khách mà bạn đã học. Cố phát huy hết khả năng của bạn chỉ với ngôn ngữ đó. Chỉ đi tiếp khi bạn ít nhất cũng đã quen thuộc với ngôn ngữ lập trình kịch bản máy khách.
- Học ít nhất một ngôn ngữ lập trình máy chủ. Nếu bạn chọn giới hạn mình vào một phần mềm máy chủ, thì hãy học các ngôn ngữ lập trình được phần mềm đó hỗ trợ. Nếu không, hãy học ít nhất một ngôn ngữ lập trình cho mỗi phần mềm máy chủ.
- Lập một dự án thí điểm cho bản thân sau khi bạn hoàn tất việc nghiên cứu ngôn ngữ lập trình máy chủ.
- Lập một trang web riêng và bắt đầu thử nghiệm trực tuyến với trang riêng của bạn.
Lập trình Ứng bụng máy tính bàn[sửa]
- Hiểu được mình phải làm gì với lập trình ứng dụng máy bàn. Hầu hết các lập trình viên máy bàn soạn mã là dành cho các giải pháp kinh doanh, cho nên việc nắm bắt được về các doanh nghiệp, cơ cấu tổ chức và cơ cấu tài chính của họ sẽ tiết kiệm rất nhiều thời gian.
- Nghiên cứu về các kiến trúc phần cứng máy tính khác nhau. Một khóa học cơ bản về thiết kế mạch kỹ thuật số và một khóa khác về kiến trúc máy tính sẽ có ích cho bạn. Tuy nhiên một vài người cho rằng mới bắt đầu mà học nó là khá khó, vì vậy đọc hai hay ba bài hướng dẫn (như cái này và cái này) là đủ rồi. Sau đó bạn có thể quay lại bước này sau khi bạn học ngôn ngữ lập trình đầu tiên của mình.
- Học một ngôn ngữ lập trình sơ đẳng (cho trẻ con). Đừng ngượng khi học một ngôn ngữ như vậy chỉ bởi bạn đã quá lớn để gọi là “trẻ con”. Một ví dụ về các ngôn ngữ lập trình kiểu này là Scratch. Các ngôn ngữ lập trình này có thể giảm được nhiều khó khăn cho bạn trong việc học ngôn ngữ lập trình đầu tiên. Tuy nhiên, bước này chỉ là tùy chọn, bạn cũng có thể thực hiện nó trước bước trước đó.
- Tìm hiểu sơ bộ về các mô hình lập trình thủ tục, lập trình hướng đối tượng, và lập trình hàm.
- Tham gia một khóa học cơ bản về một trong các ngôn ngữ lập trình thủ tục. Cho dù ngôn ngữ bạn chọn sau này là gì, bạn sẽ vẫn cần tới lập trình thủ tục ở một mức nào đó. Ngoài ra, các lập trình viên cho rằng lập trình thủ tục là khởi đầu dễ nhất cho việc nắm bắt ý tưởng về lập trình nói chung.
- Học ít nhất một phương pháp mô hình hóa nâng cao như UML hay ORM.
- Bắt tay viết vài ứng dụng nhỏ kiểu ứng dụng giao tiếp (console application) hay tương tự như vậy. Bạn có thể sử dụng các bài thực hành nho nhỏ trong các cuốn sách về ngôn ngữ lập trình. Để làm điều này, hãy chọn một công cụ để viết các chương trình theo ngôn ngữ lập trình mà bạn định viết.
-
Học
một
khóa
nâng
cao
hơn
về
ngôn
ngữ
lập
trình
bạn
chọn.
Đảm
bảo
rằng
bạn
hiểu
rõ
các
khái
niệm
sau
và
có
thể
áp
dụng
chúng
tương
đối
dễ
dàng
trước
khi
đi
tiếp:
- Nhập vào và xuất ra thông tin cho người dùng của một chương trình.
- Luồng lô gic và luồng thực thi của các chương trình trong các ngôn ngữ thủ tục.
- Khai báo, gán và so sánh các biến.
- Các câu lệnh rẽ nhánh trong lập trình như if..then..else và select/switch..case.
- Các lệnh lặp như while..do, do..while/until, for..next.
- Cú pháp ngôn ngữ lập trình của bạn để tạo và gọi các thủ tục và hàm.
- Các kiểu dữ liệu và thao tác chúng.
- Các kiểu dữ liệu được người dùng định nghĩa (các bản ghi/cấu trúc/đơn vị) và cách dùng chúng.
- Nếu ngôn ngữ của bạn hỗ trợ nạp chồng hàm, hãy hiểu rõ nó.
- Các phương pháp truy cập bộ nhớ của ngôn ngữ bạn chọn (các con trỏ, cách thức đọc nội dung một ô nhớ bất kỳ…)
- Nếu ngôn ngữ của bạn hỗ trợ nạp chồng toán tử, hãy hiểu rõ nó.
- Nếu ngôn ngữ của bạn hỗ trợ con trỏ hàm, hãy hiểu rõ nó.
-
Áp
dụng
các
kỹ
thuật
nâng
cao
mà
bạn
đã
học
được.
- Mô hình hướng đối tượng.
-
Tham
gia
một
khóa
học
cơ
bản
về
ít
nhất
là
một
ngôn
ngữ
lập
trình
khác
trong
mô
hình
lập
trình
khác.
Bạn
nên
học
một
ngôn
ngữ
lập
trình
cho
mỗi
mô
hình,
phần
lớn
các
lập
trình
viên
cao
cấp
đều
làm
thế.
Tuy
nhiên
bạn
nên
thường
khởi
đầu
với
một
ngôn
ngữ,
làm
việc
với
nó
một
thời
gian,
áp
dụng
những
kiến
thức
của
mình
và
thực
hành
nó.
Sau
khi
đã
có
kinh
nghiệm
thực
tế
về
lập
trình
rồi
mới
học
tiếp
ngôn
ngữ
mới.
Hãy
thử
một
trong
các
mảng
ngôn
ngữ
sau:
- Mô hình lập trình lô gic.
- Mô hình lập trình hàm.
-
Hãy
thử
so
sánh
hai
ngôn
ngữ
lập
trình
mà
bạn
đã
học
được
cho
tới
giờ.
Đánh
giá
các
điểm
mạnh
và
điểm
yếu
của
mỗi
ngôn
ngữ.
Việc
này
thường
được
thực
hiện
bằng
cách:
- Dùng một mẫu công việc đơn giản trước đây với ngôn ngữ lập trình đầu tiên và viết lại nó bằng ngôn ngữ lập trình thứ hai.
- Tạo một dự án mới và thử thực hiện nó bằng cả hai ngôn ngữ. Đôi khi tùy thuộc vào việc bạn chọn dự án và ngôn ngữ, chưa chắc bạn đã có thể thực hiện được dự án đó chỉ với một trong hai ngôn ngữ đó!
- Viết so sánh theo kiểu một bảng tra cứu nhanh hoặc bảng tóm tắt giữa hai câu lệnh tương tự trong hai ngôn ngữ và những đặc điểm độc nhất của mỗi ngôn ngữ.
- Thử tìm cách bắt chước đặc điểm độc nhất của một trong hai ngôn ngữ bằng ngôn ngữ còn lại.
-
Học
các
khái
niệm
lập
trình
trực
quan
sử
dụng
một
trong
các
ngôn
ngữ
bạn
đã
học.
Hầu
hết
các
ngôn
ngữ
lập
trình
đều
có
các
phiên
bản/thư
viện
hỗ
trợ
lập
trình
trực
quan
và
các
kiểu
lập
trình
hỗ
trợ
giao
tiếp
hoặc
tương
tự
khác.
Bạn
có
thể
thực
hiện
điều
này
bằng
cách:
- Tìm hiểu sơ bộ về lập trình sự kiện. Hầu hết lập trình trực quan ở một mức nào đó đều dựa vào các sự kiện và việc xử lý các sự kiện (sử dụng ngôn ngữ lập trình bạn chọn).
- Thử các phần mềm máy bàn nhiều nhất có thể và tìm hiểu chúng làm gì. Đa phần các công ty phát triển phần mềm đều cung cấp các phiên bản thử nghiệm (beta) của sản phẩm cho người dùng để kiểm tra phần mềm. Do vậy, hãy luôn cập nhật những tiến bộ về giao diện người dùng.
- Đọc vài bài viết hoặc hướng dẫn về các giao diện đồ họa người dùng.
- Bắt đầu áp dụng kiến thức của bạn cho các dự án phần mềm nhỏ bạn thiết kế. Thử áp dụng kỹ năng lập trình của bạn cho các vấn đề mà bạn đối mặt hàng ngày. Ví dụ viết một chương trình đổi tên tập tin hàng loạt, so sánh các tập tin văn bản một cách trực quan, sao chép tên các tập tin trong một thư mục vào một tập tin nhớ/văn bản, và những thứ tương tự. Nhớ là trước tiên chỉ cần đơn giản thôi.
- Tạo một “dự án tốt nghiệp” ảo. Hoàn thành dự án cho tới lúc kết thúc, áp dụng các kỹ thuật về lập trình trực quan mà bạn đã học được cho tới giờ.
- Mở rộng hiểu biết của bạn về khung công việc/thư viện/gói trực quan mà bạn học được trước đây bằng cách tham gia các khóa nâng cao, chú ý hơn vào chi tiết và học thêm các lời khuyên cũng như mẹo hay cho khung công việc của bạn từ các tài nguyên trực tuyến.
- Tìm kiếm các gói/thư viện về yếu tố trực quan khác cho ngôn ngữ lập trình của bạn và nghiên cứu chúng.
- Tham gia một khóa học về đồ họa (không phải thiết kế đồ họa). Nó sẽ rất hữu ích cho các lập trình viên muốn viết nên những yếu tố giao diện người dùng cuốn hút.
- Trở thành một lập trình viên trò chơi (tùy chọn). Lập trình trò chơi phần lớn vẫn được xem là lập trình máy bàn. Nếu bạn dự định trở thành một lập trình viên trò chơi, bạn sẽ cần học thêm về lập trình trò chơi sau khi hoàn tất các bước này. Một khóa học đồ họa là bắt buộc đối với các nhà lập trình trò chơi ,và ngôn ngữ lựa chọn thứ hai trong các bước trước đây nên là ngôn ngữ lập trình lô gic/hàm (nên chọn Prolog hay Lisp).
Lập trình Ứng dụng phân tán[sửa]
- Tìm hiểu về lập trình ứng dụng phân tán. Lập trình ứng dụng phân tán được nhiều người xem là một trong những thứ khó học nhất và đòi hỏi kiến thức phong phú về máy tính cũng như các công nghệ truyền thông.
- Tìm hiểu cấp tốc về các hệ thống thoại và phần cứng của chúng. Bước này là tùy chọn. Tuy nhiên việc có hiểu biết về các cấu trúc liên kết mạng là rất hữu ích.
- Tự làm quen với kiến trúc phần cứng và các thiết bị làm việc mạng như các bộ tập trung trung tâm (hub), thiết bị chuyển mạch (switch) và định tuyến (router).
- Học một khóa học về các giao thức và những thứ cơ bản liên quan. Bạn cần có hiểu biết tốt về mô hình Kết nối các hệ thống mở (OSI), Ethernet, IP, TCP, UDP và HTTP trước khi bắt đầu với lập trình các ứng dụng phân tán.
- Học ngôn ngữ XML và tự làm quen với nó.
-
Bắt
đầu
bằng
việc
học
một
ngôn
ngữ
lập
trình
kịch
bản
cho
chương
trình
thông
dịch
lệnh.
Đối
với
lập
trình
trên
nền
Windows,
đó
có
thể
là
bất
kỳ
kịch
bản
nào
làm
việc
với
Windows
Scripting
Host.
Đối
với
lập
trình
trên
nền
Linux,
các
kịch
bản
Bash
và
Perl
sẽ
là
đủ
dùng.
JavaScript
rất
được
khuyến
khích
cho
việc
này
ở
cả
hai
nền
tảng
vì
các
lý
do
sau:
- Nó được hỗ trợ bởi hầu hết các công cụ cung cấp kịch bản trong bất kỳ hệ điều hành nào (Windows Scripting Host mặc định hỗ trợ JavaScript, đa phần các bản phân phối Linux đều có một gói hỗ trợ giao tiếp kịch bản JavaScript).
- Nó được nhiều lập trình viên cho là dễ học hơn .
- Nó có một cú pháp bắt nguồn từ ALGOL cho phép bạn quen với nhiều ngôn ngữ lập trình khác khi bạn cần chọn một ngôn ngữ lập trình thứ hai C, C++, C#, Java và J# đều có cú pháp bắt nguồn từ ALGOL.
- Bằng việc học JavaScript, bạn sẽ tự quen dần với việc lập kịch bản trên máy khách cho các trang web, rõ ràng là một tác dụng phụ có lợi!
- Đầu tiên, chỉ áp dụng lập trình thủ tục bằng ngôn ngữ kịch bản mà bạn chọn. Sau đó, bạn có thể sử dụng thêm các kỹ thuật và mô hình lập trình nâng cao theo ngôn ngữ lập trình kịch bản của bạn và những gì nó hỗ trợ. Tất cả các ngôn ngữ lập trình kịch bản đều có liên quan tới lập trình thủ tục ở mức độ nào đó.
- Sử dụng ngôn ngữ lập trình kịch bản bạn đã học để viết các kịch bản thực hiện việc thông tin giữa các máy. Tìm hiểu những gì cần thiết để làm được việc đó. Chỉ cần thông tin liên lạc đơn giản là đủ.
-
Chuyển
đổi
sang
một
ngôn
ngữ
lập
trình/kịch
bản
máy
bàn.
Tốt
nhất
là
một
ngôn
ngữ
đa
mô
hình
như
Python.
Tìm
hiểu
sơ
bộ
về
ngôn
ngữ
thứ
hai
này.
Java
là
ngôn
ngữ
được
hầu
hết
các
lập
trình
viên
lựa
chọn
vì
nhiều
lý
do.
Tuy
nhiên,
C#
lại
giúp
tạo
đà
nhanh
hơn
ở
mảng
này.
Java
và
C#
được
ưa
chuộng
vì
các
lý
do
sau:
- Chúng là các ngôn ngữ lập trình hướng đối tượng giúp cho các lập trình viên trong các nhóm lớn tránh được việc thực hiện các chi tiết vì chúng đều có khả năng hỗ trợ các thành phần (có nghĩa là các đơn vị mã, tiền biên dịch thực hiện cho một tác vụ cụ thể có thể được sử dụng trong các chương trình khác)
- Chúng hỗ trợ lập trình theo sự kiện cũng như OO (hướng đối tượng) và lập trình thủ tục ở một mức độ nào đó.
- Khung công việc mà ngôn ngữ được xây dựng trên đó có đặc điểm bản chất là phân tán (trong trường hợp Java).
- Có nhiều gói lập trình được tạo sẵn để xử lý việc kết nối mạng, ở cả dạng mã nguồn mở hay tích hợp sẵn trong khung công việc; điều này tạo thuận lợi cho lập trình viên khi làm việc trên sản phẩm của những người khác.
- Tập trung hơn vào các tính năng cốt lõi của ngôn ngữ, đặc biệt là những tính năng hỗ trợ kết nối mạng. Chú ý ít hơn vào các yếu tố giao diện người dùng như xuất thông tin ra, thiết kế và các kỹ thuật cho cửa sổ làm việc, và các yếu tố giao diện người dùng.
- Tham gia một khóa đào tạo về thiết kế và kiến trúc ứng dụng phân tán. Bạn có thể học qua sách vở, các bài hướng dẫn trên mạng hoặc các khóa học học thuật. Tuy nhiên, dù làm bằng cách nào bạn cần nắm bắt được kiến trúc của các ứng dụng phân tán và các khái niệm của nó.
- Học cách xây dựng các thành phần dịch vụ cũng như sử dụng ngôn ngữ lập trình bạn chọn.
-
Học
một
hoặc
nhiều
hơn
các
công
nghệ
sau.
Ít
nhất
bạn
nên
tìm
hiểu
qua
toàn
bộ
chúng.
Đa
phần
các
lập
trình
viên
ứng
dụng
phân
tán
không
chỉ
học
một
hay
hai
ngôn
ngữ
lập
trình,
mà
ít
nhất
là
một
ngôn
ngữ
lập
trình
trên
mỗi
hệ
điều
hành.
Đó
là
vì
nếu
bạn
muốn
ứng
dụng
của
bạn
được
“phân
tán”,
ít
nhất
bạn
phải
cung
cấp
một
phiên
bản
của
nó
cho
mỗi
hệ
điều
hành
phổ
biến.
- Common Object Request Broker Architecture (CORBA) (Kiến trúc môi giới các đối tượng chung)
- Simple Object Access Protocol (SOAP) (Giao thức truy cập đối tượng đơn giản)
- Asynchronous JavaScript and XML (AJAX) (JavaScript và XML không đồng bộ)
- Distributed Component Object Model (DCOM) (Mô hình đối tượng thành phần phân tán)
- .NET Remoting (Giải pháp xử lý tính toán từ xa)
- XML Web Services (Các dịch vụ Web XML)
Lập trình Thư viện/Nền tảng/Khung công việc/Lõi[sửa]
- Hiểu được lập trình lõi là gì. Các lập trình viên lõi đơn thuần là những lập trình viên cao cấp có nhiệm vụ chuyển các ứng dụng lập trình sang các đơn vị mã lập trình để các lập trình viên khác sử dụng.
- Nếu bạn chưa học, thì hãy học một ngôn ngữ lập trình hỗ trợ cho việc xây dựng các thành phần/gói tái sử dụng được.
- Học một khóa nâng cao về UML và ORM. Hầu hết các nhà phát triển thư viện sử dụng một hoặc cả hai thứ này.
- Tham gia một khóa về kỹ thuật phần mềm.
- Ít nhất phải tìm hiểu các kỹ thuật và khái niệm lập trình dạng mô đun, dựa trên thành phần, hướng đối tượng và theo sự kiện. Bạn càng am hiểu nhiều mô hình và ngôn ngữ lập trình, bạn càng thành công hơn trong việc trở thành một lập trình viên thư viện/gói.
- Học thêm về các hệ điều hành khác nhau và các khung công việc lập trình được hỗ trợ bởi các hệ điều hành này.
- Tập trung nỗ lực học tập của bạn vào các khung công việc, các ngôn ngữ lập trình và các công nghệ độc lập với nền tảng.
- Nếu các ngôn ngữ bạn học cho đến giờ có các phiên bản theo tiêu chuẩn ANSI/ISO/IEEE/W3C, thì hãy nắm vững các tiêu chuẩn. Hãy cố sử dụng mã tiêu chuẩn bất cứ khi nào bạn có thể.
- Hãy thử bắt chước các thư viện đơn giản đã được lập sẵn, đặc biệt là các thư viện mã nguồn mở. Điều này rất hữu dụng trong giai đoạn đầu để trở thành một lập trình viên thư viện/gói. Bắt đầu với những gói đơn giản như các gói chuyển đổi đơn vị và tính toán khoa học trung cấp. Nếu bạn là sinh viên, hãy tận dụng các môn phi lập trình bằng cách thử thực hiện các phương trình và nhân khoa học của chúng như các thư viện.
- Tìm kiếm và thử các gói nguồn mở trong lĩnh vực lập trình của bạn. Trước tiên hãy tải về các phần nhị phân/thực thi được của gói. Thử sử dụng nó và tìm các điểm mạnh và điểm yếu. Sau khi xong, hãy tải mã nguồn về và thử tìm hiểu xem nó được thực hiện như thế nào. Hãy thử tái tạo lại các thư viên đó hoặc các phần của chúng. Trước hết, hãy làm điều đó sau khi bạn đã thấy mã nguồn và sau đó thì làm trước khi bạn thấy mã nguồn. Ở các giai đoạn sau, hãy thử cải tiến các thư viện đó.
-
Hãy
nghiên
cứu
các
phương
pháp
tiếp
cận
khác
nhau
để
phân
phối
và
triển
khai
các
thành
phần
tới
các
lập
trình
viên.
- Thông thường, các lập trình viên thư viện/gói có khuynh hướng suy nghĩ một cách đệ quy và/hoặc lặp lại về tất cả các vấn đề được đưa ra cho họ. Hãy thử nghĩ về mỗi vấn đề như một tập hợp của các vấn đề nhỏ hơn (một chuỗi các tác vụ đơn giản hơn) hoặc như một quy trình lặp lại của việc để giảm phạm vi vấn đề xuống các phạm vi nhỏ hơn và rồi xếp chồng các phạm vi đó lên nhau.
- Các lập trình viên thư viện/gói có xu hướng khái quát hóa. Đó là khi được trình bày một vấn đề cụ thể đơn giản, họ thường nghĩ tới một vấn đề tổng quát hơn và cố giải quyết vấn đề tổng quát đó để rồi nó sẽ tự động giải quyết các vấn đề nhỏ hơn.
Lập trình Hệ thống[sửa]
- Hiểu xem lập trình hệ thống đòi hỏi những gì. Các lập trình viên hệ thống làm việc với “khoa học” của lập trình chứ không phải những công việc thực hiện cụ thể của nó. Đừng bó buộc mình với một nền tảng cụ thể nào.
- Thực hiện theo ba bước đầu tiên để trở thành các Lập Trình Viên Ứng Dụng Máy Bàn.
- Tham gia một khóa mở đầu về Đại số Tuyến tính.
- Học một khóa về Tính toán.
- Tham gia một khóa học về Lô gic học và/hoặc Toán rời rạc.
-
Tự
làm
quen
với
các
hệ
điều
hành
cơ
bản
khác
nhau.
Điều
này
có
thể
được
thực
hiện
bằng
cách:
- Hiểu được cách cài đặt các hệ điều hành.
- Học cách cài đặt các hệ điều hành khác nhau trên một PC (tùy chọn, nhưng nên làm).
- Cài đặt nhiều hơn một hệ điều hành. Đừng cài đặt bất kỳ gói phụ trợ nào khác lên hệ thống; thay vào đó chỉ sử dụng các chức năng cơ bản được hệ điều hành cung cấp.
- Tham gia một khóa học (hoặc có thể đọc sách) về kiến trúc phần cứng máy tính[[.
- Phát huy hiểu biết về các nền tảng phần cứng máy tính khác nhau.
- Làm quen bước đầu với hợp ngữ của hệ điều hành/nền tảng phần cứng mà bạn chọn. Sau này bạn sẽ học thêm hợp ngữ của các hệ điều hành/nền tảng khác.
- Học các ngôn ngữ ANSI C và C++, cùng với các khái niệm về lập trình thủ tục.
- Hiểu rõ và thực hành các thư viện C/C++ tiêu chuẩn trên nền tảng bạn chọn. Đặc biệt lưu ý tới Thư viện mẫu tiêu chuẩn (STL) và có thể cả Thư viện mẫu hoạt động (ATL).
- Tìm kiếm các tài nguyên trực tuyến, sách vở và các khóa học để hiểu được đặc tính của C trên nền tảng bạn chọn.
- Thực hành tạo mã nâng cao với C và C++.
- Học thêm Hợp ngữ cao cấp.
- Học một khóa về thiết kế hệ điều hành.
- Tìm và đọc các tư liệu về nền tảng cụ thể mà bạn chọn. Điều này sẽ dễ dàng hơn nếu bạn chọn một hệ điều hành dựa trên Unix. Hãy nắm vững hệ thống mà bạn sẽ làm việc về sau.
-
Thực
hành
những
kiến
thức
bạn
có
được.
Trước
tiên
hãy
tạo
một
số
tiện
ích
hệ
thống
nhỏ.
Sẽ
thường
hữu
ích
nếu
bạn:
- Thử tái tạo các công cụ nhỏ có sẵn trên hệ thống của bạn.
- Thử chuyển các tiện ích có sẵn trên các hệ điều hành khác sang hệ điều hành của bạn.
-
Học
các
ngôn
ngữ
theo
thứ
tự
hữu
ích
nhất.
Đây
là
mảng
duy
nhất
mà
ngôn
ngữ
lập
trình
đầu
tiên
được
học
có
ý
nghĩa
của
nó.
Hãy
học
ANSI
C
trước,
chứ
không
phải
C++,
C#,
Java
hay
D
trước.
Sau
đó
mới
học
C++.
-
Giới
hạn
ngôn
ngữ
đầu
tiên
vào
C
và
chỉ
có
C
bởi
vì
lập
trình
các
hệ
thống
đòi
hỏi
lập
trình
viên
phải
quen
thuộc
với
các
khái
niệm
sau:
- Biên dịch thực tế và toàn bộ mã nguồn.
- Các tập tin đầu ra đối tượng cấp thấp.
- Các mã nhị phân liên kết.
- Ngôn ngữ máy cấp thấp/lập trình hợp ngữ. Nhiều người cho rằng ngôn ngữ C có thể thay thế và dễ dàng hơn để học hợp ngữ. Nó còn hỗ trợ việc chèn mã hợp ngữ vào trong mã bất cứ khi nào bạn thích và nó chỉ có tính thủ tục (giống như hợp ngữ).
-
Giới
hạn
ngôn
ngữ
đầu
tiên
vào
C
và
chỉ
có
C
bởi
vì
lập
trình
các
hệ
thống
đòi
hỏi
lập
trình
viên
phải
quen
thuộc
với
các
khái
niệm
sau:
Khoa học Lập trình[sửa]
- Biết được một nhà khoa học lập trình làm gì. Các nhà khoa học lập trình là những lập trình viên rất cao cấp thay vì phát triển các ứng dụng, thì họ phát triển các công nghệ tính toán như mã hóa, các ngôn ngữ lập trình và các thuật toán khai thác dữ liệu. Mức độ này hiếm khi đạt được mà không có sự nghiên cứu học thuật và chuyên sâu.
-
Tích
lũy
kiến
thức
khoa
học
tương
đương
với
bằng
cấp
4-năm
trong
ngành
khoa
học
máy
tính.
Điều
này
có
thể
đạt
được
bằng
một
trong
các
cách:
- Học lấy một bằng cấp học thuật thực sự (thực tế thường là như vậy).
- Tìm đề cương môn học cho một bằng cấp như vậy từ một trong các trường đại học hiện có và tự học các môn này hoặc là tham gia các khóa học riêng. Về mặt lý thuyết bạn có thể đạt được điều này, nhưng bạn nên đi theo con đường đầu tiên.
-
Chọn
lựa
mảng
chuyên
ngành.
Càng
cụ
thể
thì
càng
tốt.
Điều
này
tùy
thuộc
và
sở
thích
của
bạn.
Tuy
nhiên,
sau
đây
là
một
danh
sách
các
chủ
đề
chính
trong
khoa
học
lập
trình
máy
tính:
- Thiết kế thuật toán (tìm kiếm, phân loại, mã hóa, giải mã và phát hiện lỗi trong thông tin liên lạc là một vài ví dụ)
- Thiết kế/tối ưu hóa các ngôn ngữ lập trình/trình biên dịch
- Các mảng trí tuệ nhân tạo (nhận dạng mẫu, nhận dạng giọng nói, xử lý ngôn ngữ tự nhiên, các mạng nơ ron)
- Khoa học người máy
- Lập trình khoa học
- Siêu tính toán
- Thiết kế/mô hình hóa trợ giúp bởi máy tính (CAD/CAM)
- Thực tại ảo
- Đồ họa máy tính (Đồ họa máy tính thường bị nhầm lẫn với thiết kế đồ họa hay thiết kế giao diện đồ họa người dùng. Đồ họa máy tính là lĩnh vực nghiên cứu cách thể hiện và thao tác đồ họa trong các hệ thống máy tính).
- Cân nhắc việc lấy một bằng cấp học thuật cao hơn. Bạn có thể theo đuổi một chương trình đào tạo thạc sĩ hoặc tiến sĩ.
- Học các công nghệ và ngôn ngữ lập trình liên quan tới lĩnh vực lập trình bạn chọn.
Lời khuyên[sửa]
- Bất kể kiểu lập trình nào bạn muốn thử và bất kể mức độ nào bạn muốn đạt được, hãy cân nhắc việc tham gia các lớp ở trường hoặc đại học cộng đồng ở địa phương. Đừng e ngại bởi những thuật ngữ như “Khoa học Máy tính”. Bất kỳ lớp học nào bạn tham gia mà không đòi hỏi những yêu cầu hay điều kiện ban đầu đều sẽ tập trung vào giảng dạy cơ bản về lập trình, nhưng dù sao bạn cũng nên kiểm tra với giảng viên hoặc người cố vấn trước khi thực hiện để đảm bảo rằng nó là thứ bạn đang tìm kiếm, vì những lớp học như “Kỹ năng Máy tính” có thể tập trung nhiều hơn vào việc làm quen với các ứng dụng văn phòng hay gì đó tương tự.