LỘ TRÌNH HỌC LẬP TRÌNH TỪ SỐ 0
Bài đăng này đã không được cập nhật trong 3 năm
ZERO TO HERO
Cao Ngọc Tàu 30th April, 2021
Làm thế nào bắt đầu đến với lập trình bắt đầu từ số 0?
Đừng lo lắng, bài viết này tích hợp lộ trình mình và các bạn của mình đã đi qua và cùng với rất nhiều nguồn học tập hữu ích miễn phí cho bạn.
Mình cũng bắt đầu từ số 0 và đến bây giờ mình muốn chia sẻ một chút kinh nghiệm về lập trình. Có gì sai sót thì mình mong các bạn giúp đỡ.
Hiện tại mình đã đi thực tập và mình vẫn chưa đủ tốt nhưng phần nào đấy qua những nguồn học chất lượng và lộ trình như thế này mình tin nếu bạn chịu làm, học, và không ham chơi giống như mình đã từng thì mình tin phần nào đó bạn sẽ đỡ mông lung và bớt bỡ ngỡ hơn khi mới đến và bắt đầu với lập trình.
I - Giới thiệu
Theo chúng ta thấy thì hiện nay các bạn mới bắt đầu học IT thì hầu như việc tìm kiếm thông tin về kiến thức cũng như kỹ năng không hề dễ dàng với hầu hết các bạn mới bắt đầu. Những tài liệu đầu tiên theo khảo sát thì thường các bạn tìm hiểu về nghề IT thế nào rồi vào cái là tìm hiểu về ngôn ngữ lập trình phù hợp để bắt đầu và thế là toàn đặt nặng về tài liệu, lý thuyết với các môn học rất khó mà trong tay các bạn ấy chưa có gì về kỹ năng và kinh nghiệm để tự học.
Với những lý do trên thì mình đã nảy ra một ý tưởng là viết ra bài viết nho nhỏ này tổng hợp lại những kiến thức, kỹ năng đã học đã biết trong suốt vài năm vừa qua để giúp đỡ các bạn còn gặp khó khăn trong việc tìm kiếm thông tin để học. Mình chỉ mong các bạn lập kế hoạch và thực hiện nó, xem lại và nhớ áp dụng kỹ năng cũng như là kiến thức vào việc học và lưu giữ bài viết này phát triển nội dung bài viết lên. Chúng mình cùng hoàn thiện nó để tặng lại cho các bạn học về sau và lan rộng nó ra với cộng đồng.
Nội dung bài viết cơ bản giới thiệu sơ qua về những kỹ năng và kiến thức cần đi qua từ thấp tới cao. Để bắt đầu khá là dễ dàng theo tuần tự giúp các bạn đọc qua và thực hiện nó theo từng bước để phát triển bản thân theo cách tốt nhất có thể tùy thuộc vào mức độ bạn đọc áp dụng như thế nào là bao nhiêu phần trăm trong đó.
Điều quan trọng nhất của bản lộ trình đó là việc học kỹ năng mềm từ đầu. Từ những nền tảng cơ bản này các bạn có thể tự tìm kiếm thêm và cốt lõi vẫn là tự học. Không chỉ là lĩnh vực IT mà các bạn còn có thể dựa vào kỹ năng kiến thức ở phần 1 để tìm kiếm thông tin kiến thức ở các lĩnh vực khác. Ngoài ra thì kỹ năng tạo mối quan hệ cũng quan trọng không kém nó tạo nên một mạng lưới quan hệ riêng cho bạn. Còn về IT thì là nền tảng về lập trình và kỹ năng tìm kiếm.(research^^)
II - Bắt đầu và chuẩn bị
Bạn mới vào test thử cái này: IQ Test Made by Mensa Norway - Mensa Norway
Điều quan trọng không phải là thông minh hay không thông minh mà là môi trường các bạn sống của các bạn. Và cái IQ đó không làm bạn giỏi lên đâu quan trọng là kiên trì và thói quen sống hàng ngày từ nhỏ của bạn và nó có thể cải thiện tốt hơn ở thời điểm hiện tại, chưa bao giờ là muộn cả. Thay đổi thói quen sống sinh hoạt lành mạnh hơn phù hợp hơn để tăng cường sức khỏe. Đừng có lo lắng là tôi không đủ thông minh này nọ, chủ yếu là kiên trì, có phương pháp học đúng và dần thay đổi thì mọi chuyện tốt đẹp sẽ đến với chúng ta. Lập trình biết cộng trừ nhân chia là có thể làm được việc rồi. Bạn không đủ thông minh để học lập trình ư? Không nên nghĩ như vậy bởi vì bạn nên. Các ngành nghề khác rồi cũng sớm có thể bị thay thế bởi robot, máy móc,... đặc biệt là các công việc tay chân bởi sự thay đổi nhanh của thế giới công nghệ thậm chí là những công việc cần đến trí óc như lập trình cũng có thể bị thay thế bởi sự ra đời của trí tuệ nhân tạo,… Thôi thì muốn chắc chắn thì bạn cố gắng nắm chắc những cái sau: tiếng Anh, kỹ năng mềm, nền tảng lập trình(nắm vững cấu trúc dữ liệu và giải thuật), giỏi toán thì ngon. Cần đặt mục tiêu, tự lên một kế hoạch cho mình làm lại từ đầu nếu còn mông lung không biết đi về đâu. Một lời khuyên thật lòng đến từ mình, dù đi chậm lại so với mọi người nhưng bạn sẽ đi từng bước vững và chắc. Tin rằng bạn sẽ thành công.
1. Type
- RapidTyping: https://rapidtyping.en.softonic.com/
- Typeracer: https://play.typeracer.com/ Điều bắt buộc nếu cậu thực sự đam mê. Luyện đều mỗi ngày thì đi tiếp. Không luyện đều cũng đi tiếp. Nó không phải thứ quan trọng nhất khẳng định khả năng trình độ của bạn nhưng mà nó thể hiện được kỹ năng chuyên nghiệp của bạn cho mọi người thấy. =)) Người gõ phím nhanh chưa chắc đã giỏi, người giỏi chắc chắn phải gõ phím nhanh! Mình nghĩ vậy, cố mà gõ cho được 10 ngón nhé vài tuần là được. Nó dễ v* ra ý.
- ZType: https://zty.pe/ Step by step.
2. Microsoft office
Excel (Rất quan trọng)
Nhanh cấp tốc thì 1 ngày. Học thật giỏi, master kĩ năng này:
- Excel căn bản, nâng cao
- Sử dụng công thức và hàm
- Làm việc với dữ liệu
Word
Học nắm cơ bản để sau này bạn có thể tự biết viết báo cáo đồ án, dự án mình làm. Học cơ bản đầy đủ khoảng 2 ngày. https://www.youtube.com/results?search_query=word+basics+tutorial
PowerPoint https://www.youtube.com/results?search_query=powerpoint+tutorial
Lưu ý: Nên học về cách thuyết trình để sau này có thể áp dụng tốt trong công việc. Tìm hiểu kỹ về phương pháp thuyết trình DST.
3. Google Apps
Quan trọng đầu tiên là về Gmail. Thư từ cẩn thận trang trọng, chữ ký, dấu câu đàng hoàng đầy đủ tránh sai chính tả, tránh thiếu tiêu đề, ngữ pháp. Sử dụng các dịch vụ của Google để phục vụ trong công việc: Gmail, Docs, Sheets, Calendar, Slides, …
Nguồn tài liệu từ: Google Apps Learning Center Một số ứng dụng khác ko cần biết -_+
- Zalo https://chat.zalo.me/
- Skype https://join.skype.com/tV4
- Cuốn sách: Ứng dụng công nghệ làm chủ cuộc sống (J2Team MT)
- Connect to Social networks:
- Sử dụng các mạng xã hội phổ biến: Facebook, LinkedIn, Youtube,Twitter, Instagram, Spotify, Netflix, …
Nguồn tài liệu chính từ: GcfLearnFree
4. Làm quen với lập trình
- Scratch Basic Advanced Studio.org Code.org
- Flappybird
- Minecraft (Hay đấy các bạn, mình thấy mấy bạn pro hay chơi)
- Photoshop (Có cũng tốt thôi)
- Photoshop tutorial photoshop online = Photoshop căn bản, photoshop nâng cao
5. English (Cực kỳ quan trọng)
Lời khuyên nên hát để học ngoại ngữ nhé
- Speaking-Học phát âm (Elsa speak, Tflat speak, Tflat dictionary)
- Thường phải mất khoảng 1 tháng rưỡi để học phần phát âm tiếng Anh, nếu bạn là người kiên trì thì thành thạo 44 âm trong tiếng Anh khoảng 2 tuần là có thể với app mình giới thiệu. Bạn có thể nhận dạng và biết cách đọc khi nhìn vào các âm đó.
- Vocabulary-Từ vựng(Tflat, Tflat dictionary, Memrise)
Sau 2 tuần luyện nói các bạn tải về phần mềm Tflat để học từ vựng. Chúng ta dành 2h mỗi ngày. Thời gian 1 tháng đầu thì viết từ vựng ra 1 trang theo chủ đề, trang còn lại của tờ vẽ mindmap chủ đề đó. Ở phần 3000 từ vựng tiếng Anh cơ bản thông dụng các bạn có thể học nó trong vòng 1 tháng là có toàn bộ(Oxford) cơ bản. Nếu việc học hơi nhàm chán bạn có thể bật nhạc không lời hoặc nhạc u Mỹ mà nghe. Vừa nghe học ắt thành công. Có game check mà.
Grammar-Ngữ pháp Grammar exercises(rất rất nhiều từ dễ tới khó)
Nhiều bạn mới học về ngữ pháp thường bị luẩn quẩn. Biết hiện tại ,tương lai, quá khứ và mỗi phần có 4 thì. Ví dụ: thì hiện tại có thì hiện tại đơn, hiện tại tiếp diễn, hiện tại hoàn thành và hiện tại hoàn thành tiếp diễn. Tương tự thì tương lai và quá khứ cũng vậy. Trong các ứng dụng dạy về ngữ pháp tiếng Anh đều có hết.
- Duolingo https://www.duolingo.com/
- Langkingdom https://www.langkingdom.com/en?stay=1
- LingoHut https://www.lingohut.com/en
- Engbreaking Eng Breaking free Englishstudyhere
- Đối với IT thì các bạn nên chịu khó đọc tài liệu bằng tiếng Anh. Đầu lạ sau quen nếu có một chút cơ bản rồi thì nên chịu khó khoảng 3 ngày là đọc được. Đọc không hiểu cũng đọc từ từ sẽ được nếu có chút nền tảng rồi là được.
6. Development Activity(Thành công hay không cần có có cái này)
- Care Skill (Kỹ năng chăm sóc)
- Phát triển nhận thức
- Improve yourself (other)
- Improve yourself
- Creativity Tools (Sáng tạo công cụ)
- Strategy Tools (Công cụ chiến lược)
- Relationship Management (Quản lý mối quan hệ)
- Stress Management (Quản lý sự căng thẳng)
- Project Management (Quản lý dự án)
- Motivation (Động lực, đặt mục tiêu cho bản thân)
- Hướng dẫn bạn trở thành một công dân điện tử, kiểm soát hành vi online và phát hiện các hành vi lừa đảo trên internet. All in here
- Digital Literacy and Citizenship
- wifi free nguy hiểm như thế nào?
7. Professional life training
- Làm thế nào tối ưu hóa việc học tập ở trường nhỉ?(Lên đại học thì thế nào)
- Cần ghi chú như thế nào để giúp việc học tốt hơn nhỉ?(Lập trình)
- Làm thế nào để đọc sách nhanh các bạn nhỉ?
- Là lập trình viên thì có cần tính nhẩm tốt không nhỉ?
- Learning to learn (Học cách học)
- Time Management (Quản lý thời gian)
- Decision Making (Kỹ năng ra quyết định)
- Problem Solving (Giải quyết vấn đề)
- Team management (Quản lý đội nhóm)
- Leadership Skill (Kỹ năng lãnh đạo)
- All in here Google searching (Quan trọng nhất^^)
- Top 200 tools to learn
III - Cơ bản về lập trình
1. C programming - Functional programming( Đặt tên biến )
- Nhập môn lập trình không code https://sachvui.com/
- Cách học lập trình hiệu quả code ở đây lun ko cần cài j cx đc https://repl.it/
- Đam mê và muốn đi lâu dài thì đi theo hướng này mình đúc rút được vì đã được học ở trường là chuẩn nhé. Khoảng 6 tháng nắm đủ cơ bản( Python->C/ Algorithm & Data structure /Database/ Java/ OOP/ JavaFx or Java Swing) sau đó nếu chọn 1 trong các hướng để đi thì thêm 6 tháng nữa đủ để đi làm.
- Còn muốn chắc thì dùng 6 tháng tiếp theo để nắm phần cơ bản về web(HTML/CSS/BOOTSTRAP/JS/PHP, học thêm 2 framework laravel và reactjs) và sau đó xin đi thực tập 2 tháng vị trí .Net hay gì đấy. Rồi về học tiếp(...).
- Quan trọng lắm lưu đồ thuật toán
- C tutorial, Giáo trình lập trình C series cơ bản tới nâng cao C++
- C++ tutorial, Python tutorial/Python khoa học db, Pascal tutorial
- Kteamyoutube Howkateamwebsite
- Bài tập C cơ bản
- Học lập trình
https://www.learncpp.com/ https://sogo.edu.vn/
http://ntucoder.net/ https://www.w3resource.com/ - Dev C++ https://www.youtube.com/watch?v=1tEwC3IURvk
- Visual studio code https://www.youtube.com/watch?v=MzF1 GA
Làm xong 1000 bài code C là sau khi học hết phần về lưu đồ thuật toán
Chọn một cái thôi nhé bạn thấy phù hợp thôi nhé. Ưu tiên tiếng Anh.
2. Những thứ cần có khi học
Bắt đầu học lý thuyết và bắt đầu làm những bài tập đầu tiên thôi:
- 1 cuốn vở dày,1 cây bút chì.
- Tìm hiểu giải thích từng dòng lệnh comment rõ ràng.(Clean code đọc đi)
- Cốt lõi là viết code ra giấy là chủ yếu phần lớn thời gian.
- Practice for a long time.
- Code lỗi thì làm lại bài đó từ đầu hông nói nhiều. Học gì có ở đây
- Top hero (đỉnh)
- Codelearn Hackerrank Viblocode Codeforces Leetcode
- Top 25 website to learn IT
- Binary Search medium (rat hay nek) geeks for geeks
- Học C cách của hacker, tham khảo Learn C The Hardway của Zed.A Shaw.
3. Maths (Cái này biết cộng trừ nhân chia là lập trình được rồi ^^)
Làm thế nào để học toán nhỉ?
Toán học đơn giản, tin mình đi ở đây. Chưa bao giờ là muộn cả.
- Tiền đại số -> Đại số -> Đại số 2 -> Giải tích
- 10 điều cần biết ↑ trước khi vào đại số
- Sử dụng và xử lý dữ liệu
- All in here Maths is fun
- Math practice everyday Học online toán(tiếng Việt)
- All in here Math & Science
- Math is the hidden secret
- Toán học rất quan trọng để các bạn tiến đến các mảng khác xa hơn như ML/DL
- Lộ trình học Machine learning
Toán thì vô vàng thứ trong đó, nhưng nhìn lại thì cũng chỉ có cộng trừ nhân chia mà thôi, công thức này nọ cũng chỉ là thứ được người ta đúc kết, mà để đúc kết ra những cái đó thì cũng sử dụng + - * / mà thôi. Code cũng vậy, cũng chỉ có biến (hằng), kiểu dữ liệu, phép tính, lệnh gán, lệnh rẽ nhánh, lệnh lặp. Quan trọng là vận dụng như thế nào, nó nằm ở tư duy. cái bạn cần là rèn luyện tư duy.
4. Database
- Chọn lap: Lập trình web, photoshop + code asp + php + javascript + wordpress + học cơ bản trong 4 năm đại học bạn nên chọn OS Windows ( Tìm OS Linux về software để lập trình), sau đi làm dùng MAC OS. Lập trình ứng dụng desktop với các phần mềm: SQL Server, Visual studio 2017, lập trình android, chạy máy ảo, học network thì là OS Windows.
- Download Xampp và MySQL Hướng dẫn cài Xampp Hướng dẫn càiMySQL
- Basic Database
Cách học mình có những trang web như w3school, oracle (tự tìm).
- SQL Tutorial – Full Database for beginner
- Stackoverflow https://stackoverflow.com/
- https://toidicode.com/
- https://www.visual-paradigm.com/
- https://www.oracle.com/index.html https://www.quora.com/
5. Algorithm & Data Structure
Cấu trúc và dữ liệu giải thuật (Mình khuyên nên học C để bắt đầu)
Hãy học song song cùng với Database. Các bạn có tiếng Anh tốt thì đây là một lợi thế. Bạn có thể lên các trang như Hackerrank để thi đấu.
Data structures easy – full tutorial
Tìm hiểu về giáo sư Donald Knuth, ông tổ Algorithm & Structure. https://en.wikipedia.org/wiki/Donald_Knuth
Điển hình là Google các bạn đang dùng để tìm kiếm nhé.
- https://en.wikipedia.org/wiki/PageRank
- https://www.dailycodingproblem.com/subscribe#faq
- https://www.facebook.com/fankaka8 (Thầy của mình nhé)
- https://github.com/tixiuthu/git-training (Học git rồi đẩy code lên coi với nek)
6. Java - Object Oriented Programming
JAVA Java tutorial(mainpage) Java tutorial video
https://github.com/tixiuthu/java-basic (Cô giáo của mình đấy)
- OOP Access modifier
- Java – OOP Basics
7. JavaFx - JavaSwing
Học để hiểu rõ hơn về cấu trúc ứng dụng cũng là sắp tới học web như thế nào. Một số phần mềm, ứng dụng về quản lý sân bóng chẳng hạn.
Kiến thức nhỏ để xây lên những dự án lớn.
- Java Fx JavaFx Tutorial
- JavaSwing JavaSwing Tutorial
IV- Basic web
1. Giới thiệu:
FRONT-END
Có hơi hướng thiên về thẩm mỹ, dành cho các bạn cẩn thận, kỹ tính, có khả năng nhìn nhận độ lệch tính bằng Pixel (tương đương 1 chấm), tất nhiên cũng cần khả năng xử lý logic, nhưng không đặt nặng như BACKEND, muốn theo hướng này bạn cần học. Nói thế mà ngày nay Front-end có khi khó hơn á, cũng không nhất thiết là thiên về thẩm mỹ. Thật đấy. Mà bên Frontend ít thay đổi như bên Backend công nghệ thay đổi liên tục cần nắm vững nền tảng lập trình với kỹ năng tự học mới theo lâu dài được.
Kỹ năng bắt buộc, đủ để làm việc
- html, html5 - yêu cầu khá, giỏi.
- css, css3 - yêu cầu khá, giỏi.
- Photoshop - yêu cầu cơ bản, biết cắt hình.
- Javascript (1 trong các Javascript framework: jquery, react.js, vue.js, angularjs, ...) - yêu cầu khá trở lên.
- Kỹ năng có sẽ tốt, nhiều cơ hội nghề nghiệp
- Javascript, Javascript frameworks, một số công ty chỉ tuyển giỏi Javascript để viết những ứng dụng khó, hoặc viết game, rộng mở.
- webpack, scss, Seo, Ui & ux (user interface & user experiment)
- Công cụ quản lý source code (git, svn, ...)
- html tutorial css tutorial Js tutorial Js Bootstrap tutorial bootstrap
Mấy cái này theo mình nghĩ là các bạn nên lên W3SCHOOL để bắt đầu.
Còn về mặt giao diện sau này một thời gian tập tành thì ấn F12 ở các trang web.
Nay như Tàu biết thì FRONT-END khó hơn trước nhiều kho hơn BACK-END luôn ấy.
BACK-END
Hướng đi BACKEND dành cho những bạn có khả năng xử lý tốt, có khả năng về lập trình tốt, hướng đi này cũng rẽ thành nhiều hướng đi:
Các hướng có thể theo:
- PHP, PHP Framework (Laravel, CodeIgniter, Yii, CakePHP, ...)
- PHP, PHP CMS (Wordpress, Joomla, Drupal, ...)
- Ngôn ngữ khác: Python, Ruby All Rail, NodeJS, ASP.NET, ...
- Kỹ năng chung cho PHP Framework & PHP CMS:
- PHP - Yêu cầu khá, giỏi.
- Một trong các cơ sở dữ liệu: MySQL, SQL Server, NoSQL (MongoDB, Apache Cassandra, Redis), ...
- Javascript (Javascript framework: jQuery, React.js, Vue.js, AngularJS, ...) - Cần khá sẽ hỗ trợ tốt công việc, nếu không biết thì đôi lúc sẽ mất nhiều thời gian để xử lý, và đôi lúc không thể xử lý.
- AJAX - Yêu cầu khá trở lên.
- JSON - Yêu cầu khá trở lên.
Kỹ năng có sẽ tốt, nhiều cơ hội nghề nghiệp
- HTML, HTML5 - Biết sẽ hỗ trợ tốt cho công việc.
- Webpack
- Linux/CentOS - Biết sẽ hỗ trợ tốt cho công việc.
- AWS, GCP, Cloudflare.
2. Javascript: Tạo một trang web mượt mà. https://vntalking.com/
Giờ thì bạn có thể tạo một game caro như này hoặc tạo một game như gộp số 2024 chẳng hạn.
3. PHP : PHP tutorial PHP Laravel nâng cao Laravel
Làm 1 dự án nhỏ, mà giỏi thì làm trang web thương mại điện tử.
Web hosting: Web hosting tutorial Infinityfree 000webhost
4. Github: Github tutorial
- Circleci
- Tài liệu git
5.JavaFx 3D: JavaFx3D tutorial
Javafx làm game đồ hoạ 3D được trong khoảng thời gian này. Trong đoạn học này, học và làm song song với các dự án khác ở trên nếu bạn đủ giỏi để làm.
V - System Analysis & Design
Systems analysis & design tutorial
- Đến đây thì biết prototype, vài cái design pattern, scenario, unitest,...
- Video prototype with figma, System design, BUSINESS ANALYSIS, unit test, Mastering the art of designing Microservices.
Lời khuyên chân thành học đến đâu chắc tới đó. Với việc có được một nền tảng vững chắc như này thì bạn không quá là lo sợ. Bạn có nền tảng về lập trình, bạn sử dụng được tiếng Anh, bạn có kiến thức đủ về Toán biết cộng trừ nhân chia là có thể làm một công việc thuộc lĩnh vực IT và đặc biệt hơn nữa là bạn có kỹ năng mềm để tự học. Điều mà bắt nên phải có không chỉ riêng ngành IT mà còn những ngành nghề khác. Đó chính là kỹ năng mềm một cái búa đập tan hết các bức tường là các rào cản khó khăn trên con đường bạn đi. Chúc các bạn thành công!
Học xong được gần 2 phần 3 chặng đường để đến với lập trình các bạn thấy thế nào. Bây giờ là sự lựa chọn của các bạn. Hoặc đi tiếp với web hoặc dựa trên nền tảng bạn có để học cái mà bạn thích. Sự lựa chọn sau khoảng thời gian nỗ lực học tập của cậu đã được đền đáp.
VI - Framework
Học từng cái một từng cái một rồi tự lên ý tưởng xây dự án cho riêng mình. Nắm rõ mô hình MVC, biết sử dụng API để kết hợp giữa laravel và react. Hiểu về token,...
1. Laravel
2. React.js
3. Wordpress
Đến Wordpress thì chủ yếu là kéo thả thôi không có code nhiều. Chủ yếu là trau dồi kiến thức CSS.
4. Android Studio(Java)
5. .Net
VII - Testing
1. Humans test
Là một lập trình viên cũng cần phải biết tới tư duy của người test nên là các bạn vẫn phải nên học nó.
Viết testcase là chính sao cho dễ hiểu ngắn gọn súc tích đầy đủ các trường hợp và đặc biệt người thông minh theo cái này oke đấy.
Có nhiều tips cho phần này, nào đi làm hỏi anh Principle Test là có hết à.
2. Agile ( Thiết lập tư duy mindset thời hiện đại)
Đã đến lúc tiêm tư duy mới này vào đầu các bạn rồi ^^
-
- Individuals and Interactions Over Processes and Tools Cá nhân và tương tác hơn là quy trình và công cụ
-
- Working Software Over Comprehensive Documentation Phần mềm hoạt động tốt hơn là tài liệu đầy đủ
-
- Customer Collaboration Over Contract Negotiation Hợp tác với khách hàng hơn là đàm phán hợp đồng
-
- Responding to Change Over Following a Plan Ứng phó, phản hồi với các thay đổi hơn là làm theo kế hoạch
3. Automation testing
- Principle Test
- Slide Test case Design
- Quay lại học Java học thêm về Groovy
- SeleniumDocument Selenium youtube tutorial
- Katalon set up email
- Git Workflows Git tutorial Katalon
4. UX/UI
5. React Native
6. Games
- Có kiến thức về các loại cấu trúc(shader)
- Có máy mạnh(máy yếu test game sẽ crash)
- Có kiến thức tốt về các loại âm thanh
- Có kiến thức tốt về 2D, 3D (Tùy vào loại game bạn làm)
- Có 1 team tốt
- Có engine tốt
- Có sự sáng tạo
7. Security
Ethical Hacking Tutorial hacksplaining
Lĩnh vực an ninh mạng có thể nói là rất rộng, tuy nhiên không có gì là không thể. Bắt đầu từ những định nghĩa, khái niệm, tới các nền tảng trong ngành công nghệ thông tin như:
- Lập trình (bạn có thể chọn các nền tảng như html & css, java,ruby, python, c++/#, javascript, php, joomla)
- An toàn thông tin, Cơ sở dữ liệu Quản trị mạng
- An ninh mạng và bảo mật hệ thống, Mã hóa và giải mã
- Lỗ hổng và khai thác lỗ hổng website, ứng dụng
- Mã độc, virus
1.Website
– Các lỗ hổng website phổ biến – Các phương thức Hacker tấn công mạng – Những hình thức tấn công mạng thường gặp – Nguyên nhân và giải pháp giúp bảo mật website – Hướng dẫn bảo mật website bằng SSL – Những nguyên tắc cơ bản để bảo mật website Joomla – 18 mẹo bảo mật website WordPress đầy đủ nhất 2017 – Nguyên tắc bảo mật cho web asp.net mà coder phải biết
2.Dữ liệu và an toàn thông tin
– Tổng quan về kiến thức, công việc của ngành An toàn thông tin – Cơ bản về mã hóa dữ liệu – Giải pháp bảo mật thông tin cá nhân từ chuyên gia – 7 cách bảo mật dữ liệu máy tính dành cho newbie – Cơ bản về bảo mật database trong SQL server – [GUIDE] bảo mật email toàn diện phòng tránh Hacker tấn công – Làm thế nào để bảo mật dữ liệu ổ cứng, USB? – Giải pháp bảo mật thông tin và dữ liệu cho công ty – Giải pháp bảo mật dữ liệu cho doanh nghiệp toàn diện
3.Mã độc
Mã độc website: – Làm gì khi phát hiện website bị nhiễm mã độc
4.Giải thuật và giải mã
– Nguyên Lý và Kỹ Thuật giải mã mật khẩu – Chiến thuật giải mã mật khẩu
5.Quản trị mạng
– Ngành an ninh mạng, học gì, làm gì – Chuyên gia Bùi Quang Minh chia sẻ – Kiến thức và kỹ năng yêu cầu của một nhà quản trị mạng – Tổng quan nghề Quản trị mạng máy tính – Tìm hiểu về nghề Quản trị mạng và bảo mật hệ thống – 10 thủ thuật bảo mật Windows 8 và 8.1 đơn giản mà hiệu quả – Hướng dẫn cấu hình bảo mật Server Linux bằng SSH – 10 công cụ bảo mật hệ thống miễn phí hữu hiệu
6. Các công cụ Học an toàn thông tin ra trường làm gì?
– Bộ công cụ hỗ trợ kiểm thử Pentest – 6 Công cụ khắc phục sự cố chuyên dụng dành cho dân IT – Trọn bộ công cụ phân tích mã độc chuyên gia chia sẻ
8. Embedded software
Embedded tutorial https://www.youtube.com/watch?v=nccWuB5ypxI&list=PLcbIZiT62e1gNZ-VWPO3rpTpXkHBMZa2n
Bạn sẽ là một developer (lập trình viên) đúng nghĩa, và có thể phát triển trở thành một lập trình viên giỏi, bạn sẽ cùng với đội nhóm của mình, phát triển các sản phẩm phần mềm cho các sản phẩm nhúng, có thể là application (web, desktop hay mobile app), firmware, OS (hệ điều hành), driver, vv. Công việc của bạn là viết code, test code, viết requirement, document cho sản phẩm.
- Những kiến thức cơ bản bắt buộc
- Học lập trình C: bạn cần học C đến mức chuyên gia, đây là ngôn ngữ quan trọng bật nhất trong lập trình nhúng.
- Tiếng anh: ít nhất bạn phải đọc được tài liệu chuyên ngành kĩ thuật, nhất là datasheet.
- Kiến thức về điện tử: các kiến thức về logic, vi điều khiển, vi xử lý, ADC, TIMER, INTERRUPT, vv.
- Các loại giao tiếp (protocol): UART, I2C, SPI, RS232, JTAG, … (nâng cao: SATA, PCIE, USB, CAN, MOST).
- Hệ điều hành: kiến trúc hệ điều hành, kiến trúc máy tính, nhất là hệ điều hành linux.
- Cấu trúc dữ liệu và giải thuật: là chuyên gia phần cứng, bạn cũng phải code, đã code thì phải có giải thuật!
- Memory: NOR, NAND, SRAM, DRAM, vv.
- Hệ điều hành thời gian thực (Real time OS).
VIII - Other
- Trải qua với nhiều dự án ngay chính trong trường.
- Đọc code là chủ yếu, và thực hành tạo ra sản phẩm. Tìm cách đọc ik
- Học lập trình từ khi còn nhỏ, 7 tuổi là cực kỳ tuyệt vời. Maybe
- Học tìm kiếm bằng google, tìm kiếm nguồn học bằng tiếng Anh.
- Nên học một loạt nhạc cụ
- Không tải quá nhiều tài liệu về
- Một folder chứa file nén của tài liệu tải về và sắp xếp gọn gàng ngăn nắp theo chủ đề, theo lĩnh vực. Một folder dùng để chứa sách để đọc thường thì đối với mình tối đa 2 cuốn. Đọc từng cuốn một nhé.
- Tham gia hội nhóm về lập trình và công nghệ
- Group Xóa “mù” lập trình 20.000 thành viên
- Youtube(Search bằng tiếng Anh là đầy khóa học chất lượng)
- Đọc sách: Clean Code, Code Complete, Refactoring, The Art of Readable Code( Có một lời khuyên là không nên đọc cuốn Code dạo ký sự nhá; cuốn sách xàm chỉ đọc cho vui và có vài cái tin được thôi)
- code và test(Cái này trong Clean Code đấy)
- Bảo mật/mã hóa rất khó. Đừng tự làm MÀ hãy tái sử dụng (sử dụng thư viện, thuật toán có sẵn v…v), trừ khi bạn biết rõ mình đang làm gì.
- Có vô vàn nguyên nhân làm crash một chương trình: deploy sai cách, input bị lỗi, người dùng dùng sai cách, quá tải … Chuẩn bị sẵn sàng cho những điều đó: Ghi log những exception gặp phải, deploy thử lên server test, đặt giới hạn cho bộ nhớ…
- Kết nối mạng (HTTP, socket) rất dễ xảy ra vấn đề. Luôn nhớ đặt timeout cho các kết nối này, sử dụng thư viện để wrap chúng, retry nếu kết nối.
- Mỗi dòng code thêm vào sẽ làm chương trình phức tạp thêm một chút, tăng khả năng có bug. Bỏ bớt code là cách hay nhất để giảm bớt bug.
- Validate những thứ người dùng nhập vào, vừa đảm bảo tính bảo mật, lại hạn chế được bug.
- Chỉ test những thứ cần test, test ít thì dễ sót bug, test nhiều thì sẽ mất thời gian và tốn công update test case mỗi khi đổi requirement.
- How to work?
- Rất khó để ước đoán thời gian cần làm để hoàn thành một module/dự án, đó là lý do người ta dùng Scrum.(Cái này mình đã học về Agile).
- Viết code để cho chính mình và người khác đọc. Thêm comment để giải thích “Vì sao”. Để một năm sau xem lại. Đặt tên biến rõ thay vì comment.
- Hiểu rõ thư viện/framework mà mình sử dụng, đừng cố gắng viết lại từ đầu những thứ người khác đã tốn công viết rồi.
- Cài đặt để việc build một project diễn ra nhanh chóng tiện lợi nhất có thể. Hãy chắc chắn bạn có thể build bằng command line, sẽ rất có ích (Có thể kích hoạt build từ xa, hoặc đưa project lên CI chẳng hạn).
- Hiểu rõ những tool bạn sử dụng (IDE, source control, build tool, Photoshop). Cố gắng tìm hiểu và làm quen với việc dùng các hotkey, hạn chế dùng chuột. Bạn sẽ làm việc nhanh hơn và “pro” hơn.
- Ngồi lâu rất có hại. Hãy tập một số thói quen để đảm bảo sức khỏe khi làm việc: Không ngồi nhiều, lâu lâu cho mắt nghỉ ngơi, sắp xếp bàn làm việc, bàn phím, chuột sao cho làm việc thoải mái…
- Đừng áp dụng lung tung các framework/process/pattern vào dự án để “thể hiện”. Không phải lúc nào Test-Driven Development cũng tốt, không phải lúc nào cũng nên áp dụng DI/IoC.
- Improve yourself
- Vọc code của các ứng dụng, framework Open Source là cách nhanh nhất để học hỏi và “lên trình”.
- Code review là một trong những cách hay nhất giúp bạn tiến bộ, có người đánh giá code của bạn, giúp bạn phân biệt code giỏi và dở, tránh những lỗi lầm cơ bản (Ở Việt Nam mình thấy việc code review này làm khá qua loa, khá chán).
- Học một ngôn ngữ mới sẽ giúp bạn hiểu những khái niệm mới, có cái nhìn mới, cách suy nghĩ sẽ linh hoạt hơn. (Thử chuyển từ C#/Java sang scripting language như python/javascript bạn sẽ thấy một chân trời mới).
- Học một ngôn ngữ hướng đối tượng là chuyện dễ. Biết cách thiết kế hệ thống theo hướng đối tượng là chuyện khó. Hãy tìm hiểu các nguyên lý SOLID và một số Design Pattern, chúng sẽ nâng cao hiểu biết của bạn về thiết kế hướng đối tượng.
About Myself
My full name is Cao Ngoc Tau. And this year I am ***************** years old. I am single. I live in ****** City. I grew up in an immediate family at ***** *** district ***** **** province. My family is always close and loves each other, and we have a resilient spirit.
I am a student at ********** ********** ******* and my major is Information Technology, or IT, about programming software. In school, I study the main subjects which are IT, Professional Life Training, English, and Development Activity. Of course, at school, a lot of activities for me to join the teams and with my friends. Being a friendly person, I always make people happy. If they have joy, anger, or are sad, I can do it all. Among the teams, I'm the one who makes a good first impression on people. I love my major because I want to make more apps, more games, more programs in the future. So I also want to be able to access information faster. It was also part of my predestined relationship with IT. And I choose it, and I love it with a passion to the end.
Although my family is not well-off, I often still play some games with my friends. I am quite lazy. I like reading books, studying IT, some subjects about development activity, about professional life training, or PLT, and studying English every day. On the other hand, I like dogs, cats, and birds. Sometimes, I also see pictures of Miss or hot girls.
My favorite music is instrumental piano music. I love my dad, my home, where I grew up and I love everyone. I'm average and I need to try to study more. That is just the number after all my life experiences, and numbers are just numbers. I need to read more books and study more. Don't forget who you are and where you are from. "Always keep your eyes on the star, and your feets on the ground." That's my favorite quote because life must be like that. Know where you are on the way you go. Do not imagine. Be free from it, is what I want to say to all the people who are daydreaming like I used to dream. Good people do not stop learning. Never say die. We will get along. The furniture was cluttered and when I needed it, I tidied up very quickly like never before. The smallest jobs often have interesting things in them. And I like them. I also like to search for resources over the internet in English. So I have a lot of good sources for learning and working. And the most important thing is that I do it. Find what I learn right away. Otherwise, knowledge is just knowledge lying there.
I believe that with the knowledge as well as the current experience, I can afford to learn from the previous colleagues. Improve my ability to work through working with everyone on my assigned team as well as everyone in the company. Develop teamwork to create quality IT products. Gradually improve, constantly learn from people who are better than me and don't forget to help those weaker than us, so we can progress together. Simple as that.
And of course, every human being, weak or strong, often has things that need improvement. And for myself, perhaps laziness at work is a problem that makes me delay learning. And I have found a way to solve it to deserve the skills I have. The workaround is to always take notes and create reminders. Find friends regularly and thus create relationships with friends. They will remind me to motivate and aim to strive. Do the smallest thing and complete it. If not, then be self-reliant, telling myself to follow what I have written in the notebook that I do it right away.
I communicate quite well with every new person, and especially often leave an impression when interacting. Talk regularly and make new friends on the train or at the train station, on the plane or at the school itself. Able to find quality information sources on the internet, mainly in English. Learning materials. It is my habit to have free time.
Books
- Tôi tài giỏi, bạn cũng thế
- Mặt dày tâm đen
- Nghệ thuật tinh tế của việc đếch quan tâm
- Đắc nhân tâm
- Dạy con làm giàu
- Trí tuệ cảm xúc
- Thông điệp của nước ^^
- Lược sử loài người
- Lược sử tương lai
- 21 Bài học cho thế kỷ 21
- Bắt đầu với câu hỏi tại sao
- Tư duy nhanh và chậm
- Tư duy có hệ thống
- Nghĩ giàu, làm giàu
- Tăng trưởng thần tốc
- Những cuốn sách về Steve Job, Jack Ma
- Yêu những điều không hoàn hảo(Lý Thủy Tiên xinh ở C500) giới th)
- Truyện trinh thám (Strawberry night, Thánh giá rỗng)(Cũng là Tiên)
- Anime, Manga, Naruto, Sherlock Holmes, Conan, Harry Potter, …
- Mỗi lần vấp ngã là một lần trưởng thành (Nguyễn Thảo giới thiệu)
- 300 bài code thiếu nhi
- Programming languages
- Dart https://dart.dev/platforms
- Python https://www.youtube.com/watch?v=rfscVS0vtbw
- Tensorflow https://www.youtube.com/watch?v=6g4O5UOH304
- Go https://www.youtube.com/watch?v=YS4e4q9oBaU
- Kubernetes https://www.youtube.com/watch?v=YS4e4q9oBaU
- Ruby https://www.youtube.com/watch?v=t_ispmWmdjY
- Flutter
- C++
Vì sao thuật toán lại quan trọng?
Theo quan điểm của mình thì quan trọng hơn cả là tư duy và cách cũng như tốc độ giải quyết vấn đề của bạn. Còn việc học một ngôn ngữ mới thì mình còn thiếu kinh nghiệm. Tùy theo cách bạn tự học thế nào dựa vào tất cả những kỹ năng bạn đã học bạn đã có để bạn có thể học công nghệ lập trình mới tốt hơn và đúng thời điểm. Luôn giữ tinh thần học hỏi, không nên chạy theo công nghệ mới quá. Không nên chọn một công nghệ cho một dự án chỉ vì nó hót/mới/hay. Nên chọn từ đầu và đào sâu kỹ về nó. Ví dụ như ASP.NET CORE Và quan trọng hơn cả là đầu tư vào tiếng Anh. Top 10 trend technology
Thật ra sau khi bạn nắm cơ bản về ngôn ngữ nào đó và làm vài dự án nhỏ nhưng khoảng 3 tháng mà không đụng tới là quên hết chỉ còn lại cái nền tảng ban để bạn hiểu về nó. Cấu trúc dữ liệu và giải thuật ý. Chuyển đổi công nghệ cũng thế, cốt lõi là tự học. It’s me. C# .Net ^^
- 300 practice code of legends: (VQN) =))
- Phạm Huy Hoàng toidicodedao.com
IX - Kết bài
Cậu thấy bài tổng hợp tớ đã làm thế nào, ei cậu giúp mình share bài cho bạn bè thân của cậu nha, các bạn cùng lớp có đam mê lập trình hay định hướng con em các bạn bộ tài liệu này sẽ hữu ích lắm đấy chí ít là cho tới thời điểm hiện tại.
Giáo dục mỗi ngày mỗi khác, ngày mai khác xa ngày hôm nay một trời một vực và đó là hiện tại chỉ là những thứ tốt nhất chưa đến với chúng ta nên mình cố gắng nhất có thể cung cấp những gì mình có, mình biết và có thể chia sẻ. Cảm ơn các cậu vì tất cả nha.
Chúc các cậu thành công và ngoài lập trình giỏi ra thì đặc biệt tiếng Anh cũng cần phải biết mà giao tiếp, đủ để đọc tài liệu. Nếu bạn mục đích vì tiền hay là vì đam mê gì đi chăng nữa thì tiếng Anh vẫn luôn là quan trọng để tìm kiếm tài liệu và đặc biệt bạn đã có vốn tiếng Anh trong tay rồi thì nên học IT.
Rất nhiều người không mạnh ở khoản tiếng Anh đấy; vậy bạn học IT ngại gì, hãy thử làm theo từng bước biết đâu được nó thay đổi cuộc đời bạn và sau này bạn giúp lại nhiều người, lại có thể thay đổi cuộc đời nhiều người theo chiều hướng tích cực. Rất nhiều lĩnh vực cần lập trình đấy, sao không thử một lần nhỉ cố gắng tìm phương pháp học tập trước tiên.
Kỹ năng excel master nữa, quản lý dự án, bla bla nhiều thứ phải học mà cái nào cũng phải giỏi lần lượt. Đi từng bước chắc đừng để như mình học qua rồi giờ phải bỏ thời gian học lại dựa trên cái sườn và nguồn học tập mình có. Hãy chắc từng bước, bớt gái gú lại, bớt game lại, bớt cần cậu cơ lại” cần cu cơ ^^”. Là một đứa nghiện game từ hồi lớp 2 đến năm lớp 9 và sau một năm mình cai nghiện thì mình đã khác.
Hãy thử dành chút thời gian để lan tỏa biết đâu được nó thay đổi sớm giống như việc mình đang làm vậy rồi lao đầu vào học, vào code tiếp song song mà. Tương lai đó sẽ khác, để lên đại học mới học lập trình thì thiếu cơ hội, khá mất nhiều thời gian. Thời gian này để học nhiều thứ khác thì hơn, mà ai chưa học lập trình thì nên học trước về nó nhé rồi tính sau hehee.
Học để hiểu hầu hết tất cả những thứ trong cuộc sống quanh ta. Vốn dĩ tạo hoá ra những sinh vật, những đối tượng trong vũ trụ và vũ trụ này là tuyệt tác rồi. Lập trình cũng dựa trên nó mà ra, mà là chỉ một phần nhỏ. Mọi người đều bình đẳng giống như nhau. Và hầu như là không ai giống ai hoàn toàn cả. Mỗi người có điểm yếu, điểm mạnh riêng. Mình thì bây giờ mới 16 tuổi thôi à.
Tất cả kinh nghiệm của những người đi trước đều không miễn phí. Mình muốn các bạn lan toả nó ra với cộng đồng khi đọc qua bài viết này. Không quan trọng là ai đăng bài dựa vào sườn này viết tiếp, miễn là các tiền bối, các bạn lành nghề trong tay đã có kiến thức chuyên sâu có thể sửa lại ngắn gọn dễ hiểu hơn và làm chính xác nhất có thể về nội dung để dễ học, dễ đọc. Bổ sung thêm cho nội dung đầy đủ đa dạng, phong phú và chính xác cập nhật đúng thời đại.
Phần đầu tiên làm sao để thuyết phục người mới chưa biết gì về lập trình theo hướng này, phần thứ hai là nội dung kiến thức tích hợp đầy đủ vào bản lộ trình học từ đó còn thiếu chỗ nào thì người học có thể tự tìm kiếm tiếp. Đặc biệt chia sẽ ra cho mọi người cùng phát triển và bổ sung thêm vào bản học bắt đầu học lập trình như thế nào này. Trứng rán cần mỡ, bắp cần bơ, cao nhân tiền bối, em cần giúp. Nếu thấy bài hay thì share cái nhẹ nào nào (Chế độ công khai giúp đỡ mọi người cùng em nhé, giúp mọi người có thể tiếp cận với lập trình một cách dễ dàng).
Trong bản cập nhật lần này mình đã sửa lại nhiều về mặt hình thức sao cho bố cục phù hợp, nội dung ngắn gọn sắp xếp khoa học gần chuyên nghiệp hơn và kèm theo nhiều nguồn học tập khá hữu ích và thú vị. Bạn nào có kinh nghiệm hãy để lại nhận xét và chia sẻ qua fb Nhi Nguyễn để chúng mình cùng đúc rút kinh nghiệm học tập và đưa vào lộ trình học một cách chi tiết nhất có thể.
Chúng ta cùng nhau xây dựng lên lộ trình học tập tốt nhất có thể theo thời gian để giúp những bạn, những người mới chưa biết gì về lập trình hoặc mới bắt đầu học tiếp cận một cách dễ dàng hơn. Chúng ta sẽ bắt đầu hành trình với sứ mệnh đem lập trình tới mọi người, tới cho cộng đồng nào. Mỗi người một tay dù là hạt cát thì mình cùng nhau lan rộng nó ra thì ắt sẽ thành công phần nào. Mình tích lũy từ kiến thức nhỏ tìm kiếm được của bản thân và tích hợp kinh nghiệm, học tập từ nhiều người thầy, nhiều người đang học và đã làm nhiều năm trong nghề.
Không ngôn từ đã kích xúc phạm, tôn trọng người mới bắt đầu. Những bạn mới bắt đầu, hãy đọc hết, mình tin các bạn sẽ thành công nếu áp dụng đầy đủ từ những chi tiết nhỏ, từng phần nhỏ đầu tiên. Mình cùng chia sẻ kinh nghiệm bù đắp lỗ hổng kiến thức còn thiếu sót cho nhau. Đến với lập trình bạn cũng không cần quá giỏi toán, biết cộng trừ thôi là lập trình được nha.
Chỉ cần các cậu kiên trì học hỏi từng ngày. Bỏ thời gian hằng đêm khi còn trẻ giữ sức khỏe khi đến tuổi 25 và duy trì. Các cậu sẽ thành công! Là một người mới nên "đọc hết nhé, kẻo lấy thông tin được một nữa mà làm theo hết là toanh đấy". Trân trọng nó là được.
"Khi bạn đến với nghề lập trình mà chuyên đọc sách, viết lách" ) Một câu nói của ai kia nói mình á! Thực ra mình chỉ muốn đưa kinh nghiệm đến cho nhiều người, cho những người mới để "đỡ lầm đường lạc lối và mơ hồ khi mà vẫn còn trên ghế nhà trường, khi còn đi học, còn mới bắt đầu". Và như chia sẻ thì quan trọng hơn cả là "tư duy lập trình đặc biệt môn học Algorithm & Data Structure".
Hãy dành chút thời gian làm từ tâm của mình, một cho tất cả; một vì nhiều người, thà dành một chút thời gian một cách khéo léo mà lợi gấp nhiều lần đáng để dành thời gian để làm lắm ấy. Khi bạn trong lúc thư giãn rãnh rỗi thì vào các group lập trình giúp đỡ mọi người có đăng bài cần giúp đỡ. Click click vài cái chia sẻ kinh nghiệm kết thêm bạn cùng chí hướng hay tán gái chẳng hạn thư giãn đầu óc sảng khoái hẳn.
Mình đổ dồn một xíu sức nhỏ bé của mình còn yếu ớt vào đây cả, mình mong rằng các bạn trân trọng nó. Mình một lần nữa rất mong bậc tiền bối nào đó có thể cùng giúp mình chỉnh sửa lại bài viết ngắn gọn hoặc viết lại dựa trên sườn này tương tự với nội dung cho phù hợp và chuẩn nhất có thể theo thời gian theo thời đại. Xa hơn là một cuốn sách lộ trình học lập trình hoàn hảo cho người mới bắt đầu. Tiếp cận một cách dễ dàng hơn với lập trình, một cộng đồng lập trình. Daily coding problem
Practice for a long time! Thank you very much. Good luck to you!
Remember do not stop! Never say die! We will get along.
Kinh nghiệm của một người đi trước. Trước khi tư vấn cho một người:
-
- Lắng nghe người cần tư vấn chia sẻ trước.
-
- Với kiến thức kinh nghiệm của mình thì khơi gợi và gợi ý cho họ.
-
- Nhận feedback khi người cần tư vấn nhận được gợi ý của mình.(không phải feedback liền)
Mình rất ngại tư vấn cho một người vì mình rất dễ áp đặt suy nghĩ của bản thân mình lên họ. Làm đánh mất tính sáng tạo, tính độc nhất cho của một người, cũng như đa dạng phát triển cho cộng đồng.
Để tư vấn và định hướng tốt cho một bạn thì mình phải thực sự hiểu về họ, về: kiến thức, background, mong muốn, ước mơ,... toàn những thứ lớn lao không à, không thể ngày một ngày hai mà hiểu họ.
Ngoài ra nguồn tài liệu chất lượng nó lại là một vấn đề trừu tượng, đôi khi đối với bạn này nó hay nhưng đối với bạn kia nó không hiệu quả. Nên lộ trình build ra dựa trên những gì đã được đi học là nó build ra sao cho phù hợp với khóa của mình còn với các bạn khác ở ngoài chưa chắc là nó đúng.
Là lý do tại sao ngay từ đầu admin của group chúng mình đã xây dựng group “Xóa “mù” lập trình”, mà thay vì “Để trở thành lập trình viên giỏi”.
Gom lại một chủ để scope thật nhỏ, tránh để thiếu sót trong bản thân mình mà guide cho người khác đi sai.
Mình sẽ thử làm một vài flow nhỏ.
Kiểu như chọn 1 chủ đề nho nhỏ trong lập trình kiểu kiểu như:
- “Vòng lặp là gì? Tại sao phải sử dụng nó?”
Đây là một câu hỏi rất cơ bản. Tuy nhiên sẽ có nhiều câu trả lời khác nhau khiến mình bất ngờ luôn. Đôi khi có những bạn chưa hiểu tại sao phải sử dụng nó.
Lúc đó cũng có những bạn đã hiểu rõ các bạn sẽ share nhiều kiến thức hay đôi khi mình chưa biết. Có những bạn chưa hiểu thì hỏi thêm, lúc đó mình có thể vào gợi ý và định hướng,....
Đừng bỏ 10 năm trời tạo ra 1 cái gì đó mà chỉ là hypothesis. Mà thay vì trong 10 năm đó chúng ta tiếp cận “khảo sát thực tế” người sử dụng. “lắng nghe” nỗi đau của họ. Từ đó đưa ra giải pháp “gãi đúng chỗ ngứa” của họ. Khi có giải pháp rồi thì thử nghiệm thực tế”, sau khi thử nghiệm xong thì”review và chỉnh sửa lại”.
Cứ thế xoay cái vòng lặp đó và biến đổi theo thời gian. Có một điều chắc chắn là khi chúng thử làm vậy một thời gian và chúng ta nhìn lại nhiều khi những gì mình nghĩ lúc đầu có khi rất khác so với thực tế.
Những cái mình nói cũng chỉ là lý thuyết và assumption của mình thôi. Nên bạn cũng đừng tin mà nên kiểm chứng thực tế.
//--------------------------------------------------------------------------------------------------------
Nếu xét về lời khuyên chung thì mình suggest các bạn 2 cái:
- Học thuật toán
- Học English
Còn lại những kiến thức khác trường lớp đã cover cho các bạn gần như bài bản. Bám theo đó cho tới ra trường ra có được foundation tốt.
Chắc chắn trong lúc học sẽ tìm ra chuyên ngành mình thích: Back-end, Front-end, QC/QA, BA, Data engineer,...
Xác định được chuyên ngành thì lúc này mới tìm hiểu sâu hơn và dấn thân vào.
Chịu khó mới ra trường tìm công việc đúng chuyên ngành. Làm một thời gian xem mình có hợp không, nếu không rẽ ra hướng khác. Dù đi tiếp hay thay đổi thì thuật toán, English và những kiến thức học ở trường mới là nền tảng cho chúng ta muốn làm gì.
Còn những cái detail hơn nữa như học gì, tài liệu gì thì tới đâu xem tới đó. Không phải ai cũng có đủ kiến thức và kinh nghiệm chỉ hết toàn bộ được. Lúc này những cộng đồng như Xóa “mù” lập trình sẽ là nơi chúng ta lên trao đổi cụ thể nên học cái gì, ở đâu, sách gì, …
Về mỗi chuyên ngành sẽ có luôn group cho chúng ta hỏi đáp.
Lúc đó out of scope Xóa “mù” lập trình
Hiện giờ những công ty mà muốn tuyển software engineer tốt cũng vẫn test và phỏng vấn 3 cái là:
- Thuật toán, English, Soft skill.
- Và kiến thức chuyên ngành(Backend,Frontend,...)/
- Domain knowledge(ecommerce, banking, accounting,...) cụ thể tương ứng.
Thật ra ở đất nước Việt Nam chúng ta có rất nhiều công ty không test thuật toán và English. Nhưng nếu mình có được hai cái này tốt thì có thể tự tin apply không giới hạn công ty trong nước hay nước ngoài.
Ngoài toidicodedao đọc cho vui ra thì nếu bạn thiên về database có thể tham khảo bác Huy chuyên gia oracle và database. Cũng có join group Xóa “mù” lập trình. Bạn nào muốn tham khảo thì có thể đặt câu hỏi lên group.
Một số cái thật sự không dùng đến thì cũng không nên học làm gì, một số cái chỉ cần biết là đủ chứ không cần học sâu hơn, có một số thứ cơ bản cần học như: kỹ năng tìm kiếm google, kỹ năng suy nghĩ giải quyết vấn đề. Phương hướng chọn ngôn ngữ lập trình có thể do lương cao hay tùy mục đích cá nhân.
Có rất nhiều lỗi sai và thiếu sót mình mong sớm nhận được phản hồi, nhận xét của các bạn để nhanh chóng cập nhật lại bài viết dần tới bản tốt nhất mà chúng ta có thể làm.
Đừng lo bắt đầu lại từ đầu mà lo rằng sau đó bạn sẽ như thế nào! Ai nói điều đó là muộn! -_+ Bây giờ mình vẫn chưa giỏi thì chúng mình cùng học lập trình ha.
Khi bạn học thì nên học chắc nắm vững những kiến thức cơ bản nền tảng như Algorithm and data structure, OOP, Database. Chọn một ngôn ngữ, chọn một framework và đào sâu vào nó. Đơn giản vậy thôi không cần phải học nhiều khi đã đi qua lộ trình trên đến hết basic web programming. ^^ Sau này lên đọc các tài liệu trên Stackoverflow, Medium, tham khảo open source trên Github là được. Còn nếu có tâm thì chúng ta cùng share bài này cho bạn bè, những người cần nó. Mình thấy ngày nào ở group nào cũng dường như có người hỏi lộ trình này nọ thực ra không gì nhiều đâu nó chỉ gói gọn như trong bài này. Thầy của mình hơn mình 6 tuổi anh ấy tên là ****. Cách mà anh ấy thường làm để bắt đầu dự án là luôn chuẩn bị một cuốn sổ và ghi rõ các bước ra. Gặp lỗi thì đọc đi đọc lại lỗi đó cho đến khi nhận ra. SHARE https://docs.google.com/document/d/1C7Tsd40jREj0B8ZHBfXq1pPUBatxooGeDD1uCiI_D10/edit#heading=h.564yedqelxz5
Khởi nghiệp thông minh All of the things I know, I learn from my school. Thank you for your time spent for us.
All rights reserved