Knowlege Base - mindmap

Đi tìm câu trả lời cho cái mình chưa biết và muốn biết, mindmap này thể hiện tinh thần như thế vậy.

Không phải tất cả những thứ liệt kê dưới đây mình đều nắm rõ và master hết tất cả, mình chỉ có những ý niệm về nó, khi cần mình có thể tìm trên google, đọc docs (source of the truth) để có thể giải quyết được vấn đề đang gặp phải

Knowledge Base

(Hình nhỏ mình phải chuột vào -> view image là zoom được nha) DownLoad Xmind File

HTML & CSS

Mình tâm đắc nhất là khóa học Understanding HTML and CSS, preview 3.5h học đầu tiên tại https://youtu.be/OjbM757s3vU

Một vài từ khóa, chủ đề hay nhưng khó để thực sự master

  • responsive design
  • flex, grid
  • positioning, relative, absolute, vân vân và mây mây

Javascript

Những khóa học mình giới thiệu trong file xMind khá là comprehensive, đi từ modern javascript, ES6 ngược dòng về trước đó, phân biệt let, var, const, xử lý ajax, promises,…

Mình chưa học một framework front-end nào của javascript cả (angular, react gì đó, có thời gian chắc mình cũng học qua cho biết)

Java OOP

Vũ trụ của Java thiệt rộng lớn JAVA, nhưng nếu học OOP thì JAVA quả là ngôn ngữ đáng học. Với Java, bạn có thể đi từ procedural programming, OOP cho đến functional programming, hệ thống thư viện, framework siêu khủng, làm được đủ thứ trên đời, thậm chí học những thứ nền tảng như design pattern, làm web với spring, spring mvc, vân vân mà mây mây

Data Structure And Algorithm

Những viên gạch đầu tiên của computer science… trong xmind cũng giới thiệu các khóa học đủ cover tất cả các loại cấu trúc dữ liệu, từ stack, queue, priority queue cho đến tree structures như AVL Tree, Red-Black Tree cho đến những thuật toán trên Đồ thị như Tìm cây khung nhỏ nhất với Kruscal, Tìm đường đi ngắn nhất trên đồ thị trong có trọng số âm Dijkstra, những thuật toán sắp xếp từ Bubble Sort, Quicksort, cho đến Mergesort vân vân và mây mây

Relational Database Management System

Mình học SQL qua 2 cuốn sách đó là Learn SQLSQL Cookbook, ngoài ra có tìm hiểu sâu thêm về index, performance của nó qua cuốn sách SQL Performance Explained - Everything developers need to know about SQL performance (Markus Winand)

Trên udemy thì thấy có khóa học The Advanced SQL Server Masterclass For Data Analysis khá hay, sử dụng cơ sở dữ liệu AdventureWorks sample databases của microsoft để người học thực hành truy vấn dữ liệu, khóa cũng cover những thứ như là windows function, đánh chỉ mục, vân vân và mây mây

AdventureWorks sample databases

Ngoài ra trong quá trình học môn này mình còn phát hiện ra sức mạnh của docker để cài đặt n thể loại sql database trên máy, từ sql server, postgres sql, cho đến mysql, phát hiện ra trên github có những dòng sql khởi tạo sakila-db được fork cho các dialect sql khác với mySQL (database cho người học mysql, cover trong cuốn learn sql hay sql-cookbook gì đó) - Link github nè https://github.com/ivanceras/sakila

Ngoài ra mình cón phát hiện ra thánh Hussein Nasser - một trong những cao thủ đệ nhất về Database Engineering - nhờ biết thánh này mà mình mới có hứng tìm hiểu về những thứ như transaction, index, b-tree, ACID (viết tắt của atomicity, consistency, isolation và durability), nói chung là vân vân và mây mây

Web Development với Java

Vũ trụ của Java thật kinh khủng, riêng với java web development bạn phải học từ những thứ low level như scriptlet, jsp, jstl, connect database với driver, từ khóa là jdbc, những thứ như là DAO - data access object, kiến trúc MVC - Model - View - Controller, học về java servlet, view mới jsp, controller với servlet, modeldata, làm việc với sql database qua các class DAO Ngoài ra bạn phải tìm hiểu những thứ thứ như session, cookie, urlRewriting… Khi hiểu low-level rồi bạn nên tìm hiểu những high-level như hibernate, ORM - Object Relational Mapping, Spring Framework, Springboot vân vân và mây mây…

Tìm sách để đọc sơ qua thì mình thấy có 2 cuốn này nên đọc để hiểu về fundamental

Chốt

Lúc đầu mình tính chỉ đăng cái mindmap lên thôi, xong lúc sau lại thành nghĩ gì viết đấy, thực sự ở một số đoạn mình chưa viết rõ ý, chưa đi sâu, nhưng thực sự muốn đi sâu vào thì cần nhiều thời gian và viết lại thành nhiều đoạn khác…

Sau này có thời gian hơn thì mình sẽ viết kĩ càng lại

Nguyễn Ngọc Quang - 12/07/2022

What's Next?

  • Deploy toàn bộ small projects mà mình đã làm để chuẩn bị apply for a job
  • Ôn lại toàn bộ những thứ gọi là fundamental cho job interview, ngoài ra chắc phải lên hackerank or leetcode để luyện công