Giáo trình Nhập môn lập trình không Code
Nếu không nói về code, vậy quyến sách này nói về cái gì? Bạn hãy coi nó là một cuốn
sách định hướng nghề nghiệp. Đối tượng mà ebook này hướng đến là các em lớp 12,
những bạn năm nhất đại học hoặc những bạn đang học ngành nghề khác, muốn tìm
hiểu về ngành lập trình.
Tuy nhiên, dù bạn đã chọn theo đuổi ngành CNTT, bạn vẫn có thể đọc series để biết
mình còn thiếu những kiến thức gì, cần học thêm những gì, đi làm khác đi học ra sao Chưa
kể, sau khi đọc xong, bạn cũng sẽ biết cách hướng dẫn bạn bè muốn học lập trình hoặc định
hướng cho đàn em chẳng hạn.
Đây là những thắc mắc mà sách sẽ giải đáp cho bạn sau:
• Làm lập trình viên là làm gì? Công việc thường ngày của họ là gì?
• Triển vọng nghề nghiệp và lương bổng của ngành lập trình.
• Học lập trình cần những tư chất gì? Liệu bạn có phù hợp với ngành lập trình không?
• Học lập trình có thể làm được gì: Phần mềm, app di động, web, game
• Hai con đường làm lập trình viên: Đại Học và Học Đại (Tự học, thấy gì học nấy)
• Làm sao học ngôn ngữ lập trình đầu tiên?
• Học "xong" ngôn ngữ lập trình đầu tiên thì làm gì?
• Kĩ năng mềm cứng mà lập trình viên phải biết: làm việc nhóm, tiếng Anh, tự học, .
Tóm tắt nội dung tài liệu: Giáo trình Nhập môn lập trình không Code
Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 1 Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 2 Lời tựa Từ câu hỏi của nhiều bạn trẻ Hiện nay, ngành lập trình đang là một ngành hot, nhận được sự chú ý của nhiều bạn trẻ. Từ lúc viết blog đến này mình vẫn thường nhận được câu hỏi "Làm sao để trở thành một lập trình viên", hoặc "Em đi học rồi nhưng vẫn còn đang mù mờ không biết ngành này thế nào, nên học những gì?". Những câu hỏi này thường đến từ các bạn học sinh sắp thi Đại Học, sinh viên năm nhất năm hai, hoặc những bạn đã tốt nghiệp, đã đi làm nhưng có hứng thú muốn tìm hiểu về ngành IT. Số lượng câu hỏi mình nhận được không hề ít, cho thấy có rất nhiều bạn quan tâm đến ngành IT và muốn theo đuổi nó. Đến ebook Nhập Môn Lập Trình Không Code Thế nhưng, khi mình thử tìm hiểu về ngành lập trình dưới góc độ của một newbie, mình mới thấy nó không hề dễ dàng một tí nào. Đa phần các tài liệu đều nặng về code, bập một phát là đưa ra lý thuyết, bắt tay ngay vào code làm nhiều bạn hoảng hồn. Trong quá trình làm việc, lập trình viên dành phần lớn thời gian cho việc code, nhưng công việc của lập trình viên không phải chỉ có code! Theo mình, trước khi dạy code, cần phải có định hướng cho các bạn về ngành lập trình như: công việc của lập trình viên, những tố chất cần có, lương bổng và cơ hội thế nào Do vậy, mình chọn một hướng tiếp cận riêng, nhập môn lập trình mà không đụng đến một dòng code nào. Điều này sẽ giúp các bạn đọc đỡ ngộp, đỡ sợ hơn khi tìm hiểu ngành này. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 3 Quyển sách này có gì hay? Nếu không nói về code, vậy quyến sách này nói về cái gì? Bạn hãy coi nó là một cuốn sách định hướng nghề nghiệp. Đối tượng mà ebook này hướng đến là các em lớp 12, những bạn năm nhất đại học hoặc những bạn đang học ngành nghề khác, muốn tìm hiểu về ngành lập trình. Tuy nhiên, dù bạn đã chọn theo đuổi ngành CNTT, bạn vẫn có thể đọc series để biết mình còn thiếu những kiến thức gì, cần học thêm những gì, đi làm khác đi học ra sao Chưa kể, sau khi đọc xong, bạn cũng sẽ biết cách hướng dẫn bạn bè muốn học lập trình hoặc định hướng cho đàn em chẳng hạn. Đây là những thắc mắc mà sách sẽ giải đáp cho bạn sau: • Làm lập trình viên là làm gì? Công việc thường ngày của họ là gì? • Triển vọng nghề nghiệp và lương bổng của ngành lập trình. • Học lập trình cần những tư chất gì? Liệu bạn có phù hợp với ngành lập trình không? • Học lập trình có thể làm được gì: Phần mềm, app di động, web, game • Hai con đường làm lập trình viên: Đại Học và Học Đại (Tự học, thấy gì học nấy) • Làm sao học ngôn ngữ lập trình đầu tiên? • Học "xong" ngôn ngữ lập trình đầu tiên thì làm gì? • Kĩ năng mềm cứng mà lập trình viên phải biết: làm việc nhóm, tiếng Anh, tự học, . P/S: Đây là ebook miễn phí, các bạn cứ thoải mái chia sẻ cho bạn bè, người thân, nhớ dẫn nguồn toidicodedao.com là được nhé. Để ủng hộ tác giả, nhớ ghé thăm và like fanpage tại: https://www.facebook.com/toidicodedao nhe. Các bạn hãy click Đăng kí nhận email để theo dõi blog và nhận những ebook miễn phí, những bài viết cực kì hay ho hàng tuần về kĩ năng mềm và cứng, kinh nghiệm trong ngành lập trình nhé! Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 4 Mục lục Lời tựa ........................................................................................................................................................................... 2 Mục lục .......................................................................................................................................................................... 4 Công việc thường ngày của một lập trình viên ............................................................................................ 5 Những tố chất cần có để trở thành lập trình viên ....................................................................................... 8 Triển vọng nghề nghiệp của ngành lập trình ............................................................................................. 11 Hai con đường trở thành lập trình viên: Đại Học và Học Đại .............................................................. 15 Con đường nào cho các bạn tự học lập trình? ........................................................................................... 19 Học ngôn ngữ lập trình đầu tiên như thế nào? ......................................................................................... 23 Năm con đường kiếm tiền từ nghề lập trình .............................................................................................. 28 Học “xong” lập trình thì làm gì, khi nào đi làm được?? .......................................................................... 32 Khoảng trống kiến thức giữa sinh viên IT và Lập Trình Viên ............................................................. 36 Sinh viên IT học và làm gì để không thất nghiệp? .................................................................................... 40 Làm sao để trở thành một lập trình viên “có giá” và lương cao? ....................................................... 45 Lời kết ......................................................................................................................................................................... 50 Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 5 Công việc thường ngày của một lập trình viên Chương này sẽ trả lời câu hỏi "Làm lập trình viên là làm gì?" và giới thiệu những công việc hằng ngày của mỗi lập trình viên. Làm lập trình viên là làm gì? Nói một cách đơn giản, công việc của lập trình viên là "lập trình", tức là viết code để tạo ra phần mềm. Phần mềm ở đây có thể là ứng dụng di động (Google Map, Camera 360), game (Flappy Bird, Angry Bird), web (Facebook, Instagram), ứng dụng Window (ứng dụng quản lý, bán hàng) hoặc các hệ thống nội bộ cho các công ty. Qui trình cơ bản để tạo ra một phần mềm thường bao gồm: business analysis (BA) phụ trách phân tích nghiệp vụ và lấy yêu cầu của khách hàng; designer để thiết kế các màn hình và luồng chạy; lập trình viên (developer) sẽ dựa vào đó để viết code tạo nên chương trình; sau đó tester sẽ chạy thử để tìm lỗi và quăng cho developer sửa. Với các web, ứng dụng nho nhỏ, lập trình viên sẽ tự mình làm hết các công đoạn trên, từ lấy yêu cầu khách hàng cho tới design và viết code, sau đó test thử sản phẩm. Quy trình phát triển một phần mềm Công việc hàng ngày của mỗi lập trình viên Tới đây chắc bạn cũng hiểu sơ về công việc của mỗi lập trình viên. Tuy nhiên, nhiều bạn sinh viên vẫn không rõ khi đi làm mình sẽ phải làm những việc gì. Làm một lập trình viên, công việc thường ngày của bạn đa phần là xoay quanh chiếc máy tính: • Code: Phần lớn thời gian đi làm của bạn là dùng để code. Ở vị trí junior hoặc developer, bạn sẽ code những hàm hoặc chức năng nhỏ. Ở các vị trí cao hơn bạn sẽ nhận nhiều trách nhiệm hơn, code các module phức tạp hơn. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 6 • Test: Thông thường, sau khi code xong một chức năng nào đó, ta sẽ đưa cho tester kiểm thử để tìm lỗi. Tuy vậy, trước khi đưa cho tester, ta cũng phải chạy thử và viết unit test cẩn thận để chắc chắn chương trình chạy đúng, module đã hoàn thành. • Fix bug: Bug là những lỗi ta gặp khi code, làm chương trình chạy sai. Code thì lúc nào cũng có bug, không ít thì nhiều. Khi phát hiện bug, ta phải vọc và sửa code để chương trình chạy đúng. • Học cái mới: Đôi khi ta phải tham gia một dự án sử dụng công nghệ mới hoặc công nghệ quá cũ mà ta không biết. Lúc này ta phải tự học công nghệ đó (thông qua ebook, khoá học online) để có thể làm việc được. Lập trình viên không phải chỉ biết code Tuy nhiên, như mình đã nói, lập trình viên không phải lúc nào cũng code. Ngoài code ra, ta còn phải làm khá nhiều việc không dính dáng tới máy tính như: • Suy nghĩ: Trước khi đặt bút viết code, nhầm, gõ code, ta cần phải ngồi phác thảo và suy nghĩ hướng giải quyết. Việc suy nghĩ cẩn thận trước khi code rất quan trọng, nó giúp bạn có cái nhìn tổng quát vấn đề, không bỏ quên các trường hợp thừa. • Phân tích/Thiết kế: Với các module phức tạp, trước khi code bạn phải làm việc với đồng đội cùng team để phân tích rõ ràng, thiết kế các module trước khi code. Việc này khá là vui, hồi bên UK cứ mỗi lần cần thảo luận là mình và teammate lại kiếm cái bảng, vừa viết viết vẽ vẽ phân tích vừa chém gió. • Họp hành và báo cáo: Theo qui trình Scrum, mỗi ngày bạn sẽ mất khoảng 10 phút tham gia họp Scrum (Daily Meeting) để báo cáo về những việc mình đã/sẽ làm. Ngoài ra, bạn còn phải tham dự đủ thứ cuộc họp liên quan đến thiết kế hệ thống, báo cáo tình hình, họp demo cho khách hàng. • Giao tiếp với khách hàng/stackholder: Theo lý thuyết thì BA sẽ giao tiếp với khách hàng và lấy requirement, developer chỉ việc code. Tuy nhiên, trên thực tế, ở các công ty hoặc team nhỏ, đôi khi chính developer phải nói chuyện với khách hàng để làm rõ yêu cầu, demo sản phẩm. Thời còn làm FPT, mình vẫn phải lên forum để hỏi khách hàng và bên designer về những phần chưa rõ. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 7 Kết luận Ở phần này, chúng ta đã tìm hiểu những việc mà hầu như developer nào cũng làm hằng ngày trong khoảng thời gian đầu đi làm. Khi bạn lên các vị trí cao hơn, thời gian code sẽ ít đi, thay vào đó bạn sẽ bỏ nhiều thời gian hơn để phân tích thiết kế, phỏng vấn developer nếu bạn theo hướng technical; hoặc bỏ nhiều thời gian hơn để quản lý, giao tiếp với khách hàng nếu bạn đi theo hướng management. Ở chương sau, chúng ta sẽ tìm hiểu về những tư chất cần có để theo ngành lập trình? Làm sao biết liệu bạn có phù hợp với ngành lập trình hay không? Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 8 Những tố chất cần có để trở thành lập trình viên Nhiều bạn có hỏi mình là "Muốn làm lập trình viên cần có những tư chất gì? Làm sao để biết mình có phù hợp với ngành này hay không?" Chương này sẽ giải đáp những thắc mắc nói trên, đồng thời dẫn ra những sai lầm mà nhiều người thường nghĩ về lập trình viên nhé. Hiểu lầm thường gặp về lập trình viên Do hậu quả của báo chí và phim ảnh (Tấm gương Bill Gates, Mark Zuckerberg hoặc phim Mr. Robot, The Social Network, ), một số bạn học sinh sinh viên thường có những lầm tưởng sau về lập trình viên: • Muốn làm lập trình viên thì phải cực kỳ thông minh cỡ thiên tài: Sai! Bạn không cần phải giỏi như Bill Gates hay Mark Zuckerberg để có thể làm lập trình viên, chỉ cần có một số tố chất là được (xem phần dưới). • Muốn làm lập trình viên phải giỏi Toán: Không hẳn là đúng! Giỏi toán sẽ giúp bạn suy nghĩ logic tốt hơn, code tốt hơn. Tuy vậy, công việc lập trình thường rất ít khi sử dụng các kiến thức toán cấp cao (tích phân, đạo hàm, ma trận), chỉ cần cộng trừ nhân chia và logic. Tuy viên, cũng có một số lĩnh vực chuyên biệt cần sử dụng nhiều Toán như developer game, data mining, machine learning, ứng dụng giả lập vv • Lập trình viên thường ù lì, ít nói, thích làm việc một mình: Sai! Lập trình là một công việc tập thể, đòi hỏi giao tiếp nhiều nên không có chuyện lập trình viên chỉ cắm đầu vào máy code một mình là xong việc. Tố chất cần có để theo đuổi ngành lập trình Không cần phải là thiên tài, cũng không cần phải giỏi toán, vậy bạn cần những gì để có thể thành một lập trình viên? Bạn cần những tố chất sau đây: • Khả năng suy nghĩ logic, giải quyết vấn đề: Công việc lập trình đa phần giống như giải đố, và người lập trình viên viết code hoặc sử dụng thư viện/framework có sẵn để Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 9 giải quyết vấn đề đó. Các bạn có thể thử một bài test khả năng logic ở đây: Test logic (Đề thi tuyển vào ĐH FPT cũng bao gồm 105 câu hỏi logic dạng này). • Tính kiên nhẫn: Việc học lập trình đòi hỏi tính kiên nhẫn rất cao. Việc code cũng thế, đôi khi bạn sẽ mất cả buổi trời để tìm một con bug hoặc sửa một lỗi nhỏ. Nếu không đủ kiên nhẫn bạn sẽ rất dễ bỏ cuộc. • Khả năng hoà đồng, kĩ năng giao tiếp: Lập trình là một công việc tập thể, bạn sẽ phải làm việc chung với các thành viên khác (từ trưởng nhóm, developer cho tới tester). Do đó kĩ năng giao tiếp, làm việc nhóm là không thể thiếu. • Tinh thần tự giác: Khi đi làm, thông thường trưởng nhóm sẽ không cầm tay chỉ việc mà chỉ giao việc, bạn sẽ phải tự giác sắp xếp thời gian, tìm hiểu công nghệ để thực hiện. Công nghệ mới liên tục thay đổi nên phải có tinh thần tự giác và đam mê thì bạn mới có thể cập nhật kiến thức cho bản thân, giữ cho mình không lạc hậu. • Tính tỉ mẩn, để ý tiểu tiết: Để viết ra chương trình tốt, ít lỗi, developer phải để ý đến những tiểu tiết khi code, không bỏ dỡ những trường hợp ít gặp. Việc để ý tiểu tiết sẽ giúp bạn viết code ít lỗi hơn, thiết kế tổ chức code tốt hơn. • Lười biếng: Tuy khó tin nhưng đây là một phẩm chất mà developer nên có. Thay vì bỏ thời gian công sức ra cày cuốc OT, viết code nhiều, lập trình viên cần phải hơi "làm biếng" để tìm ra hướng giải quyết nhanh chóng và ít tốn công sức hơn. Tất nhiên, để trở thành một lập trình viên, bạn không cần toàn bộ những tố chất phía trên mà chỉ cần phần lớn. Có những coder code và thiết kế giỏi nhưng rất ngại giao tiếp; hoặc có những bạn dev giải quyết vấn đề rất nhanh nhưng lại hơi ẩu, thiếu tỉ mẩn nên code hay mắc lỗi. Nếu bạn có một vài đức tính trong danh sách này, cộng với đam mê với ngành phần mềm thì cứ dấn thân thôi, đừng ngại ngần gì nhé! Những thái độ không phù hợp với ngành lập trình Nếu có một số thái độ hoặc cách nghĩ dưới đây, bạn không nên theo đuổi ngành lập trình mà hãy chọn ngành khác phù hợp với bản thân mình hơn: • Thiếu tự giác, muốn được hướng dẫn công việc cụ thể • Thiếu kiên nhẫn, không thích tự tìm tòi cái mới Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 10 • Thích làm việc cá nhân, ghét giao tiếp và làm việc nhóm • Muốn ngày làm 8 tiếng, giờ giấc ổn định: Trong ngành lập trình, việc OT (overtime tức làm thêm giờ) khá phổ biến. Những khi dự án vào giao đoạn khẩn cấp, cả đội ngũ phải làm thêm tới 8-9h tối hoặc T7-CN nên giờ giấc cũng khá thất thường. • Muốn làm giàu nhanh: Lương của lập trình viên cao hơn mặt bằng chung một chút nhưng cũng chỉ đủ sống. Các trường hợp giàu có bất ngờ như Nguyễn Hà Đông hoặc giàu có nhờ startup cũng có nhưng rất hiếm. Đa phần lập trình viên vẫn phải đi làm 8 tiếng một ngày, cuối tháng nhận lương như bao ngành nghề bình thường khác. Kết Bài viết này chia sẻ một số sai lầm thường gặp khi nói về lập trình viên, những tố chất cần có và không nên có nếu muốn theo đuổi ngành lập trình. Nếu muốn bổ sung điều gì các bạn cứ thoải mái comment nhé! Ở bài viết sau, mình sẽ nói chuyện "Học lập trình có thể làm được những gì?", đồng thời chia sẻ một số điều về triển vọng nghề nghiệp và lương bổng trong ngành lập trình. Các bạn nhớ follow fanpage và đón xem nha. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 11 Triển vọng nghề nghiệp của ngành lập trình Ở chương trước, mình đã chia sẻ về những tố chất mà mỗi lập trình viên nên có. Bên cạnh đó, khi tham dự một số hội thảo hướng nghiệp, mình vẫn thường nghe các bạn hỏi những câu hỏi như: • Học lập trình t ... k đang được dùng nhiều là Bootstrap, jQuery, AngularJS, NodeJS. Tự học các framework này sẽ giúp bạn dễ tìm việc hơn rất nhiều! Để rõ ràng hơn, các bạn có thể xem một số mẫu tin tuyển dụng trên itviec, vietnamwork, careerbuilder để xem các công ty họ cần tuyển người có những kĩ năng gì, từ đó trau dồi thôi! Một mẫu tuyển dụng Senior Dev Java. Bạn thấy đấy, họ không chỉ yêu cầu ngôn ngữ mà còn phải biết framework, design pattern, kĩ năng mềm Các bạn cũng nên né những mẩu tuyển dụng dạng này ra nhé. Vào đó là thành IT culi chứ không tăng kĩ năng code đâu! Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 42 Điều quan trọng nhất, nếu muốn có việc làm, đương nhiên là phải học cách xin việc. Dù bạn có giỏi cỡ nào mà không xin được việc thì cũng vô dụng. Muốn xin được việc phải viết được một mẫu CV ổn, phải qua được vòng phỏng vấn. Vậy làm sao để viết CV đẹp, làm sao vượt qua vòng phỏng vấn tuyển dụng? Mình đã có viết đầy đủ rồi nên các bạn chịu khó xem lại series Muôn nẻo đường tìm việc nha. Lấy kinh nghiệm ở đâu ra? Có một thực tế trớ trêu như thế này: Nhiều công ty chỉ thích tuyển người đã có kinh nghiệm! Sinh viên ra trường không có kinh nghiệm -> thất nghiệp -> không được làm việc -> không có kinh nghiệm, tạo thành một vòng luẩn quẩn. Nghe đồn có công ty tuyển sinh viên vừa tốt nghiệp nhưng đòi 6 năm kinh nghiệm Không kinh nghiệm, các bạn sẽ cạnh tranh với nhau trong khoảng 7%. Có kinh nghiệm, số lượng công việc sẽ rộng mở hơn nhiều Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 43 Vậy sinh viên kiếm kinh nghiệm ở đâu ra? Cách đơn giản nhất là cố gắng đi thực tập vào năm 3. Việc đi làm sẽ dạy bạn được rất nhiều điều: làm dự án thực tế ra sao, quy trình thế nào, làm sao làm việc với khách hàng, đối xử với đồng nghiệp và cấp trên. Tốt nhất là nên đi thực tập có lương, lương thấp cũng không sao, quan trọng là môi trường tốt, mình được làm nhiều, học hỏi được nhiều. Nhà tuyển dụng cần kinh nghiệm để chứng tỏ bạn có khả năng, bạn làm được việc. Nếu không có cơ hội đi thực tập, bạn có thể làm freelance, làm các pet project hoặc dự án từ thiện. Khi làm xong, bạn nhớ deploy dự án lên đâu đó, bỏ code lên GitHub; sau đó bỏ các dự án đó vào CV, đem khoe với nhà tuyển dụng để chứng tỏ năng lực nhé. Tự học, tự trang bị kiến thức như thế nào? Để không thất nghiệp, bạn cũng phải biết cách tự học để trang bị kiến thức cho bản thân mình. Kiến thức trong ngành mình rất rộng, tài liệu học cũng rất nhiều và đủ thứ thượng vàng hạ cám. Nếu không biết cách học, bạn sẽ dễ bị loạn, mất thời gian mà khó đạt được mục tiêu (Hồi mình tự học UI/UX, học Cloud hay tìm hiểu về Data Mining cũng thế). Theo mình, để việc học trở nên hiệu quả, các bạn nên làm theo những bước sau đây: 1. Xác định thứ cần học: Đừng ôm đồm, hãy tập trung vào học một thứ trước. Đừng học Java, PHP, C# cùng một lúc mà hãy học một ngôn ngữ thôi! Chọn một ngôn ngữ, một framework, đào sâu vào, đến khi nào thành thạo thì bắt đầu học cái mới. 2. Xác định con đường: Ví dụ muốn làm front-end dev, bạn cần tìm hiểu về HTML/CSS/JS cơ bản, rồi mới bắt đầu tìm hiểu các framework. Làm gì cũng vậy, nên học kiến thức nền trước rồi nâng cao dần, chứ đừng đâm đầu vào học framework ngay. 3. Xem lại bản thân: Nhớ xem lại những gì mình đã biết, bổ sung những gì mình chưa biết. Đừng nghĩ rằng mình đã biết hết! Đến bản thân mình, lâu lâu những thứ mình tưởng rằng đã biết rồi vẫn thấy thiếu hụt tùm lum, phải học lại để bổ sung này! Nói chung, dù bạn có học cách nào thì cách tốt nhất vẫn là làm. Bạn có xem 3-4 khoá học, đọc hết 3-4 cuốn sách mà không viết dòng code nào thì cũng không tiếp thu được. Nhớ vừa học, vừa code, vừa áp dụng để tiếp thu kiến thức nhé! Kết Hi vọng bài viết này đã giúp bạn đỡ "bối rối" hơn, biết được phần nào những việc mình cần làm để lúc ra trường có thể tìm được một công việc ưng ý. Bạn nào có kinh nghiệm muốn chia sẻ thì cứ đăng trong phần comment nhé! Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 44 Bonus: Các bạn có thể tìm hiểu thêm qua slide thuyết trình và video phần trình bày của mình về chủ đề "Sinh viên IT học và làm gì để không thất nghiệp" nhé. Nếu chưa follow fanpage thì nhớ like và follow để đọc những bài viết hay mỗi ngày nghen. 30s quảng cáo Những điều đề cập trong bài viết (scrum, học tiếng Anh) đều được giải thích rõ trong cuốn sách "Code dạo kí sự – Lập trình viên đâu phải chỉ biết code" do mình viết. Quyển sách bao gồm những kĩ năng từ mềm đến cứng mà mỗi developer phải có, đảm bảo sẽ rất có ích cho các bạn sinh viên hoặc lập trình viên đã đi làm. Các bạn xem thông tin và đặt mua sách tại đây nhé: Sách Code Dạo Ký Sự. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 45 Làm sao để trở thành một lập trình viên “có giá, lương cao”? Là một lập trình viên, hẳn bạn nào cũng muốn có một công việc với mức lương khá khẩm, môi trường làm việc ngon lành. Tuy nhiên, các công ty trả lương cho bạn dựa theo giá trị của bản thân bạn, tức là việc bạn có thể mang lại bao nhiêu tiền cho công ty. Muốn có mức lương như ý, bạn phải là một lập trình viên "có giá", đem lại nhiều giá trị cho công ty và cho team. Vậy, phải làm sao để nâng cao giá trị bản thân, trở thành một lập trình viên "có giá"? Hãy đọc và làm theo những kinh nghiệm mình chia sẻ trong bài viết này nhé! Trau đồi kĩ năng cứng Công việc của lập trình viên không chỉ có code! Tuy vậy, thời gian code chiếm phần lớn thời gian làm việc của bạn. Trau dồi kinh nghiệm và kĩ năng cứng là một trong những cách nhanh nhất để nâng cao giá trị bản thân. Những việc bạn cần làm để trau dồi kĩ năng cứng là: • Nâng cao chất lượng code: Hãy đọc Code Complete và Clean Code. Ngoài ra, hãy tìm hiểu thêm về các khái niệm chuyên sâu như: Nguyên lý SOLID, Dependency Injection, Design pattern. Hãy nâng tầm suy nghĩ lên tầm design, tầm hệ thống. • Học tiếng Anh: Tiếng Anh tốt sẽ giúp bạn dễ đọc tài liệu, học công nghệ mới. Ngoài ra, bạn còn có cơ hội đi nước ngoài on-site, hoặc làm việc công ty nước ngoài, nhận mức lương cao. (Mình cũng từng chia sẻ một số kinh nghiệm học tiếng Anh nhé). • Tự bổ sung kiến thức: Kiến thức trong ngành lập trình rất nhanh hết hạn. Đừng chỉ làm việc mình được giao, coi chừng kiến thức của bạn sẽ lạc hậu khi đi ra ngoài phỏng vấn xin việc đấy! Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 46 • Hãy bớt vào vozforum, webtretho, facebook lại mà chịu khó tìm đọc các blog IT, Pluralsight, Quora, Medium để tìm bổ sung kiến thức. Kiến thức trong ngành lập trình rất rộng và rất dễ lỗi thời • Học Domain Knowledge: Domain Knowledge tức là những kiến thức liên quan đến business, đến chuyên ngành (kinh tế, tài chính). • Biết domain knowledge, các bạn có thể hiểu điều khách hàng nói, biết cách nói cho họ hiểu. Điều này tạo nên sự khác biệt, làm bạn "có giá" hơn. Bạn cũng có thể phát triển lên tầm BA – Business Analyst. • Tìm hiểu rõ dự án: Có kĩ năng technical là tốt! Nhưng phải hiểu dự án mới biết cách áp dụng kĩ năng đem lại hiệu quả cao nhất! • Hãy tìm hiểu kĩ về công nghệ, về scope và deadline, về những người chịu trách nhiệm chính trong dự án để có thể đưa ra những đóng góp hữu ích cho team. Phát triển kĩ năng mềm Không chỉ các bạn sinh viên ít lưu tâm tới kĩ năng mềm, mà nhiều lập trình viên đã đi làm cũng coi thường tầm quan trọng của nó. Nếu kĩ năng cứng, kĩ năng xin việc quyết định chuyện bạn có việc làm hay không; kĩ năng mềm sẽ quyết định khả năng sống sót với nghề, khả năng thăng tiến của bạn. Những kĩ năng mềm mà các bạn nên phát triển là: • Kĩ năng giao tiếp: Dân IT thường làm việc với máy nên không để ý đến kĩ năng giao tiếp. Thật ra, lập trình là làm việc với con người: Bạn sẽ phải trình bày với đồng đội, với sếp, với khách hàng. • Dù cho bạn định theo hướng quản lý, khi lên vị trí cao như senior, software architect, bạn vẫn cần những kĩ năng thuyết trình, kĩ năng diễn đạt. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 47 Mình khuyến khích các bạn nên đọc Đắc Nhân Tâm – Một cuốn sách khá hay về đối nhân xử thế và giao tiếp • Thương sếp và hiểu sếp: Tại sao phải thương sếp hiểu sếp? Bởi vì việc bạn lên chức hay lên lương phần lớn là do sếp quyết định. • Hãy thương sếp vì ngày xưa sếp cũng từng là dev như bạn, giờ làm quản lý họ cũng phải học hỏi từ đầu. Hãy hiểu sếp vì họ còn có nhiều chuyện phải lo hơn (dự án, tiến độ, lợi nhuận), không chỉ tập trung vào technical được nữa. • Quản lý thời gian: Mỗi người chỉ có 8 tiếng mỗi ngày để làm việc. Nếu không biết cách quản lý, bạn sẽ khó hoàn thành công việc, dẫn đến OT. Mình có chia sẻ một bài viết về cách quản lý thời gian bằng Trello, các bạn tìm đọc nhé. • Xây dựng uy tín và quan hệ: Ai cũng biết uy tín và quan hệ rất quan trọng. • Uy tín giúp bạn đạt được nể trọng của sếp và đồng nghiệp, dễ lên lương lên chức. Quan hệ giúp bạn có nhiều cơ hội mới. Nhiều bạn chỉ cắm mặt lo làm mà quên mất hoặc không biết cách xây dựng hai thứ này. • Bạn có thể dần dần xây dựng uy tín thông qua những việc nhỏ như: Tôn trọng deadline, hứa là làm; code có tâm, ít bug; không ngại việc "hơi" quá khả năng; sẵn sàng giúp đỡ đồng đội và junior. Uy tín và thương hiệu cá nhân đóng vai trò khá quan trọng trên con đường thăng tiến của bạn Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 48 Về chuyện tăng lương Một vấn đề mà developer chúng ta thường hay lăn tăn đó là chuyện "tăng lương". Các bạn nên hiểu rằng, công ty trả lương cho bạn theo khả năng, theo công việc bạn hoàn thành. Nếu bạn chỉ hoàn thành những công việc được giao, khả năng của bạn không tăng lên, công ty không có lý do gì để tăng lương cho bạn cả! Để dễ dàng "đòi hỏi" tăng lương, các bạn hãy đưa ra những lý do chính đáng, phù hợp như sau: • Nói rõ những cống hiến của bản thân cho công ty và cho thành công của dự án • Nâng cao khả năng, trình độ của mình bằng cách trau dồi các kĩ năng mềm cứng. • Nhận nhiều trọng trách hơn, nhận trách nhiệm nhiều hơn thì dĩ nhiên lương cũng sẽ tăng lên theo • Thử đi phỏng vấn bên ngoài, sau đó lấy offer về thương lượng. Một kinh nghiệm khác khi thương lượng lương bổng là đừng tin lời hứa của các sếp. Hãy đòi hỏi họ viết rõ ràng về điều kiện tăng lương, tăng chức, gửi qua email để có cái làm bằng chứng sau này. Đừng quá tin tưởng lời hứa suông của sếp, hãy đòi giấy tờ email xác thực Ngay cả ở các công ty lớn như Amazon, FPT, chuyện hứa lèo để giữ chân nhân viên, quịt rồi không tăng lương cũng không phải là hiếm nhé! Nhảy việc nhiều lương sẽ cao? Có khá nhiều lý do để các bạn nhảy việc: Công việc nhàm chán, lương thấp, không có cơ hội phát triển Nhảy việc có một số cái lợi: Khi nhảy việc, lương sẽ tăng nhanh hơn so với việc chờ tăng lương. Điều này giúp bạn không bị hớ lương. Kể cả khi bạn không định nhảy việc, có offer mức lương cao hơn từ công ty khác thì bạn cũng dễ nói chuyện với sếp hơn để đòi tăng lương. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 49 Tuy nhiên, nhảy việc có một số tác hại các bạn nên chú ý: Nó gây thiệt hại cho công ty (mất phí đào tạo bỏ ra cho bạn). Nhảy việc quá thường xuyên sẽ làm xấu CV của bạn (nhân viên nhảy nhiều thì công ty ít dám tuyển), đồng thời cũng làm giảm cơ hội thăng tiến của bạn. Chuyện nhảy việc có những lợi ích và tác hại của nó Do đó, lời khuyên của mình là nên stay khoảng 2-3 năm trước khi nhảy. Nên nhảy nếu tăng hơn 2-30% (Lương 10 lên 13tr chẳng hạn), tăng chỉ có mấy trăm nghìn thì đừng nhảy mất công. Nếu nhắm thấy có thể phát triển lâu dài trong công ty hiện tại thì bạn có thể bám trụ lâu năm, đổi mức lương thấp lấy cơ hội thăng tiến về sau. Ngoài ra, đừng nên nhảy việc khi dự án đang thiếu nhân sự hoặc đang bước vào giai đoạn quan trọng nhé. Bạn sẽ đẩy cấp trên và đồng đội vào thế khó xử, sau này rất khó nhìn mặt nhau! Ngành IT mình nhỏ lắm, những chuyện như vậy sẽ ảnh hưởng lớn đến uy tín và hình ảnh của bạn sau này. Nhớ cẩn trọng nhé! Kết Bài viết này được tổng hợp từ nội dung buổi thuyết trình của mình tại FPT Software Hồ Chí Minh. Các bạn có thể tham khảo nội dung slide lại đây nhé: xem Slide. Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 50 Lời kết Cuốn sách Nhập Môn Lập Trình Không Code cuối cùng cũng đi đến hồi kết. Do bản chất nó chỉ là Nhập Môn, mình cố gắng không viết quá sâu về kĩ thuật. Vì vậy, series rất dễ nên các em cấp 3, các bạn sinh viên năm nhất hoặc không học ngành lập trình cũng có thể hiểu được. Thông qua ebook này, mình đã chia sẻ về công việc của lập trình viên, những tố chất cần có, con đường trở thành một lập trình viên thực thụ. Hi vọng cuốn sách đã giúp các bạn có cái nhìn rõ ràng hơn về ngành lập trình, giúp bạn định hướng được bản thân, biết con đường mình phải đi trong tương lai. Một người thầy giỏi không phải là người thầy dạy cho bạn mọi thứ, mà là người thầy dạy cho bạn cách tự tìm hiểu mọi thứ. Đọc xong cuốn sách này, tuy không viết được một dòng code nào, nhưng bạn sẽ biết những gì mình cần phải tự học và tìm hiểu, để dựa vào đó mà tự trau đồi kiến thức chính mình. Cảm ơn các bạn đã bỏ thời gian đọc hết cuốn sách, chúc các bạn may mắn trên con đường IT mình đã chọn. Nếu có thắc mắc trong quá trình đọc, các bạn có thể thoải mái liên hệ mình hoặc fanpage Tôi đi code dạo để hỏi. Do mình lười nên nếu bạn không đọc bài, hỏi lại những câu hỏi mình đã trả lời rõ trong bài viết thì mình sẽ bắt bạn đọc lại sách đấy nhé ;). P/S: Đây là ebook miễn phí, các bạn cứ thoải mái chia sẻ cho bạn bè, người thân, nhớ dẫn nguồn toidicodedao.com là được nhé. Để ủng hộ tác giả, nhớ ghé thăm và like fanpage tại: https://www.facebook.com/toidicodedao nhe. Các bạn hãy click Đăng kí nhận email để theo dõi blog và nhận những ebook miễn phí, những bài viết cực kì hay ho hàng tuần về kĩ năng mềm và cứng, kinh nghiệm trong ngành lập trình nhé! Nhập Môn Lập Trình Không Code – Phạm Huy Hoàng Bản quyền tại: toidicodedao.com 51 Về tác giả Mình là Phạm Huy Hoàng, hiện đang theo học tại Thạc sĩ về Khoa Học Máy Tính (Computer Science) tại Đại học Lancaster, Anh. Hiện mình đang làm ở vị trí Full-stack Developer cho phòng IT của trường. Mình cũng là chủ blog Tôi Đi Code Dạo. Blog của mình chia sẻ về những kĩ năng cứng, kĩ năng mềm mà các lập trình viên cần phải có. Các bạn nhớ theo dõi vào thứ 3 và thứ 5 mỗi ngày nhé! Thông tin liên lạc: Email: huyhoang8a5@gmail.com Blog: https://toidicodedao.com Linkedin: https://www.linkedin.com/in/huyhoangpham92 CV: Sách đã ra mắt Code dạo kí sự – Lập trình viên đâu phải chỉ biết code Những phương cách trau dồi kĩ năng mềm, kĩ năng cứng đều được mình đề cập tới trong cuốn sách Đây là quyển sách đầu tiên đề cập những kĩ năng từ mềm đến cứng mà mỗi developer phải có, đảm bảo sẽ rất có ích cho các bạn sinh viên hoặc lập trình viên đã đi làm. Các bạn xem thông tin và đặt mua sách tại đây nhé: Sách Code Dạo Ký Sự. Bảo Mật Nhập Môn – Bảo mật cơ bản cho developer Những kiến thức vô cùng cơ bản về bảo mật mà developer nào cũng cần phải biết để bảo vệ website. Với giọng văn hài hước, hóm hỉnh, dễ đọc dễ hiểu, cùng nhiều ví dụ minh hoạ, ebook đã được nhiều bạn đọc đón nhận, với hơn 15 ngàn lượt tải. Bạn vào để tải ebook miễn phí nhé!
File đính kèm:
- giao_trinh_nhap_mon_lap_trinh_khong_code.pdf