Category Archives: Nghệ nhân phần mềm

Hướng nghiệp vào FPT Software


Sinh viên khoa CNTT ra vào Fsoft thì sẽ làm những công việc gì, yêu cầu kỹ năng gì, sự nghiệp sau này ra sao, lương lậu thế nào?

Sinh viên mới ra trường có các vị trị sau khi vào làm Fsoft:

  1. SE: Software Engineer – Kỹ sư phần mềm
  2. Tester: Software Test Engineer – Kỹ sư kiểm thử phần mềm
  3. Comtor: Japanese Translator (Communicator)

Kỹ năng của SE:

  • Phân tích yêu cầu khách hàng
  • Thiết kế hệ thống
  • Kỹ năng lập trình: Viết mã – coding , fix bug,… Trích (gần) nguyên văn: “Ngôn ngữ lập trình (Java , .NET , C++,…) là dụng cụ của lập trình viên, không có công cụ thì không làm việc được”
  • Kỹ năng kiểm thử
  • Triển khai hệ thống

Kỹ năng mềm:

  • Giao tiếp
  • Làm việc nhóm
  • Khả năng học hỏi công nghệ mới, công việc mới ( đặc thù ngành CNTT là phải học tập suốt đời, công nghệ mới mỗi ngày lại có thêm 1 tá)
  • Thái độ tích cực, tinh thần xung phong ( để làm leader)

Lộ trình sự nghiệp theo như bảng dưới đây, cột ngoài cùng là mức lương trung bình thống kê năm 2014 ( 1 -> 4: Junior –> Expert)

  • BrSE: Bridge SE : Kỹ sư cầu nối . Kỹ năng yêu cầu: Kỹ năng của SE + tiếng Nhật
  • PM: Project Manager : Quản lý dự án – yêu cầu ít nhất  3 năm kinh nghiệm
  • BA: Business Analyst : Chuyên viên phân tích nghiệp vụ
  • SA: Solution Architector: Kiến trúc sư giải pháp

Lộ trình sự nghiệp tại Fsoft

Fresher Fsoft học gì?

Đào tạo Fresher Fsoft

Ghi vội tại Workshop: “Các xu hướng công nghệ trên thế giới và cơ hội nghề nghiệp của lập trình viên trong tương lai”

Lập trình viên chuyên nghiệp, bắt đầu từ đâu?


2014-09-17 18.57.122014-09-17 18.57.47

Danh sách TỐI THIỂU mà mọi chuyên gia phần mềm nên thông thuộc:

  • Design patterns: Bạn PHẢI miêu tả được tất cả 24 pattern trong cuốn sách của GOF  và có kinh nghiệm thực tế với rất nhiều pattern khác trong các cuốn sách POSA (?).

  • Design principles: Bạn NÊN biết về các nguyên lý SOLID và hiểu biết kĩ các nguyên lý thành phần khác.

  • Methods: Bạn NÊN hiểu : XP, Scrum, Lean, Kanban, Waterfall, Structured Analysis và Structured Design.

  • Disciplines: Bạn NÊN code được : TDD, Object Oriented design, Structured Programming, Continous Integration, và Pair Programming.

  • Artifacts: Bạn NÊN biết cách dùng: UML, DFDs, Structure Chát, Petri Nét, State Transition Diagrams and Tables, flow charts, and decision tables.

(Trích Chương 1: professionalism , The Clean Coder – A code of conduct for professional programmers , Robert C. Martin)

Cách thực hành Test-Driven Development (TDD) – JamesShore


Test-Driven Development Bài dịch từ: http://www.jamesshore.com/Agile-Book/test_driven_development.html

TDD giúp chúng ta viết ra những đoạn code tốt được thiết kế tốt và được test cẩn thận thông qua nhiều bước nhỏ nhưng chắc chắn.

“Điều mà các ngôn ngữ lập trình thực sự cần là hướng dẫn sử dụng: “Do what I mean” – một câu nói đùa trong giới lập trình. “Làm điều mà ý tôi nói thế chứ đừng có làm điều tôi nói”. Lập trình đòi hỏi rất khắt khe. Nó yêu cầu sự hoàn hảo, bền vững, cần nhiều tháng, nhiều năm cố gắng. Tuyệt vời nhất, những lỗi trong lập trình làm cho code không thể compile. Tệ nhất, chúng tạo nên những bug mà âm thầm chờ đợi đến đúng thời điểm và tạo ra những thiệt hại ghê gớm nhất.

Con người chẳng bao giờ hoàn hảo.  Vì vậy, các phần mềm luôn luôn có lỗi.

Thật là tuyệt nếu mà có 1 công cụ nào đó có thể báo cho bạn biết những lỗi lập trình của bạn ngay lập tức khi bạn vừa tạo ra nó  . Một công cụ tuyệt vời đén mức mà giúp chúng ta gần như không cần phải debug nữa?

Thực sự thì có một công cụ như vậy, hoặc nói cách khác, một kỹ thuật. Đó là “dùng test để lèo lái việc phát triển phần mềm” – Test-Driven Development (TDD). TDD thực sự giúp chúng ta đáp ứng được những đòi hỏi khắt khe của lập trình ở trên. Continue reading Cách thực hành Test-Driven Development (TDD) – JamesShore