Ở thời tôi thì:
- Kiến thức về cốt lõi về lập trình
- Combo ngôn ngữ, framework, ORM
- HTML + CSS
- Javascript + jQuery
- SQL
Bằng mấy thứ này tôi đã bắt đầu sự nghiệp làm “Junior Dev” và “Dev”
Nếu mà bây giờ tôi mới bắt đầu thì tôi sẽ cần những gì nhi?
Đừng quên là phải biết giải mấy câu Leetcode khó thấy mồ trong 15 phút nha.
(T/N: cmt đầu bị xóa rồi nên tui không nhớ context)
Gì thế này?
Lần đầu nghe đến luôn á. 1.1k upvote, chắc mn đồng cảm lắm.
Tôi tự hỏi là điều gì khiến bạn nghĩ vậy.
Tôi là senior 15 năm kinh nghiệm rồi. Tôi từng làm cho 9 công ty và phỏng vấn ở hơn 200 công ty. Tôi đang ở Pháp (cũng có làm việc cho các công ty Mỹ luôn)
- Gần đây các công ty có trào lưu tuyển senior trả junior. Họ đang đi hơi xa nhưng nếu bạn chỉ đánh vào một số yêu cầu chính thì vẫn có cơ hội đấy. Tôi hiểu việc này đi ngược với lẽ thường và thật ngớ ngẩn nhưng mà … HR có lối riêng của họ.
- Cái đống yêu cầu trong thư mời nhận việc chẳng bao giờ kết thúc đâu, không thể hết được. Trong thời gian bạn đảm nhận một công việc, bạn sẽ thấy là công ty sẽ thay đổi bộ công nghệ và bạn phải thích nghi với điều đó.
- Lập trình viên thường khá là yếu khoản phỏng vấn người khác. Họ chẳng quan tâm bạn đang stress hay gì đâu. Họ khá là tường minh về những thứ cần thiết cho công việc vì bản thân họ chính là những người thực hiện. Nhưng quá trình tuyển dụng thì lằng nhằng và công ty thì chẳng hiểu rõ về khoa học máy tính lắm nên họ chẳng biết phải tập trung vào đâu. Mấy ông dev chỉ đang làm việc của mấy ông ý thôi. Nếu mà cuộc phỏng vấn ổn thỏa thì họ vẫn bị ràng buộc vào cách thức hoạt động của doanh nghiệp thôi à.
- Ở ngành này thì việc đào tạo tốn thời gian lắm. Khi mà thuê được một anh thì bạn phải hiểu là anh ta sẽ có thể mất 6-18 tháng để mà đạt được cái trình độ mà công việc yêu cầu (với tôi thì là 8 tháng). Đây là rào cản với rất nhiều người. Chọn sai người một lần là tốn thời gian của ối người luôn đấy.
- Ở cái ngành này, ta đều biết chẳng có ai hoàn hảo, chẳng ai hoàn toàn phù hợp với một vị trí cả. Chúng ta phải lựa. Điều quan trọng nhất bạn nên thể hiện trong buổi phỏng vấn đó là khả năng thích nghi và học hỏi của bạn. Bởi vì chẳng có ai hoàn hảo cho một vị trí nào nên chúng ta lựa chọn người dễ thích nghi hơn.
- Đừng đánh giá thấp kỹ năng mềm nha. Đầu tiên là giao tiếp, bạn có thể bày tỏ những gì bạn đang nghĩ và đang tranh luận một cách rõ ràng hay không. Hãy là một người có thể thuyết phục được (nghĩa là biết lắng nghe và thấu hiểu ấy), và cũng nên là một người có thể thuyết phục người khác. Hãy tử tế và tôn trọng. Thứ hai là quản lý dự án. Chúng ta làm việc như thế nào khi ứng dụng mô hình agile và các công cụ của nó. Cả hai kỹ năng này sẽ khiến bạn thành thạo nhanh hơn. Bạn sẽ có thể bắt kịp team của mình nhanh chóng khi bạn vừa được nhận.
Nói vậy chứ kiểu gì cũng có mấy chỗ họ không muốn đào tạo và bạn không muốn làm cho họ vì họ chẳng hiểu những gì tôi đã nói ở trên. Thôi cứ coi như đó là mấy công ty chuyên bóc lột nhân viên đi.
- Python
- Perl
- Lua
- Ruby
- Ruby on Rails
- HTML
- CSS
- VS
- Angular
- Javascript
- TypeScript
- Kịch bản phim
- Giới thiệu script
- Java
- Javabeans
- Vanilla beans
- CSDL SQL
- CSDL NoSQL
- Có kinh nghiệm làm việc với CSDL trả phí 5000 đồng
- Maven
- Gradle
- Ant
- Vòng đời của một con bọ
- Spring
- Spring Boot
- Spring Sneaker
- Summer sandals
- Nến thơm
- lions
- tigers
- bears
- Các tác phẩm của Gorge Takei
- CI
- CD
- CDMA
Kỳ vọng của tôi đối với một nhà phát triển cơ sở là hoàn toàn tối thiểu. Nếu bạn có bằng khoa học máy tính và biết một số công nghệ của chúng tôi (React / Typescript / C #) thì là quá đủ.
Điều quan trọng hơn đối với một lập trình viên cấp dưới là động lực, sự ham học hỏi, ham học hỏi và nhiệt huyết với công việc.
Git nè, SQL nè, JS hoặc TS nè, bash cơ bản, điện toán đám mây nè (cá nhân tôi thì thích AWS), HTML, CSS và NoSQL nữa.
Pythong, Java/C#, C/C++ có thì tốt.
Tôi nghĩ Nextjs và ReactJS khá là cần thiết. Nhiều ngôn ngữ bây giờ cũng cố gắng tích hợp SASS để thay thế CSS (Hoặc CSS đang hướng tới ứng dụng nhiều cú pháp tựa tựa SASS hơn).
Nhập và xuất ES6 cũng quan trọng nữa. GraphQL chắc là hữu ích và tôi khuyến nghị các Headless CMS như Strapi.
Nếu mà làm lập trình web thì jQuery có vẻ ít đất dụng võ hơn rồi.
Bây giờ ông chắc là phải biết SQL và các cấu trúc non SQL bền vững.
Nếu ông mới vào ngành thì khỏi lo. Hầu hết các công việc đều đưa ra các kỹ năng của một ứng viên lý tưởng dựa trên lý thuyết. Nhưng áp vào thực tế thì họ sẽ tìm ai đó có những kỹ năng cốt lõi và có khả năng học hỏi bất cứ điều gì cần thiết.
“Sao ở trường họ chả dạy bọn này cái gì có não hết vậy” — Một ông thuê người bằng câu hỏi leetcode cho hay.
Tôi dành 1 năm học HTML, CSS, JS, NodeJS, MongoDB (cả MS SQL Server, MariaSB và MySQL), NPM và vân vân, rồi cuối cùng cũng được phỏng vấn làm thực tập 3 tháng ở một công ty vô danh tiểu tốt quy mô tầm 20-30 người. Sau vài tháng tìm tòi thì họ yêu cầu tôi đảo ngược một cây nhị phân.
Một cuộc phỏng vấn khác cho cùng vị trí (thực tập 3 tháng làm FE và không lương) yêu cầu ít nhất 1 năm kinh nghiệm.
Tôi mất niềm tin và đã từ bỏ lập trình.
Edit: Thêm thắt vài thứ về CSDL.