1. Trang chủ
  2. » Công Nghệ Thông Tin

tự học lập trình nguonvoz

11 244 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

Chuy ện t ớh ọc l ập trình th ếnào c ũng có k ểcho m ột s ốb ạn r ồi, nh ư ng nay ti ện chia s ẻv ới group luôn nhé. * Vì là dân kinh t ếnên t ớko th ạo m ấy cái logic IQ l ắm, nh ư ng vì thích thích, th ấy nó hay, và b ị nghi ền ngay t ừh ồi đ ầ u , nên t ớdành khá nhi ều th ời gian. * Th ời kì đ ầ u (hình nh ư2 n ăm l ận), m ỗi ngày t ớng ồi h ầu nh ưch ỉ có là đ ọc sách h ư ớ n g d ẫn l ập trình (m ặc dù ko hi ểu tí nào luôn), gõ nguyên xi code trong sách vào (chính xác t ừ ng ch ấm ch ấm ph ẩy, d ấu cách) và cho nó ch ạy đú ng. Sau đó , h ọc thu ộc lòng t ất c ảcác bài code đã gõ trên máy, và gõ l ại ko c ần nhìn sách đ ể chép l ại. Trong quá trình gõ code l ại t ừtrí nh ớ , mình b ị sai l ỗi r ất là nhi ều, m ỗi l ần sai l ỗi ko chay đ ư ợ c là ph ải ngh ĩ l ại cho nó chu ẩn, bí quá là l ại lôi sách xem l ại code cho chính xác. C ứm ỗi l ần b ị sai code, v ừ a sử a nh ưv ậy, d ần d ần đ ầ u óc t ựphân tích và hi ểu đ ư ợ c t ại sao ph ải th ếnày, t ại sao ph ải th ếkia. Th ờ i kì này trâu, dành t ận t ầm 8 ti ếng m ỗi ngày ch ỉ làm cái này, làm nh ưcon v ẹt, mà ko c ần hi ểu. * Th ời kì sau, do th ờ i kì đ ầ u c ần cù nên có th ấy ti ến tri ển, lúc này chuy ển qua m ấy th ứkhác cao h ơ n, nh ưl ập trình h ư ớn g đ ối t ư ợ n g OOP, SOLID, Design Patterns. Lí thuy ết thì đú ng là ch ịu không th ểhi ểu đ ư ợ c , thay vì th ế, mình t ựngh ĩ ra m ột s ốbài đ ể t ựlàm và nh ờdân l ập trình t ưv ấn. M ấy bài mà t ới nay mình v ẫn còn nh ớ : Thi ết k ếmáy tính cá nhân, Thi ết k ếh ệ th ống tính ti ền ATM, T ạo h ệth ống l ư u tr ữvà qu ản lý sách. * Sau đó , chuy ển qua sâu h ơ n vớ i l ập trình trên giao di ện, lúc này s ẽh ọc t ới ngôn ng ữb ậc cao h ơn đ ể có th ểt ư ơ n g tác, ví d ụnh ư : Java Spring, C# .NET Framework 2.0. H ọc cái này xong thì t ựnâng c ấp m ấy bài th ờ i tr ư ớ c t ừgiao di ện gõ l ệnh (Terminal, Console) chuy ển lên giao di ện ng ư ời s ửd ụng (GUI) *Đ ư ợ c thêm vài n ăm, duy trì đ ều đ ặ n , ngày 3-4 ti ếng, t ựmò mò, t ựtìm hi ểu, đ ọ c ebooks, coi video clip (youtube, vimeo) t ừcác trang h ư ớ n g d ẫn l ập trình, nên hi ện t ại, kh ản ăng l ập trình c ũng ở m ứ c tư ơn g đ ố i khá. Tính t ừh ồi đ ầ u ti ếp c ận l ập trình t ớ i nay thì c ũng đã tr ải qua đ ư ợ c hơ n 9 n ăm. Ban đ ầ u ch ỉ là thích, nh ư ng theo th ờ i gian nó c ũng thành thói quen, ăn sâu vào máu và tr ởthành th ứg ọi là đa m mê. Và hi ện t ại mình coi l ập trình là m ột công c ụđể làm thêm ki ếm ti ền tiêu v ặt Bi ểu t ượ ng c ả m xúc grin Mình ko ph ải dân k ĩ thu ật g ốc, ko gi ỏi toán, c ũng gi ỏi t ưduy logic gì c ả, nh ưng được cái ch ăm ch ỉ nên theo th ờ i gian c ũng có ph ần ti ến b ộlên được . Còn các b ạn là dân k ĩ thu ật, các b ạn có l ẽcó g ốc t ốt h ơ n mình nhi ều, nh ưng có l ẽ, đi ều các b ạn thi ếu là s ựkiên nh ẫn, s ựham h ọc h ỏi, s ự ch ăm ch ỉ, kiên trì thôi. T ớlàm được , v ậy có l ẽnào các b ạn l ại không? http://daynhauhoc.com/t/chia-se-video-tu-hoc-lap-trinh-c-c/4430 H ọc l ập trình chính là h ọc ngôn ng ữ để giao ti ếp v ới máy tính, b ắt máy tính làm nh ững đi ều mình mu ốn. Nên h ọc l ập trình và h ọc ngo ại ng ữ có nh ững đi ểm chung, h ọc l ập trình không khó b ằng h ọc ngo ại ng ữ vì ngôn ng ữ máy tính r ất nguyên t ắc. Tuy nhiên, quá trình hi ểu -> th ực hành -> rút kinh nghi ệm -> hi ểu h ơn -> th ực hành t ốt h ơn -> kinh nghi ệm nhi ều h ơn đượ c áp d ụng cho c ả 2 vi ệc học lập trình và học ngoại ngữ. Hi ểu mà không th ực hành -> Khi ph ải giao ti ếp v ới máy s ẽ lúng túng, ch ậm chạp. Th ực hành mà không tìm hi ểu tr ước -> R ất m ất th ời gian h ọc vì ph ải h ọc t ừ kinh nghi ệm sai l ầm c ủa b ản thân ( đi ều mà n ếu b ạn tìm hi ểu lý thuy ết tr ước s ẽ bi ết đi ều đó s ớm h ơn r ất nhi ều) http://techmaster.vn/posts/33462/cach-tu-hoc-lap-trinh-tot-nhat Nếu trẻ, mới ra trường, còn máu me chinh chiến Đầu tiên, đọc cái bài này cho nó thấm dái tí đã. Tôi nói trước, tôi đéo phải một người nhiều kinh nghiệm mà khuyên ai cái gì, chỉ là chia sẻ thôi... Đa phần các bạn chẻ mới ra lúc nào cũng mong muốn công ty có môi trường tốt, đãi ngộ cao, lương hấp dẫn. Cái đó thì mơ ước của các bạn, đéo ai cấm, nhưng thực tế nó phũ phàng lắm... Ở độ tuổi từ 22-27, thì các bạn nên chinh chiến khắp nơi, nhảy việc liên tục để lấy cái gọi là kinh nghiệm và kiến thức, nói thì hơi cổ hũ tí, nhưng ông bà nói đéo sai đâu. Các bạn đừng mãi đi tìm công ty hoàn hảo, tuyệt vời gì này nọ, đéo có đâu, vô vọng thôi! Vì công ty nào cũng có ưu điểm và nhược điểm của nó. Cái bạn nên chú ý là văn hóa của công ty. Tùy vào tính cách cũng như sinh lý của bạn, thì bạn có hòa nhập văn hóa được với công ty hay không? Mà khi hòa nhập thì bạn sẽ dễ dàng gắn bó lâu dài với công ty hơn, còn nếu đéo hòa nhập được thì tự bạn đào thải mình ra khỏi cuộc chơi, vậy thôi. Có nhiều ông lương 2000, 3000 mà cũng phải rời khỏi cuộc chơi, do đéo phù hợp với chiến lược/văn hóa công ty. Còn mỗi công ty đều mang lại cho mình chút ít gì đó kinh nghiệm, kiến thức, không có cái này thì cũng có cái khác: Công ty tư nhân thì mang lại cho bạn kiến thức nhiều hơn, còn công ty nhà nước thì giúp bạn biết được mối quan hệ có sức mạnh ghê gớm như thế nào. Nói chung, bỏ khoảng 4-5 năm trau dồi, cày bừa, chinh chiến nhiều công ty hoặc nhiều dự án khác nhau, để kiếm cho mình kha khá vốn kiến thức cái đã. Thời điểm này, lương đừng quan tâm nhiều, tầm 8 củ 1 tháng nếu bạn ở Đà Nẵng và 10 củ nếu bạn đang thuê phòng trọ, dư ăn, đủ sống, thỉnh thoảng lương thưởng thì đi đá phò, hoặc kiếm con điện thoại ngon ngon khè gái cũng ok. Tới năm 28 trở đi, tuổi này đéo lên được hay xin được việc tầm trưởng phòng/quản lý (bên tư nhân gọi cao sang là Leaders, Managers) thì các bạn xác định đi tìm ngành nghề khác là vừa. Vì tuổi này thì khả năng học của bạn bắt đầu thuyên giảm và bạn có xu hướng lười hơn, ít động não hơn mà tập trung giải quyết vấn đề tồn đọng trong dự án hoặc đi training (kiểu như 1 người có kinh nghiệm lâu năm đi dạy bảo mấy thằng đệ). Tuổi này bắt đầu chán, và lười cống hiến nên mà đéo lên quản lý thì xác định nhé. Lúc này tập trung cho kỹ năng quản trị/quản lý nhiều hơn là kỹ thuật, vì nếu IT thì bạn chỉ cần nhạy công nghệ 1 chút là ngon, còn coding/testing thì nó ko thoát khỏi lối mòn đâu, ít nhất là 3-5 năm nữa. Có chăng thì thay đổi về nền tảng, có thể Mobile ko còn hot nữa, thay vào đó là cái gì cao hơn chẳng hạn (tôi đéo phải Bill Gates, Jobs mà tiên đoán công nghệ). Bởi vậy, xác định, không làm Manager được ở tuổi này thì bạn nên đi buôn cho khỏe, mấy cái nghề sử dụng chất xám này, có thời hạn thôi bạn ạ. Nếu bạn đã là quản lý, thì tốt hơn nên kiếm nghề tay trái (mở cafe, buôn bán), đừng dại mà chơi với luật pháp, nó cho vô khám thì cả chì lẫn chài đi luôn nhé . Nên có tiền nhàn rỗi, sau này kiếm cái penthouse trong resort mà dắt bồ về phành phạch, hoặc tổ chức pool party, nhóe. Một số chia sẻ: - Sinh viên trai tân: Nên join fSoft - nơi cày bừa và kiếm kinh nghiệm hàng đầu Đà Nẵng. Vì dự án nó nhiều, văn hóa lại khá phù hợp với mấy cha trẻ và bựa bựa. Nếu không dzô được FPT thì kiếm Enclave, GameLoft, MagRabbit, Unitech... mà trau dồi. - Lão làng 2 năm tuổi: SmartDev, Axon Active, LogiGear, Sioux, ‫ﹾﹾﹾ‬... mà phang, ở tuổi này thì đã có kinh, nên bắt đầu tham gia training hoặc chút gì đó quản lý team nhỏ (5-7 người). Nếu được thì kiếm công ty startup mà nhảy, cơ hội thăng tiến nhiều hơn. - Cụ già 4 - 5 năm tuổi: Atlassian (bác nào làm JIRA thì biết), NTT Data (của Nhật Bản) nếu bạn còn muốn thu thập kiến thức, còn không thì xin nộp đơn làm Project Lead, QA Lead, hay thậm chí Manager của công ty nào đó nếu bạn tự tin vô vẻ đẹp của mình. - Trên 5 năm tuổi: Coi lại tâm sự ở trên... Mình nghĩ chương trình năm nhất k nhiều đâu. Bạn cứ thử học thuật toán xem (mua sách Cấu trúc dữ liệu và giải thuật về đọc + giải bài tập trên vn.spoj.com), nếu theo được mà đi thi có giải thì chả hơn à tập trung vào cấu trúc dữ liệu và giải thuật, luyện cách tư duy nh ư một l ập trình viên trước rồi tính tiếp, chưa biết cách tư duy là ko làm dc gì v ới môn này đâu, ngoài ra bạn còn phải luyện thêm tiếng Anh nữa, vào các trang như codeforces hay trang chính của spoj (ko phải vn spoj nha, vn spoj giống mua bản quyền phân phối cho Việt Nam nên nó là ti ếng Vi ệt) link codeforces6 link spoj5   Hãy thích thú trong việc lập trình, và làm nó bởi vì nó mang lại cho bạn nhiều niềm vui. Hãy chắc chắn rằng nó đủ vui để làm cho bạn sẽ sẵn lòng bỏ thêm 10 năm (hoặc 10,000 giờ) để luyện tập. Lập trình. Cách học tốt nhất là học thông qua thực hành. Cuốn sách Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life là một tham khảo thú vị cho quan điểm này. Một số trích đoạn đáng chú ý trong cuốn sách đó như sau, “đẳng cấp của một cá nhân trong một lĩnh vực nào đó thì không đạt được một cách tự nhiên theo thời gian, mà đẳng cấp chỉ có thể tăng lên thông qua nỗ lực luyện tập để tiến bộ” và “để việc học được hiệu quả nhất thì yêu cầu mỗi tác vụ phải được xác định rõ ràng cùng với độ khó thích hợp cho người tham gia, có đánh giá phản hồi, và có cơ hội để lặp lại và sửa chữa những sai lầm.“      Nói chuyện cùng những lập trình viên khác; đọc các chương trình do họ viết ra. Điều này thì còn quan trọng hơn bất kỳ cuốn sách hoặc khóa huấn luyện nào. Nếu bạn muốn, hãy học 4 năm tại một trường đại học (hoặc nhiều hơn tại mức sau đại học). Điều này giúp bạn có thể kiếm được một công việc mà yêu cầu bằng cấp, và nó sẽ mang lại cho bạn mức hiểu biết sâu hơn trong lĩnh vực này; nhưng nếu không thích trường học, thì bạn cũng có thể (cùng với nhiều nỗ lực) thu được kinh nghiệm tương tự bằng cách tự học hoặc dựa trên công việc của bạn. Trong bất kỳ trường hợp nào, chỉ học qua sách vở sẽ là chưa đủ. Tác giả của cuốn sách The New Hacker’s Dictionary là Eric Raymond đã nói rằng, “Giáo dục về Khoa học máy tính không thể khiến cho bất kỳ ai trở thành chuyên gia lập trình, cũng như là việc học về cọ và màu không thể làm cho ai đó trở thành họa sĩ tài ba”. Một trong những lập trình viên tốt nhất mà tôi đã từng thuê, thì anh ta chỉ mới có bằng tốt nghiệp trung học; nhưng anh ta đã tạo ra được rất nhiều phần mềm tuyệt vời, có hẳn một nhóm tin (news group) của riêng mình, và kiếm đủ cổ phiếu dạng tùy chọn để có thể sở hữu một quán bar. Làm việc trên nhiều dự án cùng với những lập trình viên khác. Hãy là người giỏi nhất trong một số dự án; và hãy là người kém nhất trong một số dự án khác. Khi bạn là người giỏi nhất, bạn sẽ có cơ hội kiểm tra các khả năng về lãnh đạo một dự án, và cách truyền cảm hứng tới những người khác với tầm nhìn của bạn. Khi bạn là người kém nhất, bạn sẽ học được cách mà các cao thủ sẽ làm, và bạn biết được những công việc mà họ không muốn làm (bởi vì đó là những việc mà họ sẽ sai bạn làm cho họ). Làm việc trên các dự án sau những lập trình viên khác. Hiểu rõ một chương trình được viết ra bởi một người khác. Đọc code để hiểu nó và có thể sửa chữa khi những lập trình viên ban đầu không còn hỗ trợ nó nữa. Hãy nghĩ về việc làm thế nào để thiết kế các chương trình của bạn khiến cho những người sau này bảo trì nó được dễ dàng hơn. Hãy học ít nhất nửa tá các ngôn ngữ lập trình. Bao gồm một ngôn ngữ nhấn mạnh về các lớp trừu tượng (ví dụ như Java hoặc C++), một ngôn ngữ nhấn mạnh về các hàm trừu tượng (ví dụ Lisp hoặc ML hay Haskell), một ngôn ngữ hỗ trợ cú pháp trừu tượng (kiểu như Lisp), một ngôn ngữ hỗ trợ khai báo các đặc tả (ví dụ như Prolog hoặc C++ templates), và một ngôn ngữ nhấn mạnh về tính song song (ví dụ như Clojure hoặc Go).  Nên nhớ rằng có một chữ “máy tính” trong cụm từ “khoa học máy tính”. Phải biết máy tính của bạn thực thi một lệnh mất bao lâu, tìm nạp một từ vào bộ nhớ (có và không có cache), đọc liên tục các từ (word) từ đĩa, và tìm kiếm một một vị trí mới trên đĩa.  Nên tham gia vào nỗ lực chuẩn hóa một ngôn ngữ. Đó có thể là ủy ban ANSI C++, hoặc đó có thể là việc quyết định liệu coding style của bạn sẽ có 2 hoặc 4 mức căn lề. Hoặc theo một cách khác, bạn hãy tìm hiểu xem những người khác thích một ngôn ngữ ở điểm gì, họ cảm thấy sâu sắc như thế nào, và thậm chí về lý do tại sao họ lại cảm thấy như vậy.  Có sự nhạy bén để áp dụng những nỗ lực chuẩn hóa của ngôn ngữ đó một cách nhanh nhất có thể. https://news.ycombinator.com/news https://tinsang.net/ Tôi thường suy nghĩ một cách logic. Máy tính không quan tâm đến việc bạn đang cảm thấy như thế nào, và ý kiến của bạn cũng không phải là điều quan trọng. Tất cả vấn đề nằm ở chỗ liệu bạn có viết mã chính xác để nó có thể thực thi được hay không. 2. Tôi luôn tìm kiếm những cách tốt hơn để giải quyết vấn đề. Tôi thường tìm đọc một số blog uy tínchuyên về lĩnh vực phát triển phần mềm. Cá nhân mình thì không thể luôn có giải pháp tốt nhất để giải quyết một vấn đề, nhưng một ai đó ở một nơi khác chắc chắn có thể. 3. Tôi thường xuyên đọc sách về công nghệ. Một chuyên gia phát triển phần mềm là Joel có nói rằng hầu hết các lập trình viên bây giờ không còn đọc sách nữa. Đó là một điều thật đáng tiếc. Các blog là nguồn tài liệu khá tuyệt vời để tham khảo những đoạn mã nhỏ, nhưng hiếm khi chúng chứa đựng một chủ đề xuyên suốt từ đầu đến cuối. Blog chỉ nên là một sự bổ sung thêm cho các cuốn sách mà thôi. 4. Tôi không ngừng suy nghĩ về các vấn đề và tìm cách để giải quyết chúng thông qua cách tự động hóa. Đôi khi tôi thức giấc vào lúc nửa đêm, và tôi không thể quay trở lại giường cho tới khi mà chưa viết ra được đoạn mã đang ấp ủ trong đầu. 5. Tôi luôn có một vài dự án cá nhân khá thú vị, và chúng cho tôi cơ hội để thử nghiệm các công nghệ mới, điều mà tôi không muốn thực hiện trên các sản phẩm tại công ty. Vâng, những dự án cá nhân này có phần làm phân tâm tôi ít nhiều tại công việc chính, nhưng bù lại tôi lại thu được nhiều kiến thức quý giá cho khoảng thời gian mình đã mất. 6. Tôi có một blog về công nghệ. Tôi đề nghị tất cả các lập trình viên chúng ta mỗi người nên có một blog và bạn nên viết bài để đóng góp cho cộng đồng. Nếu bạn giải quyết được một vấn đề, chúng tôi cũng muốn nghe về giải pháp của bạn! Ít nhất thì nó cũng giúp bạn có một cơ hội để hình thành những ý tưởng mới, nó sẽ giúp củng cố thêm hoặc làm cho bạn nhận ra là mình đã sai. Có thể bạn cũng sẽ nhận được nhiều nhận xét phản hồi có giá trị. 7. Tôi cố gắng để chứng minh rằng mình đã sai. Tất cả mọi người đều muốn mình đúng. Tôi lại cố gắng chứng minh mình sai khi thích hợp. Một trong những điều khó khăn nhất trong trong thế giới của một lập trình viên là nói rằng những dòng mã mà họ đã dành cả tuần lễ để viết ra không có giá trị gì cả. Đó là điều hoàn toàn có thể, đừng chống lại nó, hãy làm việc cùng nó. 8. Tôi luôn cập nhật những công nghệ mới nhất, và tập trung bản thân để thử nghiệm chúng. 9. Tôi có một kiến thức tương đối tốt để hiểu cách mà các phần mềm và phần cứng máy tính hoạt động như thế nào. Có rất nhiều người mang danh nghĩa là lập trình viên mà việc duy nhất họ có thể làm là bật máy tính lên và lướt web. 10. Tôi có kỹ năng tìm kiếm tài liệu thông qua Google khá hiệu quả. 11. Tôi không chỉ đơn thuần làm việc vì tiền. Tôi thực sự yêu thích công việc mà mình đang làm. Tôi đã có một cuộc phỏng vấn xin việc đáng nhớ, khi mà ông chủ tương lai của tôi kể câu chuyện về cách mà ông được nhận vào làm việc và được giao phụ trách quản lý các dự án quan trọng như thế nào. Khi mà ngành công nghiệp phần mềm trở nên khó khăn, bạn nghĩ rằng ai là người đầu tiên phải khăn gói ra đi? 12. Tôi luôn đồng cảm với những khó khăn của người sử dụng. Nếu có thể chia sẻ bớt nỗi khó khăn của họ, tôi sẽ muốn ngăn ngừa lỗi và làm cho người dùng có thể sử dụng phần mềm được hiệu quả nhất. 13. Tôi nhận ra rằng những dòng mã mà tôi viết ra chẳng bao giờ là hoàn hảo cả, vì vậy tôi cố gắng làm sao để chúng có thể được kiểm thử và viết dưới dạng các mô-đun. Tôi thiết lập các quy trình để cố gắng giảm thiểu tối đa các sai lầm và lỗi tiềm ẩn. 14. Tôi không nghĩ rằng Microsoft là một con quỷ, và cũng không nghĩ họ là vị thánh. Họ là một công ty lớn. Một số sản phẩm mà họ viết ra rất là tầm thường, còn một số khác thì thật là tuyệt vời. Điều tương tự cũng đúng với nhiều công ty khác. 15. Tôi học hỏi từ sai lầm của chính mình. Tôi cố gắng kiểm tra ít nhất 2 lần để tránh lặp lại những sai lầm trong quá khứ. Nếu lần thứ nhất không thành công, tôi sẽ còn một lần khác. 16. Khi được yêu cầu giải quyết một vấn đề, tôi thường nghĩ trên tầm các vấn đề, và xác định liệu nó có phải là một vấn đề cần phải giải quyết hay không. Xin bổ sung thêm một chút, tiêu đề của bài viết này được viết ra với ý nghĩa hóm hỉnh, nhưng tôi nghĩ là nội dung bài viết thì có nhiều thông tin khá hữu ích. 1. Phải có khả năng tự kỷ ám thị, ví dụ như: “lập trình là mục đích của cuộc đời tôi”, “không trở thành một lập trình viên giỏi thì tôi không biết phải làm gì khác”, “lập trình thật là dễ” v.v… Làm sao để cho mình cảm thấy việc học lập trình và lập trình là công việc thiết yếu, mang tính sống còn (quan trọng như việc thi Đại học vậy), em sẽ học được nhanh và hiệu quả hơn. 2. Học tập thường dựa trên việc tích lũy kiến thức, không có việc học chỉ trong một ngày. Với anh, anh có thể viết nguyên một ứng dụng bằng PHP hoặc Ruby On Rails chỉ trong một ngày (dù anh chưa học hai thứ này trước đó) nhưng đó không phải là nhờ vào tài năng bẩm sinh, nó nhờ vào quá trình học tập và tích lũy những khái niệm tương tự từ .NET, Java… Quỹ thời gian để học tập/ viết bài/ làm dự án cá nhân của anh là khoảng 4 giờ/ mỗi tối. 3. Không thể làm ứng dụng đàng hoàng nếu thiếu lý thuyết, nhưng cũng không thể làm việc hiệu quả nếu không làm dự án thực tế và luyện tập miệt mài. Vì vậy, việc đọc sách/ báo/ bài viết và tự nghĩ ra các bài tập để rèn luyện kỹ năng đã học là việc cần làm thường xuyên, xen kẽ và không bao giờ ngừng lại. 4. Tri thức là vô hạn, năng lực học tập của con người là hữu hạn, vì vậy em không thể cùng một lúc học hết được tất cả, hãy học thứ cốt yếu, lưu lại (bookmark) và sưu tầm những thứ là thứ yếu để sau này có thể dùng đến khi cần. Ví dụ: biết lập trình Javascript là cốt yếu, biết cách sử dụng một plugin để hiển thị album ảnh theo kiểu như LightBox hoặc như Facebook là thứ yếu, tuy nhiên vẫn cần phải tìm kiếm các thư viện và đánh dấu nó để dùng đến khi cần. 5. Viết ứng dụng không phải là viết ra một cách liền mạch như dòng suy nghĩ, vì suy nghĩ đôi khi nó tràn tới như vũ bão và không có thứ tự, còn ứng dụng cần phải được cấu trúc rõ ràng, rành mạch, vì vậy là lập trình viên tốt cần phải biết cách cấu trúc ứng dụng, phân chia ứng dụng ra thành các thành phần cụ thể, ráp nối chúng lại với nhau, làm sao để mỗi lần có sự thay đổi, chỉ cần thay đổi một thành phần của dự án chứ không đi xới tung toàn bộ dự án. 6. Mã lệnh mình viết ra không chỉ để mỗi mình ta đọc, mà để dành cho cả team cùng đọc. Phần mềm, như mọi sản phẩm khác, muốn là sản phẩm tốt và tinh xảo thì cần phải huy động bộ máy nhiều người cùng góp sức mới có thể tạo ra được sản phẩm dùng được, tốt và có tương lai. Vì vậy, hãy luôn tâm niệm rằng mọi thứ ta lập trình ra cần phải giữ được sự đơn giản, dễ hiểu, gọn gàng, tinh tế và dễ dàng sửa đổi hoặc thay thế. Làm ra một mớ xà bần thì không khó, nhưng tạo ra những thứ dễ hiểu đối với tất cả mọi người là cả một nghệ thuật. Vì vậy, người lập trình, bản thân họ phải tự rèn luyện mỗi ngày để trở thành những kỹ sư chuyên nghiệp và là những nhà nghệ thuật bậc thầy. 7. Việc lập trình cũng gần giống như công việc của các công nhân & kỹ sư xây dựng, ngôi nhà xây ra xấu hay tốt phụ thuộc vào rất nhiều yếu tố như: bản vẽ tốt, chất liệu tốt, tay nghề xây dựng tốt để áp dụng đúng kỹ thuật và cách thức, và một yếu tố cũng không kém phần quan trọng đó là sự hiểu biết lẫn nhau và phối hợp nhịp nhàng để thực hiện công việc. Nói nhỏ thì là team working (làm việc nhóm), nói lớn thì là process và project management (quy trình làm việc và quản lý dự án). Muốn dự án hoạt động trơn tru, thì kỹ sư phải có thêm sự hiểu biết rõ rệt về quy trình, cách thức vận hành dự án, sao cho có thể phối hợp với mọi người và trưởng nhóm hiệu quả để dự án thành công. Vì vậy, em không chỉ nên học mỗi lập trình, mà cũng cần phải học cách làm việc nhóm, quy trình phát triển phần mềm, các vai trò trong dự án phần mềm, tại sao cần có những thứ đó, ví dụ tại sao cần có tester, các dự án càng lớn, kỹ sư càng giỏi nhưng số lượng tester không giảm đi mà lại càng cần nhiều thêm? v.v… 8. Làm khoa học là “tự sướng”, làm kinh doanh / sản phẩm là “làm cho người dùng sướng” (trích dẫn lời của anh Nguyễn Thành Nam nguyên Tổng giám đốc Công ty FPT Software, anh nghe được hồi bác ấy đi nói chuyện với sinh viên miền Trung để vận động cho cuộc thi Trí Tuệ Việt Nam). Vì là “làm cho người dùng sướng” nên cái tôi cá nhân phải được đặt trong vị trí khiêm tốn, thay vào đó, lập trình là vì sự thỏa mãn của khách hàng, tất cả là vì khách hàng. Khách hàng thường hay thay đổi, họ không biết diễn tả chính xác thứ họ cần, họ hay phàn nàn, họ không hiểu rõ nỗi khổ của lập trình viên… nhưng sao cũng được, khi họ là khách hàng, ta là người cung cấp sản phẩm, hãy cố bằng mọi cách mang lại những sản phẩm tốt nhất và kịp thời nhất trong mức có thể cho khách hàng. Giao tiếp, thương thảo, khả năng mô tả, diễn đạt ý tưởng là những kỹ năng quan trọng mà ta cần phải có. Nhưng trên hết vẫn cần có thái độ cầu thị, nhiệt thành, chân thật, và luôn mong muốn mang lại giá trị tốt đẹp cho mọi người. 9. Mình học được nhiều thứ từ người khác, từ các blogger trên Internet, từ sách mua/ sách chùa, từ open source… Ở đời, đã biết nhận thì phải biết cho, nên luôn coi “chia sẻ” là việc nên làm và làm thường xuyên. Cho đi không chỉ mất, mà còn được lại rất nhiều, được sự ghi nhận của cộng đồng, được comment (đánh giá, nhận xét) nhờ đó mà mình hoàn thiện được những thứ còn thiếu sót, được trở thành thành viên của một cộng đồng, và nhận được sự giúp đỡ nhiệt tình hơn từ mọi người. Và thực ra “cho” là một cách để “nhận” được nhiều hơn. Sống là sẻ chia! Triết lý tuy giản đơn, nhưng để áp dụng thành công thì rất khó! http://techlooper.com/#/pie-chart Cần: + Tư duy, logic tốt. + Chịu khó, không nóng tính. + Suy nghĩ theo kiểu "out of the box" để có thể làm giàu bằng nghề này, còn xác định sáng đi làm tối về thì không cần lắm. + Học hỏi, nắm bắt nhanh. + Sự cầu toàn, ngăn nắp. + Khả năng anh văn khá, tốt. Đủ: + Nắm vững nguyên lý, hiểu gốc rễ của cái mình hướng tới. + Nắm vững thuật toán, cách đọc các sơ đồ, đọc code. Theo mình thì chỉ vậy thôi, bạn nào thấy thiếu bổ sung dùm mình. Mình chia sẻ theo cảm nhận cá nhân, nếu còn là sinh viên thì vote đi làm thêm thực tập hoặc tự làm project, freelance. Khi ra trường thì đã có sẵn kinh nghiệm làm việc. quan điểm của mình là phải học toán tốt, không sợ toán, tư duy ổn định, cần cù, đam mê, thái độ làm việc, tư tưởng,nhưng làm việc trong 1 môi trường cực kì căng thẳng mệt mỏi đau mắt, gặp lỗi phải fix nhiệt tình, giao tiếp kém đi, người gầy đi, bù lại lương ổn định, chịu khó gym ăn uống nó bù lại sk, thị lực thì uống nhiều dầu cá cho tỉnh mắt. chịu khó cà phê bạn bè, nên tham gia 1 clb như mình tham gia clb mô hình cho tinh thần sảng khoái + Hạn chế làm thêm giờ - ngày chỉ 8 tiếng thôi. Hết giờ là về. Dành thời gian cho gia đình và các hoạt động giải trí khác. + Cảm thấy ức chế trong công việc mà trong thời gian tới chưa thấy cách giải quyết -> Nghỉ khẩn trương. + Dành thời gian trước khi ngủ + sau khi ngủ dậy để đọc sách về chuyên môn. (Những cái này không phục vụ công việc hiện tại mà tích lũy cho khoảng vài năm nữa ... Phải có khả tự kỷ ám thị, ví dụ như: lập trình mục đích đời tôi”, “không trở thành lập trình viên giỏi phải làm khác”, lập trình thật dễ” v.v… Làm cảm thấy việc học lập trình lập trình công... rằng, “Giáo dục Khoa học máy tính khiến cho trở thành chuyên gia lập trình, việc học cọ màu làm cho trở thành họa sĩ tài ba” Một lập trình viên tốt mà thuê, có tốt nghiệp trung học; tạo nhiều phần... Hãy thích thú việc lập trình, làm mang lại cho bạn nhiều niềm vui Hãy chắn đủ vui để làm cho bạn sẵn lòng bỏ thêm 10 năm (hoặc 10,000 giờ) để luyện tập Lập trình Cách học tốt học thông qua thực

Ngày đăng: 23/10/2015, 17:42

TỪ KHÓA LIÊN QUAN

w