Sáng tạo là gì? Làm thế nào để trở nên sáng tạo
Có thể khi đọc xong tiêu đề, bạn sẽ nghĩ cái thằng này thật vớ vẩn, lập trình thì liên quan quái gì đến sáng tạo? Đây là blog lập trình, thì viết về code đi chứ viết mấy cái thứ hàn lâm vớ vẩn này để làm gì? Bố cứ code đúng logic theo yêu cầu, hoàn thành các task được giao là được chứ gì?
Bạn đã sai.
Bản chất việc tạo ra phần mềm là một quá trình sáng tạo, chứ không phải là “chuyển yêu cầu của cấp trên thành mã máy” như bạn nghĩ. Trong hầu hết các trường hợp, bạn sẽ phải đóng góp ý tưởng cho dự án, vì đến cả ông project owner cũng chỉ tượng tượng chung chung về dự án mà thôi. Tất cả các tính năng, giao diện, UI & UX khi lên wireframe đều thường do các thành viên cùng đóng góp cả.
Tin xấu là không phải tất cả chúng ta sinh ra đã có tư duy suy nghĩ sáng tạo, tin tốt là kỹ năng sáng tạo hoàn toàn có thể học và rèn luyện được. Tin xấu là quá trình rèn luyện tư duy suy nghĩ sáng tạo rất tốn thời gian và công sức phải rèn luyện thường xuyên, tin tốt là nếu bạn đã có lối tư duy sáng tạo, thì hiệu quả công việc sẽ được cải thiện rất, rất nhiều.
Làm thế nào để có ý tưởng
Mỗi người có cách sáng tạo riêng của họ, tuy nhiên tôi bắt đầu luyện cách suy nghĩ sáng tạo bằng cách đơn giản nhất mà tôi đã đọc được trong cuốn sách nào đó :)) . Theo cuốn sách, thì sáng tạo được định nghĩa như thế này: “sáng tạo là quá trình ghép hai hay nhiều đối tượng có sẵn để trở thành một đối tượng mới tốt hơn”. Chỉ là ghép các thứ lại thôi mà, thật dễ dàng phải không? Thằng nào đó đã ghép cái giẻ lau với cây gậy thành cây lau nhà, bố nào đó đã ghép cây bút với cục tẩy thành cây bút chì 2 đầu hiện nay. Trong một thế giới lớn hơn, Google đã ghép cái xe hơi với máy tính và phần mềm để thành xe hơi tự lái nổi tiếng mà chắc bạn cũng đã nghe qua về nó. Phần mềm và ngôi nhà, hai thứ vốn chẳng liên quan gì, nhưng ai đó đã ghép chúng lại để trở thành công nghệ smart home.
Đơn giản phải không? Bạn chỉ cần ghép các thứ lại, và bạn sẽ có những ý tưởng tuyệt vời. Như đã nói ở trên, bản chất việc tạo ra phần mềm cũng là một quá trình sáng tạo, phần mềm cũng được tạo ra từ sự kết hợp những thứ cơ bản như button, label, menu, form … và bạn chỉ việc ghép chúng lại một cách hợp lý nhất, tiện lợi cho người dùng nhất.
Thử ghép các thứ lại với tư duy cảm xúc
Ngược lại với quá trình viết code, để hình thành những ý tưởng hay bạn phải học cách tư duy cảm xúc, mà cái này thì anh em developer chúng ta rất yếu, hãy bỏ qua các rào cản kỹ thuật đang ngăn cản bạn. Không phải chuyên gia Google, chính bạn vẫn có thể nghĩ ra xe hơi tự lái, nhưng bạn lại nghĩ “Không thể làm được thứ thông minh như thế đâu” đã ngăn cản bạn đưa ra ý tưởng của mình. Hãy đưa ra nhiều phương án nhất cho một vấn đề cụ thể, dù nó có điên rồ đến đâu, đó chính là cách mà những công nghệ tiên tiến nhất hiện nay được tạo ra.
Ghi chép lại mọi thứ
Đây là kỹ năng cực kỳ quan trọng, như đã nói ở trên, sáng tạo là ghép lại mọi thứ, vì vậy bạn cần phải có nguồn dữ liệu đủ nhiều để làm “nguyên liệu”. Càng nhiều dữ liệu đầu vào, bạn càng có cơ hội nảy sinh ý tưởng hơn. Kể cả khi bạn có trí nhớ siêu phàm, thì việc nhớ hết chúng rất mất thời gian và dung lượng bộ nhớ :)) Mà ý tưởng thì có thể đến bất kỳ lúc nào, lúc đi ngoài đường, lướt web, đi siêu thị hay đi vệ sinh :)) Đôi khi chúng ta nảy sinh những ý tưởng cực lớn mang tầm thời đại, thì phải ghi chép lại ngay, không thì nó sẽ ra đi mãi mãi. Khi ghi chép được nhiều rồi, lúc rảnh có thể lôi ra xem lại, đánh giá ý tưởng nào tốt, phù hợp với điều kiện hiện tại, mang lại giá trị cao, bạn sẽ không ngờ về “tài năng” của mình cho mà xem.
Câu hỏi nên có trong đầu developer
Thế giới cần những ý tưởng tuyệt vời của bạn, với vai trò là những developer (nhà phát triển) chứ không phải coder (nhà… viết code). Tôi muốn những câu hỏi sau luôn luôn trong đầu bạn:
Câu hỏi 1: Phần mềm ghép với (vật nào đó, sự việc nào đó) thì nó sẽ thành cái gì ?
Ví dụ: Phần mềm mà ghép với trà đá thì sẽ thành cái gì ? Một mạng xã hội dành cho người thích trà đá ? hay một ứng dụng mobile ship trà đá tận nhà…
Câu hỏi 2: Liệu phần mềm có giúp được gì cho vấn đề này không?
Ví dụ: Bạn đi vào một nơi nào đó, lúc trở ra thì đã bị mất đôi dép tổ ong màu vàng gold yêu quý. Liệu phần mềm giúp được gì cho chuyện này ? Một trang web xã hội với tính năng đăng bài tìm đồ bị mất chẳng hạn. Rất nhiều tình huống và vấn đề cụ thể có thể được giải quyết bằng kỹ năng lập trình của bạn.
Những công nghệ hiện đại, những sản phẩm tuyệt vời đều được bắt nguồn từ hai câu hỏi đơn giản trên. Chúc các bạn thành công