Như tiêu đề, một vấn đề nan giải và cũng là câu hỏi của nhiều người mới bước chân vào học lập trình. Có nhất thiết bạn cần phải quá thông minh để có thể học lập trình? Câu trả lời là “Hoàn toàn không!”. Nguyên nhân vì sao thì hãy cùng nhau đọc tiếp bên dưới.
Theo mình tìm hiểu thì cho đến nay trong ngành lập trình không có khái niệm nào nói rằng người học phải đạt được sự thông minh ở cấp độ nào thì mới có thể hiểu được. Để học lập trình thì chỉ cần bạn là một người bình thường (IQ >= 85), có một chiếc máy tính (kết nối mạng càng tốt), một vài cuốn sách và một quyết tâm sắt đá.
Có phải đơn giản quá không, thực sự là không đơn giản vậy. Nói ngắn gọn để cho các bạn khỏi hoang mang chứ học lập trình thì cũng có những cái khó của nó. Đầu tiên hãy tìm hiểu vì sao bạn thấy nó khó.
Những điều cản trở bạn học lập trình
Lập trình thật là khô khan và khó hiểu
Mình chắc có tới 96,69% các bạn mới tiếp xúc với ngôn ngữ lập trình sẽ thấy tá hỏa khi đọc một file code chứa khoảng vài trăm dòng trở lên (bản thân mình cũng vậy). Thật dễ hiểu là vì sao mấy bạn sợ, đó là vì bạn chưa quen, chưa hiểu từng thành phần của thứ bạn đang đọc, hoặc chưa hiểu được luồng, quy tắc đặt tên, quy tắc gọi hàm,… nên không thể hiểu hết được code viết để làm gì, chạy ra làm sao. Từ đó cảm giác sợ hãi sẽ xâm lấn khiến cho bạn nản và suy nghĩ rằng bạn không có khả năng học lập trình.
Nếu mới hay là có ý định học lập trình bạn nên mua quyển code dạo ký sự của Phạm Huy Hoàng (Cựu sinh viên FPT)
Cuốn sách này hoàn toàn khác những cuốn sách về IT và công nghệ trên thị thường. Vậy nó có điểm nào đặc biệt?
- Những bài viết ngắn gọn và thú vị về những kĩ năng mềm và cứng mà một lập trình viên phải có, được mình rút chiết qua bao kinh nghiệm xương máu.
- Giọng văn hài hước dí dỏm, đọc không hề giống sách kĩ thuật nhưng lại dễ tiếp thu
- Sách tập trung vào khả năng tự học và định hướng người đọc. Có kĩ năng tự học, có định hướng tốt, bạn sẽ dễ dàng sống sót và thăng tiến trong ngành này
- Những bài viết ngắn gọn và thú vị về những kĩ năng mềm và cứng mà một lập trình viên phải có, được mình rút chiết qua bao kinh nghiệm xương máu.
- Giọng văn hài hước dí dỏm, đọc không hề giống sách kĩ thuật nhưng lại dễ tiếp thu
- Sách tập trung vào khả năng tự học và định hướng người đọc. Có kĩ năng tự học, có định hướng tốt, bạn sẽ dễ dàng sống sót và thăng tiến trong ngành này
Các thuật toán phức tạp cần người thông minh để giải quyết
Không biết từ bao giờ, nhưng khi nói về các giải thuật thì người ta đều nghĩ ngay đến những lập trình viên với bộ óc siêu phàm. Đừng thần thánh hóa vậy, vì bản thân mình thấy được rằng các giải thuật thường dùng thì không cần đến những bộ óc phải thật xuất sắc mới có thể hiểu được, học ngu như mình cũng đọc và cũng hiểu mà. Tất nhiên sự thông minh sẽ giúp bạn đọc, hiểu và nắm bắt vấn đề nhanh hơn người khác, nhưng đó không phải vấn đề quan trọng nhất, vấn đề thật sự là bạn có muốn hiểu nó không, có quyết tâm đi đến cùng khi gặp khó khăn không? Lúc gặp khó khăn thì bạn làm gì?
Bản thân những người lập trình giỏi không giỏi ngay từ lúc ban đầu, nhưng họ khác biệt bằng thái độ làm việc và suy nghĩ tích cực cộng với sự chăm chỉ không gì sánh nổi.
Malcolm Gladwell nói “Để trở thành chuyên gia trong một lĩnh vực nào đó cần tới 10.000 giờ thực hành”. Vậy bạn đã thực hành bao nhiêu giờ rồi?
Một người đã từng chia sẻ với mình rằng: “Khi gặp một khó khăn nếu bạn nói không thể thì nó mãi mãi là không thể, nhưng nếu bạn nói có thể thì cơ hội, cơ may thành công chắc chắn sẽ lớn hơn khi nói không“. Đó có lẽ là câu nói hay nhất mình từng được nghe.
Bạn không tin vào chính con người mình
Đây chính là điều quan trọng nhất giết chết bạn. Mình từng có một thời gian trầy trật với môn lập trình căn bản, có thể vì thời gian đầu khi mới tiếp xúc mình đã đi không đúng cách nên rất khó nuốt mớ kiến thức đó. Nhưng nếu ngay tại thời điểm đó tự chọn cách từ bỏ và phó mặc số phận thì bây giờ đã không thể ngồi đây viết bài chia sẻ, và tất nhiên mình cũng không thể trở thành một thợ điện… ahihi. Mỗi người sinh ra không ai giống ai cả, và cũng không ai biết được khả năng tiềm tàng trong mỗi chúng ta cho đến lúc bạn làm cho nó bộc phát.
Niềm tin chính là thứ khiến mọi việc dễ dàng hơn rất nhiều, nếu muốn trở thành một người lập trình viên giỏi thì bước đầu tiên phải làm là tin điều đó, là bạn chắc chắn sẽ làm được. Sau đó thì bước những bước đi vững vàng kế tiếp.
Nói rất tốt! Thế bây giờ thì phải làm sao?
Tìm kiếm một nguồn động lực
Động lực thì mỗi người mỗi khác, nhưng thôi để mình kể một câu chuyện điển hình về chuyện tình cay đắng của thằng mình.
Hồi xưa lúc mình chỉ tầm lớp 7,8 gì đó không nhớ rõ nữa,có gom góp tiền để mua quyển truyện hentai đùa đấy truyện conan thế quái nào hôm đó mắt mũi sao múc nhầm quyển Công nghệ thông tin và công nghiệp (giờ mình vẫn còn giữ,ai muốn đọc nhượng lại cho giá rẻ bất ngờ :v ) nhìn cái bìa giống nhau vãi, về càng nghĩ càng cay nhưng mà lỡ quất nhầm rồi thì chanh cũng phải ăn,về đọc vớ vẩn sau cũng thấy thú vị,đó là nguồn cảm hứng đầu tiên để mình yêu công nghệ,hồi đó có mấy game java con nit như ninja school,bắn chứng...hồi đó ngu mất oan 15k kích hoạt của bố,mà chơi thì không có tiền mua item,sau rồi khôn hơn lần đầu đụng google để tìm cách hack,nhưng mà hack thì cũng không nổi đúng bọn nó cũng gắn kích hoạt -_- search đi search lại mãi cũng tìm được 1 trang của quyetdaik gì đó có bản free kích hoạt + item sau khi tải được game rồi thì lại tò mò thấy cái web nó đẹp đẹp hay hay,từ đó cũng cứ tìm tòi học hỏi mong có được 1 trang web hack game như thế,hồi đó các web đa số là chạy trên xtgem,rồi năm lớp 9 cũng lập được cái web nhìn lại thấy củ chuối vch ,hồi đó đến lớp oai phết,lúc này vẫn chưa biết cái code là gì,toàn đi coppy trên mạng về xong nhét vào,sau rồi cũng vào google học.Nhưng lập trình không dễ như mình tưởng. Lúc mới tiếp cận với ngôn ngữ lập trình thì mình luôn bị nhức đầu và buồn ngủ. Nhưng vì muốn thỏa mãn đam mê và tò mò kiên quyết không bỏ. À hồi đó còn lập web bằng điện thoại java cùi bắp nữa chứ . Sau vài lần tiếp xúc google quyết tâm chọn HTML để làm nền tảng. Dần dần website khoe hình của mình hoàn thiện và chạy mượt mà, nó vội vàng khoe với cả facebook mà đợi cả ngày đc 2 like(tại hồi đó công nghệ chưa phát triển có ai biết facebook viết sao đâu).Rồi hồi lớp 10 thấy wapbuider chức năng hạn chế rồi mình chuyển sang học PHP nhưng mà học mãi cũng chả hiểu mấy ( hồi đó các bài giảng trên youtube cũng ít lắm mà họ giảng sơ sài) rồi mình cũng tìm tới các diễn đàn như sinhvienit,daivietpda...để nằm vùng kiếm code về làm như của mình ( mình nhận mình trẻ trâu :v ) sau rồi trình cũng hơn một xíu,sau mình biết đến forum mefun ( sập rồi ) ở đây mình học được rất nhiều,sau khi mefun tàn mình chuyển qua vina4u.pro mặc dù trình độ mình kém nhưng vì là cocc nên được đưa vào làm FMOD luôn ( đùa đấy) và cho đến bây giờ mình đang làm một thằng sinh viên năm 2,có 1 blog cho riêng mình,dù chưa đi đến đâu nhưng vẫn thấy mình đã làm được một cái gì đó.
Ở đây động lực của mình đến từ 1 quyển sách ( do mình ngu mua nhầm đấy)
Bạn thử nghĩ xem bạn có động lực gì đáng để theo học lập trình không,nếu không có thì cũng cứ đọc hết đi.
Không ngừng thử thách bản thân
Hãy luôn thử thách bản thân khi học lập trình, ngày càng nâng cao skills của bản thân bằng cách học nhiều hơn, học tất cả những gì cảm thấy cần thiết. Tự tìm kiếm những vấn đề còn tồn tại của mình để khắc phục và phát triển. Cách mà mình hay dùng là tự làm những project nhỏ để nâng cao skills những lúc rảnh rỗi, ngoài ra lên mạng tìm đọc những bài viết hay ho của người khác và làm theo cũng là một cách tốt.
Kết giao và học hỏi với người giỏi hơn mình
Nếu đi với một người giỏi hơn mình, không bao lâu sau mình cũng sẽ giỏi như người đó. Đó là một điều được rút ra bởi….. chủ nhân Đình Quang Blog. Tất nhiên, nếu kết bạn với người ta mà chỉ chăm chăm để học hỏi, chỉ để tìm kiếm cái giá trị gì đó cho bản thân thì thật là bỉ ổi và vụ lợi, có ngày nó nổi giận quánh đập, xài xể thì lúc đó mình không chịu trách nhiệm. Hãy làm bạn tự nhiên nhất, thân thiện và chân thành với tất cả mọi người, giúp đỡ lẫn nhau hết sức có thể, học hỏi từ người khác rồi sẽ đến lúc bạn sẽ cùng trình độ với họ.
Mạnh dạn lên, hồi mình còn sống ! Gặp ai cũng xởi lởi nhảy vô làm quen này nọ đủ kiểu, trong lớp lập trình ai cũng biết mặt. Giữa giờ thì rủ nhau đi trà đá, , cuối tuần rủ nhau ra quán cafe với hy vọng ngày đêm là thu lại chút gì đó kiến thức gì đó. Cũng được một thời gian lên bờ xuống ruộng, hai bên có tình cảm lẫn nhau thì anh kia mới nhắn tin rủ vô hotel bắt pokemon gì đó quý hiếm lắm…. mọi chuyện diễn ra thế nào thì tự tưởng tượng đi, mỏi tay quá.
Lập trình viên giỏi ngoài biết code thì cần có thêm nhiều kỹ năng khác. Trong một team, bạn có thể code tốt nhưng chưa chắc người ta nể bạn, ngoài kỹ năng code bạn còn cần rất nhiều kỹ năng khác để người ta nể phục mình. Có lẽ vài bữa sẽ viết riêng một series bài viết “để trở thành một team member được mọi người nể phục” luôn cho nó máu.
Đừng quên giúp đỡ người mới khi đã có kiến thức
Người mới ở đây là lập trình viên mới vô nghề, có thể còn trinh đầu óc (mình là thằng điểm hình). Họ có thể thua bạn về kinh nghiệm và kiến thức. Nhưng chắc chắn họ sẽ có khá nhiều cái hay ho để học hỏi. Ngoài ra dạy lại cho người khác cũng là cách bị động để ta ôn lại kiến thức, khám phá ra những cái mới mà mình chưa có cơ hội đi sâu.
Đó là toàn bộ cách mà mình đang dùng, vì mình không được thông minh mà. Ít nhất là cho tới thời điểm này mình cảm thấy nó hiệu quả với bản thân và tất nhiên là sẽ tiếp tục cố gắng theo đuổi song song ngành lập trình hay ho này với ngành nữa (bí mật).
Thực hành, thực hành và thực hành
Với mốc 10.000 giờ đã nói ở trên, ta cần tới 10 năm để thực hành với 3h/ngày trừ những ngày ốm đau, mệt mỏi vì con bồ có chồng, con vợ có bồ. Càng thực hành nhiều, bộ não sẽ quen dần với việc code mà không thấy sợ hãi. Nó sẽ suy nghĩ logic hơn, càng ngày càng biết được nhiều kiến thức hơn (Ngu cũng trở thành dốt). Hãy thực hành hằng ngày nếu có thể, hãy tìm những vấn đề random và giải quyết nó theo cách của bạn, cố gắng càng nhanh càng tốt. Một khi đã thực hành nhiều, bạn sẽ tự tin vào đôi tay của mình và mọi khó khăn gặp phải cũng sẽ có hướng giải quyết.
Một số nguồn hay nên đọc lúc rảnh rỗi:
Codefights: quánh lộn với code, có một số bài toán lập trình khá chua đấy. Trang này dành để luyện não khá hay, bạn sẽ được code thi với máy. Giải quyết các bài toán do chương trình đưa ra, đặc biệt ở đây có khá nhiều công ty cho đề, nếu bạn giải quyết tốt thì có thể có cơ hội hợp tác với họ.
Quora: nơi rất nhiều người có đầu óc viết những bài viết chất lượng về đủ thứ chủ đề, trong đó có chủ đề về phần mềm và các thứ liên quan đến lập trình viên.
Medium: tương tự quora, được sáng lập bởi co-founder của mạng xã hội twitter.
Simple programmer: trang blog khá hay nói tất tần tật về lập trình, tuy nhiên chú ý một điều là mặc dù hay nhưng vẫn không qua Jusfunny, ahihi.
Stackoverflow: trang giải đáp về lập trình lớn nhất thế giới hiện nay, search bugs trên google chỉ ra trang này, SEO bá ghê.
Trang chủ
Facebook
Đồ họa
All share code
Máy tính
Ebook
Internet 

Ebook
All Share Code
Code JohnCMS
Code Wordpress
Code XenForo
Code Wapbuider
Hacking - Bảo mật
Scritp - Js
Html - Css
Php - MySql
Thủ thuật máy tính
Thủ thuật facebook
Thủ thuật internet
Thủ thuật blogger
Đồ hoạ - thiết kế
Liên hệ báo lỗi
Sơ đồ trang web
Giới thiệu trang web