Các bài viết ngắn - phần 9
danang.fyi và repo danang-cuisine
Bạn nghĩ sao về việc contribute cho một dự án open source mà không có code? Khi trước mình cứ nghĩ là contributors thì phải code cho dự án cơ, mà thực ra hiểu vậy là sai quá sai. Có rất nhiều dự án open source mà không cần code một dòng nào cả.
À, không liên quan cơ mà bạn đã đến Đà Nẵng chưa?
Giới thiệu đến bạn cuốn sổ tay đồ ăn thức uống Đà Nẵng, danang.fyi do dân địa phương và bạn bè thực hiện.
Bạn sẽ là contributor cho dự án cộng đồng này bằng cách nổ các địa chỉ mà bạn yêu thích ở Đà Thành nhé.
Repo của dự án ở repo
Dự án này nội dung chính nằm ở file README.md, gồm 2 phần chính: Giới thiệu trang web dự án, cách đóng góp và hỗ trợ Danh mục chính bao gồm đồ ăn, cafe, quán bar/pub, spa/massage và đi dạo
Mời bạn ghé trang web https://danang.fyi/ và chia sẻ đến bạn bè cũng như đóng góp cho dự án thú vị này nha.
Databases intro course
Dành hơn tiếng đồng hồ để học cơ bản về Database lấy certificate làm đẹp profile 😎 là rất đáng phải không ?
Giới thiệu đến bạn khóa học “Programming Foundations: Databases”, được miễn phí trên Linkedin Learning
Bạn sẽ được làm quen với:
– Database là gì, Relational Database là gì?
– Database giúp bạn quản lý dữ liệu thực tế như thế nào?
– Cách thiết kế một database dựa trên những dữ liệu thực tế
– Các kiến thức cơ bản về bảng(table), cột dữ liệu(columns/fields), hàng dữ liệu(rows/records), khóa chính(primary key), khóa phụ(foreign keys)
– Các loại data types
– Các mối quan hệ(relationships) giữa các bảng gồm có các kiểu one-to-many, many-to-many, one-to-one
– Cách tối ưu hóa trong thiết kế database
– Các truy xuất dữ liệu(tìm kiếm, lọc, tổng hợp, chỉnh sửa …) trong database với SQL queries
Nếu khóa này trở lại trả phí thì bạn có thể học ở series này về database nhé.
Defensive CSS
Khi viết code HTML/CSS cho một trang web, sẽ có những tình huống không mong đợi xảy ra, ví dụ như: đoạn chữ dài quá kích thước của khung làm chữ tràn ra ngoài, hay kích thước ảnh thay đổi ngẫu nhiên, hay hình nền bị lặp lại khi kích thước hình ảnh nhỏ
Những tình huống như trên đôi khi bản thiết kế không có sẵn, thường sẽ dựa trên kinh nghiệm của Front Developer xử lý, hoặc cho đến khi gặp lỗi(bug) thì phải sửa.
Để chủ động trong những tình huống này, giới thiệu đến bạn một trang chuyên viết về Defensive CSS.
Vậy vì sao Defensive CSS? Hay vì sao viết HTML/CSS cần phải chuẩn bị trước(phòng thủ) có những tình huống như trên có thể xảy ra?
Vì:
– Nội dung trong bản thiết kế có thể thay đổi, tức là nội dung có thể tràn(break) layout
– Hình ảnh có thể có các tỉ lệ khác nhau
– Sử dụng các CSS như flex, grid một cách hiệu quả có thể giảm bug/break layout
– Bản thiết kể chỉ mang tính chất định hướng thiết kế, dữ liệu thật có thể thay đổi, cần học cách viết layout sao cho có thể dễ bảo trì(maintain) và extend(mở rộng)
– Trong đây có nhiều tips như là Flexbox Wrapping, Image Distortion, Long Content, …
Mời bạn vào đọc và xem ví dụ ở đây.
10X developers
Làm việc với lập trình viên hơn 10 năm kinh nghiệm(10x) liệu có chán không?
Bài viết sau nói đến những điều tác giả học từ 10x software developers:
1 Loại bỏ mọi cản trở trên đường, thay vì chỉ nói về nó
Khi những người khác chỉ mải bận nói về vấn đề thì 10x dev sẽ xem đó là thử thách thú vị và tìm cách để giải quyết
2 Vô cùng nghiêm túc và rất chi tiết
Bạn chỉ cần chương trình chạy và đôi khi không rõ lý do? Với 10x dev thì không hề vậy, họ sẽ fix tất cả warning khi chạy code, viết code thật clean và dễ hiểu, giải thích vấn đề chi tiết và hiểu mọi dòng họ viết.
3 Kết hợp giữa CEO và super dev
Nếu giao một việc và bạn nhảy vào code ngay thì hơn 80% là sẽ phải code lại lần nữa. Lý do là super dev suy nghĩ rất nhiều trước khi code, có những trường hợp nào, flow ở đây ra sao, cần thêm những gì, … Và họ tạo file, viết các lớp, phương thức, utils trống để bắt đầu hình dung trước khi đi vào chi tiết. Rồi viết test trước(TDD – Test Driven Development), tất cả fail. Rồi mới thêm chi tiết và làm tất cả test pass.
It’s magic!
Thật là thú vị quá xá khi đọc chi tiết bài viết này về 10x developers
Học giải quyết vấn đề với Leetcode
Bạn muốn học cách giải quyết vấn đề nhưng chưa biết bắt đầu từ đâu? Hay bạn rất thích cấu trúc dữ liệu và thuật toán nhưng chán ngán với mớ sách vở trên trường? Hay bạn cần tìm việc bằng cách luyện giải thuật toán để trả lời các câu hỏi phỏng vấn về kỹ thuật?
Giới thiệu đến bạn một trang mà hầu như ai giải thuật toán hay muốn học về cấu trúc dữ liệu đều sẽ tìm đến, đó là LeetCode.
LeetCode là trang web miễn phí(vài tính năng nâng cao sẽ có phí), nơi bạn có thể luyện đề algorithms cũng như học về các đề tài cấu trúc dữ liệu và thuật toán.
Bạn có thể chọn thử một đề bất kỳ ở mức easy, rồi giải theo ngôn ngữ bạn hay dùng, đó có thể là JS, Python, C++, Go, … Run code rồi submit.
Làm thế sẽ giúp bạn bắt đầu làm quen với các đọc một đề bài, các thông tin liên quan, các gợi ý(nếu có). Khi submit thì LeetCode sẽ chạy phương án code của bạn với bộ test có sẵn(rất nhiều trường hợp) để đảm bảo bạn đưa ra một phương án đủ tốt. Nếu vẫn chưa làm được bạn có thể xem đề bài liên quan đến chủ đề gì rồi tìm chủ để đó để học thêm.
Ngoài ra , trong mục thảo luận của từng bài có rất nhiều các cách giải của những người khác bạn có thể tham khảo để nâng cao dần kỹ năng giải quyết vấn đề. https://leetcode.com/