diff options
Diffstat (limited to 'content/docs/programming-resources')
30 files changed, 276 insertions, 0 deletions
diff --git a/content/docs/programming-resources/_index.md b/content/docs/programming-resources/_index.md new file mode 100644 index 0000000..64e825d --- /dev/null +++ b/content/docs/programming-resources/_index.md @@ -0,0 +1,9 @@ +--- +title: Programming Resources +description: Cool programming tutorials/libraries that you should check out +--- + +My archive of programming resources, and cool libraries that you should check out, among with useful tutorials, blog articles, etc on how to learn +various technologies. + +These lists are updated somewhat regularly/whenever I learn something new. diff --git a/content/docs/programming-resources/cli-development/_index.md b/content/docs/programming-resources/cli-development/_index.md new file mode 100644 index 0000000..547bb70 --- /dev/null +++ b/content/docs/programming-resources/cli-development/_index.md @@ -0,0 +1,6 @@ +--- +title: CLI/TUI Development +description: Sexy terminal apps +--- + +These sections are divided by language diff --git a/content/docs/programming-resources/cli-development/go/_index.md b/content/docs/programming-resources/cli-development/go/_index.md new file mode 100644 index 0000000..ded7872 --- /dev/null +++ b/content/docs/programming-resources/cli-development/go/_index.md @@ -0,0 +1,5 @@ +--- +title: GoLang +description: CLI apps powered by Go +weight: 1 +--- diff --git a/content/docs/programming-resources/cli-development/go/bubbletea/_index.md b/content/docs/programming-resources/cli-development/go/bubbletea/_index.md new file mode 100644 index 0000000..0a2914d --- /dev/null +++ b/content/docs/programming-resources/cli-development/go/bubbletea/_index.md @@ -0,0 +1,9 @@ +--- +title: Bubble Tea +description: TUI Framework for Go +weight: 3 +--- + +[bubbletea](https://github.com/charmbracelet/bubbletea) lets you create very sexy TUI apps with Go, and it's especially great for apps with a lot of graphics, etc + +- Follow [bubbletea documentation](https://github.com/charmbracelet/bubbletea#readme) to get started diff --git a/content/docs/programming-resources/cli-development/go/cobra/_index.md b/content/docs/programming-resources/cli-development/go/cobra/_index.md new file mode 100644 index 0000000..e8b1db4 --- /dev/null +++ b/content/docs/programming-resources/cli-development/go/cobra/_index.md @@ -0,0 +1,10 @@ +--- +title: Cobra +description: Go library to create CLI apps +weight: 1 +--- + +[Cobra](https://github.com/spf13/cobra) is a great library to create command line apps using Go. It is very easy to use and it can handle flags, help messages, etc +by itself which saves you a lot of time. + +- Follow [cobra user guide](https://github.com/spf13/cobra/blob/main/user_guide.md) to get started quickly diff --git a/content/docs/programming-resources/cli-development/go/promptui/_index.md b/content/docs/programming-resources/cli-development/go/promptui/_index.md new file mode 100644 index 0000000..6ccbd64 --- /dev/null +++ b/content/docs/programming-resources/cli-development/go/promptui/_index.md @@ -0,0 +1,10 @@ +--- +title: Promptui +description: Interactive terminal prompt for Go programs +weight: 2 +--- + +[promptui](https://github.com/manifoldco/promptui) is an awesome package that lets you create interactive prompts (input boxes, selection prompts, etc) +with Go. It's very easy to use and the github repo has a bunch of examples. It can also be integrated into something like cobra. + +- [promptui examples](https://github.com/manifoldco/promptui/tree/master/_examples): code examples to get started with promptui diff --git a/content/docs/programming-resources/cli-development/go/termui/_index.md b/content/docs/programming-resources/cli-development/go/termui/_index.md new file mode 100644 index 0000000..5f2944c --- /dev/null +++ b/content/docs/programming-resources/cli-development/go/termui/_index.md @@ -0,0 +1,7 @@ +--- +title: Termui +description: TUI widget library for Go +weight: 4 +--- + +[termui](https://github.com/gizak/termui) lets you create TUI apps with go. It's not very hard to use but seems like it's not maintained anymore. diff --git a/content/docs/programming-resources/gui-development/_index.md b/content/docs/programming-resources/gui-development/_index.md new file mode 100644 index 0000000..4b9a9fd --- /dev/null +++ b/content/docs/programming-resources/gui-development/_index.md @@ -0,0 +1,6 @@ +--- +title: GUI Development +description: Graphical User Interfaces +--- + +These sections are divided by language diff --git a/content/docs/programming-resources/gui-development/c/_index.md b/content/docs/programming-resources/gui-development/c/_index.md new file mode 100644 index 0000000..e70ac8e --- /dev/null +++ b/content/docs/programming-resources/gui-development/c/_index.md @@ -0,0 +1,5 @@ +--- +title: C +description: C libraries for GUI development +weight: 1 +--- diff --git a/content/docs/programming-resources/gui-development/c/gtk/_index.md b/content/docs/programming-resources/gui-development/c/gtk/_index.md new file mode 100644 index 0000000..0fb1b24 --- /dev/null +++ b/content/docs/programming-resources/gui-development/c/gtk/_index.md @@ -0,0 +1,9 @@ +--- +title: GTK +description: The GTK GUI toolkit +weight: 1 +--- + +GTK is a very popular widget toolkit written in C. It has bindings for multiple languages too. Check out <https://gtk.org> + +- [GTK+ Tutorial](https://zetcode.com/gui/gtk2/): GTK+ Tutorial diff --git a/content/docs/programming-resources/gui-development/go/_index.md b/content/docs/programming-resources/gui-development/go/_index.md new file mode 100644 index 0000000..ded7872 --- /dev/null +++ b/content/docs/programming-resources/gui-development/go/_index.md @@ -0,0 +1,5 @@ +--- +title: GoLang +description: CLI apps powered by Go +weight: 1 +--- diff --git a/content/docs/programming-resources/gui-development/go/gotk3/_index.md b/content/docs/programming-resources/gui-development/go/gotk3/_index.md new file mode 100644 index 0000000..d528695 --- /dev/null +++ b/content/docs/programming-resources/gui-development/go/gotk3/_index.md @@ -0,0 +1,11 @@ +--- +title: gotk3 +description: GTK3 Go bindings +weight: 1 +--- + +[gotk3](https://github.com/gotk3/gotk3) provides Go bindings for GTK3, it's somewhat stable but it's tricky to figure out some things if you're +not used to developing with GTK. + +- [Their README](https://github.com/gotk3/gotk3#readme): has some examples to get started quickly +- [gotk3 examples](https://github.com/gotk3/gotk3-examples): has examples for various usecases, etc diff --git a/content/docs/programming-resources/gui-development/go/gotk4/_index.md b/content/docs/programming-resources/gui-development/go/gotk4/_index.md new file mode 100644 index 0000000..1e12bb3 --- /dev/null +++ b/content/docs/programming-resources/gui-development/go/gotk4/_index.md @@ -0,0 +1,9 @@ +--- +title: gotk4 +description: GTK4 Go bindings +weight: 2 +--- + +[gotk4](https://github.com/diamondburned/gotk4) provides Go bindings for GTK4, some functionality is apparently not available, otherwise it's pretty stable. + +- [gotk4 examples](https://github.com/diamondburned/gotk4-examples): has code examples to learn gotk4 diff --git a/content/docs/programming-resources/web-development/_index.md b/content/docs/programming-resources/web-development/_index.md new file mode 100644 index 0000000..863b749 --- /dev/null +++ b/content/docs/programming-resources/web-development/_index.md @@ -0,0 +1,4 @@ +--- +title: Web Development +description: From HTML/CSS to React/Nodejs +--- diff --git a/content/docs/programming-resources/web-development/backend/_index.md b/content/docs/programming-resources/web-development/backend/_index.md new file mode 100644 index 0000000..5c5ff34 --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/_index.md @@ -0,0 +1,6 @@ +--- +title: Backend +description: Backend Web Development +weight: 2 +--- + diff --git a/content/docs/programming-resources/web-development/backend/http-frameworks/_index.md b/content/docs/programming-resources/web-development/backend/http-frameworks/_index.md new file mode 100644 index 0000000..0c942bb --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/http-frameworks/_index.md @@ -0,0 +1,7 @@ +--- +title: HTTP Frameworks +description: Web frameworks to build APIs +weight: 1 +--- + +A web framework is helpful for creating REST APIs. Some frameworks even handle templating, logging, etc by themselves. diff --git a/content/docs/programming-resources/web-development/backend/http-frameworks/express.md b/content/docs/programming-resources/web-development/backend/http-frameworks/express.md new file mode 100644 index 0000000..a18a657 --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/http-frameworks/express.md @@ -0,0 +1,9 @@ +--- +title: Express +description: Minimalist web framework for Node.js +weight: 2 +--- + +Express is one of the most popular web frameworks for node. It's very easy to use and doesn't require much boilerplate code. + +- Express in one video: [Video by Web Dev Simplified](https://www.youtube.com/watch?v=SccSCuHhOw0) diff --git a/content/docs/programming-resources/web-development/backend/http-frameworks/gin.md b/content/docs/programming-resources/web-development/backend/http-frameworks/gin.md new file mode 100644 index 0000000..fe13678 --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/http-frameworks/gin.md @@ -0,0 +1,9 @@ +--- +title: Gin +description: My favourite web framework for GoLang +weight: 1 +--- + +Go is my favourite programming language, and whenever I want to write a web server in Go, [Gin](https://github.com/gin-gonic/gin) is what I use! + +- Gin Documentation: [Official Documentation](https://github.com/gin-gonic/gin#README) diff --git a/content/docs/programming-resources/web-development/backend/orms/_index.md b/content/docs/programming-resources/web-development/backend/orms/_index.md new file mode 100644 index 0000000..6277f85 --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/orms/_index.md @@ -0,0 +1,8 @@ +--- +title: Object Relational Mapping (ORM) +description: Makes it easy to work with databases +weight: 3 +--- + +An ORM lets you use an object oriented paradigm to query databases. It's great because it cleans up a lot of your code, and you don't need to be good at SQL to use it. +ORM libraries save you a lot of time because they do most of the heavylifting themselves. diff --git a/content/docs/programming-resources/web-development/backend/orms/sequelize.md b/content/docs/programming-resources/web-development/backend/orms/sequelize.md new file mode 100644 index 0000000..74fbb1d --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/orms/sequelize.md @@ -0,0 +1,11 @@ +--- +title: Sequelize +description: One of the most popular ORMs for Node.js +weight: 1 +--- + +Sequelize is a very easy to use ORM for use with NodeJS and it supports multiple database types. +I love sequelize because I don't like writing SQL. One downside to it is that directly running SQL commands is actually much faster. + +- Sequelize Tutorial: [Video by PedroTech](https://www.youtube.com/watch?v=Crk_5Xy8GMA) +- Sequelize Documentation: [Official Documentation](https://sequelize.org/docs/v6/getting-started/) diff --git a/content/docs/programming-resources/web-development/backend/template-engines/_index.md b/content/docs/programming-resources/web-development/backend/template-engines/_index.md new file mode 100644 index 0000000..4b320db --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/template-engines/_index.md @@ -0,0 +1,8 @@ +--- +title: Template Engines +description: Used to build server-side rendered websites +weight: 2 +--- + +A template engine lets you define HTML templates for your web application and populates the dynamic data on runtime. +It's good for websites where most of the content remains static. For example, blogs, etc diff --git a/content/docs/programming-resources/web-development/backend/template-engines/ejs.md b/content/docs/programming-resources/web-development/backend/template-engines/ejs.md new file mode 100644 index 0000000..5172791 --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/template-engines/ejs.md @@ -0,0 +1,9 @@ +--- +title: ejs +description: Template engine for Node.js +weight: 2 +--- + +ejs is a very easy to use and flexible template engine for Node.js. I love it because you can start writing ejs within minutes! + +- Building a blog with ejs: [Video by Web Dev Simplified](https://www.youtube.com/watch?v=1NrHkjlWVhM) diff --git a/content/docs/programming-resources/web-development/backend/template-engines/gin.md b/content/docs/programming-resources/web-development/backend/template-engines/gin.md new file mode 100644 index 0000000..7ed28c5 --- /dev/null +++ b/content/docs/programming-resources/web-development/backend/template-engines/gin.md @@ -0,0 +1,11 @@ +--- +title: Gin +description: Gin framework for GoLang has a template engine +weight: 1 +--- + +The Gin HTTP framework comes with a template engine that is very easy to use. + +- Documentation: [Official Documentation](https://gin-gonic.com/docs/examples/html-rendering/) + +You can checkout my dropped project (sadly) which is a blog website that is rendered with Gin: <https://github.com/MikunoNaka/vidhublog> diff --git a/content/docs/programming-resources/web-development/frontend/_index.md b/content/docs/programming-resources/web-development/frontend/_index.md new file mode 100644 index 0000000..aad43f1 --- /dev/null +++ b/content/docs/programming-resources/web-development/frontend/_index.md @@ -0,0 +1,18 @@ +--- +title: Frontend +description: Frontend Web Development +weight: 1 +--- + + +## General resources (have multiple tutorials) + +- [Web Dev Simplified](https://www.youtube.com/channel/UCFbNIlppjAuEX4znoulh0Cw): +Best YouTube channel to learn web development. +- [W3Schools](https://www.w3schools.com/): +Best website containing very useful HTML/CSS/JS tutorials. + + +## Resources based on web technology + +I recommend learning all these technologies in the same order as they are listed. diff --git a/content/docs/programming-resources/web-development/frontend/html-css/_index.md b/content/docs/programming-resources/web-development/frontend/html-css/_index.md new file mode 100644 index 0000000..dc67f53 --- /dev/null +++ b/content/docs/programming-resources/web-development/frontend/html-css/_index.md @@ -0,0 +1,20 @@ +--- +title: HTML/CSS +description: The very basics of web frontend +weight: 1 +--- + +HTML (HyperText Markup Language) and CSS (Cascading StyleSheets) are two of the core technologies +you must learn to make websites. These two are **very** easy to learn but without these web development is totally useless. + +- HTML in one video: [Video by Mike Dane](https://www.youtube.com/watch?v=pQN-pnXPaVg) +- Textual Tutorial: [W3Schools](https://www.w3schools.com/html/default.asp) +- CSS in one video: [Video by Web Dev Simplified](https://www.youtube.com/watch?v=1PnVor36_40) +- CSS Documentation: [W3Schools](https://www.w3schools.com/css/default.asp) +- Simple HTTP fileserver to host HTML files: [GoFileServer](https://github.com/MikunoNaka/GoFileServer/releases/latest) + +## Fun trick + +You can use GoFileServer [GoFileServer](https://github.com/MikunoNaka/GoFileServer/releases/latest) +to host the HTML files over the network, and then you can enter the URL of the server on another pc/phone on +the same WiFi network to open the website on that device. diff --git a/content/docs/programming-resources/web-development/frontend/js-frameworks/_index.md b/content/docs/programming-resources/web-development/frontend/js-frameworks/_index.md new file mode 100644 index 0000000..d7c9637 --- /dev/null +++ b/content/docs/programming-resources/web-development/frontend/js-frameworks/_index.md @@ -0,0 +1,8 @@ +--- +title: JavaScript Frameworks +description: Componentize your web applications +weight: 3 +--- + +JS frameworks make it easy to write websites which make heavy use of JavaScript for logic. +You can divide different parts of the website into "components" that can be imported and used/re-used multiple times in the website without the need to write extra code. diff --git a/content/docs/programming-resources/web-development/frontend/js-frameworks/react.md b/content/docs/programming-resources/web-development/frontend/js-frameworks/react.md new file mode 100644 index 0000000..c20844f --- /dev/null +++ b/content/docs/programming-resources/web-development/frontend/js-frameworks/react.md @@ -0,0 +1,10 @@ +--- +title: React +description: The most popular JavaScript UI library +weight: 1 +--- + +React is my favourite JS Framework (by definition it's a library but I'm grouping it with framework). +It's very easy to learn and is very popular so has great documentation. + +- React in one video: [Video by Mike Dane](https://www.youtube.com/watch?v=ABQLwlE8MUA) diff --git a/content/docs/programming-resources/web-development/frontend/js-frameworks/svelte.md b/content/docs/programming-resources/web-development/frontend/js-frameworks/svelte.md new file mode 100644 index 0000000..3dd4e61 --- /dev/null +++ b/content/docs/programming-resources/web-development/frontend/js-frameworks/svelte.md @@ -0,0 +1,11 @@ +--- +title: Svelte +description: The fastest JS framework +weight: 2 +--- + +Svelte is unique because it's very lightweight and fast. +It's easier than react to code in but honestly not very fun. But something being fun is +subjective so I recommend trying it out! + +- Svelte crash course: [Video by Traversy Media](https://www.youtube.com/watch?v=3TVy6GdtNuQ) diff --git a/content/docs/programming-resources/web-development/frontend/static-site-generators/_index.md b/content/docs/programming-resources/web-development/frontend/static-site-generators/_index.md new file mode 100644 index 0000000..6a59df6 --- /dev/null +++ b/content/docs/programming-resources/web-development/frontend/static-site-generators/_index.md @@ -0,0 +1,13 @@ +--- +title: Static Site Generators +description: My favourite way of building a website +weight: 2 +--- + +Static site generators let you write a template for the website in HTML and let you write the content of the website in another format (markdown, for example) +and turn it into a HTML page with the given template. +I love static site generators because they are easy to use and are very fast since all the HTML files are pre-compiled before you can host them on your server. +It's better than writing the whole website in HTML because if you want to change the layout of the website, editing all the pages one-by-one would take a long time. +Whereas in a static site generator, you can just edit the template file and it'll do the job automatically. + +For small websites/websites without much/any logic, I recommend using a static site generator. This website is written in Hugo, which is awesome. diff --git a/content/docs/programming-resources/web-development/frontend/static-site-generators/hugo.md b/content/docs/programming-resources/web-development/frontend/static-site-generators/hugo.md new file mode 100644 index 0000000..9664b30 --- /dev/null +++ b/content/docs/programming-resources/web-development/frontend/static-site-generators/hugo.md @@ -0,0 +1,13 @@ +--- +title: Hugo +description: The Hugo static site generator +weight: 1 +--- + +The website you're reading is built with Hugo. It's very customizable and fast. Unfortunately, learning Hugo can be tricky at first, but you'll come to +love hugo after you understand it! + +- Hugo Tutorial: [Video by Luke Smith](https://www.youtube.com/watch?v=ZFL09qhKi5I) +- Hugo Shortcodes: [Video by Luke Smith](https://www.youtube.com/watch?v=QTolhoxMyXg) + +You need a theme to create a Hugo website. If you don't want to create one yourself you can check out mine! <https://github.com/MikunoNaka/vidhukant-hugo> |