Học gì để làm được phần mềm
Bài viết trích từ sách 'Phổ cập lập trình với Swift' giới thiệu các kiến thức kỹ thuật cơ bản cần thiết để phát triển phần mềm. Tác giả trình bày về tầm quan trọng của ngôn ngữ lập trình, IDE, thư viện, framework và platform trong quá trình học và làm phần mềm.

Giới thiệu
Bài viết được trích từ quyển sách Phổ cập lập trình với Swift. Hãy đăng ký để nhận thông tin mới nhất về sách. Ở phần trước, chúng ta đã tìm hiểu học IT là làm gì?
Trong phần này chúng ta sẽ tìm hiểu xem cần phải học gì để làm được phần mềm. Dưới đây đều là kiến thức về mặt kĩ thuật ( chưa nói đến phần kĩ năng mềm ) và ở mức độ cơ bản, ai cũng cần phải biết.
Ngôn ngữ lập trình
Điều đầu tiên và quan trọng nhất để làm được phần mềm là học một ngôn ngữ lập trình. Tùy theo loại phần mềm mà bạn muốn làm là gì, bạn sẽ cần phải học ngôn ngữ lập trình thích hợp. Trong các phần tới, chúng ta sẽ tìm hiểu về ngôn ngữ Swift.
IDE
IDE và viết tắt của từ integrated development environment. Dịch ra là môi trường phát triển tích hợp. Khi làm việc bạn cứ nói IDE là mọi người sẽ hiểu.
Vậy IDE thực chất là gì? IDE là nơi bạn gõ code nè, khi gõ code sẽ có autocompletion, code intelligence để bạn gõ nhanh hơn.
Tính năng sống còn của một IDE
Khi gõ code xong, IDE sẽ giúp bạn dich code ( compiling ) sang mã máy và hỗ trợ phát hiện lỗi ( debugging )
Ngoài ra IDE còn hỗ trợ làm giao diện ( UI ), kết nối cơ sở dữ liệu, vv
Xcode hỗ trợ xây dựng UI cho ứng dụng di động
Học IDE là điều bắt buộc để phát triển phần mềm. Lại một lần nữa, tùy theo bạn phát triển phần mềm sẽ phải xử lý loại IDE khác nhau.
Một số IDE phổ biến: Visual Studio, Android Studio, Eclipse, vv
Thư viện ( Library )
Hầu như mỗi ngôn ngữ đều có hỗ trợ nhiều bộ thư viện phong phú và đa dạng. Thư viện bao gồm nhiều hàm thực hiện một tính năng nào đó đã được viết sẵn. Công việc của lập trình viên là hiểu và xử dụng thư viện đó.
Chẳng hạn lập trình viên cần viết ứng dụng Camera 360 sẽ xài thư viện xử lý ảnh. Trong thư viện xử lý ảnh này sẽ có nhiều hàm liên quan như chỉnh độ sáng của ảnh, crop ảnh, thêm hiệu ứng cho hình,vv
Framework
Định nghĩa dễ hiểu: Framework như là bộ xương, còn việc của lập trình viên là đắp thịt vào bộ xương này để hoàn thiện một cơ thể ( ứng dụng ). Phần thịt sẽ liên kết với phần xương để cơ thể ( ứng dụng ) có thể hoạt động được. Nếu không có bộ xương thì lập trình viên phải làm mọi thứ từ đầu rất mất thời gian.
Nhờ có framework, công việc của lập trình viên đã dễ dàng hơn
Định nghĩa khoa học: Framework là tập hợp của nhiều thư viện (Library). Khác với thư viện chỉ tập trung vào một chức năng cụ thể như thư viện chỉnh sửa ảnh, thư viện âm thanh,vv. Framework tập trung vào tổng thể kiến trúc để xây dựng phần mềm.
Ví dụ .NET framework, Spring framework
Platform
Khác với framework, platform bao gồm cả phần cứng/phầm mềm để chạy ứng dụng. Chẳng hạn bạn đang xây dựng ứng dụng mạng xã hội, bạn cần thuê một server để users có thể kết nối lại với nhau.
Sẽ có những platform hỗ trợ bạn việc này. Bạn không cần phải tự mua máy chủ, tự cài đặt,vv. Không những các platform sẽ cung cấp phần cứng cho bạn mà còn cung cấp luôn phần mềm để bạn kết nối users lại với nhau.
Ví dụ: Heroku, Amazon Web Services, Google App Engine, IBM Bluemix
Lời kết:
Thực chất đây chỉ là phần tóm gọn những gì bạn cần học. Nó cũng như điều kiện cần , không phải điều kiện đủ. Để làm được phần mềm, bạn cần phải học thêm nhiều kĩ năng khác.
Tuy nhiên, như bạn thấy, kĩ năng quan trọng và đầu tiên nhất ai cũng phải học là lập trình. Vì thế chúng ta cần học một ngôn ngữ lập trình trước tiên. Trong các bài tới, bạn sẽ được giới thiệu về ngôn ngữ Swift.
Related Posts
Discover more content you might enjoy

English Course Challenge in 2 weeks - Day 12: Kinh nghiệm quay khoá học
Bài viết chia sẻ kinh nghiệm quay khóa học tiếng Anh về Bubble.io, bao gồm việc lựa chọn phần mềm Screen.Studio để quay màn hình và tự động tạo phụ đề, những bài học từ việc đặt mục tiêu và xác định đối tượng học viên trước khi chọn nội dung, cũng như lợi ích của việc thử thách bản thân để vượt qua nỗi sợ và hoàn thành dự định. Tác giả cũng giới thiệu khóa học 'Build your first web app in Bubble for beginners' dành cho người mới bắt đầu.

English Course Challenge in 2 weeks - Day 7: Fine-tuning ChatGPT là gì?
Bài viết chia sẻ tiến trình ngày thứ 7 trong thử thách tạo khóa học tiếng Anh trong 2 tuần. Tác giả giới thiệu về Fine-tuning ChatGPT, một tính năng cho phép tạo phiên bản ChatGPT tùy chỉnh dựa trên dữ liệu cung cấp, đặc biệt hữu ích cho chatbot hỗ trợ khách hàng. Bài viết cũng thảo luận về việc điều chỉnh hướng phát triển ứng dụng demo và khóa học, cùng với những khó khăn khi sử dụng API của OpenAI tại Việt Nam.

English Course Challenge in 2 weeks - Day 2: Tiềm năng của Prompt Engineering
Bài viết chia sẻ về việc phát triển ứng dụng SaaS AI demo cho khóa học Bubble, tập trung vào Prompt Engineering - kỹ thuật viết prompt hiệu quả cho AI. Tác giả giới thiệu cấu trúc prompt chuẩn gồm 6 phần: Persona, Context, Task, Format, Examplar và Tone, đồng thời trình bày ý tưởng và mockup cho ứng dụng hỗ trợ người dùng viết prompt tốt hơn, giải quyết vấn đề nhiều người gặp phải khi sử dụng AI.

Đối thoại với AI: Generative AI (AI tạo sinh) và những điều cần biết
Bài viết dạng hỏi đáp toàn diện về AI tạo sinh, bao gồm kỹ thuật viết prompt hiệu quả, cách kiếm tiền từ AI, các nền tảng thay thế Claude AI, chi phí huấn luyện mô hình lớn, và các khái niệm quan trọng như BERT, mô hình tiền huấn luyện cùng những vấn đề đạo đức liên quan.

Day 27 - Profitable MVP in 30 Days - Thử làm app nhảm
Bài viết ngày 27 của thử thách xây dựng MVP có lợi nhuận, tác giả quyết định từ bỏ ý tưởng Group Opener và chuyển sang phát triển một 'app nhảm' - ứng dụng đơn giản, dễ làm nhưng vẫn có tiềm năng sinh lợi nhuận. Bài viết giải thích khái niệm 'app nhảm' là những ứng dụng có tính năng đơn giản, dễ bị đánh giá thấp nhưng thực tế có thể đạt được lượt tải khổng lồ, như các ứng dụng phát âm thanh hài hước hay giả lập uống bia đã đạt hàng chục triệu lượt tải.
