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

Vibe Coding - Code lại blog từ đầu và rebrand thành khoa.blog
Chia sẻ chi tiết quá trình build lại blog từ đầu với vibe coding, từ việc chuyển đổi dữ liệu đến việc triển khai các tính năng mới, giúp người đọc hiểu rõ hơn về quá trình phát triển blog cá nhân.

Dự đoán về Vibe Coding: Cách AI sẽ biến đổi việc tạo ra phần mềm
Phân tích chi tiết cách 'vibe coding' - phương pháp lập trình dựa trên mô tả ý định thay vì viết code trực tiếp - sẽ dân chủ hóa việc phát triển phần mềm, giúp người đọc hiểu rõ hơn về xu hướng công nghệ và tác động của nó đến ngành công nghệ thông tin.

The MVP #1: Làm một trang dạy học trực tuyến cần gì?
Bài viết phân tích những nhược điểm của Udemy và các yêu cầu cần thiết để xây dựng một nền tảng học trực tuyến độc lập.

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.

Làm gì khi không biết làm gì?
Bài viết chia sẻ cách tiếp cận khi đối mặt với tình trạng không biết chọn hướng đi nào trong cuộc sống hay sự nghiệp. Tác giả phân tích nguyên nhân của sự do dự là nỗi sợ chọn sai và thiếu thông tin, đồng thời đưa ra lời khuyên nên tập trung vào những điều đã biết về mục tiêu và sở thích của bản thân, thay vì lo lắng về những điều chưa biết.

Tài sản và dòng tiền (Asset & Cashflow) khác nhau thế nào?
Phân biệt giữa tài sản và dòng tiền trong đầu tư, cách chúng hoạt động và tầm quan trọng của việc xây dựng dòng tiền ổn định.