Bạn cần học gì để trở thành một lập trình viên. Biết các thuật toán và cấu trúc dữ liệu

Trong bài viết, chúng tôi sẽ cho bạn biết các bước cần thực hiện, bắt đầu từ đâu và làm thế nào để xây dựng quá trình đào tạo của bạn để trở thành một chuyên gia CNTT nếu bạn đang ở xa lĩnh vực CNTT.

Quyết định một chuyên ngành

Trước hết, bạn cần phải quyết định lý do tại sao bạn lại đi vào lĩnh vực CNTT. Bạn có thích làm trang web, tạo chương trình cho hệ điều hành, thiết kế hoặc thử nghiệm không? Quyết định này sẽ là điểm khởi đầu trong quá trình học tập.

Tùy thuộc vào sự lựa chọn, bạn sẽ có thể xác định chương trình đào tạo cho mình, chuẩn bị kế hoạch và lựa chọn các nguồn đầu tiên: sách, trang web hoặc các khóa học trực tuyến.

Nếu kiến ​​thức về ngôn ngữ của bạn không đủ để đọc miễn phí, bạn nên bắt đầu với nó. Tiếng Anh sẽ không chỉ cần thiết để giao tiếp, bạn sẽ phải đọc rất nhiều và tìm kiếm trên Internet bằng tiếng Anh. Nó có thể là tài liệu kỹ thuật hoặc phản hồi cho StackOverflow, hoặc chỉ là một bài báo chủ đề thú vị trên Medium.

Đây là kỹ năng quan trọng thứ hai, sau kiến ​​thức ngoại ngữ, có ý nghĩa sống còn trong học tập. Điều quan trọng là phải học cách tạo chính xác các yêu cầu và lọc ra những thông tin không cần thiết trên trang phát hành.

Nắm vững các khái niệm cơ bản

Để bắt đầu, hãy tìm hiểu bit khác với byte như thế nào, tìm hiểu các thuật ngữ và khái niệm cơ bản của khoa học máy tính, tìm hiểu về điều kiện, vòng lặp và ngắt. Cách thức hoạt động của bộ xử lý, tại sao bạn cần một máy chủ web và loại ascii nào - tất cả những điều này bạn cần biết để bắt đầu đi sâu vào lĩnh vực mà bạn quan tâm.

Cấu trúc dữ liệu và thuật toán là nền tảng cho sự phát triển và các khái niệm CNTT. Bạn sẽ không được dạy về chúng đúng cách trong các khóa học lập trình ứng dụng, vì vậy hãy tự học những điều này.

Đầu tiên, hãy hiểu các thuật ngữ stack, tree, queue, hash. Để hiểu các thuật toán, không nhất thiết phải đào sâu vào lý thuyết đồ thị, nhưng ít nhất hiểu biết nên là mục tiêu của bạn.

Làm quen với khái niệm lập trình hướng đối tượng sẽ hữu ích cho dù bạn chọn ngôn ngữ nào và bạn định sử dụng nó như thế nào. OOP là một trong những kiểu phát triển phổ biến nhất, vì vậy bạn không chỉ cần biết định nghĩa của các khái niệm chính (kế thừa, đóng gói, đa hình) mà còn phải hiểu cách chúng hoạt động, có thể triển khai chúng trong mã chương trình.

Nếu bạn đã tự tin nắm vững cú pháp của ngôn ngữ lập trình mà bạn quan tâm, bạn nên tìm hiểu cách thức hoạt động của nó với các loại cơ sở dữ liệu khác nhau, đồng thời tìm hiểu về các loại cơ sở dữ liệu và sự khác biệt của chúng.

Ngay cả khi ngôn ngữ của bạn thường không tương tác trực tiếp với cơ sở dữ liệu (ví dụ: JavaScript), bạn cần biết điều gì đang xảy ra trong lĩnh vực phát triển này: bạn sẽ hiểu rõ hơn về cách thức hoạt động của toàn bộ chương trình.

Vậy làm thế nào để bạn trở thành một chuyên gia CNTT?

Bạn có thể đào tạo lại và thay đổi nghề nghiệp của mình bất cứ lúc nào và ở mọi lứa tuổi. Điều quan trọng cần nhớ là đây là một quá trình rất dài và phức tạp. Và càng về sau, bạn càng khó khăn hơn.

Để trở thành một chuyên gia CNTT, bạn cần phải thiết lập cho mình một quá trình dài học hỏi những kiến ​​thức cơ bản và không ngừng tự học trong suốt sự nghiệp của mình. Hãy kiên nhẫn, bởi vì giữa thời gian bắt đầu đào tạo và nhiều tháng, thậm chí nhiều năm có thể trôi qua.

Hầu như hàng ngày, sử dụng máy tính hoặc máy tính xách tay của mình, chúng tôi sử dụng các phát triển khác nhau trong lĩnh vực CNTT. Khi khởi chạy chương trình, chúng tôi thấy giao diện đẹp và phần logic được đầu tư kỹ lưỡng, trên Internet chúng tôi thấy nhiều trang web thú vị với nhiều bổ sung khác nhau hoặc chúng tôi sử dụng các tiện ích cho các tiện ích hiện đại cho phép chúng tôi mở rộng khả năng của thiết bị của mình . Và nhiều người từ thời thơ ấu trở lên đã quan tâm đến việc biết tất cả hoạt động từ bên trong như thế nào. Và đối với nhiều người, đây trở thành một động lực nghiêm túc để lựa chọn một nghề trong tương lai.

Thật vậy, ngày nay nhu cầu về các dịch vụ của các lập trình viên thuộc nhiều phạm vi khác nhau là rất lớn, nó vượt xa các ngành nghề phổ biến khác trước đây. Trong bài viết này, chúng tôi sẽ cố gắng nói một cách khá phổ biến về lập trình viên là gì, họ phải có những kỹ năng gì để có nhu cầu trên thị trường và làm thế nào để học lập trình trong lĩnh vực đã chọn.

Các loại lập trình

Vì vậy, khi tự hỏi bản thân câu hỏi: “Làm thế nào để trở thành một lập trình viên”, bạn cần tự mình quyết định những điều sau: trên thực tế, chúng ta sẽ phát triển điều gì? Rốt cuộc, không có lập trình viên phổ thông nào, mỗi người trong số họ làm việc trong ngành của riêng mình và làm công việc của riêng mình.

Ví dụ…

  1. Lập trình viên web. Những người tạo các trang khác nhau và bán các trang. Nhờ danh mục nhà phát triển này, rất nhiều tài nguyên hữu ích khác nhau xuất hiện trên mạng với nhiều thông tin hữu ích hoặc giải trí khác nhau. Cửa hàng trực tuyến, bảng thông báo, mạng xã hội là công việc của hạng mục lập trình viên này.
  2. Các nhà phát triển hệ điều hành và ứng dụng mà không bị ràng buộc với bất kỳ nền tảng cụ thể nào. Những người này làm điều gì đó mà không có máy tính hoặc thiết bị nào trên thế giới sẽ hoạt động. Windows, Linux, Android và các hệ thống khác được sinh ra nhờ loại công dân này.
  3. Phát triển và lập trình các hệ thống phân tán ứng dụng và DBMS. Ví dụ về kiểu lập trình này là tất cả thông tin được hiển thị về chuyến tàu khởi hành và đến tại nhà ga, cũng như dữ liệu về việc đăng ký chuyến bay tại sân bay và tình trạng còn chỗ.
  4. Khung lập trình, dlls, nền tảng và hạt nhân. Nói một cách đơn giản, việc tạo ra các công cụ hỗ trợ cho sự phát triển hơn nữa của các chương trình, phần mềm, trò chơi, v.v.
  5. Một hướng khác cho sự phát triển của phần mềm phụ trợ là lập trình hệ thống. Các lập trình viên trong ngành này tạo ra phần mềm gắn liền với một hệ điều hành cụ thể. Trình điều khiển cho phần cứng máy tính, trò chơi, nhiều trình biên dịch khác nhau, lập trình lõi hệ thống và nhiều hơn nữa không kém phần thú vị.
  6. Nếu tất cả những điều trên không được bạn quan tâm, bạn có thể đi sâu vào lĩnh vực lập trình khoa học và phát triển trí tuệ nhân tạo, hệ thống thực tế ảo để hiểu sâu hơn trò chơi máy tính; sự phát triển của các giao diện và hệ thống tự động hóa cho các nhà sinh học, phi hành gia, nhà khoa học sẽ làm cho cuộc sống của bạn thêm nhiều màu sắc mới.

Mỗi lĩnh vực này đều thú vị và có nhu cầu theo cách riêng của nó, việc lựa chọn điều gì là tùy thuộc vào bạn. Và việc lựa chọn theo học mỗi lĩnh vực này cũng mang đến những lựa chọn khác nhau. Hoặc bạn vào một trường đại học, hoặc đăng ký các khóa học lập trình, hoặc tự học, thu thập thông tin từ Internet.

Làm thế nào để trở thành một lập trình viên. Nơi để bắt đầu?

Không bao giờ là quá muộn để bắt đầu. Như đã nói ở trên, ngày nay có khá nhiều cách học lập trình, chỉ cần chọn cho mình một hướng đi và bắt tay vào học là được. Nhưng, nói về tự học thì loại hình này không phù hợp với mọi lĩnh vực hoạt động. Giả sử tự học sẽ giúp bạn trở thành một nhà phát triển trang web hoặc có được kiến ​​thức hời hợt trong các lĩnh vực khác. Một trong những giải pháp có lợi nhất là đăng ký ít nhất các khóa học, nhờ đó bạn sẽ hiểu đầy đủ hơn về logic hoạt động của các hệ thống và ứng dụng khác nhau, học ngôn ngữ lập trình bạn cần (ví dụ: C ++, Java, Perl, Core, v.v.) và có thể áp dụng nó vào thực tế, cũng như có được kiến ​​thức về toán học rời rạc.

Tìm hiểu các bảng khác nhau, các khái niệm đằng sau việc truy vấn chúng và thuật toán để thực thi chúng. Ví dụ điển hình là Excel, MySQL, Paradox.

Lập trình web

Lập trình web là gì? Nói chung, đây là tất cả những gì chúng ta thấy trong trình duyệt của mình. Tất cả các trang web, tất cả các ứng dụng để tải xuống thứ gì đó, mô-đun thanh toán cho các cửa hàng trực tuyến, các trình cắm bổ sung cho chức năng của trang web, lưu trữ đám mây, biểu mẫu đặt hàng, hệ thống quản lý nhân sự hoạt động ở phía máy khách và phía máy chủ - tất cả điều này là chỉ là một phần nhỏ của toàn bộ web. -công nghiệp.

Theo thuật ngữ khoa học, lập trình web là tất cả các ứng dụng và thành phần chương trình được xây dựng trên cấu trúc của mạng Internet toàn cầu, và việc truy cập chúng chỉ được cung cấp khi có sự trợ giúp của trình duyệt web (browser). Hơn nữa, kết nối của trình duyệt với Internet không phải là điều kiện tiên quyết, mà chỉ khi ứng dụng phải được mở cục bộ (nói một cách đại khái là từ máy tính đặt hoặc phát triển ứng dụng đó). Ví dụ: đánh dấu HTML của một trang hoặc một máy chủ cục bộ (Denver) cho phép bạn làm việc với các ứng dụng khi không có kết nối mạng.

Tất cả các tài liệu web hoạt động dựa trên các công nghệ đơn giản nhất, chẳng hạn như:

  • HTTP - Giao thức truyền siêu văn bản;
  • HTML là một ngôn ngữ đánh dấu siêu văn bản;
  • PHP là một trong những ngôn ngữ lập trình chính;
  • SMTP - một máy chủ thư để trao đổi tin nhắn văn bản giữa các máy chủ và máy khách khác, bao gồm các chương trình văn phòng của Microsoft;
  • các giao thức IP khác nhau;
  • FTP là một ứng dụng khách để trao đổi dữ liệu giữa máy chủ cục bộ và máy chủ lưu trữ.

Để có hiểu biết ban đầu về lập trình web, bạn có thể mở phần đánh dấu HTML của trang bằng cách nhấp chuột phải vào trang. Và bạn sẽ thấy phần đánh dấu siêu văn bản của nó với các kiểu gắn liền với nó. Cố gắng khám phá các yếu tố của trang web bằng cách xem mã nguồn của nó và diện mạo của trang web. Để có nghiên cứu sâu hơn, hãy khám phá nguồn của một số trang web thuộc nhiều chủ đề khác nhau, tức là bất kỳ mạng xã hội, lưu trữ đám mây và trang web email nào. Theo một số cách, thoạt nhìn chúng sẽ giống nhau, nhưng khi nghiên cứu sâu hơn, bạn có thể thấy rằng mỗi thành phần của trang web thực hiện nhiệm vụ cụ thể của nó và nói chung, logic của công việc khác với trang web trước đó.

Trước khi trở thành một lập trình viên web, hãy làm theo các bước dưới đây.

  • Học ít nhất một chương trình hình ảnh và đồ họa (Photoshop là đủ). Bởi vì trong quá trình bố trí dự án, bạn sẽ phải xử lý và tối ưu hóa trọng lượng của hình ảnh để bản trình bày có lợi hơn, cộng với việc tạo thêm một số hình ảnh, biểu trưng và đồ họa thông tin của riêng bạn.

  • Tìm hiểu thuật toán xây dựng trang web. Những công cụ và công cụ phụ trợ nào được sử dụng để tạo chúng, sơ đồ trang web là gì và tại sao lại cần nó, điều hướng là gì và sơ đồ web là gì.
  • Tìm hiểu thêm về cơ sở hạ tầng của Internet. Có được kiến ​​thức cơ bản và kỹ năng ban đầu trong việc sử dụng các giao thức web (HTTP, SSL, POP3, FTP) của nền tảng mà bạn sẽ thực hiện phần lớn các hoạt động của mình, tự làm quen với máy chủ thư email.
  • Hiểu cách thức hoạt động của các trình duyệt chính (IE, Opera, Chrome, Mozilla).

  • Đầu tiên, hãy học ngôn ngữ đánh dấu siêu văn bản HTML và CSS Cascading Style Sheet (tìm gói WYSIWYG).
  • Bạn cần có hiểu biết về XSL và các công nghệ liên quan.
  • Khi bạn đã có kỹ năng làm việc với siêu văn bản, hãy bắt đầu áp dụng nó vào thực tế từng chút một, dần dần làm phức tạp hóa nhiệm vụ.
  • Bạn cũng sẽ cần các ngôn ngữ kịch bản hoạt động trên cả phía máy khách và máy chủ (Java Script, JQuery). Trên VBScript, cái mà mọi người đều thích tư vấn cho tất cả những người mới bắt đầu vì tính đơn giản của nó, không để ý, nó không được nhìn thấy bởi các phiên bản hiện đại của tất cả các trình duyệt. Nhân tiện, hãy đặc biệt chú ý đến những ngôn ngữ này. Với sự giúp đỡ của họ, tất cả các hiệu ứng 3D bất thường hiện đại hoạt động trên các trang web được tạo ra. Nhưng hãy cẩn thận, ngôn ngữ này khá phức tạp, vì vậy hãy bắt đầu với một cái gì đó rất đơn giản và, như trong các trường hợp khác, dần dần làm việc theo cách của bạn đến các thủ tục phức tạp hơn.
  • Tìm hiểu cách triển khai các mô-đun của bên thứ ba trên trang web, chẳng hạn như trình tổng hợp thanh toán trong cửa hàng trực tuyến.

  • Tìm hiểu ngôn ngữ lập trình PHP cho các ứng dụng và logic của trang web. Với nó, bạn sẽ có thể tạo ra nhiều dự án phức tạp và có lợi nhuận.

Phát triển phần mềm PC

Trước khi bắt đầu phát triển phần mềm, bạn cần phải tìm ra hướng làm việc của mình. Đây chủ yếu là một hoạt động thương mại, vì vậy cần phải hiểu cách thức hoạt động của doanh nghiệp trong lĩnh vực này, và các nguyên tắc cấu thành tài chính của nó.

Trước khi học lập trình, điều quan trọng là phải hiểu những kiến ​​thức cơ bản về mạch kỹ thuật số và kiến ​​thức về kiến ​​trúc máy tính.

Đừng bao giờ ngần ngại tham gia vào cấp độ đầu vào, vốn được dạy ở trường trong các lớp khoa học máy tính. Có, bạn đã phát triển từ điều này từ lâu, nhưng không chắc rằng bạn nhớ tất cả những điều này, và chắc chắn sau nhiều năm (tất nhiên, trừ khi có sự thực hành thích hợp), bạn sẽ không thể áp dụng nó vào thực tế. Bắt đầu với ngôn ngữ Stratch sơ cấp hoặc Cơ bản. Hành động này không quá cần thiết như mong muốn để tạo điều kiện thuận lợi cho quá trình học tập sau này. Hãy nhớ cách một con nhện nhỏ chạy ngang qua màn hình trong lớp của bạn sau khi chúng tôi viết ra thuật toán hành động cần thiết trong trình chỉnh sửa? Vì vậy, hãy nhớ điều này một lần nữa. Lặp đi lặp lại là mẹ của việc học!

Bước tiếp theo trên con đường chiến thắng sẽ là phát triển các mô hình lập trình hướng đối tượng, thủ tục và chức năng. Để hiểu rõ hơn về các chức năng này, tất nhiên, tốt hơn là bạn nên tham gia các khóa học cần thiết. Ngoài ra, theo các chuyên gia, nghiên cứu về lập trình thủ tục là một trong những nền tảng cơ bản của giáo dục đại học.

Tiếp tục thực hành của bạn bằng cách tìm hiểu các hệ thống mô hình hóa nâng cao (UML, ORM).

Sau tất cả, bạn đã có thể thử viết bảng điều khiển và các ứng dụng tương tự bằng cách sử dụng các ví dụ và bài tập phương pháp luận. Quyết định các công cụ mã hóa hoạt động tốt nhất cho ngôn ngữ của bạn.

Tham gia các khóa học chuyên sâu về ngôn ngữ bạn sẽ làm việc. Để hiểu nguyên tắc viết mã bằng ngôn ngữ của bạn, bạn cần biết và hiểu những điều sau:

  • cách thức và phương tiện của việc nhập - xuất dữ liệu của khách hàng được thực hiện;
  • các luồng logic và thực thi trong ngôn ngữ thủ tục và cách nó xảy ra;
  • việc lựa chọn, gán và so sánh các biến diễn ra như thế nào ở tất cả các giai đoạn của hành động;
  • cách các cấu trúc khóa được tạo và lặp lại;
  • cú pháp nào được chọn để viết và đặt tên cho các thủ tục;
  • các loại dữ liệu hiện có và cách chúng được xử lý;
  • ứng dụng của các kiểu dữ liệu được xác định bởi người dùng;
  • sự hiểu biết kỹ lưỡng về các chức năng quá tải được hỗ trợ bởi ngôn ngữ của bạn;
  • kỹ thuật phân tích bộ nhớ;
  • có thể hiểu các con trỏ hàm.

Tiếp theo, bắt đầu thực hành các mô hình hướng đối tượng. Tham gia các khóa học giới thiệu về lập trình trong các mô hình khác nhau. Các chuyên gia khuyên bạn nên biết ít nhất một ngôn ngữ trong các mô hình khác nhau. Sau khi có đủ kinh nghiệm ở thời điểm này, hãy hướng tới các mô hình lập trình logic và chức năng một cách riêng biệt.

Bạn đã biết hai ngôn ngữ? Tuyệt vời! Bây giờ hãy thử so sánh chúng, để xác định những ưu và khuyết điểm cho bản thân, để lựa chọn thiết thực nhất. Nó thường được thực hiện theo cách này ...

  • Chúng tôi viết một chương trình bằng một trong các ngôn ngữ. Đã kiểm tra. Đang làm việc? Chúng tôi viết nó giống nhau, nhưng trên một cái khác. Sau cùng, chúng tôi xem xét ngôn ngữ nào hiệu quả hơn về tốc độ viết mã và kết quả thu được.
  • Bắt đầu viết mã mới, nhưng đã sử dụng cả hai ngôn ngữ của bạn. Có thể xảy ra một số thuật toán không thể được thực hiện bằng một ngôn ngữ, sau đó thuật toán thứ hai sẽ được giải cứu.
  • Lập bảng tổng hợp và sử dụng bảng gian lận để so sánh cấu trúc của cả hai ngôn ngữ.
  • Cố gắng lặp lại một trong các khối của chương trình bằng các ngôn ngữ khác nhau.

Bây giờ chúng tôi đang học cách lập trình trực quan bằng một trong những ngôn ngữ bạn đã chọn. Hầu hết tất cả các ngôn ngữ lập trình đều có phiên bản hoặc tiện ích bổ sung cho phép bạn thực hiện lập trình trực quan và bảng điều khiển. Tại đây bạn sẽ được giúp đỡ:

  • các khóa học về lập trình quản lý sự kiện, là cơ sở của lập trình trực quan;
  • làm việc với các phần mềm máy tính khác nhau. Để hiểu công việc và theo dõi những thay đổi được thực hiện, tốt hơn là sử dụng các phiên bản khác nhau của chương trình;
  • đọc tài liệu phương pháp luận trên hồ sơ này và xem video đào tạo.

Bạn nên tạo các chương trình khác nhau cho máy tính ở nhà để thực hiện các chức năng và hành động khác nhau. Hoặc, tạo luận điểm ảo của riêng bạn bằng cách sử dụng các kỹ thuật lập trình trực quan mà bạn đã học.

Dần dần trau dồi kỹ năng của bạn bằng cách nghiên cứu chi tiết các thư viện và gói, ngày càng chú ý hơn đến những thứ mà trước đây bạn cho là không quan trọng hoặc không quan trọng tại thời điểm đó. Tìm hiểu các cách khác nhau để sử dụng các khuôn khổ. Tìm và khám phá các gói thành phần trực quan khác cho ngôn ngữ của bạn.

Nếu bạn đang có ý định thiết kế một giao diện người dùng đẹp, hãy tham gia một khóa học về đồ họa. Chỉ cần đừng nhầm lẫn điều này với thiết kế đồ họa. Bạn là một lập trình viên.

Kết quả là, bạn sẽ bắt đầu tạo ra ngày càng nhiều chương trình và trò chơi phức tạp hơn và sẽ có thể dần dần đạt đến cấp độ thương mại.

Phát triển và lập trình các hệ thống phân tán ứng dụng và DBMS

Lập trình như vậy là một trong những kiểu khó nhất, và sự phát triển của nó đòi hỏi kiến ​​thức xuất sắc trong lĩnh vực phát triển máy tính và CNTT. Ngoài ra, để nghiên cứu nó, bạn cần tham gia một khóa học về điện thoại và các thiết bị liên quan để có thêm kiến ​​thức sâu rộng về cấu trúc liên kết mạng.

Đầu tiên, hãy nhìn vào môi trường mạng gia đình của bạn. Máy tính được kết nối mạng như thế nào? Đây có thể là kết nối trực tiếp thông qua thẻ mạng, modem, bộ chuyển mạch hoặc bộ định tuyến Wi-Fi. Giao thức mạng nào được sử dụng để kết nối?

Tìm hiểu Kết nối Hệ thống Mở là gì (chúng tôi đưa ra một gợi ý - đây là một định dạng quốc tế để chuẩn hóa việc trao đổi dữ liệu giữa các thiết bị khác nhau. Cái gọi là OSI). Tiếp theo, hãy làm quen với các thuật ngữ TCP, IP, Ethernet, LAN, WAN, UDP và tiếp tục.

Tìm hiểu XML là gì, tại sao nó cần, nó thực hiện những chức năng gì, học cách sử dụng nó. Nhân tiện, nó cũng hữu ích cho các lập trình viên web.

Và chúng tôi đã học một ngôn ngữ lập trình phân tán. Nếu bạn định viết mã cho hệ điều hành Windows, bất kỳ ngôn ngữ nào hỗ trợ WSH sẽ làm được. Trong "Linux", họ sử dụng Perl và Bash.

Bạn cũng sẽ cần JavaScript để hoạt động. Tại sao? Cái này có một vài nguyên nhân.

  1. Nó được hỗ trợ bởi tất cả các máy chủ tập lệnh của tất cả các hệ điều hành. Windows hỗ trợ các gói theo mặc định và các sửa đổi Linux có các tiện ích bổ sung để hỗ trợ JavaScript.
  2. Tập lệnh này là đơn giản nhất.
  3. Cơ sở của Java là cú pháp ALGOL, cho phép bạn khám phá thêm các ngôn ngữ khác và chọn ngôn ngữ thứ hai để đơn giản hóa công việc của bạn.
  4. Với JavaScript, bạn có thể xem xét kỹ hơn các tài liệu web lập trình ở phía máy khách.

Bắt đầu bằng cách sử dụng một ngôn ngữ để viết mã của bạn, dần dần tăng độ phức tạp của nhiệm vụ và áp dụng ngày càng nhiều thủ thuật và mô hình phức tạp hơn mà tập lệnh của bạn hỗ trợ. Lưu ý: Hầu hết các ngôn ngữ lập trình kịch bản đều hỗ trợ nhiều kiểu lập trình thủ tục.

Cố gắng tạo một hệ thống trao đổi dữ liệu trên tập lệnh của bạn. Viết chương trình để ghép nối các thiết bị di động và cố định khác nhau với các hệ điều hành khác nhau và các cấu hình khác nhau.

Chuyển sang ngôn ngữ lập trình máy tính để bàn. Chọn một ngôn ngữ cho phép bạn làm việc với các mô hình khác nhau (ví dụ: Pyton), tìm hiểu những điều cơ bản của nó. Gần đây, một loạt JavaScript + C # đã trở nên phổ biến. Theo các chuyên gia tương tự, gói này có những ưu điểm sau.

  • Những ngôn ngữ này giúp những người biểu diễn làm việc trong một nhóm lớn không cần phải triển khai mã bằng những ngôn ngữ đôi khi khó tương thích. Gói Java + C có các khối mã được tạo sẵn, đã được kết hợp cho phép bạn thực hiện các tác vụ trong các chương trình khác.
  • Chúng hỗ trợ các phương pháp lập trình hướng sự kiện, hướng đối tượng và thủ tục.
  • Phần bổ trợ khung được phân phối theo mặc định.
  • Bạn có thể sử dụng các gói mã nguồn mở và các khung dựng sẵn làm sẵn, do đó có khả năng sử dụng mã "mẫu".

Khi nói đến mạng và thiết lập nó, hãy chú ý đến những điểm chính của ngôn ngữ. Trong trường hợp này, bạn có thể "lưu" trên các giao diện người dùng, bao gồm đầu vào / đầu ra dữ liệu, thiết kế trực quan, v.v.

Một điểm quan trọng sẽ là việc nghiên cứu kiến ​​trúc của các hệ thống phân phối ứng dụng. Đối với giai đoạn này, chỉ cần đọc tài liệu liên quan, xem video đào tạo hoặc tìm kiếm sự giúp đỡ từ các đồng chí có kinh nghiệm hơn là đủ.

Tìm hiểu cách dịch vụ và các thành phần được phát triển bằng ngôn ngữ của bạn.

Bắt đầu thực hành một vài công nghệ. Nói chung, chúng tôi khuyên bạn nên biết đủ rõ 2-3 trong số chúng và có ít nhất một ý tưởng hời hợt về những thứ còn lại. Nhiều đối thủ cạnh tranh trong tương lai của bạn không giới hạn mình biết một hoặc hai ngôn ngữ. Kiến thức của họ là ít nhất một ngôn ngữ trên mỗi hệ điều hành. Các lập trình viên cao cấp hơn có trong kho vũ khí của họ một số ngôn ngữ cho mỗi hệ điều hành. Và, vâng, họ biết cách sử dụng chúng, đúng vậy!

dlls, nền tảng và hạt nhân

Đây là một nhóm các lập trình viên đã phát triển hơn hẳn lập trình ứng dụng và chuyển sang một định dạng phát triển phức tạp hơn. Họ tạo ra tất cả các nền tảng, bao gồm web và các thư viện hỗ trợ khác nhau. Chắc hẳn, khi cài đặt phần mềm trên máy tính, bạn đã quan sát thấy cài đặt của các ứng dụng như Microsoft Visual C ++ Redistributable, MS Framework và những thứ tương tự. Chỉ những lập trình viên như vậy phát triển các ứng dụng này, họ cũng tham gia vào việc lập trình các CMS khác nhau và lưu trữ cho các trang web.

Bạn cần những gì để tham gia danh mục nhà phát triển này?


Bạn sẽ thành công hơn nếu bạn học hỏi cách làm việc của những đồng nghiệp có kinh nghiệm hơn. Luôn chú ý đặc biệt đến các bình luận mã.

Lập trình hệ thống


  1. Để bắt đầu, cần phải hiểu rõ ràng chính xác lập trình hệ thống bao gồm những gì. Các lập trình viên hệ thống hầu hết không giải quyết một số nhiệm vụ nhất định, mà là với lĩnh vực lập trình khoa học, vì vậy bạn không nên bị treo trên một nền tảng cụ thể.
  2. Sẽ nên làm theo các khuyến nghị trong ba điểm ban đầu dành cho người lập trình ứng dụng cho máy tính để bàn.
  3. Nó cũng có ý nghĩa khi tham gia ít nhất một khóa học ban đầu về đại số tuyến tính.
  4. Bạn chắc chắn nên tham gia một khóa học về phương pháp tính toán.

  5. Ngoài ra, hãy tham gia một khóa học về toán học rời rạc và / hoặc logic.
  6. Làm quen với các hệ điều hành có bản chất khác khi không có tiện ích bổ sung. Một người quen như vậy có thể được thực hiện theo cách sau:
  7. Duyệt qua các tài liệu giáo dục có chứa những kiến ​​thức cơ bản về kiến ​​trúc phần cứng máy tính hoặc tham gia khóa học theo chủ đề thích hợp.
  8. Phân tích sự khác biệt đặc trưng của các nền tảng phần cứng khác nhau.
  9. Tìm hiểu kiến ​​thức cơ bản về hợp ngữ cho nền tảng phần cứng hoặc hệ điều hành ưa thích của bạn. Sau một thời gian, bạn sẽ cần học hợp ngữ của các hệ thống và nền tảng khác.
  10. Tham gia một khóa học về cách học ngôn ngữ ANSI C và C ++, cùng với việc nắm vững các nguyên tắc cơ bản của lập trình thủ tục.
  11. Làm quen với các thư viện C và C ++ cốt lõi và bắt đầu sử dụng chúng trên nền tảng bạn chọn. Cần đặc biệt chú ý đến thư viện mẫu hoạt động (ATL) và thư viện mẫu chuẩn (STL).
  12. Để có hiểu biết vững chắc về cách C và C ++ sẽ hoạt động trên nền tảng bạn đã chọn, bạn nên tham khảo các nguồn trực tuyến, tài liệu và các khóa học chủ đề liên quan để biết thông tin cần thiết.
  13. Bắt đầu xây dựng mã C / C ++ có độ phức tạp cao hơn.
  14. Làm quen với các sắc thái của Assembly ở mức độ phức tạp hơn.
  15. Tham gia một khóa học về phát triển hệ điều hành.
  16. Tìm và nghiên cứu tài liệu cho nền tảng bạn chọn. Bạn sẽ dễ dàng hơn nhiều khi sử dụng hệ điều hành dựa trên Unix. Nhưng đối với điều này, nó là cần thiết để hiểu hệ thống đủ tốt.
  17. Bắt đầu sử dụng kiến ​​thức thu được. Để bắt đầu, hãy tạo các tiện ích hệ thống nhỏ. Để làm điều này, bạn nên làm như sau:
  18. Học ngôn ngữ theo thứ tự hợp lý nhất. Chỉ trong trường hợp này, vấn đề quan trọng là ngôn ngữ lập trình nào là ngôn ngữ lập trình đầu tiên của bạn. Bạn nên học ANSI C trước, không phải C #, Java hoặc D. Sau đó, bạn có thể chuyển sang C ++. Một lập trình viên hệ thống phải có các kỹ năng sau:

Lập trình khoa học


Các lập trình viên trở nên có nhu cầu và phổ biến không phải vì họ có thể viết mã tốt, mà vì họ có kiến ​​thức nhất định, kỹ năng bổ sung và một số đặc điểm tính cách. Có nhiều cách để đạt được mức độ kỹ năng này, ví dụ, bạn có thể sử dụng các cách sau.

  1. Đừng ngại tìm kiếm lời khuyên từ những đồng nghiệp có kinh nghiệm hơn. Nếu những tìm kiếm độc lập để tìm giải pháp cho vấn đề đã nảy sinh không mang lại kết quả như mong đợi và bạn không thể di chuyển vì việc này trong một thời gian dài, thì nên tìm kiếm sự giúp đỡ từ những đồng nghiệp có kinh nghiệm hơn. Cơ hội để học hỏi từ đồng nghiệp của bạn là khó để đánh giá quá cao. Quan trọng nhất: hình thành câu hỏi càng rõ ràng càng tốt, nó thường xảy ra rằng nó chứa gợi ý cần thiết.
  2. Đánh giá cao công việc của riêng bạn. Bạn không nên coi nhiệm vụ như một ưu ái hay một điều khó chịu, nhưng là điều cần thiết không thể tránh khỏi, sẽ không có lợi ích gì từ việc này. Tiếp cận cẩn thận thiết kế của mã, cấu trúc nó, làm cho nó dễ hiểu và dễ đọc không chỉ đối với bản thân bạn, đồng thời không quên phối hợp nó với các tiêu chuẩn được thông qua trong nhóm hoặc công ty. Tỉ mỉ làm sạch kết quả, chỉnh sửa ngay cả những sai sót nhỏ nhất, không đáng chú ý. Ví dụ: nếu giao diện đã dịch chuyển một vài pixel sang trái trong quá trình này, hãy dành thời gian để đưa nó về đúng vị trí của nó. Đảm bảo tiến hành kiểm tra toàn bộ kết quả cuối cùng của công việc. Nhờ vậy, nỗ lực của bạn chắc chắn sẽ được mọi người chú ý và đánh giá cao.
  3. Không ngừng phát triển. Để trở thành một chuyên gia thực sự được săn đón trong lĩnh vực này, bạn sẽ cần phải liên tục phát triển, tuân theo những công nghệ tiên tiến nhất và liên tục phân tích các xu hướng mới. Do thế hệ trẻ phát triển khá nhanh và tạo ra sự cạnh tranh hữu hình, nên cần phải không ngừng trau dồi kỹ năng của bản thân để có thể làm chủ công nghệ một cách nhanh chóng và hiệu quả.
  4. Học cách trình bày suy nghĩ của bạn một cách rõ ràng và truyền đạt ý tưởng của bạn một cách chính xác. Theo người sáng lập của Fog Greek Software, lập trình viên nổi tiếng Joel Spolsky, sự khác biệt chính giữa các lập trình viên tương đối giỏi và thực sự xuất sắc không nằm ở số lượng ngôn ngữ lập trình họ học và không phải ngôn ngữ lập trình họ thích, mà là ở khả năng thuyết phục người khác và truyền đạt thành thạo ý tưởng của họ. Đây là kỹ năng chính của họ. Các lập trình viên ở cấp độ này viết các bình luận dễ hiểu và các thông số kỹ thuật, vì vậy mã mà họ tạo ra đủ hiểu để các lập trình viên khác sử dụng và phát triển nó sau này mà không gặp nhiều khó khăn.

Tìm hiểu những gì bạn sẽ cần làm. Theo nguyên tắc chung, các lập trình viên viết mã cho các ứng dụng được sử dụng trong một doanh nghiệp, vì vậy bạn nên tìm hiểu cách thức hoạt động của một doanh nghiệp, cách nó được tổ chức và hệ thống tài chính của nó được xây dựng như thế nào.

Tìm hiểu các loại kiến ​​trúc phần cứng máy tính. Sẽ rất hữu ích khi tìm hiểu những kiến ​​thức cơ bản về thiết kế mạch kỹ thuật số và kiến ​​trúc máy tính. Tuy nhiên, một số chuyên gia cho rằng điều này là không cần thiết ở giai đoạn đầu, vì vậy chỉ cần đọc 2-3 bài báo về chủ đề này là đủ (ví dụ: bài này và bài này). Bạn có thể trở lại điều này khi bạn thành thạo 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 cấp độ cơ bản. Hãy thoải mái học những gì được coi là trẻ con chỉ vì bạn đã lớn hơn. Scratch là một ví dụ về một ngôn ngữ như vậy. Những ngôn ngữ như vậy sẽ giúp bạn làm việc với ngôn ngữ lập trình thực đầu tiên dễ dàng hơn. Tuy nhiên, bước này không thể được coi là bắt buộc. Ngoài ra, bạn có thể làm điều này trước bước trước.

Tìm hiểu một trong những hệ thống mô hình hóa nâng cao (chẳng hạn như UML hoặc ORM).

Bắt đầu viết bảng điều khiển nhỏ hoặc các ứng dụng giống bảng điều khiển. Bạn có thể sử dụng các bài tập từ sách giáo khoa lập trình. Chọn một công cụ để viết chương trình bằng ngôn ngữ lập trình mà bạn đang làm việc.

Bắt đầu áp dụng những gì bạn đã học.

  • Mô hình hướng đối tượng.
  • Tham gia một khóa học giới thiệu về ít nhất một ngôn ngữ lập trình trong một mô hình lập trình khác. Bạn nên học một ngôn ngữ trong mỗi mô hình, và theo quy luật, tất cả các lập trình viên giỏi đều làm, nhưng bạn chỉ cần bắt đầu với một ngôn ngữ, làm việc với nó, thực hành và sau đó chuyển sang người khác khi bạn đã có kinh nghiệm lập trình thực sự. Hãy xem xét một trong các lĩnh vực sau:

    • Mô hình lập trình logic.
    • Mô hình lập trình chức năng.
  • Hãy thử so sánh hai ngôn ngữ lập trình mà bạn đã thành thạo.Đánh giá điểm mạnh và điểm yếu của từng loại. Họ thường làm như thế này:

    • Lấy một ví dụ đơn giản về công việc ban đầu của bạn bằng ngôn ngữ lập trình đầu tiên và viết lại nó bằng ngôn ngữ thứ hai.
    • Tạo một dự án mới và sử dụng cả hai ngôn ngữ ở đó. Bạn có thể không làm được một số việc bằng một trong các ngôn ngữ - mọi thứ sẽ phụ thuộc vào dự án và ngôn ngữ bạn chọn.
    • Tạo bảng gian lận hoặc so sánh các cấu trúc tương tự bằng cả hai ngôn ngữ và sự khác biệt của chúng trong bảng tổng hợp.
    • Tìm cách sao chép các cấu trúc bằng một ngôn ngữ bằng một ngôn ngữ khác.
  • Tìm hiểu các khái niệm lập trình trực quan bằng cách sử dụng một trong các ngôn ngữ bạn đã chọn. Hầu hết tất cả các ngôn ngữ lập trình đều có các phiên bản hoặc thư viện hỗ trợ lập trình trực quan và các kiểu lập trình tương tự như bảng điều khiển hoặc bảng điều khiển khác. Bạn có thể làm điều này theo cách sau:

    • Tham gia một khóa học giới thiệu về lập trình hướng sự kiện. Về cơ bản, lập trình trực quan dựa trên sự kiện và xử lý sự kiện (sử dụng ngôn ngữ lập trình đã chọn).
    • Hãy thử làm việc với nhiều phần mềm máy tính để bàn để biết những gì các chương trình đó hoạt động. Hầu hết các công ty nhà phát triển đều cung cấp phiên bản beta của ứng dụng mà bạn có thể dùng thử. Theo dõi sự phát triển của giao diện người dùng.
    • Đọc các bài báo hoặc hướng dẫn làm việc với giao diện người dùng đồ họa.
  • Bắt đầu áp dụng kiến ​​thức của bạn bằng cách phát triển các ứng dụng đơn giản. Cố gắng sử dụng kiến ​​thức thu được để giải quyết các vấn đề hàng ngày. Ví dụ: viết các chương trình sẽ đổi tên hàng loạt tệp, so sánh tệp văn bản một cách trực quan, sao chép tên tài liệu vào một vị trí cụ thể trong tệp bộ nhớ riêng biệt hoặc tệp văn bản, v.v. Đối với những người mới bắt đầu, hãy giữ mọi thứ đơn giản.

    Lập trình là một trong những kỹ năng có giá trị nhất để phát triển nghề nghiệp, phát triển bản thân và tạo ra điều gì đó tuyệt vời. Mười lời khuyên dành cho những ai mới bắt đầu hành trình vào thế giới lập trình, từ Lifehacker.

    10. Tìm hiểu lý do tại sao bạn muốn viết mã

    Hướng được lựa chọn trong nghiên cứu sẽ phụ thuộc rất nhiều vào lý do chính xác bạn muốn học cách lập trình như thế nào và bạn sẵn sàng dành bao nhiêu thời gian cho quá trình này. Nếu bạn muốn trở thành một lập trình viên, việc đầu tiên cần làm là đăng ký tham gia các khóa học chuyên nghiệp (Google đã tổng hợp danh sách các kỹ năng và khóa học dành cho những ai muốn trở thành kỹ sư phần mềm). Nếu bạn muốn tạo các trò chơi và trang web để giải trí trong thời gian rảnh rỗi, các khóa học tương tác là lựa chọn tốt nhất dành cho bạn. Bloc đã tạo một biểu đồ so sánh các khóa học dựa trên lượt tải xuống, chi phí và lý do học viết mã.

    9. Chọn ngôn ngữ phù hợp

    7. Dùng thử ứng dụng cho trẻ em

    Bây giờ ngay cả trẻ mới biết đi đang học lập trình. Trong khi nhiều chương trình học dành cho trẻ em rất đơn giản, một số chương trình (như Scratch) phù hợp với mọi lứa tuổi. Không quan trọng bạn bao nhiêu tuổi, ngay cả các ứng dụng hoạt hình dành cho trẻ em cũng có thể dạy bạn những điều cơ bản về lập trình (edX có một hướng dẫn Scratch mới).

    6. Tận dụng chương trình đào tạo trực tuyến miễn phí

    Các dự án và khóa đào tạo trực tuyến miễn phí (Codecademy, Hour of Code, v.v.) có thể giúp bạn viết chương trình đầu tiên của mình. Các bài hướng dẫn từ Khan Academy, Codecademy, Code.org và những người khác sẽ giới thiệu cho bạn kiến ​​thức cơ bản về lập trình và mọi thứ bạn cần để tạo một trò chơi, trang web hoặc các dự án khác. Tìm nguồn phù hợp tùy thuộc vào ngôn ngữ lập trình đang sử dụng. Đây là một điểm khởi đầu tốt, tuy nhiên bạn cần phải đào tạo thêm.

    5. Tham gia một khóa học trực tuyến

    Các khóa học lập trình trực tuyến cung cấp đào tạo giáo dục mở rộng hơn so với các trang web cung cấp đào tạo trực tuyến bằng một ngôn ngữ. Các khóa học này được thiết kế để dạy các kỹ năng cơ bản trong khoảng thời gian vài tháng trong các lớp học ở trình độ đại học. Tôi là một fan hâm mộ lớn của khóa học trực tuyến Harvard CS50 (học miễn phí). Ngoài ra còn có các khả năng khác. Bạn thậm chí có thể học đại học bằng cách chọn một trong 15 khóa học trực tuyến.

    4. Sách Lập trình Miễn phí

    Nếu bạn đang vướng mắc một vấn đề nào đó hoặc cần tìm câu trả lời cho câu hỏi của mình, đừng quên sách tham khảo. GitHub có một bộ sưu tập khổng lồ với hơn 500 cuốn sách lập trình miễn phí. Bộ sưu tập sách điện tử bao gồm 24 ngôn ngữ lập trình cũng có sẵn.

    3. Vừa học vừa chơi

    Đôi khi trò chơi là cách tốt nhất để học. Trong khi nhiều hướng dẫn lập trình dạy bạn cách lập trình các trò chơi đơn giản hoặc phức tạp, một số trang web hướng dẫn lại là trò chơi: Code Combat và CodinGame là những công cụ mà bạn có thể sử dụng để giải trí.

    2. Tìm một người cố vấn hoặc trở thành một

    Cộng đồng lập trình có rất nhiều người sẵn sàng giúp đỡ thế hệ lập trình viên tiếp theo. Hack.pledge () là một trang web giúp bạn tìm một người cố vấn. Hoặc chính bạn cũng có thể trở thành người cố vấn cho người khác. Dạy những gì bạn đã học sẽ giúp bạn ghi nhớ thông tin tốt hơn.

    1. Phân tích cú pháp mã của người khác

    Phần này sẽ được cập nhật với các bài báo và video, sau khi đọc và nghiên cứu, bạn có thể hiểu cách trở thành một lập trình viên từ đầu. Tất cả các bài viết đều được viết bởi một lập trình viên hành nghề với nhiều năm kinh nghiệm. Hơn nữa, đó là kinh nghiệm cá nhân của tôi sẽ có giá trị đối với bạn, bởi vì tôi vốn là người tự học, hiểu mọi thứ bằng cách thử và sai.

    Sau đó, tất nhiên, tôi cũng đã tốt nghiệp đại học. Đó là, trên lý thuyết, anh ta cũng đã trở nên thành thạo. Nhưng đó là sau này, khi tôi đã làm việc với tư cách là một lập trình viên. Đó là, tôi đã cố gắng kiếm được một công việc mà không chỉ có bằng cấp cao hơn, mà thậm chí ít nhất là một nền giáo dục đặc biệt trong lĩnh vực lập trình.

    Và tất cả chỉ vì ...

    Tuy nhiên, tôi sẽ nói về tất cả những điều này trong các bài viết riêng biệt. Trong thời gian chờ đợi, hãy xem cấu trúc của phần này:


    Trong tiểu mục này sẽ có những bài viết dành cho những người chưa có kinh nghiệm nhất, dành cho những ai mới nghĩ đến việc trở thành một lập trình viên. Ở đây tôi sẽ nói về nơi tốt hơn để bắt đầu học lập trình và những sai lầm cần tránh.

    Giáo dục
    Trong phần này, tôi sẽ nói về những gì, ở đâu và làm thế nào để học tập để trở thành một lập trình viên chuyên nghiệp.


    Các bài viết về ngôn ngữ lập trình, tính năng, ưu nhược điểm của chúng, so sánh các ngôn ngữ lập trình.


    Ở đây tôi sẽ nói về các công cụ phát triển khác nhau. Cả về những thứ mà bản thân tôi sử dụng và về các chương trình đặc biệt nói chung - trình soạn thảo văn bản, trình biên dịch, các công cụ hữu ích khác nhau mà các lập trình viên sử dụng trong công việc của họ. Bao gồm cả về những cái cũ, mà thực tế không được sử dụng nữa, bởi vì bạn cần phải biết lịch sử nghề nghiệp của bạn.


    Ở đây chúng ta sẽ nói về các công nghệ lập trình. Nó là gì, ở đâu, như thế nào và được sử dụng để làm gì, v.v.

    Các thuật toán
    Sau đây tôi sẽ nói về các thuật toán đơn giản và thường được sử dụng nhất trong thực tế. Tất nhiên, cũng sẽ có các ví dụ.


    Sẽ có những con chip và thủ thuật khác nhau mà các lập trình viên chuyên nghiệp sử dụng trong công việc của họ và giúp họ giải quyết các vấn đề khác nhau. Nói chung, phần này cũng có thể được gọi là “Trao đổi kinh nghiệm”.

    Những câu chuyện
    Để cuộc sống không chỉ có nghiên cứu những tài liệu nhàm chán, đôi khi tôi sẽ pha loãng những câu chuyện về lập trình bằng những câu chuyện khác nhau, vừa thực vừa không ...


    Nhiều tài liệu, mã nguồn, chương trình và những thứ tương tự khác sẽ có sẵn để tải xuống tại đây.

    Mục đích chính của phần này là giúp người mới bắt đầu trở thành một lập trình viên từ đầu. Hơn nữa, trọng tâm chính sẽ là tự giáo dục. Vì tôi hiểu rằng không phải ai cũng sẵn sàng để trở thành một lập trình viên. Một người khác, trong sự do dự, đang cố gắng quyết định xem liệu anh ta có cần nó ở tất cả hay không, hay tốt hơn là thử bản thân ở một chuyên ngành khác.

    Do đó, tôi quyết định cố gắng hết sức để trở thành người mới bắt đầu hoàn chỉnh bằng cách đọc các bài viết này và xem video:

    1. Đã có thể quyết định xem anh ấy có muốn trở thành một lập trình viên hay không
    2. Và, nếu vậy, tôi có thể chọn hướng đi đúng và bắt đầu khóa đào tạo lập trình nhất quán và hiệu quả

    Vì vậy, đăng ký cập nhật trang web và chờ đợi tin tức. Các bài báo và video sẽ xuất hiện thường xuyên. Và những cái đã có, bạn có thể học ngay bây giờ. Tôi khuyên bạn nên bắt đầu lại từ đầu. Nhưng trước tiên, hãy đọc cuốn sách Làm thế nào để trở thành một lập trình viên của tôi, cuốn sách này sẽ cho phép bạn học những kiến ​​thức cơ bản về lập trình và thậm chí viết một vài chương trình đầu tiên của bạn.

    Cuốn sách hoàn toàn miễn phí. Phân phối theo đăng ký. Bạn có thể lấy nó ngay tại đây trên trang này. Chỉ cần nhập địa chỉ email của bạn và nhấp vào nút NHẬN.

    Trong thư sẽ được gửi đến địa chỉ bạn đã chỉ định, bạn cần xác nhận đăng ký của mình bằng cách nhấp vào liên kết. Sau đó, bạn sẽ nhận được một liên kết để tải xuống cuốn sách. Mọi thứ thật đơn giản…

  •