VnReview
Hà Nội

Vì sao dân thiết kế cũng nên học thêm về lập trình?

Vnreview xin được dịch nguyên văn từ một bài viết của tác giả YoungHwi Cho đăng tải trên trang báo TechInAsia.

> 27 điều bạn sẽ muốn biết khi mới học lập trình

> Phân nửa trong top 10 lập trình viên mảng AI của Trung Quốc là người Mỹ

Liệu một designer có nên học lập trình? Đây là một câu hỏi mà tới nay vẫn chưa có lời giải. Dù cho người ta có quan điểm thế nào, tôi - một designer - vẫn quyết định học lập trình căn bản từ hai năm trước.

Dự án khởi nghiệp của tôi cung chuyên cung cấp dịch vụ trên web và các thiết bị di động, bao gồm một ứng dụng nhắn tin theo vùng miền, một công cụ social marketing tự động và một cộng đồng trực tuyến dựa trên nền tảng blockchain. Lúc đó tôi là người thiết kế sản phẩm và là người đồng sáng lập dự án này cùng với một full-stack developer khác. Công việc của tôi ở công ty không chỉ tập chung vào thiết kế đồ họa hay giao diện người dùng mà tôi còn phải quan tâm tới cấu trúc tổng thể của sản phẩm. Điều này bao gồm việc xác định mong muốn của người dùng, kết nối chúng với giá trị cốt lõi của sản phẩm bằng những tác động trên khuôn mẫu và layout và thiết kế giao diện chung.

Khoảng thời gian ban đầu, công việc này thực sự rất khó khăn đối với tôi và cộng sự bởi tôi hoàn toàn không có chút hiểu biết nào về việc lập trình. Mỗi lần tôi tạo ra một thiết kế mà không cân nhắc về những giới hạn về công nghệ và nguồn lực, chúng tôi đều gặp phải một vài vấn đề nào đó. Và lúc đó, anh ấy thường nói rằng "cái layout này cần phải được chỉnh sửa nhiều hơn để có thể tự linh động với bất kì kích cỡ màn hình nào" hoặc là "iOS không cho phép chức năng này hoạt động".

Nếu bạn là một designer làm việc trong một công ty lớn, có lẽ bạn sẽ chẳng cần biết một chút gì về lập trình. Nhưng thực ra những kiến thức sâu về chuyên ngành sẽ chẳng quan trọng hơn kiến thức về HTML, CSS và Javascript đâu. Tuy nhiên, nếu bạn đang làm việc trong giai đoạn đầu của một dự án khởi nghiệp hoặc bạn là người đồng sáng lập đang làm việc với một developer, biết lập trình là một điều quan trọng giúp thúc đẩy hiệu suất công việc và sự chính xác trong thiết kế của bạn.

Trong bài viết này, tôi muốn bàn luận về những lợi ích của việc designer học lập trình.

Nâng cao tính đơn giản trong giai đoạn thiết kế

Theo quan điểm của tôi, khía cạnh quan trọng nhất của việc thiết kế chính là sự đơn giản. Nhưng nhiều designer lại không hề cân nhắc cái giá mà họ phải bỏ ra với mỗi người sử dụng khi họ tạo ra những thiết kế của mình. Thay vào đó, họ lại tập chung cao độ vào một vẻ đẹp tiêu chuẩn nào đó.

Điều này tương tự với việc khi bạn mua một thứ gì đó. Mang đến cho người dùng giá trị cao nhất có nghĩa là mang đến cho họ sự khác biệt lớn nhất giữa con số mà họ chi trả và những gì họ nhận được. Bỏ ra nhiều tiền để sở hữu một sản phẩm này đó đôi khi không phải là lựa chọn tốt.

Thiết kế sản phẩm trực tuyến cũng tương tự như vậy. Thiết kế tốt không chỉ là về sự thẩm mỹ mà còn là về sự khác biệt giữa giá trị mà người dùng nhận được từ sản phẩm đó và lượng tài nguyên họ sử dụng.

Nếu bạn đã quen với cơ cấu hoạt động của giao diện người dùng bằng những dòng code, bạn có thế tính toán nhiều hơn về lượng tài nguyên mà người dùng sử dụng ngay từ lúc bạn thiết kế sản phẩm của mình. Với tư cách là một designer, bạn sẽ tự mình giải đáp được những câu hỏi như:

  1. Design layout hay thành phần nào sẽ giúp cho trang web của bạn tải nhanh hơn?

  2. Liệu thanh điều hướng này có thể hoạt động trên mọi kích cỡ màn hình không?

  3. Kích cỡ ảnh này có ảnh hưởng tới tốc độ tải trang không nhỉ?

  4. Liệu những nút ấn và ảnh này có bị vỡ hạt trên màn hình retina không?

  5. Trong các trường hợp khác nhau, tôi nên chọn định dạng SVG hay PNG cho các biểu tượng?

  6. Nội dung này sẽ hoạt động tốt nhất trên kiểu hiển thị thông tin nào nhỉ?

Sẽ còn rất nhiều câu hỏi nữa mà bạn có thể tự vấn bản thân khi đã trở nên quen thuộc với việc lập trình. Bằng cách trả lời những câu hỏi trên, bạn có thể giảm thiểu lượng tài nguyên mà người dùng tiêu thụ và mang tới cho họ những giá trị tốt đẹp hơn.

Bạn có thể tự cân nhắc về giới hạn trong lập trình và nguồn tài nguyên

Một designer mà hoàn toàn không có một chút kiến thức nào về lập trình chính là nguyên nhân gây ra sự lãng phí hiệu suất lớn đặc biệt là trong giai đoạn đầu của một công ty công nghệ - khi mà lượng lập trình viên có sẵn trong công ty không lớn. Điều này có thể gây ra những mâu thuẫn nếu bạn thiết kế ra những sản phẩm đòi hỏi nhiều công sức để phát triển.

Nếu bạn đang có ý tưởng thiết kế một chiếc logo động, sau khi chuyển ý tưởng cho phía lập trình viên, bạn có thể sẽ nhận lại được những câu hỏi đầy bực bội kiểu như "cậu có thể làm cho cái logo này đơn giản hơn để chúng ta có thể biến nó thành một file GIF được không? Sẽ phải mất vài ngày để có thể làm nó ‘động đậy' đấy".

Cũng có lúc bạn đang "lạc lối" với việc tạo ra những chuyển động đẹp mắt mà hoàn toàn không nhận ra rằng điều này đòi hỏi nhiều phần tử SVG phức tạp cho mỗi kích cỡ màn hình riêng biệt. Trong khi đó bạn hoàn toàn có thể biến điều này trở nên đơn giản hơn nếu giảm bớt những chuyển động.

Dễ dàng trong việc giao tiếp với những developer khác

Trong thời kì đầu hợp tác tới developer của tôi, chúng tôi đã có rất nhiều những cuộc nói chuyện kiểu như:

Dev: "Tôi sẽ sử dụng ‘aspect ratio constraint'. Cậu có thể cung cấu cho tôi chỉ số lề của nút này được chứ?"

Tôi: "‘aspect ratio constraint' là gì thế?"

Dev: "À, trong Xcode, cậu không cần phải tự thiết kế một thành phần riêng biệt cho nhiều kích cỡ màn hình khác nhau. Cách đơn giản đó chính là sử dụng margin constraint. Tôi chỉ cần thông số…"

Tôi: "?????"

Có nhiều lần người hỏi là anh ấy và đồng thời anh ấy cũng phải giải thích cho tôi toàn bộ về những khái niệm liên quan. Có vài lần anh ấy thà tự làm công việc này một mình hơn là hỏi tôi bởi việc này còn dễ hơn việc giúp tôi hiểu tất cả mọi thứ.

Nếu bạn đã từng học lập trình và muốn tự tay làm một ứng dụng nào đó, bạn có thể hiểu được hầu hết những giai đoạn của việc tạo ra sản phẩm và những khía cạnh của ngôn ngữ lập trình. Hiểu được những điều trên, bạn sẽ có thể dễ dàng giao tiếp với developer từ những việc nhỏ nhặt như cách đặt tên file design cho tới việc lớn như chức năng nào có thể được thêm vào trong nhiều nền tảng khác nhau.

Sẽ có rất nhiều lợi ích khi cho một dự án startup nếu các designer đều biết lập trình. Nhưng điểm tích cực lớn nhất chính là giai đoạn hoàn thiện giao diện người dùng sẽ đơn giản hơn rất nhiều cho cả người dùng và lập trình viên.

Trung Nguyễn

Chủ đề khác