learn

module
v0.0.0-...-9b09b75 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 8, 2023 License: CC-BY-4.0

README

I am an endless, active learner. I embrace challenges beyond my current abilities to broaden my knowledge the most. I want to know a little about a lot, and a lot about little: my favorites are C++ and Go.

The best way to learn is to teach what you have learned to other people. I tried YouTube channel, which was hard to maintain. So I decided to write my own textbook. I am still learning, and I may say things out of ignorance. Every post is working in progress, non-committal on a timeline. The point is to review and improve over time. This is a personal white-board where I scribble anything, organize my code, learning experiences.

I appreciate any kind of feedback or suggestions. Please email gyuhox@gmail.com, issues, or pull request.



Contents

↑ top

Articles

↑ top

Unix, linux

Unix is essential in software development.

This is the Unix philosophy: Write programs that do one thing and do it well.

Doug McIlroy

↑ top

Assembly

An assembly language (or assembler language) is a low-level programming language for a computer, or other programmable device, in which there is a very strong (generally one-to-one) correspondence between the language and the architecture's machine code instructions. Each assembly language is specific to a particular computer architecture, in contrast to most high-level programming languages, which are generally portable across multiple architectures, but require interpreting or compiling.

Assembly language by Wikipedia

↑ top

C

C is a small language. And it helps you better understand how system works in low-level. It's still being used everywhere. I only wish I had more time to learn more about C.

↑ top

C++

Is learning C++ still worthwhile? Yes! I really want to learn more about C++:

C++ is one of the most widely used programming languages in the world. Well-written C++ programs are fast and efficient. The language is more flexible than other languages because you can use it to create a wide range of apps—from fun and exciting games, to high-performance scientific software, to device drivers, embedded programs, and Windows client apps. For more than 20 years, C++ has been used to solve problems like these and many others.

C/C++ Language and Standard Libraries by Microsoft

↑ top

Go

I like Go for its simplicity: less design concerns to consider and less frameworks to learn. Plus I love its great communities. Go is not perfect but really good at doing less, enabling more. It's a great introductory language between Python and C++. I want to know a lot about C++ and Go to build my foundation. This will help my transition to other languages or frameworks if needed.

↑ top

Python

Python is probably fast enough for many of what we need to do today. And it's relatively easy to learn and use, with rich ecosystems in data science, web frameworks, scripting, and many others.

↑ top

Computer systems

It's very important to understand hardware and low-level programming. I believe this will help a lot when you wonder why your high level program is not working or not performing well. I will take as much time as I need―nothing like cramming 1,200 page computer systems book in 12 weeks.

↑ top

Security systems

MIT course explains that security achieves confidentiality, integrity, availability―policy. And the goal is to make sure there is no way for adversary within threat model to violate this policy.

↑ top

Database systems

We are generating and consuming vast amounts of data in unprecendented pace in human history. Database systems are the workhorses of our data analysis applications.

↑ top

Linguistics, natural language processing

I love linguistics, and its computational applications.

↑ top

Mathematics, statistics

Most prominent solutions in Computer Science often come from mathematics. Arbitrary, unrelated things can fit together when you have mathematical backgrounds. Statistics helps solve intractable problems through approximation algorithms, machine learning algorithms, etc.

↑ top

Data structures and algorithms

↑ top

Directories

Path Synopsis
doc
go_b_tree/code
https://github.com/google/btree/blob/master/btree.go
https://github.com/google/btree/blob/master/btree.go
go_concurrency/code
go run -race 31_no_race_surbl_with_mutex.go
go run -race 31_no_race_surbl_with_mutex.go
go_concurrency/count
Package count counts with concurrency.
Package count counts with concurrency.
go_concurrency/surbl
Package surbl checks URLs with surbl.org spam list using concurrency.
Package surbl checks URLs with surbl.org spam list using concurrency.
go run -race 11_channel.go
go_heap_priority_queue/code
This example demonstrates a priority queue built using the heap interface.
This example demonstrates a priority queue built using the heap interface.
go_network/code
https://github.com/coreos/etcd/blob/master/pkg/runtime/fds_linux.go
https://github.com/coreos/etcd/blob/master/pkg/runtime/fds_linux.go
go_network/golang-vs-gogo-proto-issue-jsonpb/gofast
Package main is a generated protocol buffer package.
Package main is a generated protocol buffer package.
go_network/golang-vs-gogo-proto-issue-jsonpb/gogofast
Package main is a generated protocol buffer package.
Package main is a generated protocol buffer package.
go_network/golang-vs-gogo-proto-issue-jsonpb/golang
Package main is a generated protocol buffer package.
Package main is a generated protocol buffer package.
go_network/golang-vs-gogo-proto-issue/gofast
Package main is a generated protocol buffer package.
Package main is a generated protocol buffer package.
go_network/golang-vs-gogo-proto-issue/gogofast
Package main is a generated protocol buffer package.
Package main is a generated protocol buffer package.
go_network/golang-vs-gogo-proto-issue/golang
Package main is a generated protocol buffer package.
Package main is a generated protocol buffer package.
go_network/grpc
Package main is a generated protocol buffer package.
Package main is a generated protocol buffer package.
go_network/jsonrpc_vs_grpc/messagepb
Package messagepb is a generated protocol buffer package.
Package messagepb is a generated protocol buffer package.
go_sequence/code
Package list implements a doubly linked list.
Package list implements a doubly linked list.
linked_list/code
Package list implements a doubly linked list.
Package list implements a doubly linked list.
recursion/code
Maximum Contiguous Subarray(substring) -100, 1, 2 => 1, 2
Maximum Contiguous Subarray(substring) -100, 1, 2 => 1, 2
the_matasano_crypto_challenge_set_1/code
Write a function that converts the string
Write a function that converts the string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL