Tay ngang học code, tại sao không?

0

Sẵn sàng du học – Dù bạn làm ngành gì nhưng nếu giỏi IT bạn sẽ làm mọi việc dễ dàng hơn. Có rất nhiều câu hỏi cho những người học ngang, bạn cần tìm hiểu liệu mình có thể học code được không? Hãy cùng SSDH nghiên cứu bài viết này, nó được viết dành cho bạn đấy.

hop tacNhững câu hỏi về việc học IT (hoặc Master of IT) từ những bạn có background rất khác (phần lớn là Business/ Hospitality/ Accounting…). Những câu hỏi có thể hình dung như:

Đang background business, chuyển sang học IT thì học Business Analysis (vì có lai chữ business) hay học code luôn

Mình không giỏi toán, học code được không?

Giờ học thẳng lên Master of IT/ Software Development mà không có gốc, chưa biết gì về code, liệu có theo được?

Vì IT là một trong những ngành được ưu tiên hiện tại, và cũng là một trong những ngành hiếm hoi bạn được học thẳng lên Master mà không cần có background liên quan từ bachelor. Nên mình chia sẻ cho các bạn xem, hi vọng cung cấp một góc nhìn thực tế từ người trong cuộc.

Một xíu về background của mình: Mình tốt nghiệp chuyên ngành kinh tế đối ngoại tại ĐH ở Việt nam, ra trường đi làm 2 năm mảng Marketing/ Banking. Qua Úc học thêm 2.5 năm double degree về Marketing và Management rồi mới chuyển qua học IT.

Thời mình học ở Adelaide, chỉ có ăn, học, đi làm (rất ít), và ngủ. Nên thời gian rảnh mình hay lên các group hội sinh viên hóng chuyện rồi chia sẻ việc học trái ngành này nọ mỗi khi có ai hỏi. Nhưng sau này thì bận bê phở không còn thời gian nữa nhưng các posts cũ vẫn còn và comments của mình vẫn tồn tại. Nên nhiều bạn vẫn vào Messenger inbox hỏi mình về việc này.

Học trái ngành cực không?

Theo quan điểm hơi bi quan của mình khi chuyển qua IT là cực bạn ạ. Đặc biệt là với những bạn đã học đại học thậm chí học thạc sỹ xong còn chuyển ngành.

Back lại xa xưa một chút thì chẳng hiểu hồi đấy may mắn thế nào mà một thằng cùi lủi như mình lại vào được Ngoại thương. Trường thì bé tẹo nhưng đúng là đất địa linh nhân kiệt, huơ tay là ra người giỏi. Nên đôi khi nhìn lại mình thì kiểu tủi thân muốn ứa nước mắt vì ngu dốt không làm gì ra hồn. Nhưng được cái máu tự tin hoang đường lây lan rất nhanh, nên ai cũng nghĩ việc gì thì cũng sẽ làm được, rồi thì cũng sẽ ổn, chuyện gì cũng sẽ giải quyết được mà.

Sau một thời gian đi làm marketing, mình cảm thấy có một chút xíu hoang mang dù vẫn làm bình thường, nhưng cứ sao sao (sao sao là cảm giác không giải thích được). Được sự động viên của Dì mình, mình bỏ việc với một sự tự tin không kiểm soát là sẽ ổn cả thôi rồi sang Úc học tiếp Marketing. Học cũng hay, càng học mình càng hiểu được những việc mình làm ngày xưa (kiểu hồi đấy ai bảo gì thì làm nấy thôi), ví dụ ngày xưa đi nghe Focus groups là để biết insights khách hàng nè, rồi làm research survey (quantitative research) là để ra quyết định nè. Nhưng mình vẫn thấy thiếu thiếu gì đó.

Đầu 2017, Úc đổi luật bỏ 457 (này hơi lan man nhưng bạn nào ở Úc thời đó chắc cũng được một phen nhốn nháo), các anh chị và bạn bè mình quen biết ủng hộ việc học IT để kiếm việc. Vì những ngành như Business, International Business, Marketing, Commerce… ra trường là 99% bít cửa: bạn không hiểu nổi thị trường họ cần gì, insights của dân họ ra sao mà làm.

Mình gọi về nhà, được cái là ba mẹ và dì mình cũng ủng hộ, nên mình lại khăn gói qua bang khác với một xíu hoang mang. Sáng sớm hôm nay anh chị em bạn bè còn kéo nhau ra tiễn chụp hình tưng bừng. Vừa vui vừa buồn.

Hình như lại lan man, nói chung là khi mớ kiến thức về kinh tế kinh doanh đã ăn sâu vào mình quá nhiều thì việc chấp nhận một thứ quá khác biệt không phải là điều dễ dàng. Hơn thế nữa là trong khi ở VN một chương trình đại học cũng kéo dài 3-4 năm (cùng rất nhiều môn) thì chương trình thạc sỹ chỉ kéo dài 2 năm với 12-16 môn kèm vài môn lý thuyết (ví dụ là môn học về đạo đức chuẩn mực nè – standards and compliance…), nên chắc chắn một điều là lượng kiến thức không sao đủ được.

NHƯNG ĐẾN BÂY GIỜ MÌNH ĐÚC KẾT LẠI CÓ HAI CÁCH HỌC MÀ BẠN CÓ THỂ THEO

1. Học nhanh

Đằng nào thì những gì được học ở trường cũng khó mà giác ngộ trọn vẹn. Nên nếu từ sớm bạn đã xác định học để qua, lấy tấm bằng để ra trường thì cứ làm đúng y như vậy, học chăm chỉ, làm bài tập đầy đủ (hỏi bạn cũng được), hiền lành chịu khó chút thì chắc thầy cô cũng sẽ cho qua. Nhưng có 2 việc bạn cần làm. 

Học chắc một ngôn ngữ

Theo lời anh chị mà mình coi là bậc thầy Java bảo rằng cứ học chắc một ngôn ngữ đã. Vì khi bạn đã có thể giải quyết vấn đề bằng 1 ngôn ngữ thì qua ngôn ngữ khác mình chỉ đổi cách viết (syntax) thôi, còn cách tư duy thì vẫn hệt như vậy. Nếu bạn chọn con đường học nhanh này thì hai ngôn ngữ mình vote là Python và JavaScript (ngôn ngữ bậc cao, nên khi đọc code cũng dễ hiểu như học văn vậy).

Mình dùng Python ví dụ xíu nha:

Print (“Xin chào”) đọc vào là biết ngay nó in ra màn hình chữ Xin chào. Hay giải một bài toán điển hình:If we list all the natural numbers below 10 that are multiples of 3 or 5, we get 3, 5, 6 and 9. The sum of these multiples is 23. Find the sum of all the multiples of 3 or 5 below 1000 (nếu chúng ta liệt kê các số tự nhiên nhỏ hơn 10 và là bội của 3 và 5, chúng ta có 3,5,6, và 9. Tổng của các số này là 23. Tìm tổng của các bội của 3 hoặc 5 nhỏ hơn 1000.)

Dùng Python sẽ viết như sau:

sum(i for i in range(1000) if i % 3 == 0 or i % 5 == 0)

-sum là tổng (tiếng anh thui)

-range(1000) là danh sách tất cả những số dưới 1000

-% là dấu chia lấy dư

Giờ đọc lại sẽ thấy dễ hơn rất nhiều, tổng của các số i trong danh sách nhỏ hơn 1000 (range(1000)) nếu số I chia cho 3 dư 0 (i % 3 == 0, là chia hết cho 3 đó) hoặc (or) nếu số I chia cho 5 dư 0 (i % 5 == 0, là chia hết cho 5). Chạy dòng code này sẽ ra 233168, dễ phải không bạn.

Chọn một công nghệ để theo

Theo cá nhân thì mình thấy giờ có nhiều thứ như web, di động, nhúng, data… Nhưng hai cái đầu tiên là phổ biến nhất và làm cũng vui hơn vì dễ thấy được thành quả khi vừa làm xong luôn (nhưng tất nhiên chọn cái nào là quyền của mỗi người), có thể thử trước rồi chọn sau cũng chẳng sao.

Nhưng khi chọn một cái rồi thì học thêm những thứ liên quan đến nó.

Ví dụ học web mà bạn muốn làm giao diện thì học thêm HTML, CSS, JavaScript là ba cái nền tảng. Sau vững rồi thì học thêm Bootstrap (là 1 thư viện của CSS), jQuery (một thư viện JavaScript để quản lý các thành phần (DOM) trong trang web bạn nhìn thấy). Còn muốn làm về phần xử lí phía sau (lấy, xuất, xóa, dữ liệu) thì học 1 ngôn ngữ để xử lý (có thể là Python, Java, C#, PHP…) và ngôn ngữ truy vấn (SQL). Còn nhiều thứ nhưng biết nhiêu đây chắc cũng nhiều rồi.

Còn học mobile thì xác định theo Android hay iOS, mặc dù giờ có nhiều ngôn ngữ/ công nghệ hybrid cho phép bạn viết 1 lần mà chạy được cả 2 nền tảng như React Native hay Flutter rồi, nhưng theo anh Đạt Kin thánh code xứ Adelaide bảo thì vững một cái trước đã. Ví dụ theo Android thì biết Java/ Kotlin và dùng được Android Visual Studio, còn iOS thì Swift/ Objective-C và dung xcode. Học iOS tốn tiền hơn vì phải dung Macbook.

Học cách này có ưu điểm là bạn sẽ dễ build sản phẩm để đi làm hơn. Nhưng sẽ không hiểu sâu để nhảy qua công nghệ/ ngôn ngữ mới. Nhưng cũng chẳng sao, kiếm tiền trước đã.

Tạm là như vậy, giờ mình nói qua phần học chậm.

2. Học chậm (và chắc)

Có một điều buồn cười là chọn học nhanh hay học chậm thì bạn cũng chỉ có 2 năm đó để chuẩn bị mà thôi (trừ khi bạn bản lĩnh đến mức chấp nhận học lại Bachelor 3 năm thì chắc sẽ học được đầy đủ hơn). Nhưng trở lại vấn đề, mình nghĩ là không có đường học tắt, nên nếu muốn học chậm mà vẫn đủ kiến thức trong 2 năm thì chỉ có một cách là học nhồi kiến thức của 3 năm vào 2 năm đó. Nếu trường dạy không đủ thì chỉ có cách tự kiếm thêm, tìm thầy mà học.

Lúc này thì ngoài việc học chắc 1 ngôn ngữ như trên, bạn nên nắm chắc những thứ sau:

Cấu trúc dữ liệu và giải thuật

Cái này siêu quan trọng khi đi phỏng vấn vì họ chưa biết bạn làm được gì. Đây là cách để họ kiểm tra tư duy của bạn. Hồi đấy học môn này mơ hồ cực, nên lần về VN mình đi kiếm thầy và gặp được anh Thành (ảnh dạy ở trung tâm tin học ĐH KHTN), kèm 1:1 ở nhà, ngày nào cũng học với ngôn ngữ là C++. Nhưng do mình học dốt nên cũng hay bị mắng.

Các kiến trúc như MVC (Model – View – Controller), OOP (Object Oriented Programming), N-tier (mô hình N lớp)

Hồi đấy thầy Khoa (ở trung tâm Khoa Phạm), trước ngày mình đi làm có bảo là cứ học chắc MVC và OOP thì dùng ngôn ngữ nào, công nghệ nào cũng chơi được. Nó là cách để bạn phân chia code cho một dự án, giúp cho nó rành mạch hơn, đỡ lỗi hơn và an toàn hơn. Các framework sau này cũng dựa trên những công nghệ này, vd asp.net mvc cho C#, Django cho Python (Django dùng MTV – Model – Template – View nhưng thực chất nó vẫn là MVC, tên gọi khác thôi, Laravel cho PHP….

Mô hình N-tier sau này mình được bạn Dũng poop chỉ, nhưng chưa dùng nhiều.

Clean Code

Là viết code cho sạch, sau này đọc lại cho dễ, vì code không giống như văn. Đến lúc đọc lại chính code của mình vài ngày trước có khi còn không hiểu nổi.

Mình học được cái này từ một bậc đàn anh. Đến giờ mình vẫn biết ơn anh rất nhiều vì dù học chung nhau có 1 kì nhưng dạy cho mình quá nhiều thứ. Mình vẫn nhớ có môn học về User Experience, phải viết app Android bằng Kotlin, thì anh chỉ mình cách comment TODO để phân mục nào phần nào viết gì, nếu nhiều code lặp lại thì nhét vào 1 hàm (function)… Sau này khi đi làm thì mình vẫn cố gắng áp dụng dù nhiều khi lười biếng hay code ẩu. 

SSDH hy vọng với những chia sẻ trên của bạn Jayden Tran và xem thêm thông tin ở group ‘Tay ngang học code‘ để cùng trao đổi học hỏi với những bạn tay ngang giống Jayden các bạn sẽ có định hướng và thành công học IT tay ngang nhé.

SSDH team

Share.

Leave A Reply