Khoa hoc học lập trình embedded linux
Ngày nay chúng ta có nhiều ngôn ngữ lập trình tiên tiến như Java, C#, Python, Javascript, Go,v.v. để phát triển ứng dụng và có vẻ điên rồ nếu ai đó muốn phát triển ứng dụng Web hoặc dịch vụ phụ trợ bằng ngôn ngữ C/C++ thuần túy. Bởi vì các lĩnh vực ứng dụng đó đã được tiếp quản bởi các ngôn ngữ lập trình tiên tiến hơn như:
Có vẻ như C/C++ hiếm khi được sử dụng trong các lĩnh vực phát triển ứng dụng hiện đại này. 1. Thành thạo các ngôn ngữ lập trình nâng cao khác nhanh hơn
2. Mang lại hiệu suất cao
3. Hiểu rõ các lý thuyết máy tính cơ bản
4. C/C++ tạo sức mạnh cho thế giới
5. Lập trình C/C++ là tiền đề tốt nhất để tiếp cận các ngôn ngữ lập trình khác
FPT Software là một trong những công ty hàng đầu trong lĩnh vực công nghệ thông tin, đặc biệt là trong lĩnh vực lập trình nhúng. Năm 2017 dự kiến FSOFT cần khoảng 500 nhân lực trong lĩnh vực này. Phần mềm cho hệ thống nhúng được gọi là phần mềm nhúng (embedded software) hay firmware. Đó là phần mềm do nhà sản xuất thiết bị cài sẵn vào sản phẩm và chúng được sử dụng ngay cùng với đồ điện tử đó mà không cần có sự cài đặt của người sử dụng Học embedded không khó, cái khó là nó yêu cầu nhiều kiến thức ban đầu để có thể bắt đầu làm việc. Đạt làm Embedded Linux nên chỉ có thể đưa ra một số tài liệu có thể tự học Embedded Linux như sau. Để làm Embedded Linux thì bạn cần phải hiểu về Linux, chọn một distro linux nào đấy mà bạn thấy thích rồi dùng thử. Đạt có viết một trả lời về việc cài đặt Linux cho người lần đầu tiên mới sử dụng. Để tăng tốc độ học Linux và cũng là một yêu cầu cơ bản để trở thành một Embedded Linux Developer bạn phải biết sử dụng command line và viết Shell Script. Quyển The Linux Command Line hướng dẫn bạn rất chi tiết và cơ bản về cách sử dụng Linux Command Linux, chính xác là trên Ubuntu. Để hình dung công việc của một Embedded Linux Programmer phải làm hàng ngày bạn nên đọc Embedded Linux Primer: A Practical Real-World Approach (2nd Edition). Quyển này cho bạn khái niệm cơ bản về thế giới Embedded Linux bao gồm Linux cơ bản, cách hệ thống boot, các script được gọi, cách load firmware, cách debug và một số vấn đề chi tiết nho nhỏ khác. Bạn cần phải biết cách build một hệ thống nhúng, cách tốt nhất là sở hữu một cái board và thực hành. Mình may mắn được học Embedded thông qua công việc hàng ngày nên không phải mua board về thực tập. Để tự học thì bạn có thể mua BeagleBone và thực thành với Exploring BeagleBone: Tools and Techniques for Building with Embedded Linux Sau khi build được hệ thống, bạn phải viết chương trình cho hệ thống nhúng. Tùy vào mức độ công việc mà bạn cần những kỹ năng khác nhau. Nhưng về cơ bản, bạn cần phải biết C. Nếu bạn chưa biết gì về C thì nên đọc C Primer Plus (6th Edition) (Developer’s Library), nếu bạn đã có cơ bản về lập trình, đọc thêm quyển The C Programming Language Để lập trình trên Linux, đặt biệt là Embedded Linux có bao gồm Device Driver, bạn phải hiểu cách Kernel hoạt động. Linux Kernel Development (3rd Edition) sẽ cho bạn kiến thức về Kernel, bên cạnh đó một số quyển sách sau sẽ bổ sung thêm kiến thức cho bạn
Hoặc học khóa học CS6210: Advanced Operating Systems Học Embedded Linux không khó, nó chỉ khó ban đầu Học Android sẽ dễ hơn ở bước đầu, bạn không cần nhiều kiến thức về Android vẫn có thể viết ứng dụng đầu tiên, sau đó độ khó sẽ tăng dần. Để master, bạn phải bỏ ra rất nhiều công sức. Học Embedded Linux sẽ khó hơn, vì bạn cần phải hiểu rất nhiều thứ mới có thể viết được “hello world”. Có thể thấy bước đầu sẽ khó, nhưng về sau sẽ dễ hơn. |