Hai hướng đi cho một lập trình viên
22-23 tuổi là độ tuổi bắt đầu đi ra trường và đi làm của một lập trình viên.
Sau khoảng 2-4 năm vật lộn với nghề, dự án và các áp lực từ công việc.
Bạn bắt đầu trở thành một lập trình viên có kinh nghiệm, có kỹ năng.
Đây cũng là thời điểm bạn bắt đầu cảm thấy chênh vênh và trong đầu đặt ra một câu hỏi rất nhiều lần.
Định hướng của bản thân trong tương lai, 5 năm tới, 10 năm tới, sẽ là gì.
Những câu hỏi đặt ra sẽ là:
+ Mình vẫn như thế này, hay mình phải làm gì đó khác đi chứ ?
+ Làm sao để thay đổi thu nhập hiện tại, không thể chỉ dựa mãi vào lương ?
+ Thế giới họ đang làm được những thứ rất hay, còn mình thì sao, mình cũng phải làm gì đó.
Tham vọng, đam mê, hoài bão thôi thúc bạn liên tục phải nghĩ cho mình 1 hướng đi, 1 mục tiêu nào đó trong tương lai
Và bạn bị phân vân, bị đắn đó bởi rất nhiều sự lựa chọn.
+ Học chuyên sâu vào 1 ngôn ngữ lập trình, xử lý mọi vấn đề gai góc nhất, khó khăn nhất của nó.
+ Học thêm nhiều ngôn ngữ lập trình để tăng sự đa dạng trong chuyên môn của bản thân.
+ Học chuyên sâu về giải thuật, thuật toán để trở thành những member chủ chốt, những kỹ sư cao cấp.
+ Làm một sản phẩm nào đó rồi thương mại hóa chúng và là bước đầu cho con đường khởi nghiệp.
+ Phải làm thêm ngoài, phải có thêm những nguồn thu nhập khác
+ Phải làm được một thứ gì đó mà thế giới xã hội biết đến….
Rất nhiều sự lựa chọn diễn ra trong đầu bạn, và bạn bị lúng túng.
Bài viết hôm nay, tôi sẽ giúp bạn quyết đoán hơn trong lựa chọn của mình.
Hai hướng lựa chọn dành cho các lập trình viên.
Mọi sự lựa chọn ở trên tôi sẽ chia thành 2 nhóm như sau.
1.Định hướng mục tiêu theo phong cách Hàn Lâm.
Nếu bạn chọn theo hướng Hàn Lâm, có nghĩa là đi theo hướng học thuật.
Định hướng này sẽ hướng các bạn trở thành một kỹ sư giỏi,
một lập trình viên tài năng hay là một nhân viên có chuyên môn cao.
Hàn lâm là đi sâu vào hiểu bản chất, kiến thức ở mức chân tơ kẽ tóc.
Bạn sẽ nghiên cứu nghiền ngẫm bản chất sâu sa hơn của những kiến thức lập trình mình được học.
+ Ví dụ bạn học về thuật toán.
Bạn sẽ đào sâu nghiên cứu về tất cả các loại thuật toán trong lập trình.
Hiểu rõ từng ý nghĩa, nguyên lý, và cách vận hành của thuật toán.
Hiểu rõ về độ phức tạp của giải thuật, ưu nhược điểm của giải thuật là gì.
+ Với từng ngôn ngữ lập trình, bạn sẽ nắm rất rõ kiến thức cơ bản, kiến thức nâng cao.
Nguyên lý hoạt động của vùng nhớ, sự tối ưu dữ liệu.
Các kiến thức về cấu trúc máy tính, lý thuyết về thông tin, nguyên lý hoạt động của các trình biên dịch…. các bạn đều phải nắm rõ.
+ Với các thư viện, framework.
Các bạn sẽ phải rõ các thành phần bên trong của nó, và bản chất nó được xây dựng theo nguyên lý ra sao.
Hàn Lâm là một định hướng xác định là học nhiều và hiểu nhiều.
Nó hướng nhiều sang việc hiểu bản chất và các lý thuyết tự nhiên nhiều hơn.
Trong đó vận dụng nhiều lý thuyết về các môn khoa học tự nhiên như toán học, vật lý…
Người ta dựa vào các lý thuyết toán học để xây dựng lên các ý tưởng cho lập trình.
Do đó nếu xác định theo hướng Hàn Lâm, các bạn phải xác định là mình như một học giả.
Hàn Lâm sẽ đưa bạn thành cái gì ?
+ Bạn có thể trở thành một nhà giáo dạy mọi thứ về lập trình, khoa học dữ liệu, khoa học máy tính.
+ Bạn có thể trở thành một kỹ sư giải pháp, kỹ sư cao cấp trong một công ty, chuyên giải quyết những vấn đề khó.
Ưu điểm :
+ Khi theo được hướng hàn lâm, đồng nghĩa với việc bạn là người có kiến thức chuyên môn rất cao.
+ Và khi là một kỹ sư giỏi, thì các công ty sẽ thường xuyên săn lùng bạn với một mức đãi ngộ rất tốt.
+ Là người có chuyên môn cao, nên trong công ty bạn rất được quý mến coi trọng, nể phục, và làm việc rất thoải mái.
+ Bạn có thể làm thêm ở các công ty nước ngoài, với mức lương cao hơn hẳn so với trong nước.
+ Hoặc không đi làm, bạn hoàn toàn có thể mới lớp dạy, tạo các khóa học…..
+ Kỹ sư cao cấp, giám đốc kỹ thuật, là những vị trí mà bạn sẽ đạt được cho hướng đi này.
+ Khi bạn làm việc ở công ty, bạn chỉ lo vấn đề giải pháp, kỹ thuật, không phải quan tâm vấn đề thị trường của sản phẩm.
+ Trong công ty, bạn luôn được coi trọng, nể phục vì tài năng, nếu bạn thường xuyên giúp đỡ các đồng nghiệp khác
giải quyết các vấn đề khó khăn trong công việc, bạn trở thành một thủ lĩnh lòng người.
+ Công ty có phá sản, thì bạn cũng không bị ảnh hưởng nhiều, bạn có thể sang một công ty mới, hoặc rất nhiều nơi chào đón bạn.
Nhược điểm:
+ Bạn sẽ phải học hành, cày cuốc rất vất vả.
Thông minh là một lợi thế trong phong cách hàn lâm.Nhưng bạn sẽ phải chăm chỉ, và chịu khó nghiền ngẫm.
+ Khá khô khan, vì suốt ngày đi sâu vào bản chất, và những mớ kiến thức mang tính học thuật, nhưng lý thuyết phức tạp.
+ Không phải là con đường dành cho startup, trở thành chủ tịch một công ty.
Do đó nếu bạn nào không thích về kinh doanh, thương mại, thị trường, làm sản phẩm.
Mà chỉ thích đi sâu vào chuyên môn, hiểu bản chất, làm được mọi vấn đề khó,
thích tìm ra các giải pháp tối ưu cho một vấn đề kỹ thuật. Hãy theo hướng Hàn Lâm.
2.Định hướng mục tiêu theo phong cách Thị Trường.
Thị trường là gắn với thương mại, là gắn với sản phẩm.
Khi bạn cảm thấy mình không thích hợp với việc nghiên cứu nhiều, học nhiều, mà chỉ muốn làm gì đó kiếm tiền.
Hãy nghĩ đến hướng đi thị trường.
Định hướng mục tiêu bản thân theo hướng thị trường là bạn xác định mọi nguồn lực chỉ tập trung vào việc làm ra một sản phẩm.
Bạn không đi sâu vào bản chất, và các nguyên lý của sự vật, mà chỉ cần xác định, kiến thức đó giải quyết vấn đề gì.
Ví dụ: Thuật toán.
Bạn chỉ cần nắm được, thuật toán này giải quyết vấn đề gì.
Có bao nhiêu thuật toán như vậy, và thuật toán nào tốt nhất để sử dụng.
Và bạn chỉ cần nhớ như vậy, mà không cần đi sâu vào hiểu bản chất.
Với các thư viện, mã nguồn mở cũng vậy.
Bạn chỉ cần nắm được vai trò của nó là giúp bạn làm được những gì.
Các kỹ sư đi theo hướng thị trường, sẽ không học sâu vào chuyên môn, mà họ chỉ dừng ở mức hiểu được vai trò của kỹ thuật.
Kỹ thuật này có vai trò gì, giải quyết vấn đề gì, đầu vào cần gì, đầu ra cần gì,
và môi trường để nó hoạt động là gì.
Sau đó, họ đi sâu vào bài toán thiết kế 1 sản phẩm phần mềm.
Những thứ họ cần học, cần nghiên cứu và quan tâm sẽ như sau.
Nên làm sản phẩm về mảng nào.
– làm các phần mềm cho máy tính để bàn
– làm các dịch vụ trên web
– làm ứng dụng di động
– làm các trò chơi
– làm các sản phẩm trí tuệ nhân tạo….
Trong mỗi mảng ở trên, họ lại nghiên cứu và nghiên ngẫm xem sản phẩm nào nên hướng tới.
Khi lựa chọn được sản phẩm cần phát triển.
Họ sẽ tiếp tục nghiên cứu xem, nên dùng ngôn ngữ lập trình gì, thư viện gì, nền tảng gì để phát triển
Sau đó, khi phát triển sản phẩm ở giai đoạn phôi thai. Họ sẽ tiếp tục nghiên cứu phát triển các tính năng cho sản phẩm.
Sản phẩm của mình nên có những tính năng gì. Các tính năng này phải hướng đến mục tiêu đó là sản phẩm phải có giá trị.
Giá trị của sản phẩm thể hiện ở chỗ.
+ Người dùng quan tâm đến, và nó có tính thiết thực cao.
+ Bán được nhiều sản phẩm và nhận về những phản hồi tích cực.
+ Sản phẩm có cơ hội phát triển và tạo ra lợi nhuận.
Từ đó, người lập trình viên sẽ nghiên cứu về thị trường nhiều hơn để phát triển cho sản phẩm của mình.
Các tính năng phải độc đáo, tính năng hay và có tính ứng dụng cao.
Sản phẩm phải thực tế và phục vụ nhu cầu của đời sống con người, giải quyết được các khúc mắc của con người.
Như vậy người theo hướng thị trường sẽ sử dụng ngôn ngữ lập trình và kiến thức xung quanh như một công cụ để làm ra sản phẩm.
Ưu điểm.
+ Không phải đi sâu vào việc nghiên cứu các lý thuyết hàn lâm đau đầu, phức tạp.
+ Làm ra được một sản phẩm hoàn thiện với đầy đủ các công đoạn từ a-z,
+ Khi bạn làm được một sản phẩm có giá trị, bạn có cơ hội nâng cao thu nhập, và thậm chí là startup
+ Vị trí của bạn hướng tới sẽ là chủ một doanh nghiệm, hoặc giám đốc sản phẩm, giám đốc chiến lược.
+ Bạn học được các kỹ năng về thị trường, thương mại, kinh tế, và cách nhìn ra các ý tưởng có giá trị.
Nhược điểm.
+ Để làm một sản phẩm đầy đủ từ a đến z cần nhiều công đoạn,
trong đó có nhiều công đoạn phức tạp mà bạn cần tìm ra giải pháp hợp lý nhất.
Ví dụ: giải pháp bảo mật cho sản phẩm, giải pháp license….
+ Nếu bạn tự làm một mình, thì do tập trung nhiều về vấn đề thị trường, nên vấn đề chất lượng sản phẩm sẽ không cao,
Khi gặp những sự cố khó, bạn không giải quyết được, hoặc mất nhiều thời gian.
Do đó một là bạn chấp nhận sản phẩm của mình ở mức trung bình, hai là bạn phải thuê thêm các kỹ sư có chuyên môn cao,
hay nói cách khác là bạn phải thuê các lập trình viên ở hướng hàn lâm, để họ giúp bạn cải thiện chất lượng sản phẩm.
Và bạn phải bỏ ra một chi phí tương đối lớn khi sử dụng nguồn nhân lực như vậy.
Do đó các bạn sẽ thấy, chủ doanh nghiệp, sản phẩm luôn phải đầu tư nguồn lực để chiêu mộ nhân tài kỹ thuật.
+ Bài toán thị trường cũng nan giải theo một cách riêng.
Bạn phải đối mặt với việc cạnh tranh sản phẩm, phải đau đầu nghĩ sản phẩm gì nên làm, và sản phẩm gì có thể sẽ lỗi thời.
Chẳng có lý thuyết nào dám khẳng định 100% sản phẩm làm ra sẽ thành công và được đón nhận.
Trái với hàn lầm: bạn làm đúng lý thuyết thì sẽ hoạt động.
Thị trường luôn có rủi ro.
Bạn có thể đầu tư rất nhiều thời gian công sức cho sản phẩm và nhận về một sự thất bại.
Và khi bạn làm chủ doanh nghiệp với những sản phẩm có giá trị. Mọi thứ không dừng ở đó.
Bạn liên tục phải nghĩ, làm thêm sản phẩm gì mới, cải tiến sản phẩm cũ thêm những chức năng nào,
để có thể kiếm tiền, cạnh tranh và duy trì doanh nghiệp, để có doanh thu, có lãi và trả lương cho nhân viên,
và đặc biệt là các kỹ sư có chuyên môn cao.
Đó là hai hướng đi dành cho một lập trình viên trong tương lai.
Hy vọng bài viết sẽ giúp bạn sớm định hướng được, mình nên đi theo hướng nào.
Thanks