post-image

Học Gì Để Trở Thành Lập Trình Viên Giỏi Sau 1 Năm?

1. Tổng quan

Theo thống kê, lập trình viên được đánh giá là 1 trong 10 nghề có mức thu nhập cao nhất tại Việt Nam và ngày càng trở thành một lĩnh vực hot được nhiều bạn sinh viên lựa chọn và theo đuổi. Tuy vậy, học như thế nào để tiết kiệm thời gian mà mà vẫn mang lại hiệu quả tốt thì không nhiều bạn biết được. Đa phần chúng ta tốn quá nhiều thời gian để sa đà vào những thứ không cần thiết và không phục vụ được nhiều cho công việc của mình sau này.

Bài viết này sẽ giúp bạn vạch rõ lộ trình, định hướng chặng đường sắp tới để có thể dễ dàng chinh phục vị trí Lập trình viên chỉ sau 1 năm. Bài viết này dành cho các bạn đã có kiến thức cơ bản về lập trình, đã từng làm quen với ngôn ngữ, môi trường lập tình và thực sự có quyết tâm, đam mê để theo đuổi hành trình gian nan này.

Chặng 1: Xác lập mục tiêu cá nhân

Xác lập mục tiêu cá nhân là việc làm quan trọng quyết định sự thành công trong tương lai của bạn. Bất cứ ai trong chúng ta, từ những doanh nhân thành đạt, những người nổi tiếng hay chỉ là nhân viên bình thường, muốn thành công phải biết xác lập mục tiêu. Xác định chính xác điều bạn muốn sẽ giúp bạn biết nên tập trung vào đâu và nỗ lực như thế nào để đạt được mục tiêu đó.

Tuy nhiên bạn nên nhớ rằng, đặt mục tiêu không thôi chưa đủ, quan trọng nhất là bạn phải thực sự nỗ lực hết mình để hoàn thành chúng. Cuộc sống không phải là điều dễ dàng, mọi việc không phải lúc nào cũng suông sẻ. Nếu không trải qua những khó khăn, thất bại, bạn sẽ không bao giờ có thể có được điều mình mong muốn và thành công được. Nếu chẳng may thất bại, bạn vẫn còn đó mục tiêu để làm lại từ đầu, phấn đấu cho một cuộc sống tốt hơn.

Vậy thế nào là một mục tiêu thông minh và hiệu quả? Công thức đặt mục tiêu SMART:

– Specific (Chi tiết) : Đó chắc chắn phải là một mục tiêu rõ ràng và chỉ ra những việc cụ thể và chính xác mà bạn phải làm.

– Measurable (Đo lường) được: Tránh mơ hồ và phải có số lượng cụ thể

– Achievable (Đạt được): Mục tiêu là yếu tố để bạn luôn nỗ lực vươn tới và có thể chạm tới được

– Relavant (Thích hợp): Mục đích việc làm của bạn phải thật sự có ý nghĩa với bạn

– Time bound (Mốc thời gian): Mục tiêu phải có mốc thời gian cụ thể mà bạn hoàn thành nó.

Quan trọng nữa đó chính là mục tiêu có thể phân chia được: Mục tiêu lớn của bạn có thể được phân chia thành các mục tiêu nhỏ hơn để hỗ trợ cho mục tiêu lớn, giúp quá trình phấn đấu rõ ràng hơn

Ví dụ về 1 mục tiêu hiệu quả:

Mục tiêu lớn: Trở thành lập trình viên Front-end tại công ty Công nghệ TOP 10 cả nước trong năm 2020, lương tối thiểu 1000$

Mục tiêu nhỏ:

– Hoàn thành khóa C++ Nâng cao và 200 bài tập luyện tập trên Codelearn trong tháng 1

– Hoàn thành khóa Thuật toán Nâng cao và 100 bài tập liên quan trên Codelearn trong tháng 2

– Làm dự án lập trình mô phỏng ABC trong tháng 3

Ở giai đoạn này, đừng ngại bỏ ra vài ngày, thậm chí một vài tuần để suy nghĩ thật kỹ về những gì mình muốn làm và vạch ra lộ trình càng chi tiết càng tốt cho mục tiêu của mình. Bạn càng chi tiết bao nhiêu, những bước sau sẽ càng dễ dàng bấy nhiêu. Mặc dù người tính thì không thể bằng trời tính, bạn chắc chắn chẳng thể 100% đi thuận lợi theo con đường mình đã vạch, nhưng chắc chắn dù sai lầm bạn vẫn sẽ luôn có một mục tiêu để hướng về, một ngọn hải đăng để đi theo và không bị lầm đường lạc lối.

Chặng 2. Vạch rõ lộ trình và trau dồi kỹ năng

1. Kỹ năng chuyên môn về kỹ thuật

Sau khi đã xác định được hướng đi của mình, bạn sẽ biết được mình cần học già ước tính được thời gian mà mình cần bỏ ra để theo đuổi nó. Ở phần này, mình sẽ tạm chia lập trình ra thành một số mảng lớn, được nhiều người quan tâm và các kiến thức cần có khi theo đuổi nó. Sẽ có rất nhiều lĩnh vực khác mà mình khó lòng kể hết, mong các bạn thông cảm.

1.1. Mảng Phát triển Web – Web Development

Đây có lẽ là mảng lâu đời nhất và không bao giờ lo thiếu việc cho lập trình viên. Trong mảng này, sẽ có 3 hướng chính để bạn lựa chọn: Frontend, Back end và Fullstack. LTV Front end xử lý phía máy khách, tức là trên trình duyệt, hiển thị giao diện…; backend xử lý phía máy chủ, lưu trữ dữ liệu… và fullstack thì đa năng hơn, có thể làm cả Frontend và backend.

Frontend Developer

Với vị trí này, tối thiểu bạn cần nắm được những kỹ năng sau để có thể làm được việc:

  • HTML (HTML5 càng tốt)
  • CSS (CSS3 càng tốt)
  • Javascript cơ bản (jQuery). Nói trước là Javascript chuyên sâu rất hay và rất khó gặm.
  • Photoshop cơ bản
  • Illustrator cơ bản
  • Một số front-end framework như Twitter Bootstrap, AngularJS mới nổi….

Backend Developer

Backend thì có phần “đáng sợ” hơn với ti tỉ thứ phải học. Nếu chọn hướng đi này, tôi khuyên bạn chỉ nên chọn học sâu 1-2 ngôn ngữ lập trình. Các kỹ năng cần chủ yếu là nền tảng và phụ thuộc vào tư duy logic của bạn:

Các nền tảng cơ bản về ngôn ngữ bạn định làm, mấy kiến thức đơn giản này phải khắc cốt ghi tâm chứ đôi khi cũng có người quên và phải đọc lại từ Google. Vòng lặp, cách khai báo biến, hàm, hướng đối tượng….. Đặc biệt phỏng vấn bao giờ cũng có hướng đối tượng.

  • Kiến thức về database MySQL, Microsoft SQL.
  • Rộng hơn là Design Pattern (Singleton, Factory, Strategy, MVC, HMVC….).
  • Các framework hot tính tại thời điểm viết bài này, đơn giản nhất và dễ nhất là CodeIgniter.

Để dễ thấm và có cơ hội làm nhiều hơn, bạn nên học 1 framework sau đó đi làm và cọ xát thực tế thay vì học tràn lan không hiệu quả.

Fullstack Developer

Vị trí này đòi hỏi bạn phải cởi mở đối với các công nghệ mới, có hiểu biết sâu về một vài công nghệ và phải có sự hiểu biết về cách một ứng dụng web được thực hiện từ một khái niệm thiết kế cho đến khi các sản phẩm đã hoàn thành. Điều đó không có nghĩa là bạn phải thông thạo mọi công nghệ mà chỉ cần có hiểu biết về các ngôn ngữ đang có, có thể giao tiếp một cách thông minh giữa các thành viên trong nhóm và là một nguồn lực tốt, sẵn sàng nếu dự án cần đến bạn.

Một số kỹ năng không thể thiếu khi dấn thân vào Fullstack:

  • Không giới hạn mình ở bất kỳ 1 language hay 1 framework hay 1 chuyên môn cụ thể nào.
  • Có kiến thức IT tổng quát và khả năng tìm hiểu sâu khi cần thiết bất kỳ vấn đề gì thuộc: (1) Server – Network (2) Database (3) Web frameworks (4) Mobile frameworks
  • Hiểu và ứng dụng được UI/UX vào trong projects
  • Nắm bắt nhanh Business Logics và chuyển được thành Technical Logics
  • Biết được khi nào cần hiểu rộng, khi nào cần hiểu sâu một vấn đề
  • Có thể lập trình được ít nhất 1 ngôn ngữ lập trình web và 1 ngôn ngữ lập trình mobile (iOS/Android)

Tuy nhiên, nếu theo hướng này đòi hỏi bạn phải có kiến thức về Frontend hoặc Backend trước bởi trong 1 năm mà từ gà mờ lên thành Fullstack là điều hầu như không thể, trừ khi bạn quá siêu nhân.

1.2. Mảng Phát triển ứng dụng di động – Mobile Application Development

Khi theo đuổi mảng này, bạn sẽ viết phần mềm chạy trên các smartphone. Cùng với sự phát triển của xã hội, đây dần trở thành một trong những mảng rất hot, đa dạng và giàu tiềm năng.

Phổ thông nhất trong lĩnh vực lập trình ứng dụng di động này có lẽ là iOS và Android bởi tính phổ biến của 2 hệ điều hành này trong các thiết bị di động. Theo mảng này, bạn nên học Java (nếu chọn Android) hoặc Objective-C, Swift (nếu chọn iOS).

Ngoài ra công nghệ multi-platform đang khá hot gần đây cũng có thể giúp bạn code trên cả 2 nền tảng như React native hay Flutter.

1.3. Mảng Lập trình Nhúng – Embedded Development

Lập trình nhúng chính là viết các chương trình chạy trong các thiết bị điện tử, điện lạnh mà chúng ta vẫn sử dụng, có thể sờ nắm được như tivi, điều hòa, tủ lạnh, máy giặt,robot… Đây thực sự là một mảng khó nhằn bởi nó yêu cầu rất cao về kỹ năng, trình độ và còn cần một lượng kiến thức rất lớn về điện tử nữa. Bởi thế, nếu bạn chỉ mới đang gà mờ lập trình thì trở thành LTV Nhúng sẽ là một thử thách cao ngất, và mình khá chắc là bạn khó lòng đạt được.

Vậy nên, lập tình nhúng đòi hỏi bạn phải có một nền tảng tương đối ổn định để có thể theo đuổi nó thành công chỉ trong 1 năm. Bạn nên học C/C++ hoặc Java, cùng với đó củng cố lại kiến thức về điện tử của mình.

Tuy khó nhằn nhưng đây là một mảng siêu thú vị. Cùng với sự nở rộ của Internet of Things với “hệ sinh thái” công nghệ đang trở thành xu hướng, lương mảng này đang rất cao và xứng đáng trở thành 1 mục tiêu tuyệt vời để bạn theo đuổi.

1.4. Mảng Phát triển Ứng dụng máy tính – Desktop Application Development

Có vô số desktop application thuộc nhiều loại khác nhau. Một số app sở hữu rất nhiều tính năng đầy đủ như Microsoft Word, trong khi những app khác chỉ có thể thực hiện một hoặc hai tính năng đơn giản như đồng hồ hoặc lịch…

Ở mảng này, bạn có thể học C#, Python, C hay C++ đều được. Bạn cũng nên tìm hiểu về .NET Framework bởi tính phổ thông của nó. .NET framework đơn giản hóa việc viết ứng dụng bằng cách cung cấp nhiều thành phần được thiết kế sẵn, người lập trình chỉ cần học cách sử dụng và tùy theo sự sáng tạo mà gắn kết các thành phần đó lại với nhau. Nhiều công cụ được tạo ra để hỗ trợ xây dựng ứng dụng.NET, và IDE (Integrated Developement Environment) được phát triển và hỗ trợ bởi chính Microsoft là Visual Studio.

2. Các kỹ năng khác

Ở trong bất cứ ngành nghề nào, bạn cũng cần nhiều hơn 1 kỹ năng, chỉ có kỹ năng chuyên môn thôi là chưa đủ. Càng ngày các kỹ năng mềm càng trở nên quan trọng hơn và quyết định vào công cuộc làm việc, thăng tiến của bạn trong tương lai.

Ở đây, tôi khuyên bạn nên áp dụng quy tắc 80 – 20: 70% thời gian rèn luyện kỹ năng chuyên môn, và 30% thời gian rèn luyện các kỹ năng mềm khác. Ví dụ 1 ngày bạn dành ra 8 tiếng để học, thì trong đó có khoảng 1.5 tiếng để học tiếng Anh, kỹ năng thuyết trình, teamwork…

Kỹ năng tiếng Anh: Không có tiếng Anh, bạn đã tự tay bỏ đi tới 50% cơ hội học tập và tiến bộ của mình. Để cập nhật được những kiến thức mới nhất, xu hướng nổi bật trên toàn thế giới, bạn cần phải biết tiếng Anh. Chờ mọi thứ được dịch ra tiếng Việt thì có lẽ mọi thứ đã lạc hậu và lỗi thời lắm rồi. Nếu không thể 7 chấm, 8 chấm IELTS, ít nhất hãy trau dồi kỹ năng đọc hiểu tài liệu, để có thể đọc được code trên Stackoverflow, đọc được hướng dẫn viết code…

Kỹ năng teamwork: Chẳng ai làm dự án một mình, làm việc với người khác là điều không thể tránh khỏi. Bạn nên học cách giao tiếp và giải quyết vấn đề trong môi trường nhóm, nơi có nhiều luồng ý kiến và đôi khi chẳng ai chịu nhường ai. Làm việc nhóm, học hỏi từ mọi người cũng là một cách tuyệt vời để bạn tự cải thiện khả năng của chính mình.

Các vấn đề về sức khỏe: “Coder là máy chuyển hóa mì tôm thành code”, “Coder bụng ỏng da vàng”, “Coder ngủ ngày cày đêm”… Chỉ những lời đồn thổi thôi đã thể hiên phần nào thực trạng của anh em coder. Nhưng đừng vì cậy mình còn trẻ mà bỏ bê quá nhiều, đến khi bệnh tật đến thì có hối cũng không kịp. Anh em nên tập cho mình 1 số thòi quen lành mạnh, nếu không thể ăn đúng giờ ngủ đúng giấc như người ta thì cũng nên khoa học 1 chút, chơi 1 vài môn thể thao để cải thiện sức khỏe mỗi ngày.

Chặng 3: Tự tin bước vào đời

Chặng này, hãy xác định là mình sẽ ăn ngập mồm hành. Dù 2 chặng trước bạn có kỹ lưỡng, cẩn thận, chăm chỉ bao nhiêu cũng chẳng thể tránh nổi những vấp ngã khi làm việc, những sai sót, tranh cãi, bực tức triền miên…

Nhưng đừng lùi bước, bạn đã đi một chặng đường dài với bao quyết tâm, đừng để cuộc đời này đánh gục bạn. Thiếu ở đâu mình lại học bù thêm vào đó, sai chỗ nào ta lại làm lại từ đầu.

Đừng quên mục tiêu to lớn bạn đã đặt ra và cố gắng ròng rã để đi được tới giai đoạn này.

Chúc bạn học tốt!

Nguồn:codelearn.io

Leave a Reply

Your email address will not be published.