- Home
- học viết smart contract
- Xây Dựng Roadmap 30-60-90 Ngày Học Solidity: Từ Cơ Bản Đến Viết Smart Contract Cho Người Mới
Xây Dựng Roadmap 30-60-90 Ngày Học Solidity: Từ Cơ Bản Đến Viết Smart Contract Cho Người Mới
Roadmap 30-60-90 ngày học Solidity phù hợp với người mới vì nó chia quá trình học thành ba chặng rõ ràng: xây nền, tăng thực hành và hoàn thiện đầu ra. Với cách đi theo mốc thời gian, người học không bị rơi vào tình trạng học lan man, đồng thời vẫn giữ được mục tiêu cốt lõi là hiểu Solidity đủ sâu để tự viết smart contract cơ bản.
Tiếp theo, điều người mới cần nhất không chỉ là biết học gì, mà còn phải biết học theo thứ tự nào. Trong chủ đề này, lộ trình 30 ngày đầu sẽ tập trung vào nền tảng blockchain, EVM, cú pháp Solidity và logic vận hành của contract; 30 ngày tiếp theo chuyển sang thực hành code; 30 ngày cuối tập trung vào test, deploy và hoàn thiện mini project.
Bên cạnh đó, một roadmap tốt không dừng ở danh sách kiến thức. Nó còn phải trả lời câu hỏi sau mỗi chặng người học có thể làm được gì. Đây là điểm rất quan trọng, vì nhiều người học viết smart contract khá chăm chỉ nhưng lại không đo được tiến bộ, dẫn tới cảm giác “học mãi mà chưa dùng được”.
Đặc biệt, bài viết này cũng làm rõ phần ranh giới giữa kiến thức bắt buộc và kiến thức mở rộng, giúp người mới tránh học quá sức ngay từ đầu. Sau đây, hãy cùng khám phá chi tiết roadmap 30-60-90 ngày học Solidity theo đúng tư duy từ cơ bản đến thực chiến.
Roadmap 30-60-90 ngày học Solidity có phù hợp cho người mới không?
Có, roadmap 30-60-90 ngày học Solidity phù hợp cho người mới vì nó tạo cấu trúc rõ ràng, giảm học lan man và giúp chuyển từ hiểu khái niệm sang tự viết smart contract từng bước.
Để hiểu rõ hơn câu hỏi về mức độ phù hợp của roadmap 30-60-90 ngày học Solidity, trước hết cần nhìn đúng bản chất của người mới. Người mới thường gặp ba vấn đề: thiếu nền tảng blockchain, học cú pháp mà không hiểu bối cảnh, và nóng vội muốn viết sản phẩm trước khi nắm logic của contract. Chính vì vậy, một lộ trình chia thành 30 ngày, 60 ngày và 90 ngày mang lại lợi thế rất lớn.
Thứ nhất, roadmap này tạo ra tiến trình học có thứ tự. Người học bắt đầu từ blockchain, Ethereum, EVM, gas, cấu trúc contract, sau đó mới chuyển sang function, modifier, event, test và deploy. Thứ tự đó quan trọng hơn tốc độ, vì trong Solidity, hiểu sai nền tảng sẽ khiến bạn code được nhưng không hiểu vì sao contract hoạt động như vậy.
Thứ hai, roadmap 30-60-90 ngày giúp chia nhỏ mục tiêu. Khi mục tiêu nhỏ, người học dễ duy trì kỷ luật hơn. Thay vì đặt câu hỏi quá lớn như “khi nào tôi thành Solidity developer?”, bạn chỉ cần tập trung vào câu hỏi nhỏ hơn: “30 ngày đầu tôi có đọc hiểu contract chưa?”, “60 ngày tôi đã tự viết ERC-20 đơn giản chưa?”, “90 ngày tôi đã biết test và deploy testnet chưa?”.
Thứ ba, lộ trình này phù hợp vì nó cân bằng giữa lý thuyết và thực hành. Người mới nếu học thuần lý thuyết sẽ nhanh nản. Ngược lại, nếu chỉ copy code từ tutorial mà không hiểu EVM, storage hay gas, bạn sẽ rơi vào tình trạng viết được nhưng không sửa được. Roadmap 30-60-90 ngày giải quyết đúng vấn đề này bằng cách buộc kiến thức đi cùng đầu ra.
Roadmap 30-60-90 ngày học Solidity là gì?
Roadmap 30-60-90 ngày học Solidity là lộ trình học chia thành ba giai đoạn theo mốc thời gian, trong đó mỗi giai đoạn có mục tiêu kiến thức, kỹ năng và đầu ra thực hành riêng.
Cụ thể hơn, 30 ngày đầu là giai đoạn xây nền. Ở giai đoạn này, người học cần hiểu blockchain là gì, Ethereum vận hành ra sao, EVM là gì, cách transaction tiêu tốn gas, vì sao contract có storage, memory và calldata. Sau lớp nền đó, người học mới tiếp cận cú pháp Solidity một cách có ngữ cảnh.
30 ngày tiếp theo là giai đoạn chuyển từ hiểu sang làm. Đây là lúc người học bắt đầu viết contract đơn giản, hiểu inheritance, import library, sử dụng OpenZeppelin, tạo token cơ bản, tạo NFT cơ bản hoặc contract quản lý dữ liệu có quyền hạn truy cập.
30 ngày cuối là giai đoạn hoàn thiện workflow. Lúc này, người học không chỉ biết code mà còn cần biết test, debug, deploy lên testnet, kiểm tra logic, tối ưu quy trình làm việc trong môi trường dev, và hoàn thành ít nhất một mini project.
Như vậy, roadmap không đơn thuần là danh sách chủ đề. Nó là bản thiết kế tiến độ học, giúp người mới chuyển từ “biết Solidity” sang “dùng Solidity để tạo sản phẩm cơ bản”.
Roadmap này có giúp người mới tự viết smart contract không?
Có, roadmap này giúp người mới tự viết smart contract ở mức cơ bản đến nhập môn trung cấp vì nó tập trung vào kiến thức nền, thực hành có thứ tự và đầu ra đo lường được.
Tuy nhiên, để tránh kỳ vọng sai, cần hiểu rõ rằng “tự viết smart contract” trong 90 ngày không có nghĩa là bạn đã đủ năng lực audit hệ thống DeFi phức tạp hoặc xây protocol quy mô lớn. Kết quả hợp lý hơn là bạn có thể tự viết contract lưu trữ dữ liệu, token cơ bản, NFT cơ bản, whitelist, voting, vesting đơn giản hoặc một mini dApp nhỏ.
Điều quan trọng là sau 90 ngày, bạn bắt đầu có tư duy phát triển contract. Bạn hiểu vì sao một biến nên lưu ở storage hay memory, khi nào nên dùng modifier, vì sao event hữu ích, khi nào cần access control, vì sao test quan trọng hơn việc chỉ deploy thành công. Đây là bước chuyển tư duy rất lớn với người mới.
Nếu đi đúng lộ trình, bạn cũng sẽ có nền tảng để bước tiếp sang các chủ đề nâng cao hơn như học EVM và gas optimization, đọc sâu hơn về bảo mật smart contract cơ bản, hoặc chuyển hướng sang học framework như Hardhat, Foundry để làm việc trong dự án Web3 thực tế.
Trong 30 ngày đầu, người mới nên học những gì để hiểu Solidity từ gốc?
Trong 30 ngày đầu, người mới nên học nền tảng blockchain, Ethereum, EVM và cú pháp Solidity cơ bản trước khi viết contract phức tạp để tránh học nhanh nhưng hiểu hời hợt.
Để bắt đầu đúng với 30 ngày đầu, người học cần chấp nhận một nguyên tắc: chưa vội làm sản phẩm lớn. Giai đoạn này không phải để chứng minh mình code giỏi, mà để hiểu đúng logic của smart contract. Nếu nền bị lệch, toàn bộ 60 ngày sau sẽ trở nên chắp vá.
Trình tự hợp lý trong 30 ngày đầu thường là:
- Hiểu blockchain, block, transaction, node, wallet, private key, public key
- Hiểu Ethereum là gì và EVM xử lý contract ra sao
- Hiểu gas fee, gas limit, gas usage và lý do chi phí thực thi khác nhau
- Làm quen với môi trường dev cơ bản như Remix, MetaMask, testnet
- Học cú pháp Solidity: pragma, contract, state variable, function, visibility
- Học kiểu dữ liệu: uint, int, bool, address, string, bytes
- Học cấu trúc dữ liệu: array, mapping, struct, enum
- Học constructor, require, revert, error handling cơ bản
- Đọc hiểu một số contract đơn giản
Điểm mấu chốt là người học không nên học rời rạc. Khi học function, cần hiểu function đó chạy trong EVM thế nào. Khi học state variable, cần biết vì sao storage tốn gas khác memory. Khi học mapping, cần hiểu nó phù hợp với tình huống quản lý dữ liệu ra sao.
Trong 30 ngày đầu, có cần học blockchain và EVM trước khi học Solidity không?
Có, cần học blockchain và EVM trước khi học Solidity vì đó là bối cảnh vận hành của smart contract, giúp người học hiểu logic thay vì chỉ nhớ cú pháp.
Cụ thể, Solidity không phải ngôn ngữ chạy trong môi trường thông thường như ứng dụng desktop hay web server. Nó được biên dịch để chạy trên Ethereum Virtual Machine. Vì thế, nếu không hiểu EVM, bạn rất dễ nhầm lẫn giữa biến lưu trạng thái với biến tạm thời, giữa gas tiêu hao khi ghi dữ liệu với gas tiêu hao khi đọc dữ liệu, hoặc giữa transaction on-chain với thao tác off-chain.
Ví dụ, khi một người mới viết hàm thêm dữ liệu vào mảng on-chain mà không để ý chi phí lưu trữ, họ có thể tạo ra contract chạy được nhưng rất tốn gas. Khi không hiểu transaction finality, người học cũng dễ hiểu sai thời điểm trạng thái contract được xác nhận.
Vì vậy, học blockchain và EVM trước không làm chậm quá trình học Solidity. Ngược lại, nó giúp quá trình học viết smart contract đi đúng hướng ngay từ đầu. Đây cũng là nền tảng để sau này bạn bước tiếp sang học EVM và gas optimization một cách tự nhiên hơn.
Người mới nên học nhóm kiến thức Solidity cơ bản nào trước?
Có 5 nhóm kiến thức Solidity cơ bản người mới nên học trước: cú pháp, kiểu dữ liệu, function, cấu trúc dữ liệu và kiểm soát truy cập cơ bản.
Để minh họa rõ hơn, bảng dưới đây tóm tắt các nhóm kiến thức nên học trong 30 ngày đầu và mục tiêu tương ứng:
| Nhóm kiến thức | Nội dung chính | Mục tiêu đầu ra |
|---|---|---|
| Cú pháp nền tảng | pragma, contract, comment, constructor | Đọc được khung contract |
| Kiểu dữ liệu | uint, bool, address, string, bytes | Hiểu cách khai báo và dùng dữ liệu |
| Function | public, private, external, internal, view, pure | Hiểu cách thiết kế hàm |
| Cấu trúc dữ liệu | array, mapping, struct, enum | Quản lý dữ liệu cơ bản trong contract |
| Kiểm soát truy cập | require, modifier, onlyOwner đơn giản | Hạn chế gọi hàm không hợp lệ |
Bảng trên cho thấy kiến thức Solidity cơ bản không phải là danh sách dài vô tận. Người mới chỉ cần nắm chắc các nhóm cốt lõi trước, sau đó mới mở rộng sang library, inheritance, standard token hoặc testing framework.
Theo tài liệu kỹ thuật của Ethereum Foundation và tài liệu chính thức của Solidity, việc hiểu rõ EVM, kiểu dữ liệu, memory model và error handling là nền tảng bắt buộc để phát triển smart contract an toàn hơn trong giai đoạn đầu.
Trong 60 ngày, nên mở rộng từ học cú pháp sang thực hành smart contract như thế nào?
Trong 60 ngày, người học nên mở rộng từ cú pháp sang thực hành bằng 3 hướng chính: viết contract đơn giản, dùng thư viện chuẩn và hoàn thành bài tập có đầu ra cụ thể.
Khi đã đi qua 30 ngày đầu, câu hỏi quan trọng không còn là “Solidity có những cú pháp gì?” mà trở thành “Tôi dùng các cú pháp đó để giải quyết bài toán nào?”. Đây là giai đoạn tăng tốc, vì bạn bắt đầu ghép các mảnh kiến thức rời rạc thành contract có chức năng.
Một lộ trình thực hành hiệu quả trong 60 ngày nên gồm:
- Viết contract lưu trữ và cập nhật dữ liệu
- Viết contract quản lý danh sách địa chỉ cho phép
- Viết contract voting đơn giản
- Viết token cơ bản theo chuẩn ERC-20
- Viết NFT cơ bản theo chuẩn ERC-721
- Học inheritance để tái sử dụng code
- Sử dụng OpenZeppelin cho access control và token standard
- Làm quen với tổ chức project trong môi trường dev như Remix hoặc Hardhat
Mục tiêu ở giai đoạn này là code có chủ đích. Bạn không chỉ viết contract vì tutorial yêu cầu, mà phải hiểu contract đó giải quyết use case nào, điểm yếu ở đâu và cách kiểm thử chức năng chính.
Sau 60 ngày học Solidity, người mới có thể viết được những loại smart contract nào?
Sau 60 ngày học Solidity, người mới có thể viết được 5 nhóm smart contract cơ bản: lưu trữ dữ liệu, quản lý quyền truy cập, voting, token đơn giản và NFT cơ bản.
Cụ thể hơn, đây là các loại contract phù hợp để luyện tập:
- Contract lưu chuỗi dữ liệu, số liệu hoặc hồ sơ đơn giản
- Contract danh sách whitelist hoặc blacklist
- Contract voting với chức năng tạo lựa chọn và bỏ phiếu
- ERC-20 token cơ bản để hiểu balance, transfer, allowance
- ERC-721 cơ bản để hiểu mint, ownership và metadata
Điểm cần lưu ý là mỗi loại contract nên gắn với một mục tiêu học khác nhau. Contract lưu dữ liệu giúp bạn hiểu storage và function. Contract voting giúp bạn luyện mapping, array, require và logic điều kiện. ERC-20 giúp bạn hiểu state management và chuẩn giao tiếp token. NFT cơ bản giúp bạn hiểu thêm ownership, ID và tính duy nhất của tài sản.
Nếu muốn nâng thêm độ khó, bạn có thể thử viết mini project quản lý học viên, contract vesting đơn giản hoặc contract bán token ở mức mô phỏng. Tuy nhiên, ở giai đoạn 60 ngày, ưu tiên vẫn là viết được, hiểu được và sửa được.
Học Solidity với Remix hay Hardhat trong giai đoạn 60 ngày có khác nhau không?
Remix thắng về tốc độ bắt đầu, Hardhat tốt về quy trình dự án, còn khi luyện thực hành có hệ thống thì Hardhat tối ưu hơn về testing và mở rộng.
Để hiểu rõ hơn sự khác nhau giữa Remix và Hardhat, cần đặt chúng vào đúng bối cảnh sử dụng. Remix phù hợp cho người mới vì cài đặt nhanh, thao tác trực tiếp trên trình duyệt, dễ compile và deploy contract mẫu. Người mới chỉ cần vài phút là có thể viết hàm đầu tiên và thấy kết quả.
Trong khi đó, Hardhat phù hợp hơn khi người học bắt đầu làm project bài bản. Bạn có cấu trúc thư mục rõ ràng, file test riêng, script deploy riêng, tích hợp network, plugin và quy trình phát triển chuyên nghiệp hơn. Điều này quan trọng nếu bạn muốn chuyển từ mức học thử sang mức xây sản phẩm hoặc cộng tác với team.
Nếu mới qua 30 ngày đầu và còn chưa vững, bạn có thể dùng Remix để giảm ma sát kỹ thuật. Nhưng khi bước sâu hơn vào giai đoạn 60 ngày, nên bắt đầu làm quen Hardhat vì đây là lúc bạn cần bước ra khỏi tutorial ngắn và tiến tới quy trình phát triển thật.
Trong 90 ngày, người học nên làm gì để chuyển từ biết viết code sang biết test và deploy contract?
Trong 90 ngày, người học nên tập trung vào test, debug, deploy testnet và hoàn thiện mini project để chuyển từ mức biết viết code sang mức biết phát triển smart contract có quy trình.
Sau 60 ngày, rào cản lớn nhất của người mới không còn là viết ra contract, mà là tin tưởng contract của mình hoạt động đúng. Và để tạo được niềm tin đó, testing là bước bắt buộc. Nhiều người mới bỏ qua test vì muốn deploy nhanh, nhưng đó là thói quen rất rủi ro.
Ở giai đoạn 90 ngày, người học nên:
- Viết test cho các hàm cốt lõi
- Kiểm tra các trường hợp đúng và sai
- Debug khi transaction revert
- Deploy lên testnet trước khi nghĩ đến mainnet
- Xác minh logic quyền truy cập
- Kiểm tra event phát ra có đúng không
- Ước lượng gas cho các hàm quan trọng
- Hoàn thiện một mini project có thể demo
Đây cũng là giai đoạn bạn bắt đầu tiếp cận tinh thần của bảo mật smart contract cơ bản. Dù chưa đi sâu vào audit, bạn vẫn cần hiểu các lỗi phổ biến như thiếu access control, không kiểm tra điều kiện đầu vào, phụ thuộc sai vào timestamp, hoặc viết logic chuyển giá trị thiếu an toàn.
Sau 90 ngày học Solidity, người mới có nên test và deploy contract thật không?
Có, sau 90 ngày người mới nên test và deploy contract thật trên testnet vì đó là bước cần thiết để xác nhận workflow, nhưng chưa nên vội triển khai tài sản thật trên mainnet.
Cụ thể, deploy testnet giúp bạn kiểm chứng nhiều thứ cùng lúc: contract có compile sạch không, constructor có nhận tham số đúng không, quyền owner có hoạt động không, event có phát ra như kỳ vọng không, hàm cập nhật trạng thái có bị revert không, và quy trình gọi contract bằng ví có trơn tru không.
Điểm quan trọng là người mới nên hiểu “deploy thật” ở giai đoạn này chủ yếu là deploy lên môi trường thử nghiệm. Testnet giúp bạn trải nghiệm đủ gần với môi trường thực mà không gánh rủi ro tài chính lớn. Nếu vẫn chưa có test bao phủ logic chính, việc lên mainnet chỉ làm tăng nguy cơ sai sót.
Vì vậy, 90 ngày đầu nên xem deploy testnet như một cột mốc tốt nghiệp mini. Bạn chưa phải chuyên gia, nhưng bạn đã đi qua được toàn bộ vòng đời cơ bản của một smart contract: viết, sửa, test, deploy và demo.
Testing và deploy smart contract khác nhau như thế nào trong lộ trình học Solidity?
Testing dùng để kiểm chứng logic, còn deploy dùng để đưa contract lên blockchain; trong lộ trình học Solidity, testing bảo vệ chất lượng, còn deploy xác nhận khả năng vận hành trong môi trường thực.
Tuy nhiên, nhiều người mới hay nhầm hai bước này thành một. Họ nghĩ contract compile và deploy được nghĩa là contract ổn. Thực tế, deploy thành công chỉ cho thấy contract hợp lệ về mặt kỹ thuật để lên chain, không chứng minh logic kinh doanh của contract đúng.
Testing giúp bạn mô phỏng nhiều tình huống: ai được gọi hàm, khi nào giao dịch phải revert, khi nào dữ liệu phải thay đổi, khi nào event phải phát ra. Bạn có thể kiểm tra cả happy path lẫn failure path. Đây là cách phát hiện lỗi trước khi contract xuất hiện trên chain.
Ngược lại, deploy là bước xác thực môi trường. Nó cho bạn thấy script deploy hoạt động ra sao, network kết nối thế nào, ví có đủ phí không, transaction hash được tạo như thế nào, contract address được trả về ra sao. Nói cách khác, testing trả lời “contract có đúng không?”, còn deploy trả lời “contract có lên chain được không?”.
Nếu tách bạch rõ hai khái niệm này, người học sẽ xây được thói quen phát triển vững chắc hơn, thay vì chỉ chạy theo cảm giác “đã deploy là xong”.
Người mới nên dùng tiêu chí nào để tự đánh giá mình đã đi đúng roadmap 30-60-90 ngày?
Người mới nên dùng tiêu chí đầu ra theo từng mốc 30, 60 và 90 ngày để tự đánh giá vì cách này đo được năng lực thực tế thay vì chỉ đo thời gian đã học.
Để hiểu rõ hơn việc đánh giá roadmap, cần tránh một sai lầm phổ biến: học lâu không đồng nghĩa với học đúng. Nhiều người dành hàng chục giờ xem video, đọc tài liệu, nhưng khi được yêu cầu tự viết contract từ đầu lại lúng túng. Vì vậy, tiêu chí đánh giá phải dựa trên việc “làm được gì”.
Các tiêu chí tự đánh giá hiệu quả gồm:
- Có đọc hiểu contract đơn giản mà không cần nhìn lời giải không?
- Có giải thích được function này tốn gas vì sao không?
- Có phân biệt storage, memory, calldata không?
- Có tự viết contract nhỏ từ đầu không?
- Có dùng được OpenZeppelin đúng chỗ không?
- Có viết test cho hàm quan trọng không?
- Có deploy testnet và gọi hàm thành công không?
- Có debug được lỗi revert phổ biến không?
Những tiêu chí này giúp bạn nhìn thấy tiến bộ thực, đồng thời cũng cho thấy mình cần lấp khoảng trống nào ở chặng tiếp theo.
Sau 30, 60 và 90 ngày, người học Solidity nên đạt những mốc nào?
Có 3 mốc chính người học Solidity nên đạt: sau 30 ngày hiểu nền tảng, sau 60 ngày tự viết contract cơ bản, sau 90 ngày biết test và deploy mini project.
Cụ thể hơn:
- Sau 30 ngày: hiểu blockchain, Ethereum, EVM, gas cơ bản; đọc được contract đơn giản; biết dùng Remix; hiểu function, variable, mapping, struct, modifier cơ bản.
- Sau 60 ngày: tự viết contract quản lý dữ liệu; viết được ERC-20 hoặc NFT cơ bản; biết dùng OpenZeppelin; bắt đầu tổ chức code trong môi trường dev bài bản hơn.
- Sau 90 ngày: viết test cho logic chính; deploy testnet; debug lỗi phổ biến; hoàn thành mini project đủ để demo hoặc đưa vào portfolio học tập.
Bảng dưới đây tóm tắt nhanh các mốc đầu ra:
| Mốc thời gian | Năng lực nên đạt | Dấu hiệu đi đúng roadmap |
|---|---|---|
| 30 ngày | Hiểu nền tảng và đọc được code cơ bản | Giải thích được logic của contract mẫu |
| 60 ngày | Tự viết contract cơ bản | Hoàn thành token/NFT/voting đơn giản |
| 90 ngày | Test, deploy, demo mini project | Có sản phẩm nhỏ chạy được trên testnet |
Bảng này cho thấy roadmap 30-60-90 ngày không chỉ là kế hoạch học, mà còn là hệ thống đo tiến bộ. Nếu chưa đạt được đầu ra ở mốc nào, bạn nên quay lại củng cố đúng phần đó thay vì vội học sang chủ đề mới.
Roadmap học Solidity 30-60-90 ngày và học lan man không lộ trình khác nhau như thế nào?
Roadmap 30-60-90 ngày thắng về định hướng, học lan man dễ tạo ảo giác tiến bộ, còn lộ trình có mục tiêu giúp người học tích lũy năng lực thật theo từng mốc.
Trong khi học lan man khiến bạn xem rất nhiều nội dung rời rạc như token, DeFi, MEV, bridge, audit, DAO mà không nắm chắc nền tảng, roadmap buộc bạn giữ trọng tâm vào thứ đang cần nhất ở hiện tại. Đó là khác biệt lớn nhất.
Học lan man thường có ba hậu quả. Một là người học tưởng mình biết nhiều thuật ngữ nhưng không viết nổi contract. Hai là rất dễ quên vì không có ngữ cảnh thực hành. Ba là khó đo tiến bộ vì mỗi ngày học một thứ khác nhau. Ngược lại, roadmap 30-60-90 ngày giúp kiến thức có trục dẫn dắt. Mỗi chặng đều trả lời được câu hỏi: học cái gì, học để làm gì, học xong làm được gì.
Đây cũng là lý do nhiều cộng đồng lập trình, bao gồm không ít nhóm chia sẻ kiến thức trong Crypto Viet Nam, thường khuyên người mới nên bám một lộ trình cụ thể thay vì đuổi theo quá nhiều ngách cùng lúc. Khi nền tảng vững, bạn có thể mở rộng sang DeFi, NFT infrastructure, account abstraction hoặc các hướng chuyên sâu khác một cách tự tin hơn.
Người mới học Solidity cần tránh những sai lầm nào để không mất 90 ngày vô ích?
Người mới học Solidity cần tránh 4 sai lầm lớn: bỏ qua nền tảng, học quá nhiều mà không thực hành, deploy trước khi test và nhầm lẫn giữa học để biết với học để làm nghề.
Sau khi đã đi qua phần roadmap chính, đây là lúc cần nhìn vào những điểm làm người học mất thời gian nhiều nhất. Một lộ trình tốt vẫn có thể thất bại nếu người học mắc sai lầm trong cách tiếp cận. Vì vậy, phần bổ sung này sẽ đào sâu vào các truy vấn phụ mang tính vi mô nhưng rất thực tế.
Sai lầm đầu tiên là học cú pháp trước khi hiểu bối cảnh. Điều này khiến người học nhìn Solidity như một ngôn ngữ lập trình thông thường, trong khi smart contract có ràng buộc hoàn toàn khác: bất biến tương đối sau khi triển khai, chi phí thực thi theo gas, dữ liệu on-chain tốn kém và yêu cầu an toàn cao hơn.
Sai lầm thứ hai là học quá rộng quá sớm. Người mới rất dễ bị cuốn vào các chủ đề hấp dẫn như DeFi protocol, yield farming, flash loan hay nâng cao hơn là auditing. Nhưng nếu chưa nắm vững function, event, access control và quy trình test, việc học sâu các chủ đề đó chỉ tạo thêm nhiễu.
Sai lầm thứ ba là quá tin vào tutorial. Tutorial có ích để tạo điểm bắt đầu, nhưng nếu chỉ copy code, bạn sẽ gặp tutorial hell. Nghĩa là bạn làm lại được ví dụ của người khác nhưng không tự thiết kế được contract cho bài toán mới.
Sai lầm thứ tư là không chú ý đến bảo mật smart contract cơ bản. Ngay ở mức nhập môn, bạn vẫn phải hình thành phản xạ kiểm tra quyền truy cập, dữ liệu đầu vào, trường hợp lỗi và logic cập nhật trạng thái. Nếu bỏ qua điều này, thói quen xấu sẽ đi theo rất lâu.
Có nên học Solidity ngay khi chưa biết JavaScript hoặc blockchain không?
Có thể học Solidity khi chưa biết JavaScript, nhưng không nên học khi chưa có nền tảng blockchain tối thiểu vì bạn sẽ thiếu bối cảnh vận hành của smart contract.
Cụ thể hơn, JavaScript không phải điều kiện bắt buộc tuyệt đối để bắt đầu với Solidity. Bạn vẫn có thể dùng Remix để viết, compile và deploy contract đơn giản. Tuy nhiên, nếu định dùng Hardhat, tương tác script, test hoặc tích hợp frontend sau này, việc biết JavaScript sẽ giúp quá trình mượt hơn rất nhiều.
Ngược lại, blockchain là nền bắt buộc ở mức tối thiểu. Nếu không hiểu transaction, wallet, gas, node, state và event log, bạn sẽ khó hiểu vì sao contract phản ứng như vậy khi thực thi. Vì thế, người mới nên dành thời gian ngắn nhưng nghiêm túc để nắm nền blockchain trước khi đi sâu vào code.
Những sai lầm phổ biến nào khiến người mới học Solidity mãi không viết được contract?
Có 5 sai lầm phổ biến khiến người mới mãi không viết được contract: học quá rộng, copy code, không tự làm bài tập, bỏ qua test và không đọc lỗi kỹ.
Cụ thể hơn:
- Học quá rộng: hôm nay học token, mai học bridge, ngày kia học audit nên không có trục kiến thức
- Copy code: nhìn thì quen tay nhưng không hiểu vì sao dòng đó tồn tại
- Không tự làm bài tập: chỉ xem lời giải nên thiếu khả năng dựng contract từ đầu
- Bỏ qua test: không kiểm chứng logic nên không hiểu contract của mình sai ở đâu
- Không đọc lỗi kỹ: thấy revert là hoảng, thay vì truy ngược điều kiện và dữ liệu đầu vào
Nếu muốn thoát khỏi vòng lặp này, người học nên quay về nguyên tắc đơn giản: mỗi tuần phải có đầu ra nhỏ. Đầu ra đó có thể là một contract ngắn, một file test, một script deploy hoặc một bản ghi chép giải thích logic của contract bằng chính ngôn ngữ của mình.
Học Solidity để tự viết smart contract và học để trở thành Web3 developer khác nhau như thế nào?
Học để tự viết smart contract tập trung vào năng lực cốt lõi của contract, còn học để trở thành Web3 developer đòi hỏi thêm frontend, backend, tooling, testing sâu và quy trình làm việc theo dự án.
Để hiểu rõ hơn, hãy xem học để tự viết smart contract là mục tiêu hẹp nhưng rất quan trọng. Mục tiêu này chỉ cần bạn nắm Solidity, EVM cơ bản, testing cơ bản, deploy testnet và logic sản phẩm nhỏ. Nó phù hợp với người mới, nhà sáng lập, nhà nghiên cứu sản phẩm hoặc người muốn hiểu sâu hơn về blockchain.
Trong khi đó, Web3 developer là một phạm vi rộng hơn nhiều. Bạn cần biết thêm JavaScript hoặc TypeScript, framework frontend, ví tích hợp, thư viện tương tác blockchain như ethers, quy trình CI/CD, quản lý package, môi trường dev nhóm, và nhiều khi cả hiểu biết về indexer hoặc backend hỗ trợ. Vì vậy, 90 ngày đầu nên ưu tiên mục tiêu hẹp: biết viết contract cho đúng. Sau đó mới mở rộng dần sang vai trò Web3 developer.
Làm thế nào để tránh tutorial hell khi đi theo roadmap 30-60-90 ngày?
Cách hiệu quả nhất để tránh tutorial hell là học theo đầu ra, tự viết lại từ đầu và giới hạn số tutorial tiêu thụ trong mỗi chặng.
Cụ thể, bạn có thể áp dụng nguyên tắc 3 bước:
- Xem hoặc đọc một tutorial ngắn để nắm cấu trúc
- Đóng tutorial lại và tự viết lại contract bằng trí nhớ cùng tài liệu chính thức
- Biến contract đó thành một phiên bản mới theo use case khác
Ví dụ, nếu tutorial dạy contract voting, bạn hãy tự biến nó thành contract đăng ký người tham gia, contract quản lý danh sách quyền truy cập hoặc contract biểu quyết nhiều vòng. Khi tự biến thể như vậy, bạn bắt đầu thật sự hiểu chứ không còn sao chép.
Ngoài ra, hãy giữ nhật ký học tập. Mỗi khi học xong một chủ đề, hãy tự trả lời ba câu hỏi: tôi vừa học gì, tôi có thể tự làm lại không, và tôi có thể giải thích nó cho người khác không. Chỉ cần duy trì thói quen này trong 90 ngày, bạn sẽ giảm rất mạnh nguy cơ rơi vào cảm giác “học nhiều mà không làm được”.
Để biến roadmap trên thành kết quả thực tế, người mới nên chuyển từ tư duy “học đủ chủ đề” sang tư duy “hoàn thành đủ đầu ra”. Nói cách khác, thay vì tự hỏi hôm nay mình đã xem bao nhiêu video hay đọc bao nhiêu tài liệu, bạn nên tự hỏi hôm nay mình đã viết được gì, test được gì và hiểu được lỗi nào. Đây là khác biệt rất lớn giữa người học để biết qua với người học để thật sự đi vào kỹ năng.
Một cách triển khai dễ áp dụng là chia 90 ngày thành 12 tuần học có mục tiêu rõ ràng. Bốn tuần đầu xây nền, bốn tuần tiếp theo tăng khả năng viết contract, bốn tuần cuối gắn với kiểm thử, triển khai và hoàn thiện mini project. Khi tách theo tuần, người học dễ giữ nhịp hơn so với việc nhìn một mốc 90 ngày quá dài và trừu tượng.
Bảng dưới đây là cách triển khai roadmap 30-60-90 ngày theo tuần để người mới dễ bám hơn:
| Tuần | Trọng tâm chính | Đầu ra nên đạt |
|---|---|---|
| 1 | Blockchain, Ethereum, ví, transaction | Hiểu cơ chế on-chain và cách contract được gọi |
| 2 | EVM, gas, storage, memory, calldata | Giải thích được vì sao thao tác khác nhau tốn gas khác nhau |
| 3 | Cú pháp Solidity cơ bản | Viết được contract đơn giản với biến và hàm |
| 4 | Mapping, array, struct, modifier, require | Đọc hiểu contract cơ bản và sửa logic nhỏ |
| 5 | Contract CRUD đơn giản | Tự viết contract lưu và cập nhật dữ liệu |
| 6 | Access control, ownable, event | Viết contract có quyền truy cập cơ bản |
| 7 | ERC-20 cơ bản | Hiểu token standard và tự triển khai bản tối giản |
| 8 | ERC-721 hoặc voting contract | Hoàn thành thêm một contract có logic rõ ràng |
| 9 | Hardhat hoặc công cụ tương đương | Tổ chức project, compile, viết script cơ bản |
| 10 | Unit test cho function quan trọng | Test happy path và failure path |
| 11 | Deploy testnet, verify, debug | Có contract chạy được trên testnet |
| 12 | Mini project hoàn chỉnh | Có sản phẩm nhỏ đủ để demo hoặc đưa vào portfolio |
Bảng này cho thấy một điều rất quan trọng: roadmap tốt không ép người học nuốt quá nhiều kiến thức cùng lúc. Mỗi tuần chỉ cần hoàn thành một nhóm năng lực chính. Nhờ đó, người học giữ được sự tập trung và giảm cảm giác quá tải, vốn là nguyên nhân khiến rất nhiều người bỏ dở giữa chừng.
Ngoài lịch theo tuần, người mới cũng nên đặt quy tắc học theo phiên ngắn nhưng đều. Ví dụ, một ngày học 60 đến 90 phút tập trung còn hiệu quả hơn một tuần học dồn 8 tiếng rồi nghỉ dài. Với Solidity, tính liên tục đặc biệt quan trọng vì kiến thức có móc xích chặt. Nếu ngắt quãng quá lâu, bạn sẽ quên logic function, modifier, mapping và các mô hình dữ liệu vừa học.
Một lịch học thực tế có thể được triển khai theo nhịp sau:
- 2 buổi mỗi tuần dành cho lý thuyết và đọc tài liệu
- 2 buổi mỗi tuần dành cho tự viết code
- 1 buổi mỗi tuần dành cho sửa lỗi, đọc lại code cũ và ghi chú
- 1 buổi nhẹ để xem lại tổng thể, so sánh tiến độ với mục tiêu tuần
Cách phân bổ này hiệu quả vì nó không biến việc học thành chuỗi xem tutorial liên tục. Thay vào đó, nó ép người học xen kẽ giữa hiểu khái niệm, tự làm và tự sửa. Đây chính là nền tảng để thoát khỏi tutorial hell.
Một điểm khác cũng rất quan trọng là cách dùng tài liệu. Người mới thường hoặc là lệ thuộc quá mức vào video, hoặc là lao thẳng vào tài liệu chính thức rồi nhanh nản. Cách hợp lý hơn là dùng tài liệu theo 3 tầng. Tầng thứ nhất là tài liệu nhập môn hoặc video ngắn để hiểu bức tranh lớn. Tầng thứ hai là ví dụ code nhỏ để thấy cách áp dụng. Tầng thứ ba là tài liệu kỹ thuật chính thức để xác nhận cách dùng chính xác. Khi đi theo ba tầng như vậy, bạn vừa không bị ngợp vừa không bị học sai lâu dài.
Trong quá trình đó, người học cũng cần giữ nhất quán thuật ngữ. Nếu hôm nay bạn gọi “smart contract”, hôm sau lại đổi sang “hợp đồng tự động” hay “chương trình trên blockchain” mà không phân biệt ngữ cảnh, bạn sẽ dễ tự làm rối tư duy của mình. Tương tự, nếu đã dùng “modifier”, “event”, “mapping”, “storage”, hãy giữ thuật ngữ ổn định xuyên suốt. Sự nhất quán ngôn ngữ không chỉ làm bài viết rõ hơn, mà còn làm quá trình tự học dễ hơn vì não bộ tạo được liên kết bền hơn.
Với người mới, việc ghi chép cũng không nên quá nặng về chép lại định nghĩa. Ghi chép tốt nhất là ghi theo mẫu:
- Khái niệm này là gì
- Nó dùng khi nào
- Nó khác gì với khái niệm gần nó
- Một lỗi phổ biến liên quan đến nó là gì
- Tôi vừa dùng nó trong contract nào
Ví dụ, khi học modifier, thay vì chỉ ghi “modifier dùng để tái sử dụng logic kiểm tra”, bạn nên ghi thêm: “modifier phù hợp khi có nhiều hàm cần cùng điều kiện truy cập; tránh lạm dụng nếu logic phức tạp; ví dụ: onlyOwner”. Kiểu ghi như vậy gắn khái niệm với tình huống sử dụng thật, nên giúp nhớ lâu hơn nhiều.
Để roadmap 30-60-90 ngày không biến thành lịch học lý tưởng trên giấy, người học còn cần một checklist tự kiểm định sau mỗi tháng. Thay vì chờ đến ngày 90 mới đánh giá, bạn nên kiểm tra theo từng mốc nhỏ.
Sau 30 ngày, checklist nên bao gồm:
- Tôi có giải thích được EVM là gì mà không cần nhìn tài liệu không
- Tôi có phân biệt được
storage,memory,calldatakhông - Tôi có hiểu
view,pure,payablekhác nhau như thế nào không - Tôi có thể đọc một contract đơn giản và mô tả luồng chạy của nó không
- Tôi có tự viết được contract lưu dữ liệu đơn giản không
Sau 60 ngày, checklist nên nâng lên:
- Tôi có tự viết contract từ file trống không
- Tôi có dùng
mapping,struct,modifier,eventđúng chỗ không - Tôi có thể giải thích tại sao dùng OpenZeppelin thay vì tự viết mọi thứ không
- Tôi có hoàn thành ít nhất 2 contract nhỏ với mục đích khác nhau không
- Tôi có sửa được lỗi logic cơ bản trong contract của chính mình không
Sau 90 ngày, checklist phải gắn với workflow:
- Tôi có viết được test cho hàm quan trọng không
- Tôi có hiểu vì sao test fail khi điều kiện đầu vào thay đổi không
- Tôi có deploy được contract lên testnet không
- Tôi có đọc transaction log, event log và contract address không
- Tôi có một mini project đủ để demo cho người khác xem không
Nếu chưa đạt đủ checklist của mốc nào, cách xử lý tốt nhất không phải là bỏ qua và học tiếp chủ đề mới. Ngược lại, bạn nên quay lại đúng khoảng trống đó. Roadmap chỉ hữu ích khi các tầng kiến thức chồng khít lên nhau. Nếu tầng dưới còn lỏng, tầng trên sẽ rất dễ gãy.
Một câu hỏi mà nhiều người mới hay gặp là liệu có cần học toán nhiều để học Solidity không. Câu trả lời là không cần toán cao cấp để bắt đầu, nhưng cần tư duy logic tốt. Phần quan trọng nhất không phải giải phương trình phức tạp, mà là hiểu điều kiện, trạng thái, luồng dữ liệu và các nhánh xử lý. Khi hợp đồng có nhiều trạng thái và nhiều vai trò người dùng, tư duy logic trở thành yếu tố quyết định chất lượng code.
Ngoài ra, người mới cũng nên phân biệt hai kiểu tiến bộ: tiến bộ bề mặt và tiến bộ thật. Tiến bộ bề mặt là bạn biết thêm nhiều thuật ngữ, xem được nhiều demo, nói được nhiều từ chuyên môn. Tiến bộ thật là bạn tự mở file trống và xây được một contract mới, dù còn nhỏ. Trong suốt 90 ngày, hãy luôn ưu tiên tiến bộ thật.
Điều này đặc biệt quan trọng khi bạn bắt đầu quan tâm đến các chủ đề hấp dẫn hơn như DeFi, staking, lending, DAO hay các mô hình protocol phức tạp. Những chủ đề đó rất cuốn hút, nhưng nếu lao vào quá sớm, bạn chỉ nhìn thấy bề mặt của hệ thống. Ngược lại, nếu đã xây chắc nền contract, bạn sẽ tiếp cận các chủ đề lớn đó bằng tư duy kỹ thuật vững hơn nhiều.
Một chiến lược thực dụng cho người mới là chọn 1 mini project duy nhất để đồng hành suốt 90 ngày. Mini project này không cần lớn, nhưng phải đủ để tái sử dụng nhiều kiến thức. Ví dụ:
- Contract quản lý danh sách thành viên có quyền truy cập
- Contract bình chọn đơn giản
- Contract lưu chứng nhận hoặc hồ sơ
- Token nội bộ mô phỏng phần thưởng
- Bộ sưu tập NFT tối giản
Khi chỉ theo một mini project xuyên suốt, bạn sẽ thấy rõ từng lớp năng lực được thêm vào theo thời gian. Tuần đầu chỉ có lưu dữ liệu. Tuần sau thêm modifier. Vài tuần nữa thêm event. Sau đó thêm test. Cuối cùng là deploy. Cách làm này giúp roadmap có tính liên tục và cho bạn cảm giác xây dựng thật, thay vì học từng mảnh rời.
Người mới cũng đừng đánh giá thấp việc đọc code của người khác. Sau khoảng 30 đến 45 ngày, bạn nên dành thời gian đọc một số contract đơn giản đã được viết tốt. Mục tiêu không phải để sao chép, mà để nhận ra cách người khác đặt tên hàm, chia nhỏ logic, tổ chức dữ liệu và phát event. Khi đọc có chủ đích, bạn sẽ học được cả kỹ thuật lẫn phong cách viết code.
Tuy vậy, khi đọc code mẫu, hãy tự hỏi bốn câu:
- Contract này đang giải quyết bài toán gì
- Dữ liệu chính nằm ở đâu
- Điều kiện nào bảo vệ hàm quan trọng
- Nếu tôi phải tự viết lại từ đầu, tôi bắt đầu từ đâu
Bốn câu hỏi này buộc bạn đọc bằng tư duy phân tích thay vì chỉ đọc bằng mắt. Đây là bước chuyển rất cần thiết nếu bạn muốn từ người học tài liệu trở thành người thật sự hiểu smart contract.
Trong dài hạn, sau khi hoàn thành roadmap 30-60-90 ngày, hướng đi tiếp theo phụ thuộc vào mục tiêu cá nhân. Nếu bạn muốn đi theo hướng builder, bạn có thể mở rộng sang frontend tích hợp ví, gọi contract và đọc dữ liệu on-chain. Nếu bạn muốn đi theo hướng kỹ thuật sâu, bạn có thể học thêm về cấu trúc bytecode, opcode, học EVM và gas optimization. Nếu bạn quan tâm đến an toàn hệ thống, bạn có thể bước dần sang bảo mật smart contract cơ bản rồi nâng dần lên kiểm tra lỗ hổng phổ biến và tư duy audit nhập môn.
Dù đi theo hướng nào, 90 ngày đầu vẫn nên được xem là giai đoạn đặt móng. Một cái móng tốt không làm bạn nổi bật ngay lập tức, nhưng nó quyết định bạn có thể xây cao đến đâu mà không đổ.
Tổng kết lại, roadmap 30-60-90 ngày học Solidity chỉ thật sự có giá trị khi nó gắn với ba yếu tố: thứ tự đúng, đầu ra rõ và nhịp học đều. Nếu bạn xây nền vững trong 30 ngày đầu, chuyển sang thực hành có chủ đích trong 60 ngày và hoàn thiện test, deploy trong 90 ngày, bạn sẽ có một nền móng đủ chắc để tiếp tục đi xa hơn trong thế giới smart contract. Quan trọng nhất, hãy luôn nhớ mục tiêu của người mới không phải là học mọi thứ thật nhanh, mà là học đúng thứ cần học, vào đúng thời điểm, theo đúng trục phát triển.




































