Tiền đề

Trong quá trình làm việc, giảng dạy hoặc tham gia một số mạng xã hội, mình thường bắt gặp một số bạn sinh viên (thậm chí cả các bạn đã đi làm) đặt ra những câu hỏi như: "lập trình Python sử dụng phần mềm nào ạ", "em đang học Laravel, phần mềm nào tốt nhất?"...vv Mình nghĩ, các bạn bối rối trọng việc chọn các phần mềm hỗ trợ là vì nhiều lý do:

  • Giai đoạn này CNTT quá phát triển, có quá nhiều ngôn ngữ lập trình, mỗi ngôn ngữ lại có nhiều thư viện, framework.
  • Các phần mềm hỗ trợ lập trình viên ngày càng được phát hành nhiều và chất lượng của các phần mềm này ngày càng cao. Khi có quá nhiều lựa chọn, các bạn bị bối rối.
  • Các bạn thường có tâm lý e ngại khi mới học, cần một phần mềm có thể nhắc được tên class, tên hàm...vv

Hy vọng, qua bài chia sẻ nhỏ này của mình, các bạn có thể hiểu hơn về các phần mềm, nhu cầu của bản thân để mạnh dạn hơn khi lựa chọn các phần mềm cho mình.

Text editor

Đúng như tên gọi của nó, đây chỉ là một phần mềm hỗ trợ soạn thảo văn bản với các chức năng hỗ trợ tạo, đọc, chỉnh sửa nội dung và xóa file.

IDE

Là viết tắt của cụm từ Integrated Development Environment (IDE) có thể dịch một cách đơn giản là "môi trường tích hợp phát triển ứng dụng". Đây là một ứng dụng khá phức tạp, tích hợp nhiều công cụ hỗ trợ cho việc phát triển một ứng dụng như:

  • Text editor
  • Trình biên dịch (Compiler) hoặc trình thông dịch (Interpreter)
  • Công cụ gỡ rối (Debugger)
  • Hỗ trợ giả lập (Emulator)
  • Một số tiện ích nâng cao như: kiểm tra bộ nhớ, CPU, RAM...vv
  • ...

Vậy! giờ chọn cái nào?

Việc chọn phần mềm nào tùy thuộc vào bạn, cốt lõi của việc phát triển ứng dụng vẫn là viết code - viết code cũng tương tự như soạn thảo một văn bản thôi, vậy chúng ta sẽ cần tối thiểu một phần mềm giúp soạn thảo văn bản. 

Sau khi mã nguồn đã hoàn chỉnh, chúng cần được thông dịch hoặc biên dịch (tùy vào ngôn ngữ) sang mã máy để hệ thống có thể thực thi được. Quá trình này hơi phức tạp một xíu, đòi hỏi người dùng phải có kiến thức sâu về ngôn ngữ (hiểu được các bước biên dịch hoặc thông dịch), có khả năng sử dụng các dòng lệnh trên terminal (CMD)

Ví dụ: bạn có thể dễ dàng thực thi 1 file mã nguồn Python bằng lệnh trên terminal, nhưng nếu không hiểu rõ, bạn sẽ gặp nhiều bối rối.

Trên hệ thống của mình, cài nhiều hơn 1 phiên bản Python, nếu không nắm rõ bạn sẽ rất bối rối

Trên hệ thống của tôi, cài nhiều hơn 1 phiên bản Python, nếu không nắm rõ bạn sẽ rất bối rối 

Nhưng, nếu bạn biết chính xác bạn cần làm gì, thì mọi thứ trở nên đơn giản hơn.

Screen Shot 2019-11-17 at 15.22.26

Tiếp đến, nếu các bạn đã lập trình được một thời gian, thì có lẽ, tất cả chúng ta đều không tin vào câu truyện cổ tích code không có bug. Và những lúc như vậy, chúng ta lại rất cần đến một công cụ hỗ trợ gỡ rối.

Screen Shot 2019-11-17 at 15.39.13

Và cuối cùng, đừng quên một vấn đề quan trọng, phần mềm càng tốt, càng nhiều chức năng lại đòi hỏi cấu hình máy tính của bạn càng cao.

Rút lại vấn đề, để chọn một phần mềm thích hợp cho việc học hay phát triển dự án của mình các bạn nên dựa vào các yếu tố sau để cân nhắc.

  1. Ngôn ngữ (thư viện, framework) bạn dùng
  2. Bạn phụ thuộc vào phần mềm để biên dịch (thông dịch, đóng gói, triển khai) nhiều đến mức độ nào?
  3. Dự án của bạn có thật sự phức tạp không?
  4. Máy của bạn có khả năng đáp ứng yêu cầu tối thiểu của phần mềm

Ví dụ: Mình sử dụng mabook pro mid 2014, core i5 và 8G Ram

  • Khi mình làm việc với các dự án đơn giản như cắt PSD (chuyển file PSD thành HTML). Mình chỉ cần sử dụng Sublime Text 3 (một text editor có phí, nhưng không trả phí vẫn được sử dụng). Được tích hợp nhiều tiện ích rất hữu ích, có thể tùy chỉnh theme để tạo cảm giác dễ chịu nhất khi làm việc và đặc biệt nó rất rất nhẹ. Với cấu hình của máy mình, chỉ cần tốn chưa tới 1 giây để phần mềm khởi động.
  • Khi mình học hoặc test một phương thức, thuật toán nào đó trên ngôn ngữ Python thì Thonny là một sự lựa chọn tuyệt vời, giao diện đơn giản, chức năng vừa đủ để mình viết code và debug.
  • Và trong nhưng dự án Django thực tế, lượng công việc nhiều và phức tạp hơn. Mình cần rất nhiều sự hỗ trợ từ PyCharm giúp mình viết code, debug theo dõi và quản lý các phiên bản.

Một vài text editor và IDE thông dụng

Cuối cùng, mình sẽ giới thiệu với các bạn một số phần mềm thông dụng, các bạn có thể tham khảo thử.

Text editors:

  • Visual Studio Code
  • Sublime Text
  • Nodepad++
  • Atom
  • Coda
  • Text Wrangler
  • Brackets
  • ... 

IDEs:

  • PHPStorm
  • Eclipse PDT
  • NetBeans
  • Xcode
  • PyCharm
  • ...