Đây là tự truyện của 1 bác trên Voz, mình thấy bổ ích nên copy cho các bạn tham khảo Từ ngày đầu tiên gõ những dòng code cho đến năm 2013, tôi đã trải qua 15 năm, rất nhiều kỉ niệm cũng như cảm xúc tôi đã trải qua. Những cảm giác đó vẫn mồn một như mới xảy ra ngày hôm qua. Hi vọng qua một loạt bài viết sắp tới, các bạn sẽ thấy được con đường của một lập trình viên vất vả như thế nào, thành công thì hạnh phúc ra sao, tình trạng CNTT tại nước ta thế nào,....Và nó cũng là lời giải đáp cho vô vàn những câu hỏi tôi thường xuyên bị "đập vào mắt" khi lướt web hàng ngày như: - Bắt đầu học lập trình như thế nào ? - Em giỏi cái X thì theo Code có được không ? - Học ngành gì là HOT nhất trong CNTT ? - Trung tâm nào là tốt nhất APTECH hay NIIT ? - Bằng cấp có quan trọng không ? - XIn việc như thế nào ? - Muốn lương cao trong CNTT thì cần gì ? - Học cái này xong ra để làm gì, sao LTV nghèo thế, vân vân và vân vân... Trước khi vào nội dung chính, tôi muốn khẳng định lại: - Chuyện xảy ra hoàn toàn là thật, và nhân vật chính trong loạt bài trên là tôi. Có thể nói tôi trải qua khá nhiều thăng trầm trong 15 năm làm lập trình, từ học dốt đến học giỏi, từ thi rớt đến khi thi đội tuyển, từ vật vã học tại các trung tâm, đi làm thêm, xin thực tập, tham gia freelance, .v... cho đến lúc tự cảm nhận là mình cũng "khá" thành công ở thời điểm hiện tại nên tôi cho rằng kinh nghiệm của mình là khá tốt cho một số bạn trẻ. - Vì một số lý do đặc thù, những công ty trong bài viết tôi sẽ không nêu tên thật vì lý do hình ảnh, danh tiếng. Nhưng việc các bạn đoán được công ty đó là công ty nào thì không liên quan đến tôi. - Một số nhân vật tôi cũng sẽ không nêu tên thật, chỉ sử dụng định danh. Tất nhiên nếu các bạn lại đoán ra thì đó tiếp tục không liên quan đến tôi. - Tôi cũng sẽ không dùng nick thật của mình trong VOZ hay có ý định public thông tin cá nhân của mình, lý do rất đơn giản vì nick của tôi hiện tại ở các diễn đàn khác cũng có tên tuổi . Nếu ai đó đã từng là đồng nghiệp, hoặc bàn bè của tôi có đoán ra tôi là ai, xin vui lòng coi như không biết gì. Điều này làm tôi có thể tự tin không DROP Topic. PHẦN I: NHỮNG DÒNG CODE ĐẦU TIÊN - Bạn muốn trở thành Lập trình viên từ khi nào ? - Lý do để bạn muốn trở thành Lập trình viên là gì ? Hai câu hỏi trên hết sức quan trọng, và có ảnh hưởng rất lớn đến bạn nào muốn theo nghiệp LTV, và sống bằng nghề này. Tôi rất may mắn vì bản thân đã xác định được mình sẽ trở thành LTV từ rất bé, 10 tuổi lận. Hồi đó bố tôi cũng thuộc lớp quản lý khá cao nên được công ty cấp cho một chiếc laptop, thỉnh thoảng ông hay mang về nhà để làm việc. Thời điểm đó khoảng năm 1996, tôi cũng không còn nhớ chiếc laptop đó có được cài Windows 95 hay không, chỉ nhớ lúc khởi động là vào thằng màn hình DOS, ứng dụng đầu tiên mà tôi biết chỉ là Norton Commander, sau đó là trò phá gạch (một trò chơi giống như Brick Breaker trên các máy BlackBerry đời cổ). Một trò chơi mà tôi có thể chơi hàng giờ liền không biết chán, phá đi phá lại, đập lên đập xuống quên cả ăn cả học. Thỉnh thoảng tôi cũng được lên công ty bố chơi, nhìn thấy những chiếc máy tính để bàn của mọi người trong phòng là một niềm vui vô bờ bến. Những ứng dụng tuyệt vời như Dyna (dò mìn), Driver (bắn súng), Prince (cứu công chúa), v.v... là cả một thế giới mới. Chú A đang bận dùng máy tính, không thể ké máy chơi games. Không sao, tôi sẽ sang máy chú B, không có Dyna, Prince thì ta chơi dò mìn, Solitaire cũng được. Từ đó tôi quyết định mình sẽ trở thành người theo nghiệp Tin học (lúc đó chưa có từ LTV nhé). Đơn giản chỉ là muốn được chơi games. Sau này ngẫm lại, cũng có không ít bạn trẻ chắc cũng có suy nghĩ giống tôi hồi đó. Đơn giản thích thì nhích, chưa cần biết sau này thế nào. Điều này cũng rất quan trọng, vì bạn đã có đam mê, sẽ khác hẳn với việc bị cưỡng bức làm một thứ gì khác. Bước ngoặt đầu tiên trong cuộc đời CNTT của tôi là vào năm lớp 7, lúc đó hình như bắt đầu có thí điểm đưa CNTT vào dạy từ cấp 2 thì phải, và đó chính thức là lần đầu tiên tôi được bước chân vào thế giới của CNTT.Tôi sống tại Hà Nội, vì thế có thể được tiếp cận với CNTT sớm như vậy cũng thật là may mắn. Tôi không phủ nhận điều đó. Nhưng đi trước không có nghĩa là thành công trước, với tôi điều này hoàn toàn đúng. Trước khi nói qua chuyện tôi học CNTT lần đầu tiên thế nào, tôi muốn nói qua tình trạng của tôi và lớp học lúc đó. Tôi thích toán từ nhỏ, và được học tại lớp chuyên toán cấp 1, sau đó do có thành tích tốt (nhất quận lớp 5) nên được tuyển thằng vào chuyên toán cấp 2. Tư duy của tôi tốt, nhưng thú thật là những môn khác như tiếng Anh hơi lởm. Cái này cũng không hẳn là tôi không học được tiếng Anh, mà do bạn gái ngồi cạnh học tiếng Anh quá giỏi, lại xinh nữa Tinh thần chia sẻ, lá lành đùm lá rách từ cấp 1 không cho phép tôi học nhiều tiếng Anh mà đi theo tiếng gọi của trái tim nhiều hơn, âu cũng là một kỉ niệm đẹp trong đời tiểu học. Lên cấp 2, đa số các bạn học cùng cấp 1 cũng chuyển lên học cùng lớp cấp 2. Tôi có may mắn được học cùng một lớp cấp 2 siêu kinh khủng, có lẽ mặc dù là trường điểm của thành phố, nhưng theo tôi đánh giá, lứa lớp chuyên toán cấp 2 của chúng tôi là khủng bố nhất về trình độ. Và theo thời gian, đến thời điểm hiện tại họ đều có những thành công và có tiếng tăm trong nước và nước ngoài. Tôi sẽ đề cập đến vấn đề này sau. Như vậy, ở trường hợp của tôi,những yếu tố đầu tiên mà tôi thấy mình may mắn, có lợi thế hơn người khác chính là: + Được học tập cùng một tập thể quá tốt. Điều này sẽ kích thích các bạn có tính tranh đua mạnh hơn. + Tiếp cận với CNTT từ rất sớm + Tư duy toán học tốt Những điểm này về sau có thể hỗ trợ bạn rất nhiều, nhưng nó cũng không hẳn là chìa khóa để đem lại thành công. Lúc đó tôi không thể tìm được mối liên hệ giữa toán học và CNTT. Những bài học đầu tiên, keyword, IF...THEN, ... với tôi là một cực hình... và tôi bắt đầu cảm thấy sợ học Tin học. Điểm số cho môn này cũng theo một dạng đồ thị khá thất thường, hôm nào kiểm tra quay được thì điểm cao, không quay được thì xác định. Tổng kết cả năm thấp một cách khủng khiếp với riêng môn Pascal, và phải rất may mắn tôi mới giữ được cái mạch Học sinh giỏi của mình. Tôi cũng thấy ghét cả ông Pascal từ lúc đó