Showing posts with label share. Show all posts
Showing posts with label share. Show all posts

12/22/2024

Free For Students 3 | Sharing


Xem lại các bài viết trước: 


- Free for Student   : https://www.tailieubkhn.com/2024/02/free-for-student.html


- Free for Student 2: https://www.tailieubkhn.com/2024/03/free-for-students-2-sharing.html


iconscout.com


IconScout là một nền tảng trực tuyến hàng đầu, chuyên cung cấp tài nguyên thiết kế như biểu tượng, hình ảnh vector, hình minh họa 3D, hoạt hình Lottie và phông chữ. 

Kho icon free của Iconscount cũng đủ sử dụng trong bài tập lớn ở trường dành cho sinh viên.





railway.com


railway đơn giản hóa cơ sở hạ tầng của bạn từ máy chủ đến khả năng quan sát bằng một nền tảng duy nhất, có thể mở rộng và dễ sử dụng.

Bản free của railway cung cấp 512 MB of RAM, 1 GB of Disk, and 2 vCPU cho người dùng sử dụng đủ để sử dụng cho bài tập trên lớp. 

Website: https://railway.com/



ngrok.com


Ngrok là công cụ hoàn hảo nếu không có tiền để mua hosting, việc public một ứng dụng từ chính máy tính cá nhân ra internet rất nhanh chóng và hoàn toàn không mất phí. Hơi lag chút xíu tuy nhiên với nhu cầu demo sản phẩm cho sinh viên sử dụng trong bài tập thì hoàn toàn phù hợp.

Website: https://dashboard.ngrok.com/get-started/setup/linux




app.sqldbm.com


SqlDBM là một trong những công cụ thiết kế sơ đồ cơ sở dữ liệu tốt nhất cung cấp một cách dễ dàng để thiết kế cơ sở dữ liệu của bạn trên bất kỳ trình duyệt nào. Bạn không cần bất kỳ công cụ cơ sở dữ liệu hoặc công cụ mô hình cơ sở dữ liệu hoặc ứng dụng nào khác để sử dụng công cụ này. Mình cũng đã từng dùng công cụ này để thiết kế CSDL trong môn đồ án thiết kế HTTT.

SqlDBM có rất nhiều điều để khám phá, tuy nhiên phiên bản miễn phí của SqlDBM cũng có giới hạn sử dụng các chức năng.

Website: https://app.sqldbm.com/




8/18/2024

Trường - Khoa - Viện đào tạo trực thuộc Đại học Bách Khoa Hà Nội


Ngày 2/12/2022 Trường đại học Bách Khoa Hà Nội đã trở thành Đại học Bách Khoa Hà Nội, kể từ đó Đại học Bách Khoa Hà Nội liên tiếp thành lập các trường thành viên là các viện đào tạo ngày xưa. Hiện nay Đại học Bách Khoa Hà Nội gồm 13 trường - khoa - viện trực thuộc. Bài viết này mình sẽ giới thiệu tới mọi người 13 trường - khoa - viện trực thuộc Đại học Bách Khoa Hà Nội và website thông tin chính thức của từng trường - khoa - viện.

1. Khoa giáo dục Quốc Phòng & An Ninh

Văn phòng: D3-504

2. Khoa giáo dục thể chất

Văn phòng: Tầng 2 - nhà thi đấu Bách Khoa

3. Khoa lý luận chính trị

Văn phòng: D3-306

Website: https://fpt.hust.edu.vn/

4. Trường Cơ Khí

Văn phòng: 614M-C7

Website: https://sme.hust.edu.vn/

Email: sme@hust.edu.vn

5. Trường CNTT & TT


Văn phòng: B1-505

Website: https://soict.hust.edu.vn/

Email: vp@soict.hust.edu.vn

6. Trường Điện - Điện tử


Văn phòng: C7-E605

Email: seee@hust.edu.vn

Website: https://seee.hust.edu.vn/

7. Trường Hóa và Khoa học sự sống

Văn phòng: 

Email: scls@hust.edu.vn

Website: https://scls.hust.edu.vn/

8. Trường Vật Liệu

Văn phòng: D8-706

Email: smse@hust.edu.vn

Website: https://smse.hust.edu.vn/

9. Khoa Toán - Tin 

Văn phòng: D3-106

Email: fami@hust.edu.vn

Website: https://fami.hust.edu.vn/

10. Khoa Vật Lý Kỹ Thuật


Văn phòng: C10-116

Email: sep@hust.edu.vn

Website: https://sep.hust.edu.vn/

11. Trường Kinh Tế

Văn phòng: C9-303,304

Email: sem@hust.edu.vn

Website: https://sem.hust.edu.vn/

12. Khoa Ngoại Ngữ

Văn phòng: M310-C7

Email: sofl@hust.edu.vn

Website: https://sofl.hust.edu.vn/

13. Khoa khoa học và công nghệ giáo dục

Văn phòng: M321-C7

Email: sepd@hust.edu.vn

Wesite: https://fed.hust.edu.vn/

3/25/2024

Free For Students 2 | Sharing


Neon Postgresql

Giống với MongoDB Atlas là một nền tảng lưu trữ dữ liệu dành cho cơ sở dữ liệu Mongodb thì Neon là một nền tảng lưu trữ dành cho cơ sở dữ liệu Postgresql, Neon tách biệt điện toán và lưu trữ để cung cấp các tính năng hiện đại dành cho nhà phát triển. 

Cũng với 512MB Free, mặc dù là không nhiều tuy nhiên sử dụng cho mục đích bài tập cá nhân hay đồ án thì cũng là một sự lựa chọn rất phù hợp cho sinh viên.

Website: 

Truy cập website tại: https://neon.tech/

alwaysdata.com

Lưu trữ web miễn phí 100 MB hỗ trợ MySQL, PostgreSQL, CouchDB, MongoDB, PHP, Python, Ruby, Node.js, Elixir, Java, Deno, máy chủ web tùy chỉnh, truy cập qua FTP, WebDAV và SSH; bao gồm hộp thư, danh sách gửi thư và trình cài đặt ứng dụng.

Dung lượng hỗ trợ cũng không nhiều, tuy nhiên trong bài tập lớn sử dụng trên trường có lẽ cũng đủ để có thể dựng một dự án nho nhỏ để demo.



Truy cập website tại: https://www.alwaysdata.com/

moqups.com

Những người làm thiết kế hay lập trình viên bình thường có lẽ đã rất quen với figma, công cụ thiết kế cực kỳ phổ biến. Tuy nhiên thì figma lại thường dành cho những người có chuyên môn và muốn làm được figma cũng phải dành chút thời gian ra với nó. 

Với bài tập lớn thì công việc mẽ mockup hay thiết kế chỉ là một công việc phụ vì vậy không thể dành nhiều thời gian quá nhiều cho nó, moqups cung cấp rất nhiều mẫu giao diện có sẵn để có thể làm những công việc này một cách dễ dàng hơn.


Truy cập website tại: https://app.moqups.com/

creately

Giống với moqups.com là nền tảng để vẽ mockup thì creately là một nền tảng hỗ trợ vẽ biểu đồ UML. creately cung cấp các mẫu UML cho phép xây dựng các sơ đồ UML một cách dễ dàng hơn.

Cũng giống với vẽ mockup chỉ là một bước nhỏ trong quá trình làm bài tập lớn, vì thế cũng không nên tập chung quá nhiều thời gian cho những công việc này, nên việc sử dụng các nền tảng hỗ trợ đa dạng mẫu template là rất cần thiết trong quá trình làm bài tập lớn.


Truy cập website tại: https://app.creately.com/

draw.io

Draw.io có lẽ không còn xa lạ gì với mọi người, đây là một nền tảng vô cùng phổ biến. Với draw.io chúng ta có thể làm gần như mọi thứ: vẽ biểu đồ UML, vẽ luồng hoạt động, vẽ kiến trúc, vẽ mockup, mindmap... Là về cơ bản thì draw.io cũng hoàn toàn có thể thay thế cho 2 nền tảng trên và đây là một nền tảng cực kỳ đa năng.

Draw.io còn cung cấp một kho mẫu có sẵn cho nhiều loại để có thể tùy chỉnh. Đây là một nền tảng mà mình rất hay sử dụng khi đi học và bây giờ là ngay cả khi đi làm. Mỗi lần bị bắt vẽ UML hay mockup là nghĩ ngay tới draw.io.


Truy cập website tại: https://app.diagrams.net/

replit

Replit cung cấp nhiều công cụ và tính năng cần thiết cho việc phát triển phần mềm. Nó hoạt động như một IDE oneline giúp mọi người tỏng nhóm có thể cùng nhau lập trình, nhà cung cấp đám mây, cộng đồng nhà phát triển.

Với các ngôn ngữ lập trình hay sử dụng thì chắc chắn là phải cài nó vào trong máy, còn với một số ngôn ngữ lập trình ít sử dụng mà yêu cầu trong môn học các bạn có thể sử dụng replit để có thể giảm bớt thời gian cài đặt môi trường và sau đó là gỡ đi khi hết môn học.



Truy cập website tại: https://replit.com/

dbdesigner.net

dbdesigner.net là một công cụ vẽ và mô hình hóa về cơ sở dữ liệu. Nền tảng này còn hỗ trợ việc gen các câu SQL sau khi thiết kế và hỗ trợ trên rất nhiều các cơ sở dữ liệu như là MySQL, PostgreSQL, Oracle, Sqlite,...

Tuy nhiên, phiên bản miễn phí hiện đang chỉ hỗ trợ gen SQL với hệ thống dưới 10 table.


Truy cập website tại: https://app.dbdesigner.net/

Paraphrasing Tool

https://quillbot.com/ là công cụ giúp viết lại câu văn để tránh bị ghi nhận đạo văn trên các nền tảng check đạo văn. Hiện tại hệ thông cũng hô trợ một số ngôn ngữ có cả tiếng Việt và Anh. Mọi người viết báo khoa học hay là viết báo cáo bài tập lớn mà có tham khảo từ nguồn khác hay tham khảo từ một bài viết của nhóm khác của thể sử dụng công cụ này để viết lại đoạn văn để tránh bị check đạo văn.


Microsoft Azure

Việc nhận được 100$ cho Azure qua email trường và 1 số package miễn phí dành cho sinh viên mình đã nó qua tại bài viêt Mail edu của trường làm được gì ? mọi người có thể xem chi tiết hơn tại bài viết trên.

123host

Nhận hosting free tại 123host.vn, các bạn có thể triển khai một số dự án bằng PHP hoặc HTML tĩnh để demo cho giáo viên/ giảng viên môn học. Phần này mình cũng có nói chi tiết tại bài viết Free hosting, domain trọn đời, phù hợp cho sinh viên, mọi người có thể xem chi tiết hơn tại bài viết trên.

Một số nền tảng khác

Một số nền tảng khác mình muốn chia sẻ thêm, có thể cũng có thể giúp ích cho mọi người trong một khoảnh khắc nào đó: 

- Công cụ biên dịch code online: https://www.codechef.com/ide

- Vẽ chart online: https://dashboard.visme.co/

- Công cụ viết markdown online theo nhóm: https://hackmd.io/

- Công cụ viết markdown: https://stackedit.io/


Cẩm nang HUST | Sharing


Ghi chú: bài viết sẽ được cập nhật thường xuyên khi có những thông tin mới

Trong quá trình học hay là hoạt động tại trường chắc hẳn nhiều lúc ai đó cũng sẽ một lần ngạc nhiên rằng là "ơ cái hoạt động này ở đâu vậy?", "ơ cái biểu mẫu này lấy ở đâu vậy?", "ơ sao mày biết phải email cho thầy/cô này!". Thực ra tất cả những thông tin này đều được trường đưa lên các trang web cổng thông tin của trường, nhưng vì lượng thông tin là quá nhiều nên việc tìm kiếm cũng rất khó khăn với nhiều cái trường hiện tại cũng đang tiến hành hợp nhất để mọi người có thể tìm kiếm trên một cổng thông tin duy nhất nhưng vẫn đang trong quá trình. Trong bài viết này mình sẽ ghi chú ra những thông tin hữu ích và cần thiết cho các bạn, nhớ bookmark lại các mục này để khi cần có thể tìm lại một cách nhanh nhất nha.

Mình chia sẻ còn thiếu những phần nào, hoặc mọi người thấy thiếu sót phần nào mà mọi người cho là quan trọng có thể comment lại dưới bài viết để những người sau có thể đọc được nha. Rất cảm ơn mọi người!

Hướng dẫn thủ tục, biểu mẫu, thắc mắc về học tập, học phí.

Tại Bách Khoa các bạn có thể sẽ phải email rất nhiều để hỏi về học tập, thắc mắc về học phí, biểu mẫu hay thủ tục gì đó. Có rất nhiều bạn đã bị trả về email vì email sai cách, không đúng cách, không đúng format hoặc email cho sai người. Việc vấn đề nào đó email cho ai, format email như nào đã được trường quy định và đăng trên cổng thông tin sinh viên tại https://sv-ctt.hust.edu.vn/#/so-tay-sv/69/huong-dan-gui-cau-hoi-toi-phong-dao-tao-cac-van-de-ve-hoc-tap-hoc-phi


Biểu mẫu về học tập

Các biểu mẫu về học tập như: 

- Đơn đề nghị điều chỉnh điểm
- Đơn xin chuyển điểm tương đương 
- Đơn xin đăng ký lớp
- Đơn xin rút lui học phần 
- Đơn xin hoãn thi 
- Đơn xin thi bù do hoãn thi
- Đơn xin học tiếp lên kỹ sư

Mọi người có thể tải về biểu mẫu tại: https://ctt.hust.edu.vn/DisplayWeb/DisplayBaiViet?baiviet=77&fbclid=IwAR1S-wuiqnE33s_ZOSwheDR-e4CNQiolznf7D_vL8Yy1fJBPDa7PHFdf12s

Hoặc tải biểu mẫu tại link (những biểu mẫu không có là mọi người sẽ phải tìm trong mục email phía trên để email cho giáo viên/ giảng viên): BIỂU MẪU HỌC TẬP

Thông báo

Thông báo của trường mới nhất sẽ được đăng tải tại https://ctt.hust.edu.vn/DisplayWeb/DisplayListBaiViet?tag=%C4%90T%C4%90H

Sẽ gồm có lịch thi giữa kì, cuối kì, thông tin cấp bằng, đăng ký xét tốt nghiệp, xét nhận đồ án, đăng ký môn, công tác sinh viên,...

2/12/2024

Free For Students | Sharing


Trong các bài viết trước đã có một số bài viết mình chia sẻ về cách sử dụng mail edu để sử dụng một số các ưu đãi dành cho sinh viên. Vì mail edu một số dịch vụ cũng hết hạn khá là nhanh, một số dịch vụ không khả dụng tại Việt Nam, một số dịch vụ cũng khó đăng ký và sử dụng, vì vậy bài viết này mình giới thiệu một số dịch vụ khác hữu ích cho sinh viên IT sử dụng trong quá trình làm đồ án hay bài tập lớn của mình.

1. MongoDB Atlas

MongoDB Atlas là nền tảng thuộc sự quản lý trực tiếp của MongoDB, người dùng đăng ký được sử dụng 512MB dung lượng miễn phí từ nền tảng này. Dung lượng lưu trữ không nhiều nhưng là vừa đủ để sinh viên sử dụng trong bài tập lớn hay đồ án của mình khi cần triển khai database lên internet.


MongoDB Atlas còn cung cấp tùy chọn lưu trữ dữ liệu trên Aws, GCP (Google Cloud Platform) hoặc Azure. Mình thấy đây là nền tảng mà sinh viên khá ưa thích khi bài tập lớn có sử dụng database là MongoDB.

Truy cập website tại: https://www.mongodb.com/atlas/database

2. InfinityFree - Free Website Hosting

Trang web cho phép bạn tạo website miễn phí mà không quảng cáo. Mình đã từng dùng nền tảng này để triển khai bài tập lớn môn công nghệ web và dịch vụ trực tuyến (Github của dự án tại https://github.com/trannguyenhan/selling-computer), đã hơn 2 năm mà website vẫn còn được giữ trên nền tảng này.

Tuy nhiên, thì nền tảng chỉ cho phép triển khai với ngôn ngữ lập trình PHP và cơ sở dữ liệu MySQL và tối đa 3 website trên 1 tài khoản.


Truy cập website tại https://www.infinityfree.com/

3. Proxy Free

Proxy là một phần không thể thiếu khi bạn làm các bài tập lớn liên quan tới thu thập dữ liệu từ internet. Một số môn học có yêu cầu là nhập môn khai phá dữ liệu một số thầy/cô có thể yêu cầu các bạn tự thu thập dữ liệu cho mô hình, tích hợp dữ liệu và đặc biệt là nhập môn khoa học dữ liệu cần phải làm một luồng từ đầu tới cuối về thu thập, xử lý và xây dựng mô hình.

Một website cung cấp proxy uy tín mà mình hay sử dụng là https://www.webshare.io/, website cung cấp miễn phí 10 proxy để để sử dụng trong bài tập lớn môn học. 

Ngoài ra, nếu có nhu cầu lớn hơn bạn cũng có thể tham khảo thêm về các dịch vụ trả phí mà website cung cấp, tất cả đều rất rẻ so với những nhà cung cấp khác. Ở trường hay ở cty mình cũng thường xuyên sử dụng proxy trên đây.



10/01/2023

Những gì sắp tới mình sẽ viết và chia sẻ trên Blog? Xa hơn việc chỉ chia sẻ tài liệu | Sharing


Chắc nhiều bạn biết tới https://www.tailieubkhn.com/ qua những bài viết về tài liệu học tập, chia sẻ một ít source code các môn học như thuật toán ứng dụng, kỹ thuật lập trình,... Một số các chia sẻ của mình về môn học, trải nghiệm khi đi học hay là các kiến thức thú vị xung quanh. Nhưng mà tài liệu thì cũng có hạn và chắc là cũng tới lúc phải hết thôi, các bài viết về tài liệu các môn học mình sẽ CẬP NHẬT trực tiếp vào các bài viết đấy khi có những tài liệu mới và phù hợp với môn học, các bạn hãy cứ theo dõi các bài viết để cập nhật thêm những thông tin mới nhất mà mình update.


Các bài viết gần đây của website các bạn đang thấy là nó đi vào một số hướng hẹp hơn, ví dụ như là chỉ một chủ đề nhỏ thôi Pull down refresh và Pull up loading, đây chỉ là một câu hỏi trong môn phát triển ứng dụng đa nền tảng hay là việc cài đặt các CTDL ở 3 bài viết trước bài viết này cũng chỉ là 3 bài tập nhỏ trong môn CTDL&TT mà một số thầy cô yêu cầu... Và đây cũng là hướng đi sắp tới của Blog, mình sẽ đi sâu hơn nữa vào các vấn đề cụ thể, ngoài ra mình cũng sẽ chia sẻ nhiêu hơn về cuộc sống đi làm và cuộc sống đi học là trải nghiệm của chính bản thân mình.

Một điều nhỏ nhoi muốn gửi gắm tới mọi người, Blog của mình có đặt quảng cáo và mình đã cố gắng chèn những quảng cáo vào vị trí thích hợp nhất để không ảnh hưởng gì tới mọi người khi truy cập website và không bao giờ dùng những quảng cáo cả trang khi chuyển trang gây khó chịu cho các đọc giả. Mong rằng những quảng cáo mình đặt trên website không gây ảnh hưởng tới trải nghiệm của các bạn, nếu có thể các bạn có thể click vào các banner quảng cáo để mình có thêm kinh phí để gia hạn domain, một cốc cafe,... Rất cảm ơn các bạn  thời gian qua đã ủng hộ Blog của mình.

Tác giả: trannguyenhan

1/17/2023

What’s the Best Programming Language to Learn? | Sharing


Chúc mừng năm mới 2023, mình xin chúc toàn bộ đọc giả của tailieubkhn có một năm mới thuật lợi, dành dựt được nhiều học bổng, học thêm được vô vàn kiến thức, vân vân và mây mây. Lâu lắm rồi mình mới quay trở lại blog, bỏ bê cũng khá lâu và hôm nay nhân dịp một trong những ngày đầu năm 2023 mình muốn chia sẻ quan điểm của mình về một chủ đề mình nghĩ cũng khá thu hút là: đâu là ngôn ngữ lập trình đáng học nhất năm? Mình không nhắc tới năm 2022 hay 2023 vì mình nghĩ bài viết sẽ giúp ích cho các bạn dù cho đang ở năm nào đi nữa.

Nếu các bạn theo dõi nhiều các bài viết của HUST & PI thì chắc nhiều bạn cũng biết quan điểm của mình là chúng ta nên học những cái gốc dễ, hiểu những cái gốc dễ như là cấu trúc dữ liệu và thuật toán, lập trình hướng đối tượng, kỹ thuật lập trình, mạng máy tính,... Khi hiểu rõ, nắm bắt được các kiến thức trên thì việc tiếp cận với từng ngôn ngữ lập trình các bạn sẽ thấy điều đó là cực kỳ dễ dàng. 

Tuy nhiên thì chắc chắn rồi, mỗi lập trình viên phải biết và thành thạo ít nhất một ngôn ngữ lập trình, không thì phát triển ứng dụng như thế nào, đúng không! Vậy thì học ngôn ngữ gì?

Có bao giờ bạn tự hỏi rằng tại sao lại có nhiều ngôn ngữ lập trình như vậy không? Tại sao không thống nhất chúng lại thành một ngôn ngữ lập trình duy nhất để cho lập trình viên dễ học và dễ sử dụng hơn. Mình sẽ giải thích với hai ý như sau: 

- Đầu tiên là mỗi ngôn ngữ lập trình được phát triển bởi những người/nhóm người khác nhau vì thế việc gộp vào chưa chắc đã dễ dàng hay tóm gọn lại là khó khăn.

- Tiếp là, mọi thứ sinh ra thì đều có những ý nghĩa của nó, các ngôn ngữ lập trình cũng vậy, mỗi ngôn ngữ lập trình sẽ sinh ra để giải quyết một vấn đề riêng và việc gộp lại chưa chắc đã tốt, vì khi gộp toàn bộ lại thành một thì chúng ta sẽ có một ngôn ngữ khổng lồ với bộ biên/phiên dịch cực lớn mà rõ ràng với những vấn đề cụ thể thì chúng ta chỉ cần một ngôn ngữ tương ứng để giải quyết vấn đề đó. Vậy lúc này thay vì gọt quả táo chúng ta chỉ cần con dao gọt hoa quả là được thì chúng ta lại cầm hẳn con dao thịt lợn để gọt quả táo đó, xong thì cũng xong thôi nhưng chắc chắn thời gian gọt sẽ lâu hơn, quả táo gọt ra sẽ không đẹp và tròn, chúng ta còn vất vả trong việc cầm con dao để gọt quả táo nữa.

Điểm qua một số ngôn ngữ phổ biến thì có thể thấy Python là một ngôn ngữ ngắn gọn, cú pháp gần gũi, phù hợp với các nhà toán học hay các nhà phân tích dữ liệu để họ có thể biểu diễn một cách dễ dàng các công thức toán học sang ngôn ngữ lập trình. Javascript là một ngôn ngữ bất đồng bộ và chỉ chạy đơn luồng. C/C++ giúp lập trình viên tự quản lý và phân chia bộ nhớ, với C/C++ lập trình viên có thể "thao túng" máy tính ở mức độ khá thấp (có rất nhiều người vẫn coi C/C++ là một ngôn ngữ lập trình bậc thấp hoặc bậc trung). Java thì lại là một ngôn ngữ 100% hướng đối tượng, hướng tới việc viết một lần và chạy trên nhiều nền tảng. PHP là một ngôn ngữ khá dễ dàng trong phát triển các trang web...


Bây giờ chúng ta sẽ quay lại câu hỏi ở đầu bài viết, Vậy thì học ngôn ngữ gì?, và câu trả lời dưới đây là quan điểm của riêng mình về vấn đề này.

Mình sẽ đưa ra một số các gạch đầu dòng về tiêu chí để chọn ngôn ngữ lập trình như sau:

- Một là về chuyên ngành mà bạn theo đuổi. Như mình nói bên trên thì mỗi ngôn ngữ lập trình sinh ra để giải quyết một số vấn đề cụ thể vì thế khi bạn quyết định chọn một chuyên ngành hẹp thì hãy chọn một ngôn ngữ lập trình mà cộng đồng trong đó sử dụng phổ biến vì chắc chắn là nó phù hợp đã, phù hợp thì nó mới phổ biến, tiếp là sẽ có một cộng đồng mạnh hỗ trợ, có nhiều các hướng dẫn trên Google hay StackOverFlow. Một số đại diện tiêu biểu mà mình đưa ra là: 

    - Web Frontend: Javascript, HTML, CSS

    - Web Backend: Hầu như mọi ngôn ngữ lập trình đều có thể làm được web backend, tùy mục đích của bạn để chọn ngôn ngữ cho phù hợp. Nếu như bạn muốn làm một hệ thống chat realtime thì có thể nghĩ tới Nodejs. Nếu như bạn đang chuẩn bị làm một hệ thống thanh toán thì có thể nghĩ tới Java. Nếu như trang web của bạn là một trang web nhỏ, thuần là web bán hàng thì có thể sử dụng PHP,...

    - Game: C/C++, Java, C#

    - AI, Khoa học dữ liệu: Python và 1 số ít là Java

    - Nhúng, IoT: C/C++

    - ...

-  Hai là về độ hot của nó hiện tại hay chính là nhu cầu của thị trường hiện tại. Các doanh nghiệp và nhất là các doanh nghiệp Việt Nam thì thường chạy theo trend khá nhanh. Vì đa số các doanh nghiệp Việt Nam là làm outsource nên họ sẽ sử dụng các công nghệ mới nhất để có thể hỗ trợ tối đa trong việc phát triển, vì thế việc chọn một ngôn ngữ được nhiều lập trình viên sử dụng hay nhiều nhà tuyển dụng đăng tuyển thì sẽ là một lợi thế lớn cho mọi người. Để biết ngôn ngữ lập trình nào đang hot, đang top, các bạn có thể tham khảo một số bảng xếp hạng sau: 

    1. PYPL (The PopularitY of Programming Language): bảng xếp hạng này dựa trên việc theo dõi tìm kiếm của từ khóa "[language] tutorial" (hướng dẫn học [ngôn ngữ]) trên Google. Bảng xếp hạng này rất tốt cho việc thống kê xem có bao nhiêu lập trình viên đang tiếp cận một ngôn ngữ mới.

    2. TIOBE INDEX: cũng giống với PYPL, TIOBE cũng dựa trên việc tìm kiếm để xác định sự phổ biến của một ngôn ngữ

    3. IEEE SpectrumIEEE kết hợp dữ liệu từ khắp nơi trên Internet để xác định ngôn ngữ nào đang phát triển. Bạn thậm chí có thể sắp xếp danh sách của họ theo xu hướng, tìm kiếm việc làm hoặc xếp hạng tùy chỉnh

    4. Stackoverflow Developer SurveysMỗi năm, StackOverflow, một trang web hỏi đáp rất phổ biến dành cho các nhà phát triển, tổ chức một cuộc khảo sát người dùng. Tại đây, bạn có thể tìm thấy các ngôn ngữ phổ biến nhất được các nhà phát triển như bạn sử dụng, cũng như các công nghệ được mong muốn nhất và thậm chí bị ghét nhất.

- Ba là độ yêu thích của bạn với ngôn ngữ đó. Ví dụ như mình là người yêu thích sự chặt chẽ, rõ ràng nên mình khá thích Java và khá ghét Javascript. Dĩ nhiên ghét hay thích còn tùy thuộc vào khi bạn tiếp cận với chúng nữa.

Cuối cùng, với mình thì lập trình viên nên có cho mình một ngôn ngữ tủ và bạn có thể học thêm một vài các ngôn ngữ tùy trường hợp và sở thích. Chúc mọi người một năm mới vui vẻ!

Tham khảo: https://torquemag.io/

8/27/2022

Cơ sở dữ liệu điện tử thư viện Tạ Quang Bửu | Sharing


Lâu rồi, hôm nay mình mới quay lại đăng bài trên website, hôm nay không phải là một bài viết về môn học hay gì đó liên quan tới lập trình, bài viết này được Hỗ trợ Sinh viên Bách khoa đăng trên fanpage về các nguồn cơ sở dữ liệu điện tử của thư viện Tạ Quang Bửu. Khi đọc dược bài viết của fanpage Hỗ trợ sinh viên Bách Khoa rất nhiều bạn rất tiếc là không được biết tới sớm hơn, cũng một phần vì do fanpage của thư viện Tạ Quang Bửu ít được mọi người chú ý mà khi Hỗ trợ Sinh viên Bách Khoa đăng lại mọi người mới biết tới nhiều hơn. Mình thấy đây là một nguồn dữ liệu cực kì hữu ích cho mỗi bạn sinh viên mà lại ít người biết tới nên muốn chia sẻ lại để lưu lại cũng như nhiều bạn sinh viên biết tới hơn.

Thư viện Tạ Quang Bửu đang có cơ sở dữ liệu sau:

Lưu ý: mỗi cơ sở dữ liệu này đều chỉ có thể sử dụng trong thời gian bạn là sinh viên, vì vậy nếu có ý định nghiên cứu, tìm hiểu thì hãy sử dụng nó ngay đi, thời gian trôi qua sẽ là không thể lấy lại.

Fanpage chính thức của thư viện Tạ Quang Bửu - đại học Bách Khoa Hà Nội: fb.com/TQB.library

6/10/2022

Pull down refresh và Pull up loading | Phát triển ứng dụng đa nền tảng - Sharing



Pull down refresh

Kiểu kéo để làm mới (hoặc vuốt để làm mới - pull down refresh) cho phép người dùng kéo xuống danh sách dữ liệu bằng cách sử dụng thao tác chạm để truy xuất thêm dữ liệu. Cử chỉ “Kéo để làm mới” được Loren Brichter giới thiệu lần đầu tiên trong ứng dụng Tweetie và nhanh chóng nó trở nên phổ biến đến mức vô số ứng dụng đã áp dụng cử chỉ này. Ngày nay, tính năng "kéo để làm mới" là một phần tự nhiên của nhiều ứng dụng phổ biến, bao gồm Twitter, Gmail, Tweetbot và những ứng dụng khác. 

Cách hoạt động: một chỉ báo làm mới ( mũi tên vòng tròn) xuất hiện để báo hiệu cho người dùng hành động kéo xuống này sẽ làm mới lại màn hiện tại. 

Pull down refresh hoạt động tốt cho danh sách, danh sách dạng lưới hoặc bộ sưu tập được sắp xếp theo nội dung gần đây nhất, vì thế thao tác pull down refresh thích hợp trong các trường hợp như là bảng tin Facebook hay Twitter, Inbox messenger,… 

Các trường hợp không thích hợp sử dụng:  

+ Bản đồ: vì bản đồ không có hướng xác định 

+ Danh sách không có thứ tự: vì việc danh sách không có thứ tự thì làm mới sẽ không mang lại được tác dụng gì 

+ Các ứng dụng hoặc màn hình mà có tỉ lệ cập nhật thông tin thấp hoặc không thường xuyên 

+ Dữ liệu sắp xếp theo thứ tự thời gian: nên có nút làm mới vì khi sắp xếp theo thứ tự thời gian người dùng sẽ kéo từ trên xuống để xem và khi đó việc kéo lên cùng để làm mới là khó khăn 

+ Một số dạng nội dung đặc biệt khác 

Pull up loading

Pull up loading hay là lazy loading là một cách tốt để cải thiện trải nghiệm người dùng, lazy loading trì hoãn tải hoặc khởi tạo tài nguyên hoặc đối tượng cho đến khi chúng thực sự cần thiết. Ví dụ: nếu một trang web có hình ảnh mà người dùng phải cuộn xuống để xem, chúng ta có thể hiển thị trình giữ chỗ và chỉ tải hình ảnh đầy đủ một cách chậm rãi khi người dùng đến vị trí của trang đó. Hoặc là bảng tin facebook, facebook chỉ tải 1 số status và khi người dùng kéo xuống mới tiếp tục tải những status khác. 

Lợi ích của pull up loading: giảm thời gian tải ban đầu, bảo toàn băng thông, bảo tồn tài nguyên hệ thống 

Pull up loading sử dụng trong các trường hợp mà ứng dụng có nhiều thông tin mà việc tải ngay ban đầu có thể gây mất thời gian hoặc quá tải, sử dụng trong các trường hợp danh sách mà các phần tử cũ hơn ít được xem xét đến, hoặc là trường hợp mà nội dung thay đổi như là bảng tin facebook, twitter. 

Pull up loading là rất tốt để giảm băng thông tuy nhiên không lên quá lạm dụng, trong các ứng dụng có ít thông tin hoặc các ứng dụng mà nội dung ít thay đổi. 

Trong React Native 

Pull down refresh: Chức năng Kéo để Làm mới được triển khai bằng cách sử dụng thành phần RefreshControl trong React Native. RefreshControl được sử dụng bên trong ScrollView hoặc ListView để thêm kéo để làm mới chức năng. Khi ScrollView ở scrollY: 0, vuốt xuống sẽ kích hoạt sự kiện onRefresh. 

Pull up loading: Đặt vị trí ban đầu của Hình ảnh trong ScrollView, Theo dõi vị trí hiện tại của page offset, Thay đổi trạng thái khi page offset đến gần  

Trong Flutter

Pull down refresh: Đặt ListView, GridView… bên trong Widget RefreshIndicator, thuộc tính onRefresh: mô tả cách thức chương trình refresh dữ liệu. 

Pull up loading: Sử dụng ListView.builder, GridView.builder… thuộc tính controller của của ListView.builder… sẽ thực hiện việc load các dữ liệu khi người dùng thực hiện thao thác cuộn màn hình. 

5/08/2022

Các điểm nhấn trong cú pháp của ES6 | Phát triển ứng dụng đa nền tảng - Sharing


Trong phát triển ứng dụng đa nền tảng các bạn sẽ được đề cập tới 2 framework đa nền tảng mobile nổi tiếng nhất hiện nay đó là React NativeFlutter. Với React Native việc nắm vững Javascript và những cú pháp mới trong ES6 là điều rất cần thiết. Trong bài viết này mình muốn viết về những điểm nhấn trong cú pháp của ES6, bài viết được tham khảo trong chương 4, phần 1.2 của slide bài giảng phát triển ứng dụng đa nền tảng sẽ được chia sẻ ở những bài viết sau trên blog của mình và đã được bổ sung và sửa đổi một số kiến thức cho đầy đủ hơn.

Từ khóa let và const

Trong ES5, chúng ta định nghĩa 1 biến sử dụng từ khóa var, phạm vi của biến khi sử dung var để khai báo sẽ chỉ có 2 trường hợp là global hoặc local. Khi chúng ta định nghĩa biến ngoài một hàm thì nó là biến global, còn khi chúng ta định nghĩa biến ở bên trong hàm thì nó là một biến local.

Trong ES6 giới thiệu cho chúng ta một từ khóa let giúp cho việc khai báo biến chạy trong một block (block ở đây được hiểu như là giới hạn trong 2 dấu "{}")

Ví dụ: 

let x = 10;
if (x == 10) {
    let x = 20;
    console.log(x); // 20:  reference x inside the block
}
console.log(x); // 10: reference at the begining of the script

Chúng ta có thể thấy biến x được khai báo mới trong block if hoàn toàn được khai báo mới chứ không hề liên quan gì tới biến đã được khai báo ở ngoài. Việc này cũng giúp chúng ta tránh nhầm lẫn trong việc sử dụng tên biến hơn và cũng giúp Javascript gần hơn với các ngôn ngữ khác.

ES6 cũng cung cấp một cách định nghĩa hằng số sử dụng const. const keyword dùng để định nghĩa các biến chỉ đọc và tham chiếu tới một giá trị.

Các biến được khai báo bởi từ khóa let là mutable (có thể thay đổi), còn các biến khai báo bởi từ khóa const là immutable (không thể thay đổi).

Vòng lặp for...of

Cú pháp mới for...of giúp lặp một cách dễ dàng hơn trên các đối tượng có thể lặp lại như là: mảng, string, map, set,...

Ví dụ: 

let scores = [80, 90, 70];

for (let score of scores) {
    score = score + 5;
    console.log(score);
}

Template literals

Trước ES6, chúng ta sử dụng dấu ngoặc đơn (') và ngoặc kép (") để biểu thị cho string javascript, và string bị giới hạn rất nhiều chức năng. 

Với template literals chúng ta có thể làm nhiều hơn với một string như là: 

- Khai báo và sử dụng string có thể kéo dài trên nhiều dòng

- Thực hiện nội suy cho phép nhúng các biến hoặc biểu thức vào chuỗi 

- An toàn khi chèn vào các mã HTML

Template literals được đặt trong 2 dấu (``), ví dụ: 

let str = `Template literal in ES6`;

console.log(str);// Template literal in ES6
console.log(str.length); // 23
console.log(typeof str);// string

Arrow Function

Cú pháp mũi tên (=>), đây như là một cách viết gọn hàm lại. Ví dụ với một hàm bình thường như sau: 

let add = function (x, y) {
	return x + y;
};
console.log(add(10, 20)); // 30

Chúng ta có thể viết gọn lại với cú pháp của arrow function như sau: 

let add = (x, y) => x + y;
console.log(add(10, 20)); // 30;

Một số trường hợp chúng ta có thể viết gọn lại hơn nữa arrow function, khi danh sách tham số chỉ có 1, chúng ta có thể bỏ qua dấu ngoặc đơn: 

(singleParam) => { statements }
singleParam => { statements }

Tuy nhiên nếu hàm không có tham số thì cặp dấu ngoặc đơn là bắt buộc sử dụng: 

() => { statements }

Nếu chỉ có một biểu thức trong nội dung của arrow function thì chúng ta có thể bỏ qua dấu ngoặc nhọn: 

let square = x => x * x;

Giá trị mặc định cho tham số

Ví dụ: 

function say(message='Hi') {
    console.log(message);
}

say(); // 'Hi'
say('Hello') // 'Hello'

Xây dựng các Class

Trước ES6, Javascript không có khái niệm về class, mà để bắt chước một class thì chúng ta có thể sử dụng constructor/prototype pattern

Ở ES6, khái niệm class đã được giới thiệu và đây chắc chắn là những tin vui cho những ai fan của hướng đối tượng: 

class Person {
    constructor(name) {
        this.name = name;
    }
    getName() {
        return this.name;
    }
}

Module

- Mỗi module được biểu diễn bằng một thẻ .js riêng biệt 

- Lệnh import hoặc export trong một module để xuất hoặc nhập các biến, hàm, class hoặc bất cứ một thực thể nào đến từ một module hoặc tệp khác

Ví dụ, tạo một file message.js có nội dung như sau: 

export let message = 'ES6 Modules';

Để sử dụng biến message trong một file khác, chúng ta có thể sử dụng cú pháp import như sau: 

import { message } from './message.js'

Rest Parameters

- Truyền vào lượng tham số tùy ý cho hàm dưới dạng mảng

- Thêm vào phía trước tham số toán từ ... (dấu ba chấm)

function sortNumbers(...numbers) {
    return numbers.sort();
}
console.log(sortNumbers(3, 5, 7));
console.log(sortNumbers(3, 5, 7, 1, 0));

Toán tử Spread

Toán tử spread (tức là chia nhỏ) một mảng và chuyển các giá trị vào hàm được chỉ định.

const odd = [1,3,5];
const combined = [2,4,6, ...odd];
console.log(combined);

// => output: [ 2, 4, 6, 1, 3, 5 ]

function f(a, b, ...args) {
	console.log(args);
}

f(1, 2, 3, 4, 5);

// => output: [ 3, 4, 5 ]

Phép gán hủy cấu trúc

Biểu thức giúp dễ dàng trích xuất các giá trị từ mảng hoặc thuộc tính từ các đối tượng, thành các biến riêng biệt bằng cách cung cấp một cú pháp ngắn gọn.

let colors = ["Xanh", "Đỏ"];
let [a, b] = colors;

Tham khảo: https://www.javascripttutorial.net/es6/

4/10/2022

Sinh viên CNTT kiếm tiền như nào? | Sharing


Sinh viên CNTT thì kiếm tiền như nào? Chắc hẳn là nhiều người sẽ có câu hỏi như vậy khi bắt đầu bước lên đại học và trong các năm học sau đó. Nếu các bạn lên Google và tìm kiếm thì chắc chắn ra rất nhiều kết quả với những công việc khác nhau. Trong bài viết này mình muốn chia sẻ thực tế về những gì mà bản thân mình đã làm hoặc những bạn bè thân thiết của mình từng làm để kiếm thêm thu nhập trong khoảng thời gian là sinh viên.


1. Làm gia sư

Khi còn là sinh viên năm 1-2, kiến thức chuyên ngành bạn chưa có nhiều, trong khi đó bạn vừa phải học các môn đại cương trên trường và những kiến thức từ cấp 3 vẫn còn nắm vững thì làm gia sư là một công việc rất hợp lý.

Gia sư nói chung là một công việc không quá vất vả, nhưng cũng đem lại nguồn thu nhập cũng gọi là ổn định cho các bạn sinh viên. Tuy nhiên mình cũng xin lưu ý tới các bạn khi nhận các lớp, nếu nhận được lớp dạy từ người quen hay bạn bè thì tốt, còn không nếu nhận lớp từ trung tâm thì nên tìm hiểu xem trung tâm đó có uy tín hay không, xem những review về trung tâm trên facebook trước khi cọc tiền. Nói đi cũng phải nói lại, các bạn đi dạy học hãy có một thái độ tốt, chuẩn bị tốt trước khi đi dạy, báo cáo tình hình học tập thường xuyên của học sinh cho phụ huynh. Khi các bạn dạy tốt lúc đó các bạn sẽ được các phụ huynh giới thiệu cho nhau để tới kèm con/em họ, khi đó các bạn còn có thể có lớp dạy mà không cần mất phí tìm lớp qua trung tâm.

2. Giải bài tập thuê trên các ứng dụng online

Cái này thì hình thức nó gần giống gia sư nhưng tự chủ được thời gian hơn một tí, các bạn có thể làm lúc nào các bạn thích. Thu nhập thì chưa chắc đã ổn định tùy vào mức độ chăm chỉ giải bài của bạn.

Trên mạng thì có rất nhiều app kiểu này, mình và một số bạn mình đã từng làm qua một app cũng khá ổn các bạn có thể tham khảo: QUANDA.

3. Đi thực tập

Khi vào tầm cuối năm 2, hoặc là năm 3, 4 lúc đó các bạn có thể nghĩ tới việc đi thực tập tại các công ty. Việc thực tập vừa giúp bạn học hỏi thêm kiến thức, văn hóa ở các công ty cũng giúp bạn có thêm một phần thu nhập từ tiền trợ cấp/lương từ công ty đó. Hầu hết các công ty công nghệ đều sẵn sàng trả cho các thực tập một mức trợ cấp/lương tầm 1-2-3-4 triệu mặc dù đa số các bạn chỉ vào công ty để học hỏi mà chưa đóng góp được gì cho công ty.

Đi thực tập giúp bạn vừa học hỏi được nhiều kiến thức mà cũng giúp bạn có được một nguồn thu nhập ổn định.

4. Làm freelancer

Công việc này đòi hỏi bạn phải có kinh nghiệm, kỹ năng rồi nên mình cũng ghi chú ở đây là dành cho các sinh viên tầm năm 3,4,5 khi mà các bạn đã trang bị cho mình một lượng kiến thức cụ thể và một ít kinh nghiệm khi đi thực tập và làm bài tập lớn trên trường.

Freelancer đơn giản là người ta thuê gì thì mình làm lấy, nhưng mà tìm kiếm các công việc freelancer qua đâu, một số các trang web tìm việc freelancer nổi tiếng tại Việt Nam mà các bạn có thể tìm hiểu như là:

Trên tất cả các kênh này đều lưu lại hồ sơ làm việc của bạn, đây cũng có thể là một vũ khí mạnh mẽ thuyết phục các nhà tuyển dụng sau này khi bạn nộp đơn vào một công ty làm việc.

Ngoài ra, thì bạn có thể nhận các công việc được giới thiệu từ người quen, những người thuê làm đồ án, bài tập lớn trên các group Facebook.

2/20/2022

Sinh viên nên sở hữu cho mình một blog cá nhân? | Share


Sinh viên có nên sở hữu cho mình một blog cá nhân? Với ý kiến của mình thì là có. Nhiều bạn có suy nghĩ: "uồi, viết có ai đọc đâu mà viết", nhưng thế thực sự là sai lầm, viết blog đâu chỉ phải là dành cho mọi người đọc đâu, viết blog đầu tiên là phải viết cho bản thân mình trước.

Đa số chúng ta đều không phải những thiên tài hay là những siêu trí nhớ, vì thế các kiến thức mà chúng ta từng biết, từng được học có thể quên đi vào một ngày nào đó, vì thế bạn viết blog là để lưu lại những kiến thức này để cho sau này bất cứ khi nào cần cũng có thể mang ra tra cứu lại.

Nếu bạn có kiến thức sâu về một phần nào đó như là cấu trúc dữ liệu, blockchain, mạng máy tính, hay là về các ngôn ngữ lập trình như Java, C++, C#,... Việc bạn viết blog chia sẻ về những kiến thức này sẽ giúp bạn có thể hệ thống lại lượng kiến thức này. Khi viết blog bạn sẽ có trách nhiệm hơn về kiến thức của mình, mặc dù là viết cho chính mình đi nữa thì cũng không thể viết lằng nhằng được, khi đó các bạn sẽ tự mình phải Google lại, tìm hiểu lại, xác minh lại kiến thức này đúng và đủ chưa, từ đó cũng sẽ giúp bạn củng cố được kiến thức.

Việc viết ra, viết lại những kiến thức của bạn cũng chính là một lần được học lại.

Trên blog, bạn cũng có thể viết lại những câu chuyện nào đó của bạn ở thời sinh viên, để sau này khi 10-20 năm sau xem lại chúng ta cũng có những kỷ niệm thực sự khó quên.

Viết blog có thể kiếm tiền! Dĩ nhiên là nếu kiếm được tiền thì blog của bạn phải có nhiều lượt xem và chắc chắn rằng lúc đó blog của bạn phải vượt qua mức là viết cho bản thân mình, lúc đó thì mỗi bài viết bạn viết ra sẽ phải cẩn thận hơn, chỉn chu hơn, vì lúc đó mỗi bài viết trên blog của bạn không phải dành cho bạn nữa mà là dành cho mọi người.

Vậy viết blog ở đâu, hiện nay có rất nhiều nền tảng để một người có thể tạo được một blog cá nhân một cách dễ dàng, mình biết đa số các bạn theo dõi website này đều là những sinh viên CNTT, vì thế mình gợi ý tới mọi người một số nền tảng mà dân CNTT hay sử dụng để làm blog cá nhân: 

1. Wordpress

Wordpress là một CMS và wordpress cũng rất là nổi tiếng rồi, trên internet cũng có rất nhiều bài viết nói về wordpress rồi, mình chỉ có một lưu ý là nếu bạn quan tâm tới wordpress thì hãy để ý phân biệt https://wordpress.org/ và https://wordpress.com/. Trong bài viết này hay rất nhiều các bài viết khác trên internet, khi nhắc tới wordpress thì các bạn hiểu rằng là đang nói tới https://wordpress.org/

Với Wordpress bạn hoàn toàn miễn phí khi sử dụng, nhưng bạn sẽ phải mất chi phí thuê hosting và mua tên miền, chi phí cũng khá là đắt đỏ nếu bạn đang là sinh viên. 

2. Github page

Github có lẽ không gì xa lạ với sinh viên CNTT, vậy việc tận dụng github page làm website cá nhân thì phải gọi là nhất cử lưỡng tiện. Với github page thì bạn sẽ có một blog cá nhân với đuôi .github.io, nghe khá là ngầu phải không, dĩ nhiên là bạn có thể thay thế bằng tên miền tùy chỉnh của mình.

Để bắt đầu với github page, hãy xem qua Thiết lập trang GitHub Pages với JekyllJekyllrb là công cụ sinh ra website tĩnh (static website), nói một cách chính xác nhất thì nó là text transformation engine (cỗ máy chuyển đổi text).

Với Jekyll github page bạn có một kho template phong phú, free thao hồ chọn lựa: 

Github page có thể mang lại cho bạn một blog cá nhân đẹp và hoàn toàn free, tuy nhiên thì để sử dụng github page thì bạn cũng cần một số kiến thức để có để chỉnh sửa và quản lý blog của mình.

3. Blogger

Blogger thì dễ sử dụng như wordpress và hoàn toàn miễn phí từ A-Z như github page vậy, blogger như là việc dung hòa giữa 2 ưu điểm của wordpress và github page vậy. Tuy nhiên đây lại là 2 ưu điểm duy nhất mà blogger đem lại. Nhược điểm lớn nhất của blogger chính là blog của bạn nhưng lại không phải của bạn. Mình nói thế nghĩa là sao, khi bạn tạo blog trên blogger thì blog là của bạn nhưng dữ liệu của bạn đang do Google lắm giữ và Google hoàn toàn có thể xóa blog của bạn bất cứ lúc nào nếu bạn vi phạm nguyên tắc, vì thế trong mọi trường hợp nếu sử dụng blogger hãy thường xuyên sao lưu lại dữ liệu của bạn đề phòng trường hợp xấu nhất xảy ra.

4. Viblo

Viblo giống như mạng xã hội công nghệ thông tin vậy, bạn đăng kí tài khoản và viết những bài viết trên nền tảng mà viblo cung cấp. Viblo có sẵn lượng thành viên và lượt truy cập khổng lồ, vì thế khi viết blog trên viblo bạn có thể đem bài viết của bạn ngay tới hàng triệu người. Nhưng dĩ nhiên rồi, bạn viết bạn trên nền tảng của người khác thì ngoài viết bài và viết bài ra thì bạn không thể làm thêm được gì như là việc thay đổi giao diện,...

12/26/2021

LaTeX cho người mới bắt đầu với 7 videos | Kỹ năng


Như các bạn đã biết, Latex là một công cụ soạn thảo các văn bản khoa học chuyên nghiệp, đặc biệt là các công thức Toán học với nhiều công dụng vô cùng hữu ích, có thể chạy hoàn toàn miễn phí trên hệ thống phần cứng và các hệ điều hành khác nhau.

Latex có rất nhiều ưu điểm nội nổi trội so với các công cụ soạn thảo khác, như:

  • Latex tạo ra văn bản chất lượng cao, chuyên nghiệp và đẹp mắt. Văn bản tạo ra bởi Latex có chất lượng in ấn rất cao

  • Hỗ trợ soạn thảo các công thức toán, các hình vẽ, mã nguồn lập trình, tạo các cấu trúc phức tạp như chỉ mục, mục lục, phụ lục, tài liệu tham khảo một cách dễ dàng.

  • Latex tạo ra văn bản có dung lượng tập tin nhỏ, tiện dụng trong việc lưu trữ trong đĩa mềm.

  • Latex cho phép tách nội dung văn bản độc lập ra khỏi hình thức trình bày. Điều này cho phép người soạn thảo chỉ cần tập trung vào nội dung mà không cần tốn thời gian làm đẹp phần trình bày.

  • Latex khắc phục được một số vấn đề của Word: không có sự thông nhất về định dạng trong toàn văn bản, thường có lỗi trong các tham chiếu chéo, khó khăn trong việc gõ các công thức...

  • Latex là phần mềm mã nguồn mở, liên tục được phát triển và cải tiến. Có cộng đồng người dùng rộng khắp trên thế giới và Latex community luôn sẵn sàng giải đáp mọi thắc mắc và khó khăn của bạn qua Internet.

Nếu các bạn theo các con đường nghiên cứu thì LaTeX chính là phần không thể thiếu vì nó là bắt buộc để viết một bài báo khoa học. Ngoài ra, nếu bạn sử dụng LaTeX để làm báo cho cho đồ án môn học hay đồ án tốt nghiệp thì sẽ được đánh giá rất cao (các trường hợp này mình đều đã gặp), báo cáo làm bằng LaTeX đẹp hơn rất nhiều so với một báo cáo bằng Word.

BCH Liên chi đoàn - Liên chi hội Viện Toán Ứng dụng và Tin học cũng đã từng rất nhiều lần tổ chức các khóa học LaTeX BASICS. Nhưng với quan điểm của mình, những thứ kiểu như "cho người mới bắt đầu", "BASICS" thì có thể tự học được, tham gia các khóa học mặc dù được chỉ bảo, hỏi đáp trực tiếp nhưng mất thời gian vào các khóa BASICS là không cần thiết.

LaTeX nó cũng gần giống như các ngôn ngữ lập trình mà các bạn học vậy, muốn sử dụng chúng ta phải cài vào môi trường và có một công cụ soạn thảo trên máy. Tuy nhiên, bây giờ có rất nhiều các trang web hỗ trợ soạn thảo LaTeX online cực kì tiện lợi, một công cụ phổ biến mà mình thấy các thầy/cô cũng thường sử dụng để viết các bài báo là https://www.overleaf.com/. Việc làm việc online cũng đem lại những lợi ích nhất định khi mọi người có thể cùng nhau chỉnh sửa một bài, có thể chia sẻ lẫn nhau xem trước khi xuất bản,...

Overleaf cũng giới thiệu chuỗi 7 video hướng dẫn học LaTeX cho người mới bắt đầu, các bạn có thể tham khảo toàn bộ khóa học TẠI ĐÂY (HUST & PI cũng mong muốn sẽ dịch được phần transcript của các video bài học này sang tiếng Việt để cho mọi người có thể tham khảo dễ hơn, tuy nhiên hiện tại vẫn chưa thể làm được do vấn đề thời gian và nhân lực).

LaTeX video tutorial for beginners: 

Video 1: 

Video 2: 

Video 3: 

Video 4: 

Video 5: 

Video 6: 

Video 7: 


Các công cụ hỗ trợ lateX online nổi tiếng: 

https://www.sharelatex.com/

https://www.overleaf.com/login?