Avatar
0
thinhlh Beginner
thinhlh Beginner
[IT và đời sống] Lộ trình phát triển bản thân để từ JUNIOR thành một SENIOR
Xin chào mọi người, em lập ra topic này để mọi người có thể trao đổi hoặc giúp đỡ lẫn nhau trong quá trình xây dựng và phát triển bản thân. Topic này có những câu hỏi như sau ạ:
  • Có bài viết của anh Dũng từng nêu ra là nâng cao giá trị bản thân bằng việc tham gia vào mã nguồn mở. Vậy cho em xin hỏi là mình nên tìm những open source ở đâu và như thế nào để vừa sức với bản thân ạ?
  • Những kiến thức/ kỹ năng mà một lập trình viên cần nâng cao bản thân để có thể đủ sức tham gia vào một dự án open source?
  • Ngoài đóng góp vào các dự án mã nguồn mở, còn những phương thức nào để nâng cao giá trị bản thân nữa ạ.


    Trên là những câu hỏi chung cho cộng đồng cùng tìm hiểu, dưới đây em có những câu hỏi riêng mang tính định hướng hơn ạ. Em hiện tại là sinh viên năm 2 ngành SE, em đã đi làm ở mảng Android Mobile dev ạ. Ngoài ra em có làm một số dự án ( chủ yếu là Flutter) kết hợp với backend là Django, Flask và Express. Đã sử dụng trong dự án các design pattern MVC,MVVM, MVP, Clean architecture... có sử dụng DI và phát triển theo hướng TDD

  • Em thấy mã nguồn mở Eazy Fox của anh Dũng rất hay và nhiều ý nghĩa ạ, em cần phát triển thêm những gì để bản thân phù hợp với dự án ạ
  • Bên cạnh đó  thì với mảng Flutter thì em cần học thêm hay tìm hiểu thêm những gì để nâng cao và phát triển bản thân ạ?

Xin cảm ơn mọi người đã đọc câu hỏi của em tuy nó khá là dài ạ

  • Answer
career
Remain: 5
2 Answers
Avatar
monkey Beginner
monkey Beginner
  1. Nên tìm những open source ở đâu và như thế nào để vừa sức với bản thân: Câu trả lời là ở github, nhưng:

  • Đầu tiên em phải biết mình đang làm cái gì đã, ví dụ em đang làm ứng dụng android, thì hãy tìm các opensource android để contribute
  • Chẳng ai có thể contribute ngay cho 1 project cả, đầu tiên là phải sử dụng nó ở mức thuần thục, hiểu rất rõ về nó sau đó mới có thể biết nó thiếu cái gì, bug ở đâu để tạo PR được, đó không phải là việc trong 1 sớm 1 chiều em ạ

  1. Những kiến thức/ kỹ năng mà một lập trình viên cần nâng cao bản thân để có thể đủ sức tham gia vào một dự án open source?

  • Đầu tiên là kiến thức sử dụng git, phải biết fork, tạo commit, merge và rebase
  • Tiếp theo nữa là design pattern, làm thư viện mà không biết design pattern thì ngang với cho ông thợ xây đi thiết kế kiến trúc
  • Tuỳ vào mỗi loại dự án lại yêu cầu các kiến thức khác nhau, cái này phải vào dự án cụ thể anh mới trả lời được

  1. Ngoài đóng góp vào các dự án mã nguồn mở, còn những phương thức nào để nâng cao giá trị bản thân nữa.

  • Làm tốt các công việc ở công ty, đến mức mà người ghét em nhất cũng phải công nhận em và công ty sẽ tự biết mà trả lương cao cho em
  • Làm các dự án cá nhân và giới thiệu nó đến mọi người, tuy nhiên các dự án này phải hoàn chỉnh và có mục tiêu cụ thể, không thì cũng chẳng ai dùng và cũng chẳng tạo ra giá trị gì cả
  • Làm video, blog, chia sẻ các kiến thức của em
  • Trả lời các câu hỏi trên stackask này, em sẽ có level và mọi người và các nhà tuyển dụng sẽ chú ý và muốn có được em

  1. Em thấy mã nguồn mở Eazy Fox của anh Dũng rất hay và nhiều ý nghĩa ạ, em cần phát triển thêm những gì để bản thân phù hợp với dự án ạ

  • EzyFox không phải của anh mà nó là của cộng đồng, của thế giới em ạ, khi đã public source trên github thì nó không còn là của anh nữa em ạ
  • Em không cần phát triển gì để phù hợp với dự án em ạ, mà chính dự án phải phát triển để phù hợp với nhu cầu sử dụng của em em ạ

  1. Bên cạnh đó thì với mảng Flutter thì em cần học thêm hay tìm hiểu thêm những gì để nâng cao và phát triển bản thân ạ?

  • Cái này để anh hỏi thêm bạn bè anh nhé, tuy nhiên với anh thì Flutter hay các framework khác phía client đều cơ bản là lấy dữ liệu và hiển thị dữ liệu vậy nên nếu em muốn thực sự giỏi thì:

+ Hãy tìm cách master phần giao diện và animation, phần này có thể phải động đến cả OpenGL

+ Master phần http để lấy dữ liệu

+ Master phần socket vì realtime sẽ là tương lai của thế giới

+ Master các phần làm video, livestreaming

Đây là các ý kiến chủ quan của anh, em có thể tham khảo nhé

  • 1
  • Reply
Avatar
monnguyen1508 Beginner
anh Dũng ơi cho em hỏi, để master các phần dưới thì em nên học như thế nào ạ (có phải học từ base giao thức http/upd...). Với anh có tài liệu nào mà anh tâm đắc về phần này không ạ, cho em xin với. Em cảm ơn anh!

+ Master phần http để lấy dữ liệu

+ Master phần socket vì realtime sẽ là tương lai của thế giới

+ Master các phần làm video, livestreaming

  • 0
  • Reply
Anh chẳng có tài liệu nào tâm đắc cả em ạ, bí quyết của anh là hãy hỏi, hỏi thật nhiều, hỏi bao giờ ra vấn đề thì thôi. Ai có thể hỏi anh sẽ hỏi, tất nhiên là phải những người mình tin tưởng được. Ví dụ như em, em làm Flutter, em hãy hỏi bất cứ thứ gì mà em thắc mắc, ví dụ tại sao flutter có thể chạy được trên android, ios? Flutter có phải đơn luồng không? bla bla Có người trả lời thì em sẽ đi verify lại câu trả lời, đúng thì em nghe theo, sai em lại tìm hiểu tiếp.

Thời đại giờ có quá nhiều chỗ để hỏi, và stackask này là một nơi như thế, các câu trả lời cũng sẽ có trách nhiệm hơn là khi em đăng lên facebook, vậy nên em cứ tiếp tục làm công việc em đang làm và luôn luôn đặt 1001 câu hỏi vì sao nhé

 –  tvd12 1630106579000