Andrew (HQT)

Bám Cơ Bản (Bản nháp)

Trước hết xin khẳng định rằng tôi không muốn giúp bất kỳ một ai đó trở thành bậc vĩ nhân hay thiên tài, chúng tôi xây dựng trang này nhằm xây dựng những lớp kỹ sư công nghệ tài năng và có tâm. Để rồi các bạn mang tài năng của mình đi khắp nhân gian, giúp chính bạn và giúp người khác. Thời đại hiện tại tốc độ thay đổi công nghệ chóng mặt, vài năm trước nhà nhà nói về mobile, android, ios… đến giờ thì mọi người lại nói về AI, ML, Blockchain, IoT… Chúng ta sẽ không biết ít năm nữa rồi chuyện gì sẽ xảy ra, công nghệ sẽ trở thành trend. Cũng vì sống trong một thế giới đầy biến động ấy. Phận làm một developer chúng ta cũng cần phải tĩnh táo, tránh dao động bị cuốn trôi theo thời cuộc, nên tôi muốn viết một bài này, một phần nhằm trấn an chính mình, một phần muốn chia sẽ với các bạn rằng, dù ngày mai có thay đổi ra sao, những thứ dưới đây sẽ không thay đổi. Chỉ cần bám sát cơ bản, nội công thâm hâu, thì phong ba bảo táp cũng không là gì đối với chúng ta. Cứ lấy cơ bản mà triển, âu cũng là cái gốc rễ của vấn đề.

  1. Sơ lượt về lịch sử:
    1. Alan Turing là ai ?
    2. 4 trường phái học và làm cơ bản: Những trường phái thực hành SE

Hình trên là hình mà dân mạng truyền tụng với nhau để nói về 4 phương pháp, tu luyện nội công AI. Thoạt đâu tui cũng tìm hiểu AI nhưng không định hình được cho mình một phương thức nào cả. May ra là mọi người đã sớm nắm bắt được nó. Nhưng đối với tôi, và từ kinh nghiệm của cá nhân thì tấm hình đó cũng đúng với cả nghành Software Engineering nữa. Tôi sẽ khái quát, tạm thông dịch dưới góc nhìn của tôi bên dưới.

….

Riêng tôi thi tôi thích cách làm của Li Fie Fie hoặc Andrew Ng

  1. Kiến thức lập trình cơ bản:
    1. Mô hình bộ nhớ
      1. Tại sao lại có stack overflow, Out of memory
      2. Heap
      3. BSS
      4. Stack
    2. Biến, con trỏ
    3. Hàm,
    4. Lớp và Đối tượng
    5. Thừa kế, đa hình
    6. Hãy chọn ngôn ngữ lập trình để giải quyết vấn đề
  2. Computer science cơ bản cần thông suốt.
    1. Data Structure first, Algorithms later on the basic view 0. Algorithms complexity calculation
      1. Recursion
      2. Stack
      3. Queue
      4. Tree
      5. Graph
      DFS, BFS, Bellman…
      1. Dynamic Programming
      2. Greedy Algorithms
    2. Hệ điều hành, các khái niệm cơ bản
      1. Linux - Top 10 commands
        • Terminal Shortcuts
      2. Process - What is process in OS point of view and human point of view
      3. Thread

      4. Memory management - How OS manage memeory from physical device point of view -> virtual device point of view
    3. Mạng máy tính cơ bản
      1. Các giao thức ứng dụng cơ bản:
        1. HTTP/HTTPS
        2. DNS, SMTP
        3. IP
        4. TCP/IP
      2. Websocket, restful API, gRPC…
      3. TCP/IP Model -> Cái nền của hệ thống mạng
    4. Compiler ??
    5. Automata ??
    6. Design Pattern
    7. Database (SQL & NoSql)
      • Design db?
      • Indexing?
      • Partionning?
  3. Những phương pháp xây dựng phần mềm cơ bản hiện tại
    1. Agile
      • ưu điểm là gì?
      • nhược điểm là gì?
    2. Scrum / Kanban
  4. Những điều ngoài sách vỡ

    • Tôn trọng hợp đồng lao động

    • Tu duy productism customerlish
    • Tranh luận (debate / argue)
    • Honest and nice/kind
    • Avoid Corporation politics / emotion
    • Sạch sẽ thơm tho tránh: hôi miệng, hôi nách, hôi chân
    • Tóc nếu để dài thì phải sạch
  5. Điều cuối cùng:

    1. Tiếng anh và toán: Thiếu chỗ nào bù chỗ đó…