Có một câu chuyện thú vị về việc học lập trình và thành công mà bạn chắc chắn không muốn bỏ qua. Evan Priestley, một lập trình viên đầy tài năng, đã trưởng thành mà không cần đến hình thức học tập thông thường. Bằng sự đam mê và nỗ lực, anh ta đã đạt được những thành tựu ấn tượng không kém bất kỳ ai đã đi qua hình thức đào tạo chính quy.
- Tải trọn bộ giáo trình kỹ thuật C++ phù hợp với mọi đối tượng
- 10 đầu sách lập trình dành cho người mới bắt đầu phổ biến nhất hiện nay
- Giáo trình Python PDF bản update mới nhất (Cập nhật 2023)
- Thuật toán là gì? Học thuật toán làm quái gì?
- Lộ trình học lập trình Java cho Newbie: back-end, web & android
Contents
Học lập trình bắt đầu như thế nào?
Bạn có bao giờ tò mò về cách tôi đã kiếm việc làm tại Facebook mà không có bằng cấp? Thật đơn giản, tôi dành nhiều năm làm việc chăm chỉ mà không biết chán. Trong vòng 4 năm qua, tôi đã chỉ làm việc đó và không còn gì khác. Trước đó, tôi đã làm việc toàn thời gian trong 2,5 năm, có nhiệm vụ là lập trình phần mềm. Trước đó, trong suốt hơn 6 năm, tôi đã tiếp tục lập trình – không phải để kiếm sống mà chỉ vì đam mê của mình. Tôi bỏ học đại học, thậm chí còn không hoàn thành cấp 3 – và dành toàn bộ thời gian cho việc học lập trình. Gần đây, tôi đã nghỉ việc tại Facebook, nhưng đoán xem? Đúng vậy, tôi vẫn đang học lập trình. Đó là câu chuyện của Evan Priestley, một lập trình viên tài năng mà không có bằng cấp, đã làm việc tại Facebook từ năm 2007 đến 2011. Evan từng gây tranh cãi khi công khai nhận xét rằng Facebook “là chương trình có nhiều lỗi nhất trên thế giới”. Anh cũng nổi tiếng trên Quora (Top Writer 2012) với những đóng góp xuất sắc cho phần nội dung liên quan đến Phabricator – một ứng dụng mã nguồn mở được viết bằng PHP, giúp quản lý dự án phần mềm dễ dàng hơn.
Bạn đang xem: Tin lập trình
Lí do tại sao tôi bỏ học ở trường để học lập trình?
Từ khi còn nhỏ, tôi đã rất hứng thú với máy tính. Vào lúc 8 hoặc 9 tuổi, tôi đã học sơ qua về BASIC và đã sử dụng nó để viết các chương trình đơn giản trên chiếc máy tính Apple IIe ở trường. Kiểu chương trình của tôi có lẽ không đúng cú pháp nữa, nhưng ít nhất nó vẫn hiện thị các con số ngẫu nhiên trên màn hình, khiến một đứa trẻ 9 tuổi như tôi cảm thấy thích thú. Tôi cũng đã đam mê chơi game từ khi còn nhỏ, dành rất nhiều thời gian để chơi Escape Velocity. Sau đó, tôi cùng với một số người khác tạo thêm màn chơi cho game này bằng cách chỉnh sửa tài nguyên với ResEdit. Chúng tôi đã làm ra một màn chơi lớn được gọi là “Final Battle”. Lúc đó, tôi mới chỉ 12 tuổi. Dù việc này không phải là việc học lập trình chính thức, nhưng nó đã giúp tôi làm quen với một số khái niệm cơ bản.
Thấy tôi rất muốn tự viết game, nên trong năm đó, tôi bắt đầu tự học lập trình. Ba mẹ tôi đã tặng cho tôi một CD giới thiệu về lập trình (Metrowerks CodeWarrior IDE) và một số sách PDF về các ngôn ngữ lập trình và thư viện khác nhau nhân dịp sinh nhật. Tôi đã rất đam mê với nó suốt một năm. Nhờ đó, tôi đã học C trong vòng 2 tuần, sau đó tiếp tục học về C/C++ và viết chương trình, sau đó tới OpenGL. Vào thời điểm đó, tôi nghĩ rằng IIsi của tôi là máy tính cá nhân tốt nhất trên đời.
Sau đó, nhiều chuyện xảy ra liên tiếp: chuyển nhà, ba mẹ ly dị và trường học buồn tẻ. Tôi cảm thấy thất vọng và hối tiếc vì không thể tập trung vào công việc gì trong vòng 5 năm. Tuy nhiên, tôi vẫn phát triển kỹ năng lập trình theo hướng trở thành một lập trình viên, dù mọi thứ tiến triển rất chậm. Tôi chọn học lập trình PHP và sử dụng nó để tạo một trang web gọi là Runica – cho phép người chơi tìm kiếm runewords trong game Diablo II. Trang web cũng có một số tính năng thú vị, ví dụ như đạt được 1 triệu lượt truy cập và mở ra cho tôi một cách nhìn mới về quy mô của web. Tuy vậy, cuối cùng tôi vẫn quyết định bỏ học phổ thông. Vào cuối tháng 9, khi tôi 19 tuổi, một người bạn của tôi kết thúc đợt thực tập và công ty muốn có người thay thế. Anh ta giới thiệu tôi và đó là lý do tại sao tôi được nhận vào làm việc tại Portland Webworks.
Xem thêm : Lộ Trình Học Cấu Trúc Dữ Liệu Và Giải Thuật (Phần 1)
Cùng lúc đó, tôi đăng ký học tại đại học Southern Maine, chuyên ngành Khoa học máy tính. Tôi hy vọng trải nghiệm đại học sẽ tốt hơn so với hồi cấp 3. Tôi chọn 2 hoặc 3 môn học liên quan đến khoa học máy tính. Tuy nhiên, tôi cảm thấy những gì tôi học từ trường học không đáng công sức (vì tôi đã tự học lập trình trong 6 năm). Vì vậy, tôi đã chuyển sang học Hóa Sinh và đăng ký một đống môn học cùng một lúc. Tuy nhiên, vì công việc ở công ty ngày càng bận rộn, tôi không còn thời gian để đến lớp. Cuối cùng, tôi cũng chuyển sang học Toán, hy vọng sẽ tích luỹ đủ tín chỉ để tốt nghiệp. Nhưng cuối cùng, tôi vẫn không đủ quyết tâm để hoàn thành các môn học về văn hóa. Vì vậy, sau khi nghỉ làm ở Portland Webworks (sau 2,5 năm), tôi cũng dừng học đại học.
Nguyên nhân có thể là vì tôi nhanh chóng chán với những gì được giảng dạy, với việc phải đi học. Làm các bài tập này nọ trong khi không thấy được lợi ích của chúng. Tôi không tự cho mình là thông minh hơn người khác. Nhưng khi còn học trung học, tôi đã học tại một trường công lập nhỏ ở Maine và ở lớp 11, chúng tôi đã phải dành tới 2 tuần để học về hệ thống đo lường! Có thể đó không phải là lỗi của trường. Đơn giản là cách mà trường học hoạt động, trong khi thế giới bên ngoài lại hoạt động theo một cách khác hoàn toàn. Đối với tôi, trường đại học chỉ là một trải nghiệm tốt, nhưng có rất nhiều điều hấp dẫn được phát triển trong xã hội bên ngoài. Vậy nên, ít nhất tôi đã rời trường với ít hơn 7000 USD nợ.
Nhờ học lập trình, tôi đã kiếm được việc ở Facebook như thế nào?
Như đã đề cập ở trên, tôi đã bắt đầu làm việc tại Portland Webworks khi 19 tuổi. Đó cũng là công việc đầu tiên thực sự mà tôi có được. Vì là một công ty nhỏ, tôi được tự do hành động theo ý muốn. Trong thời gian làm việc 2,5 năm tại Portland Webworks, công việc chính của tôi là duy trì toàn bộ mã nguồn mà tôi đã viết. Tham gia vào toàn bộ quy trình phát triển phần mềm, tôi đã học được một bài học quan trọng: cẩn thận trong quyết định khi thiết kế hệ thống – nếu không muốn chịu nhiều hậu quả đau đớn sau này.
Vào đầu năm 2007, Portland Webworks đã bắt đầu phát triển mạnh mẽ, và tôi cũng đã ngừng học đại học. Một lần, khi lướt Reddit, tôi tình cờ thấy một bài tuyển dụng của Facebook, nên tôi đã gửi lời giải. Không lâu sau, tôi được mời phỏng vấn và bắt đầu làm việc tại Facebook từ tháng 4 năm 2007.
Tại Facebook, tôi đã làm việc chăm chỉ hơn bao giờ hết, thậm chí còn nhiều hơn thời gian làm việc tại Portland Webworks. Không còn đi học đại học, thời gian của tôi không bị phân tán. Có thời điểm tôi làm việc 40 giờ/tuần, ngoài ra còn làm thêm giờ làm thêm để hoàn thành công việc. Thành quả lớn nhất mà tôi thu được sau 4 năm làm việc tại Facebook có lẽ là khả năng đánh giá tốt hơn. Khi mới bắt đầu làm việc, tôi đã đưa ra nhiều quyết định thiết kế sai lầm. Nhưng khi được làm việc tại Facebook, tôi đã tích lũy đủ kinh nghiệm để cân bằng giữa tính đơn giản và sự phức tạp hoặc nhận ra vấn đề mà các hệ thống khác gặp phải. Khả năng này rất khó để rèn luyện và cũng khó để hướng dẫn cho người khác, nhưng lại rất có giá trị. Để có được nó, tốt nhất là phải duy trì và phát triển các hệ thống mà bạn đã phát triển trong một thời gian dài với những yêu cầu thay đổi liên tục.
Đó cũng là lý do tại sao tôi không đồng ý với khẩu hiệu “Move Fast and Break Things” của Facebook. Dường như Facebook (và hầu hết các công ty phần mềm ngày nay) tin rằng việc đánh đổi chất lượng để có tốc độ là đúng. Vì vậy, mọi người sẵn lòng chọn tốc độ mà không có khó khăn với việc viết code đúng – vì đó là việc đánh đổi mà tất cả mọi người đều chấp nhận.
Xem thêm : Hướng Dẫn Lập Trình Web Căn Bản Với C++
Tôi không nghĩ như vậy. Ý nghĩa đằng sau khẩu hiệu đó, toàn cầu phát triển và trắng phẳng, không phải là “Nếu bạn xây dựng một hệ thống tồi, bạn có thể triển khai nó nhanh. Nhưng nếu bạn cố gắng xây dựng một hệ thống tốt, bạn sẽ không bao giờ có thể hoàn thành”. Theo tôi, điều quan trọng là:
-
Bạn cần phải hành động nhanh hơn để xây dựng phần mềm chất lượng. Nếu không, bạn sẽ không thể đáp ứng nhanh chóng khi mọi thứ, đặc biệt là kiến thức của bạn, thay đổi – và phần mềm của bạn không phải là giải pháp tốt cho vấn đề.
-
Nhưng bạn cũng cần xây dựng phần mềm chất lượng để có thể hành động nhanh hơn. Nếu không, hệ thống cơ sở hạ tầng của bạn sẽ luôn gặp vấn đề và cuối cùng, bạn sẽ phải dành rất nhiều thời gian để xử lý chúng. Khi hệ thống sụp đổ, tinh thần của bạn cũng sẽ chịu ảnh hưởng.
Lời khuyên của tôi dành cho bạn trẻ muốn học lập trình
Trước hết, tôi muốn chia sẻ một chút về việc chọn ngôn ngữ lập trình. Thực tế, ngôn ngữ mạnh nhất của tôi là PHP – một ngôn ngữ bị đánh giá thấp và bị nhiều lập trình viên chê bai. Tuy nhiên, chính việc học lập trình PHP đã giúp tôi có được công việc tại Portland Webworks, và sau đó là tại Facebook. Trong suốt 4 năm làm việc tại Facebook, tôi thường tự miêu tả mình là “kỹ sư phần mềm ít ghét việc học lập trình PHP nhất” và được mọi người gọi là “nhà bác học PHP ngu ngốc”. Mặc dù không thực sự là fan của PHP, nhưng kiến thức của tôi về nó thực sự sâu sắc. Và nó cũng là động lực để tôi học những thứ khác.
Vì vậy, tôi nghĩ rằng việc lựa chọn ngôn ngữ không quan trọng như mọi người nghĩ. Thực ra, tôi thấy rằng những người hay chê bai việc học lập trình PHP hoặc than thở về việc chọn ngôn ngữ thường không làm gì đáng kể với ngôn ngữ mà họ hợp tác.
Bạn có muốn trở thành một lập trình viên khi tròn 18 tuổi?
Hãy tham gia khóa học tư duy lập trình tại Trung tâm đào tạo Công nghệ thông tin Aptech Buôn Ma Thuột. Thời gian học là 2 năm, dành cho những bạn đã tốt nghiệp cấp 2 hoặc cấp 3 và đam mê lập trình. Tại đây, bạn sẽ được học theo chuẩn quốc tế, thời gian đào tạo nhanh, 75% kiến thức thực tế, trải nghiệm dự án thực tế mỗi kỳ học. Không có khoá học đại cương, đảm bảo 100% việc làm sau khi tốt nghiệp. Vậy tại sao không tận dụng cơ hội này?
Nguồn: https://laptrinhc.edu.vn
Danh mục: Tài liệu IT