Mới học lập trình - Chưa biết gì hết là một lợi thế

- 7 mins

Bài viết này dành cho những bạn mới bắt đầu học lập trình.

Gần đây mình có đăng bài tuyển dụng Fresher dưới dạng một “khoá đào tạo” tại Skylab. Một trong những điều kiện mình nhấn mạnh là “Chưa biết gì là một lợi thế lớn”. Việc này nghe có vẻ ảo hoặc mang tính câu lượt reach/engagement nhưng thật sự là mình có nhiều lý do hơn (và kể cả lý do đó luôn :satisfied:).

Lập trình trong bài này mình chỉ muốn đề cập tới các mảng như lập trình website, mobile và server.

Học lập trình thì cần có những kiến thức gì ?

Đây là một câu hỏi khá quen thuộc của các bạn đang muốn học lập trình. Và đương nhiên là cả tập các câu trả lời mọi người cũng quá quen thuộc như:

Mình không phủ nhận kiến thức nền tảng về lập trình là rất rất quan trọng. Nó quyết định tới cả việc các bạn có thể trở thành lập trình viên thực sự hay chỉ là “tên edit code dạo”.

Tuy nhiên trong thời đại công nghệ cao như hiện nay, chúng ta có nhiều cách để tiếp cận vấn đề hơn. Việc lựa chọn cách tiếp cận cũng là cả một vấn đề ví dụ như trường hợp học React Native (RN):

Nếu bạn đã vượt qua được các bước trên để học React Native, xin chúc mừng bạn. Nhưng nếu bạn vẫn đang cặm cụi với những quyển ebook, những bài blog cơ bản và đang cảm giác bị mắc kẹt, học nhiều quên nhiều thì bạn nên dừng lại. Dừng lại không phải là bỏ cuộc mà dừng để xem lại cách tiếp cận này có hiệu quả với bản thân hay không.

Chúng ta luôn có thể chủ động “đảo ngược tiến trình học”, hoặc học thẳng vào React Native bằng cách xem những video/tutorial hướng dẫn làm app. Điều này giúp ta học trực tiếp được cái ta cần và không bị nản lòng vì cứ thấy học mãi mà chưa làm được gì cả. Tin vui là Youtube, Medium, Github, Google đều là những nguồn tài liệu chất lượng và chúng đều miễn phí.

Theo kinh nghiệm cá nhân của mình, việc duy trì được niềm đam mê khi mới bắt đầu học lập trình là quan trọng nhất.

Kiến thức cũ xung đột với kiến thức mới

Một lý do khác nữa là đôi khi chính kiến thức hiện có lại là rào cản để ta tiếp thu những cái mới. Điều này rất đúng trong thế giới lập trình hiện tại. Mình có thể dẫn chứng vài trường hợp kinh điển sau:

Chung quy là do chúng ta đã mang tư duy hoặc lợi thế của những kiến thức cũ để áp dụng cho một kiến thức/công cụ mới đặc biệt là khi chúng được đẻ ra không dành cho những điều đó. Hãy chọn đúng công cụ cho đúng việc và đúng thời điểm, đừng quá cố chấp hoặc miễn cưỡng áp dụng công nghệ.

Xác định rõ nhu cầu thực sự khi học lập trình

Theo kinh nghiệm cá nhân trong những năm gần đây mình làm training thì những bạn bắt đầu với nhu cầu cụ thể thì sẽ phát triển nhanh hơn các bạn còn lại.

Trường hợp thực tế là khi mình hỏi về lý do bạn chọn lập trình iOS thì các bạn trả lời là “iOS lương cao hơn” hoặc “do đã có Macbook và iPhone”. Những bạn này học chậm hơn nhiều so với những bạn chọn iOS vì “muốn làm app abc, xyz trên iPhone”, “công ty/khách hàng đang cần app iOS”. Khi chúng ta học có mục đích cụ thể thì ta có thể ứng dụng ngay cái ta vừa học được cho cái ta đang muốn làm. Và đó cũng chính là cơ hội để ta vừa học vừa làm một cách tốt nhất.

Nói một cách dễ hiểu thì nó cũng như việc chúng ta học tiếng Anh chỉ để lấy bằng đi xin việc với việc học tiếng Anh vì kế bên nhà có bạn ngoại quốc xinh đẹp mới dọn tới :wink:.

Mặt khác việc này cũng giúp chúng ta có thể tập trung và tối ưu hơn cho việc học. Nếu bạn đang muốn làm app nghe nhạc như Zing Mp3, chắn chắn bạn sẽ cần quan tâm nhiều hơn tới các component có thể chơi nhạc, streaming nhạc, animation chạy lời bài hát, …

Nếu một công ty đang tuyển fresher, đừng quan tâm mình đang biết những gì

Quay trở lại bài viết tuyển dụng và đào tạo của Skylab (hoặc nhiều công ty khác). Nếu họ đang tuyển fresher thì nghĩa là họ đang cần những người mới để đào tạo. Các bạn không nên đặt nặng việc kiến thức nền tảng mình không tốt hoặc chưa có cái bằng cấp nào có liên quan. Điều tệ hơn là nhiều bạn “chém” rất hăng say, quên mất là mình chỉ đang là người mới bắt đầu và muốn học hỏi nhiều hơn là chính tỏ bản thân.

Thú thật là nhà tuyển dụng họ cũng không quan tâm tới trình độ hiện tại của bạn. Vì có thế nào thì gần như họ cũng phải đào tạo lại từ đầu. Vì thế một người không biết gì (hoàn toàn mới) và một người có chút kiến thức nền tảng có thể được xem là như nhau.

Điều quan trọng nhất trong trường hợp này là thái độ chứ không phải trình độ. Hãy chứng tỏ các bạn bây giờ có thể là những “con gà công nghệ” nhưng đầy tiềm năng trở thành kỹ sư chất lượng.

Kết

Lập trình là thế giới rất rộng lớn và phát triển rất nhanh. Các tập kỹ năng, kiến thức cần có là những điều khá mơ hồ. Quan trọng chúng ta hãy tỉnh táo, giữ vững đam mê và luôn tìm kiếm giải pháp (hướng tiếp cận) chinh phục chúng. Dẫu sao đây cũng chính là gen cần có của một kỹ sư giỏi.

Chúc các bạn sớm chinh phục được các thử thách công nghệ của bản thân.

Viet Tran

Viet Tran

A Man who is developing apps with Red Bull

comments powered by Disqus
rss facebook twitter github youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora