Tải bản đầy đủ (.docx) (11 trang)

tự học lập trình nguonvoz

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (197.51 KB, 11 trang )

Chuy ện t ớh ọc l ập trình th ếnào c ũng có k ểcho m ột s ốb ạn r ồi, nh ư
ng nay
ti ện chia s ẻv ới group luôn nhé.
* Vì là dân kinh t ếnên t ớko th ạo m ấy cái logic IQ l ắm, nh ư
ng vì thích
thích, th ấy nó hay, và b ị nghi ền ngay t ừh ồi đ
ầ u , nên t ớdành khá nhi ều
th ời gian.
* Th ời kì đ
ầ u (hình nh ư2 n ăm l ận), m ỗi ngày t ớng ồi h ầu nh ưch ỉ có là đ
ọc
sách h ư
ớ n g d ẫn l ập trình (m ặc dù ko hi ểu tí nào luôn), gõ nguyên xi code
trong sách vào (chính xác t ừ
ng ch ấm ch ấm ph ẩy, d ấu cách) và cho nó
ch ạy đú ng. Sau đó , h ọc thu ộc lòng t ất c ảcác bài code đã gõ trên máy, và
gõ l ại ko c ần nhìn sách đ
ể chép l ại. Trong quá trình gõ code l ại t ừtrí nh ớ
,
mình b ị sai l ỗi r ất là nhi ều, m ỗi l ần sai l ỗi ko chay đ
ư
ợ c là ph ải ngh ĩ l ại cho
nó chu ẩn, bí quá là l ại lôi sách xem l ại code cho chính xác. C ứm ỗi l ần b ị
sai code, v ừ
a sử
a nh ưv ậy, d ần d ần đ
ầ u óc t ựphân tích và hi ểu đ
ư
ợ c t ại
sao ph ải th ếnày, t ại sao ph ải th ếkia. Th ờ
i kì này trâu, dành t ận t ầm 8


ti ếng m ỗi ngày ch ỉ làm cái này, làm nh ưcon v ẹt, mà ko c ần hi ểu.
* Th ời kì sau, do th ờ
i kì đ
ầ u c ần cù nên có th ấy ti ến tri ển, lúc này chuy ển
qua m ấy th ứkhác cao h ơ
n, nh ưl ập trình h ư
ớn g đ
ối t ư
ợ n g OOP, SOLID,
Design Patterns. Lí thuy ết thì đú ng là ch ịu không th ểhi ểu đ
ư
ợ c , thay vì
th ế, mình t ựngh ĩ ra m ột s ốbài đ
ể t ựlàm và nh ờdân l ập trình t ưv ấn. M ấy
bài mà t ới nay mình v ẫn còn nh ớ
: Thi ết k ếmáy tính cá nhân, Thi ết k ếh ệ
th ống tính ti ền ATM, T ạo h ệth ống l ư
u tr ữvà qu ản lý sách.
* Sau đó , chuy ển qua sâu h ơ
n vớ
i l ập trình trên giao di ện, lúc này s ẽh ọc
t ới ngôn ng ữb ậc cao h ơn đ
ể có th ểt ư
ơ n g tác, ví d ụnh ư
: Java Spring,
C# .NET Framework 2.0. H ọc cái này xong thì t ựnâng c ấp m ấy bài th ờ
i
tr ư
ớ c t ừgiao di ện gõ l ệnh (Terminal, Console) chuy ển lên giao di ện ng ư
ời

s ửd ụng (GUI)

ư
ợ c thêm vài n ăm, duy trì đ
ều đ
ặ n , ngày 3-4 ti ếng, t ựmò mò, t ựtìm
hi ểu, đ
ọ c ebooks, coi video clip (youtube, vimeo) t ừcác trang h ư
ớ n g d ẫn
l ập trình, nên hi ện t ại, kh ản ăng l ập trình c ũng ở m ứ
c tư
ơn g đ
ố i khá.
Tính t ừh ồi đ
ầ u ti ếp c ận l ập trình t ớ
i nay thì c ũng đã tr ải qua đ
ư
ợ c hơ
n 9
n ăm. Ban đ
ầ u ch ỉ là thích, nh ư
ng theo th ờ
i gian nó c ũng thành thói quen,


ăn sâu vào máu và tr ởthành th ứg ọi là đa m mê. Và hi ện t ại mình coi l ập
trình là m ột công c ụđể làm thêm ki ếm ti ền tiêu v ặt Bi ểu t ượ
ng c ả
m xúc grin
Mình ko ph ải dân k ĩ thu ật g ốc, ko gi ỏi toán, c ũng gi ỏi t ưduy logic gì c ả,

nh ưng được cái ch ăm ch ỉ nên theo th ờ
i gian c ũng có ph ần ti ến b ộlên
được . Còn các b ạn là dân k ĩ thu ật, các b ạn có l ẽcó g ốc t ốt h ơ
n mình
nhi ều, nh ưng có l ẽ, đi ều các b ạn thi ếu là s ựkiên nh ẫn, s ựham h ọc h ỏi, s ự
ch ăm ch ỉ, kiên trì thôi.
T ớlàm được , v ậy có l ẽnào các b ạn l ại không?
/>H ọc l ập trình chính là h ọc ngôn ng ữ để giao ti ếp v ới máy tính, b ắt máy tính
làm nh ững đi ều mình mu ốn.
Nên h ọc l ập trình và h ọc ngo ại ng ữ có nh ững đi ểm chung, h ọc l ập trình
không khó b ằng h ọc ngo ại ng ữ vì ngôn ng ữ máy tính r ất nguyên t ắc.
Tuy nhiên, quá trình hi ểu -> th ực hành -> rút kinh nghi ệm -> hi ểu h ơn ->
th ực hành t ốt h ơn -> kinh nghi ệm nhi ều h ơn đượ c áp d ụng cho c ả 2 vi ệc
học lập trình và học ngoại ngữ.
Hi ểu mà không th ực hành -> Khi ph ải giao ti ếp v ới máy s ẽ lúng túng, ch ậm
chạp.
Th ực hành mà không tìm hi ểu tr ước -> R ất m ất th ời gian h ọc vì ph ải h ọc t ừ
kinh nghi ệm sai l ầm c ủa b ản thân ( đi ều mà n ếu b ạn tìm hi ểu lý thuy ết
tr ước s ẽ bi ết đi ều đó s ớm h ơn r ất nhi ều)
/>Nếu trẻ, mới ra trường, còn máu me chinh chiến
Đầu tiên, đọc cái bài này cho nó thấm dái tí đã.
Tôi nói trước, tôi đéo phải một người nhiều kinh nghiệm mà
khuyên ai cái gì, chỉ là chia sẻ thôi... Đa phần các bạn chẻ mới ra
lúc nào cũng mong muốn công ty có môi trường tốt, đãi ngộ cao,
lương hấp dẫn. Cái đó thì mơ ước của các bạn, đéo ai cấm, nhưng


thực tế nó phũ phàng lắm...
Ở độ tuổi từ 22-27, thì các bạn nên chinh chiến khắp nơi, nhảy
việc liên tục để lấy cái gọi là kinh nghiệm và kiến thức, nói thì hơi

cổ hũ tí, nhưng ông bà nói đéo sai đâu. Các bạn đừng mãi đi tìm
công ty hoàn hảo, tuyệt vời gì này nọ, đéo có đâu, vô vọng thôi!
Vì công ty nào cũng có ưu điểm và nhược điểm của nó. Cái bạn
nên chú ý là văn hóa của công ty. Tùy vào tính cách cũng như
sinh lý của bạn, thì bạn có hòa nhập văn hóa được với công ty
hay không? Mà khi hòa nhập thì bạn sẽ dễ dàng gắn bó lâu dài
với công ty hơn, còn nếu đéo hòa nhập được thì tự bạn đào thải
mình ra khỏi cuộc chơi, vậy thôi. Có nhiều ông lương 2000, 3000
mà cũng phải rời khỏi cuộc chơi, do đéo phù hợp với chiến
lược/văn hóa công ty. Còn mỗi công ty đều mang lại cho mình
chút ít gì đó kinh nghiệm, kiến thức, không có cái này thì cũng có
cái khác: Công ty tư nhân thì mang lại cho bạn kiến thức nhiều
hơn, còn công ty nhà nước thì giúp bạn biết được mối quan hệ có
sức mạnh ghê gớm như thế nào. Nói chung, bỏ khoảng 4-5 năm
trau dồi, cày bừa, chinh chiến nhiều công ty hoặc nhiều dự án
khác nhau, để kiếm cho mình kha khá vốn kiến thức cái đã. Thời
điểm này, lương đừng quan tâm nhiều, tầm 8 củ 1 tháng nếu bạn
ở Đà Nẵng và 10 củ nếu bạn đang thuê phòng trọ, dư ăn, đủ
sống, thỉnh thoảng lương thưởng thì đi đá phò, hoặc kiếm con
điện thoại ngon ngon khè gái cũng ok.
Tới năm 28 trở đi, tuổi này đéo lên được hay xin được việc tầm
trưởng phòng/quản lý (bên tư nhân gọi cao sang là Leaders,
Managers) thì các bạn xác định đi tìm ngành nghề khác là vừa. Vì
tuổi này thì khả năng học của bạn bắt đầu thuyên giảm và bạn có
xu hướng lười hơn, ít động não hơn mà tập trung giải quyết vấn
đề tồn đọng trong dự án hoặc đi training (kiểu như 1 người có


kinh nghiệm lâu năm đi dạy bảo mấy thằng đệ). Tuổi này bắt đầu
chán, và lười cống hiến nên mà đéo lên quản lý thì xác định nhé.

Lúc này tập trung cho kỹ năng quản trị/quản lý nhiều hơn là kỹ
thuật, vì nếu IT thì bạn chỉ cần nhạy công nghệ 1 chút là ngon,
còn coding/testing thì nó ko thoát khỏi lối mòn đâu, ít nhất là 3-5
năm nữa. Có chăng thì thay đổi về nền tảng, có thể Mobile ko còn
hot nữa, thay vào đó là cái gì cao hơn chẳng hạn (tôi đéo phải Bill
Gates, Jobs mà tiên đoán công nghệ). Bởi vậy, xác định, không
làm Manager được ở tuổi này thì bạn nên đi buôn cho khỏe, mấy
cái nghề sử dụng chất xám này, có thời hạn thôi bạn ạ.
Nếu bạn đã là quản lý, thì tốt hơn nên kiếm nghề tay trái (mở
cafe, buôn bán), đừng dại mà chơi với luật pháp, nó cho vô khám
thì cả chì lẫn chài đi luôn nhé
. Nên có tiền nhàn rỗi, sau này
kiếm cái penthouse trong resort mà dắt bồ về phành phạch, hoặc
tổ chức pool party, nhóe.
Một số chia sẻ:
- Sinh viên trai tân: Nên join fSoft - nơi cày bừa và kiếm kinh
nghiệm hàng đầu Đà Nẵng. Vì dự án nó nhiều, văn hóa lại khá
phù hợp với mấy cha trẻ và bựa bựa. Nếu không dzô được FPT thì
kiếm Enclave, GameLoft, MagRabbit, Unitech... mà trau dồi.
- Lão làng 2 năm tuổi: SmartDev, Axon Active, LogiGear, Sioux,
‫ﹾﹾﹾ‬... mà phang, ở tuổi này thì đã có kinh, nên bắt đầu tham gia
training hoặc chút gì đó quản lý team nhỏ (5-7 người). Nếu được
thì kiếm công ty startup mà nhảy, cơ hội thăng tiến nhiều
hơn.
- Cụ già 4 - 5 năm tuổi: Atlassian (bác nào làm JIRA thì biết),


NTT Data (của Nhật Bản) nếu bạn còn muốn thu thập kiến thức,
còn không thì xin nộp đơn làm Project Lead, QA Lead, hay thậm
chí Manager của công ty nào đó nếu bạn tự tin vô vẻ đẹp của

mình.
- Trên 5 năm tuổi: Coi lại tâm sự ở trên...
Mình nghĩ chương trình năm nhất k nhiều đâu. Bạn cứ thử học thuật toán
xem (mua sách Cấu trúc dữ liệu và giải thuật về đọc + giải bài tập
trên vn.spoj.com), nếu theo được mà đi thi có giải thì chả hơn à
tập trung vào cấu trúc dữ liệu và giải thuật, luyện cách tư duy nh ư một l ập
trình viên trước rồi tính tiếp, chưa biết cách tư duy là ko làm dc gì v ới môn
này đâu, ngoài ra bạn còn phải luyện thêm tiếng Anh nữa, vào các trang
như codeforces hay trang chính của spoj (ko phải vn spoj nha, vn spoj
giống mua bản quyền phân phối cho Việt Nam nên nó là ti ếng Vi ệt)
link codeforces6
link spoj5




Hãy thích thú trong việc lập trình, và làm nó bởi vì nó mang
lại cho bạn nhiều niềm vui. Hãy chắc chắn rằng nó đủ vui để
làm cho bạn sẽ sẵn lòng bỏ thêm 10 năm (hoặc 10,000 giờ)
để luyện tập.
Lập trình. Cách học tốt nhất là học thông qua thực hành.
Cuốn sách Cognition in Practice: Mind, Mathematics, and
Culture in Everyday Life là một tham khảo thú vị cho quan
điểm này. Một số trích đoạn đáng chú ý trong cuốn sách đó
như sau, “đẳng cấp của một cá nhân trong một lĩnh vực nào
đó thì không đạt được một cách tự nhiên theo thời gian, mà
đẳng cấp chỉ có thể tăng lên thông qua nỗ lực luyện tập để
tiến bộ” và “để việc học được hiệu quả nhất thì yêu cầu mỗi
tác vụ phải được xác định rõ ràng cùng với độ khó thích hợp
cho người tham gia, có đánh giá phản hồi, và có cơ hội để

lặp lại và sửa chữa những sai lầm.“












Nói chuyện cùng những lập trình viên khác; đọc các chương
trình do họ viết ra. Điều này thì còn quan trọng hơn bất kỳ
cuốn sách hoặc khóa huấn luyện nào.
Nếu bạn muốn, hãy học 4 năm tại một trường đại học (hoặc
nhiều hơn tại mức sau đại học). Điều này giúp bạn có thể
kiếm được một công việc mà yêu cầu bằng cấp, và nó sẽ
mang lại cho bạn mức hiểu biết sâu hơn trong lĩnh vực này;
nhưng nếu không thích trường học, thì bạn cũng có thể (cùng
với nhiều nỗ lực) thu được kinh nghiệm tương tự bằng cách
tự học hoặc dựa trên công việc của bạn. Trong bất kỳ trường
hợp nào, chỉ học qua sách vở sẽ là chưa đủ. Tác giả của cuốn
sách The New Hacker’s Dictionary là Eric Raymond đã nói
rằng, “Giáo dục về Khoa học máy tính không thể khiến cho
bất kỳ ai trở thành chuyên gia lập trình, cũng như là việc học
về cọ và màu không thể làm cho ai đó trở thành họa sĩ tài
ba”. Một trong những lập trình viên tốt nhất mà tôi đã từng
thuê, thì anh ta chỉ mới có bằng tốt nghiệp trung học; nhưng

anh ta đã tạo ra được rất nhiều phần mềm tuyệt vời, có hẳn
một nhóm tin (news group) của riêng mình, và kiếm đủ cổ
phiếu dạng tùy chọn để có thể sở hữu một quán bar.
Làm việc trên nhiều dự án cùng với những lập trình viên
khác. Hãy là người giỏi nhất trong một số dự án; và hãy là
người kém nhất trong một số dự án khác. Khi bạn là người
giỏi nhất, bạn sẽ có cơ hội kiểm tra các khả năng về lãnh đạo
một dự án, và cách truyền cảm hứng tới những người khác
với tầm nhìn của bạn. Khi bạn là người kém nhất, bạn sẽ học
được cách mà các cao thủ sẽ làm, và bạn biết được những
công việc mà họ không muốn làm (bởi vì đó là những việc
mà họ sẽ sai bạn làm cho họ).
Làm việc trên các dự án sau những lập trình viên khác. Hiểu
rõ một chương trình được viết ra bởi một người khác. Đọc
code để hiểu nó và có thể sửa chữa khi những lập trình viên
ban đầu không còn hỗ trợ nó nữa. Hãy nghĩ về việc làm thế
nào để thiết kế các chương trình của bạn khiến cho những
người sau này bảo trì nó được dễ dàng hơn.
Hãy học ít nhất nửa tá các ngôn ngữ lập trình. Bao gồm một
ngôn ngữ nhấn mạnh về các lớp trừu tượng (ví dụ như Java
hoặc C++), một ngôn ngữ nhấn mạnh về các hàm trừu
tượng (ví dụ Lisp hoặc ML hay Haskell), một ngôn ngữ hỗ trợ


cú pháp trừu tượng (kiểu như Lisp), một ngôn ngữ hỗ trợ khai
báo các đặc tả (ví dụ như Prolog hoặc C++ templates), và
một ngôn ngữ nhấn mạnh về tính song song (ví dụ như
Clojure hoặc Go).
 Nên nhớ rằng có một chữ “máy tính” trong cụm từ “khoa học
máy tính”. Phải biết máy tính của bạn thực thi một lệnh mất

bao lâu, tìm nạp một từ vào bộ nhớ (có và không có cache),
đọc liên tục các từ (word) từ đĩa, và tìm kiếm một một vị trí
mới trên đĩa.
 Nên tham gia vào nỗ lực chuẩn hóa một ngôn ngữ. Đó có thể
là ủy ban ANSI C++, hoặc đó có thể là việc quyết định liệu
coding style của bạn sẽ có 2 hoặc 4 mức căn lề. Hoặc theo
một cách khác, bạn hãy tìm hiểu xem những người khác
thích một ngôn ngữ ở điểm gì, họ cảm thấy sâu sắc như thế
nào, và thậm chí về lý do tại sao họ lại cảm thấy như vậy.
 Có sự nhạy bén để áp dụng những nỗ lực chuẩn hóa của
ngôn ngữ đó một cách nhanh nhất có thể.
/> />Tôi thường suy nghĩ một cách logic. Máy tính không quan tâm đến việc bạn đang cảm
thấy như thế nào, và ý kiến của bạn cũng không phải là điều quan trọng. Tất cả vấn đề
nằm ở chỗ liệu bạn có viết mã chính xác để nó có thể thực thi được hay không.
2. Tôi luôn tìm kiếm những cách tốt hơn để giải quyết vấn đề. Tôi thường tìm đọc một số
blog uy tínchuyên về lĩnh vực phát triển phần mềm. Cá nhân mình thì không thể luôn có
giải pháp tốt nhất để giải quyết một vấn đề, nhưng một ai đó ở một nơi khác chắc chắn
có thể.
3. Tôi thường xuyên đọc sách về công nghệ. Một chuyên gia phát triển phần mềm là Joel
có nói rằng hầu hết các lập trình viên bây giờ không còn đọc sách nữa. Đó là một điều
thật đáng tiếc. Các blog là nguồn tài liệu khá tuyệt vời để tham khảo những đoạn mã
nhỏ, nhưng hiếm khi chúng chứa đựng một chủ đề xuyên suốt từ đầu đến cuối. Blog chỉ
nên là một sự bổ sung thêm cho các cuốn sách mà thôi.
4. Tôi không ngừng suy nghĩ về các vấn đề và tìm cách để giải quyết chúng thông qua
cách tự động hóa. Đôi khi tôi thức giấc vào lúc nửa đêm, và tôi không thể quay trở lại
giường cho tới khi mà chưa viết ra được đoạn mã đang ấp ủ trong đầu.
5. Tôi luôn có một vài dự án cá nhân khá thú vị, và chúng cho tôi cơ hội để thử nghiệm
các công nghệ mới, điều mà tôi không muốn thực hiện trên các sản phẩm tại công ty.
Vâng, những dự án cá nhân này có phần làm phân tâm tôi ít nhiều tại công việc chính,
nhưng bù lại tôi lại thu được nhiều kiến thức quý giá cho khoảng thời gian mình đã mất.



6. Tôi có một blog về công nghệ. Tôi đề nghị tất cả các lập trình viên chúng ta mỗi người
nên có một blog và bạn nên viết bài để đóng góp cho cộng đồng. Nếu bạn giải quyết
được một vấn đề, chúng tôi cũng muốn nghe về giải pháp của bạn! Ít nhất thì nó cũng
giúp bạn có một cơ hội để hình thành những ý tưởng mới, nó sẽ giúp củng cố thêm hoặc
làm cho bạn nhận ra là mình đã sai. Có thể bạn cũng sẽ nhận được nhiều nhận xét phản
hồi có giá trị.
7. Tôi cố gắng để chứng minh rằng mình đã sai. Tất cả mọi người đều muốn mình đúng.
Tôi lại cố gắng chứng minh mình sai khi thích hợp. Một trong những điều khó khăn nhất
trong trong thế giới của một lập trình viên là nói rằng những dòng mã mà họ đã dành cả
tuần lễ để viết ra không có giá trị gì cả. Đó là điều hoàn toàn có thể, đừng chống lại nó,
hãy làm việc cùng nó.
8. Tôi luôn cập nhật những công nghệ mới nhất, và tập trung bản thân để thử nghiệm
chúng.
9. Tôi có một kiến thức tương đối tốt để hiểu cách mà các phần mềm và phần cứng máy
tính hoạt động như thế nào. Có rất nhiều người mang danh nghĩa là lập trình viên mà
việc duy nhất họ có thể làm là bật máy tính lên và lướt web.
10. Tôi có kỹ năng tìm kiếm tài liệu thông qua Google khá hiệu quả.
11. Tôi không chỉ đơn thuần làm việc vì tiền. Tôi thực sự yêu thích công việc mà mình
đang làm. Tôi đã có một cuộc phỏng vấn xin việc đáng nhớ, khi mà ông chủ tương lai
của tôi kể câu chuyện về cách mà ông được nhận vào làm việc và được giao phụ trách
quản lý các dự án quan trọng như thế nào. Khi mà ngành công nghiệp phần mềm trở
nên khó khăn, bạn nghĩ rằng ai là người đầu tiên phải khăn gói ra đi?
12. Tôi luôn đồng cảm với những khó khăn của người sử dụng. Nếu có thể chia sẻ bớt nỗi
khó khăn của họ, tôi sẽ muốn ngăn ngừa lỗi và làm cho người dùng có thể sử dụng phần
mềm được hiệu quả nhất.
13. Tôi nhận ra rằng những dòng mã mà tôi viết ra chẳng bao giờ là hoàn hảo cả, vì vậy
tôi cố gắng làm sao để chúng có thể được kiểm thử và viết dưới dạng các mô-đun. Tôi
thiết lập các quy trình để cố gắng giảm thiểu tối đa các sai lầm và lỗi tiềm ẩn.

14. Tôi không nghĩ rằng Microsoft là một con quỷ, và cũng không nghĩ họ là vị thánh. Họ
là một công ty lớn. Một số sản phẩm mà họ viết ra rất là tầm thường, còn một số khác
thì thật là tuyệt vời. Điều tương tự cũng đúng với nhiều công ty khác.
15. Tôi học hỏi từ sai lầm của chính mình. Tôi cố gắng kiểm tra ít nhất 2 lần để tránh lặp
lại những sai lầm trong quá khứ. Nếu lần thứ nhất không thành công, tôi sẽ còn một lần
khác.
16. Khi được yêu cầu giải quyết một vấn đề, tôi thường nghĩ trên tầm các vấn đề, và xác
định liệu nó có phải là một vấn đề cần phải giải quyết hay không.
Xin bổ sung thêm một chút, tiêu đề của bài viết này được viết ra với ý nghĩa hóm hỉnh,
nhưng tôi nghĩ là nội dung bài viết thì có nhiều thông tin khá hữu ích.


1. Phải có khả năng tự kỷ ám thị, ví dụ như: “lập trình là mục đích của cuộc đời tôi”,
“không trở thành một lập trình viên giỏi thì tôi không biết phải làm gì khác”, “lập trình
thật là dễ” v.v… Làm sao để cho mình cảm thấy việc học lập trình và lập trình là công
việc thiết yếu, mang tính sống còn (quan trọng như việc thi Đại học vậy), em sẽ học
được nhanh và hiệu quả hơn.
2. Học tập thường dựa trên việc tích lũy kiến thức, không có việc học chỉ trong một
ngày. Với anh, anh có thể viết nguyên một ứng dụng bằng PHP hoặc Ruby On Rails chỉ
trong một ngày (dù anh chưa học hai thứ này trước đó) nhưng đó không phải là nhờ vào
tài năng bẩm sinh, nó nhờ vào quá trình học tập và tích lũy những khái niệm tương tự từ
.NET, Java… Quỹ thời gian để học tập/ viết bài/ làm dự án cá nhân của anh là khoảng 4
giờ/ mỗi tối.
3. Không thể làm ứng dụng đàng hoàng nếu thiếu lý thuyết, nhưng cũng không thể làm
việc hiệu quả nếu không làm dự án thực tế và luyện tập miệt mài. Vì vậy, việc đọc sách/
báo/ bài viết và tự nghĩ ra các bài tập để rèn luyện kỹ năng đã học là việc cần làm
thường xuyên, xen kẽ và không bao giờ ngừng lại.
4. Tri thức là vô hạn, năng lực học tập của con người là hữu hạn, vì vậy em không thể
cùng một lúc học hết được tất cả, hãy học thứ cốt yếu, lưu lại (bookmark) và sưu tầm
những thứ là thứ yếu để sau này có thể dùng đến khi cần. Ví dụ: biết lập trình Javascript

là cốt yếu, biết cách sử dụng một plugin để hiển thị album ảnh theo kiểu như LightBox
hoặc như Facebook là thứ yếu, tuy nhiên vẫn cần phải tìm kiếm các thư viện và đánh
dấu nó để dùng đến khi cần.
5. Viết ứng dụng không phải là viết ra một cách liền mạch như dòng suy nghĩ, vì suy
nghĩ đôi khi nó tràn tới như vũ bão và không có thứ tự, còn ứng dụng cần phải được cấu
trúc rõ ràng, rành mạch, vì vậy là lập trình viên tốt cần phải biết cách cấu trúc ứng
dụng, phân chia ứng dụng ra thành các thành phần cụ thể, ráp nối chúng lại với nhau,
làm sao để mỗi lần có sự thay đổi, chỉ cần thay đổi một thành phần của dự án chứ
không đi xới tung toàn bộ dự án.
6. Mã lệnh mình viết ra không chỉ để mỗi mình ta đọc, mà để dành cho cả team cùng
đọc. Phần mềm, như mọi sản phẩm khác, muốn là sản phẩm tốt và tinh xảo thì cần phải
huy động bộ máy nhiều người cùng góp sức mới có thể tạo ra được sản phẩm dùng
được, tốt và có tương lai. Vì vậy, hãy luôn tâm niệm rằng mọi thứ ta lập trình ra cần phải
giữ được sự đơn giản, dễ hiểu, gọn gàng, tinh tế và dễ dàng sửa đổi hoặc thay thế. Làm
ra một mớ xà bần thì không khó, nhưng tạo ra những thứ dễ hiểu đối với tất cả mọi
người là cả một nghệ thuật. Vì vậy, người lập trình, bản thân họ phải tự rèn luyện mỗi
ngày để trở thành những kỹ sư chuyên nghiệp và là những nhà nghệ thuật bậc thầy.
7. Việc lập trình cũng gần giống như công việc của các công nhân & kỹ sư xây dựng,
ngôi nhà xây ra xấu hay tốt phụ thuộc vào rất nhiều yếu tố như: bản vẽ tốt, chất liệu
tốt, tay nghề xây dựng tốt để áp dụng đúng kỹ thuật và cách thức, và một yếu tố cũng
không kém phần quan trọng đó là sự hiểu biết lẫn nhau và phối hợp nhịp nhàng để thực
hiện công việc. Nói nhỏ thì là team working (làm việc nhóm), nói lớn thì là process và
project management (quy trình làm việc và quản lý dự án). Muốn dự án hoạt động trơn
tru, thì kỹ sư phải có thêm sự hiểu biết rõ rệt về quy trình, cách thức vận hành dự án,
sao cho có thể phối hợp với mọi người và trưởng nhóm hiệu quả để dự án thành công. Vì
vậy, em không chỉ nên học mỗi lập trình, mà cũng cần phải học cách làm việc nhóm,
quy trình phát triển phần mềm, các vai trò trong dự án phần mềm, tại sao cần có những


thứ đó, ví dụ tại sao cần có tester, các dự án càng lớn, kỹ sư càng giỏi nhưng số lượng

tester không giảm đi mà lại càng cần nhiều thêm? v.v…
8. Làm khoa học là “tự sướng”, làm kinh doanh / sản phẩm là “làm cho người dùng
sướng” (trích dẫn lời của anh Nguyễn Thành Nam nguyên Tổng giám đốc Công ty FPT
Software, anh nghe được hồi bác ấy đi nói chuyện với sinh viên miền Trung để vận động
cho cuộc thi Trí Tuệ Việt Nam). Vì là “làm cho người dùng sướng” nên cái tôi cá nhân
phải được đặt trong vị trí khiêm tốn, thay vào đó, lập trình là vì sự thỏa mãn của khách
hàng, tất cả là vì khách hàng. Khách hàng thường hay thay đổi, họ không biết diễn tả
chính xác thứ họ cần, họ hay phàn nàn, họ không hiểu rõ nỗi khổ của lập trình viên…
nhưng sao cũng được, khi họ là khách hàng, ta là người cung cấp sản phẩm, hãy cố
bằng mọi cách mang lại những sản phẩm tốt nhất và kịp thời nhất trong mức có thể cho
khách hàng. Giao tiếp, thương thảo, khả năng mô tả, diễn đạt ý tưởng là những kỹ năng
quan trọng mà ta cần phải có. Nhưng trên hết vẫn cần có thái độ cầu thị, nhiệt thành,
chân thật, và luôn mong muốn mang lại giá trị tốt đẹp cho mọi người.
9. Mình học được nhiều thứ từ người khác, từ các blogger trên Internet, từ sách mua/
sách chùa, từ open source… Ở đời, đã biết nhận thì phải biết cho, nên luôn coi “chia sẻ”
là việc nên làm và làm thường xuyên. Cho đi không chỉ mất, mà còn được lại rất nhiều,
được sự ghi nhận của cộng đồng, được comment (đánh giá, nhận xét) nhờ đó mà mình
hoàn thiện được những thứ còn thiếu sót, được trở thành thành viên của một cộng đồng,
và nhận được sự giúp đỡ nhiệt tình hơn từ mọi người. Và thực ra “cho” là một cách để
“nhận” được nhiều hơn. Sống là sẻ chia! Triết lý tuy giản đơn, nhưng để áp dụng thành
công thì rất khó!

/>Cần:
+ Tư duy, logic tốt.
+ Chịu khó, không nóng tính.
+ Suy nghĩ theo kiểu "out of the box" để có thể làm giàu bằng nghề này, còn xác định sáng
đi làm tối về thì không cần lắm.
+ Học hỏi, nắm bắt nhanh.
+ Sự cầu toàn, ngăn nắp.
+ Khả năng anh văn khá, tốt.

Đủ:
+ Nắm vững nguyên lý, hiểu gốc rễ của cái mình hướng tới.
+ Nắm vững thuật toán, cách đọc các sơ đồ, đọc code.
Theo mình thì chỉ vậy thôi, bạn nào thấy thiếu bổ sung dùm mình. Mình chia sẻ theo cảm
nhận cá nhân, nếu còn là sinh viên thì vote đi làm thêm thực tập hoặc tự làm project,
freelance. Khi ra trường thì đã có sẵn kinh nghiệm làm việc.
quan điểm của mình là phải học toán tốt, không sợ toán, tư duy ổn định, cần cù, đam mê,
thái độ làm việc, tư tưởng,nhưng làm việc trong 1 môi trường cực kì căng thẳng mệt mỏi
đau mắt, gặp lỗi phải fix nhiệt tình, giao tiếp kém đi, người gầy đi, bù lại lương ổn định, chịu
khó gym ăn uống nó bù lại sk, thị lực thì uống nhiều dầu cá cho tỉnh mắt. chịu khó cà phê
bạn bè, nên tham gia 1 clb như mình tham gia clb mô hình cho tinh thần sảng khoái


+ Hạn chế làm thêm giờ - ngày chỉ 8 tiếng thôi. Hết giờ là về. Dành thời gian cho gia đình
và các hoạt động giải trí khác.
+ Cảm thấy ức chế trong công việc mà trong thời gian tới chưa thấy cách giải quyết -> Nghỉ
khẩn trương.
+ Dành thời gian trước khi ngủ + sau khi ngủ dậy để đọc sách về chuyên môn. (Những cái
này không phục vụ công việc hiện tại mà tích lũy cho khoảng vài năm nữa



×