Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

github.com/suramrit/suramritlearnsgo

Package Overview
Dependencies
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

github.com/suramrit/suramritlearnsgo

Source
Go Modules
Version
v0.0.0-20201027154928-a0c04145c189
Version published
Created
Source

suramritLearnsGo

MIT License Copyright 2018 Suramrit

Trying to get my hands dirty by doing some basic CS programs with Go.

The code inspires itself heavily by following Todd Mcleods course at udemy. He's a pretty cool instructor, highly recommended.

So, lets begin.

I'm starting with some basics like fmt package, TYPES, DECLARATIONS.

+ hello.go
+ gotypes.go
+ controlflow.go

First I will be doing some builtin data structures in golang including: (Sidebar: refer https://research.swtch.com/godata for good insights into builtin golang data-structures)

+ array -- arrays.go
+ slices -- slice.go
+ maps -- map.go
+ struct -- struct.go

I will look into

+ funtions   -- functions.go
+ methods    -- methods.go
+ interfaces -- interfaces.go
+ pointers   -- pointers.go

Now we'll take a step back and see usages of the golang standard library including:

+ JSON Marshalling and Unmarshalling -- json_marshal_in_golang.go
+ Writer Interface.-- writer_interface.go
+ sort Package - sorting_package.go
+ bcrypt - brcypt_in_go.go

Having a self-proclaimed proficiency in distributed systems, I will take a look at:

+ Concurrency -- 
	+ concurrency.go, 
	+ websiteRacer: Use channels, go routines to race between 2 different urls for the fastest responses. No blocking, No Delays.
+ Channels -- channels.go, fan_in_channel.go, fan_out_channel.go

Hopefully this is when things will start to get exciting and I can actually see the power of golang firsthand.

Now that we are familiar with a lot of workings of golang. I will head off to an altogether new direction. However, to the keen learner, I recommend going over topics like error handling, documentation and testing in golang. I, however, would not be covering them in this repository.

So, with the still elusive technical interviews in mind, I will will work on Computer Science fundamentals for data structures and algorithms:

+ sorting algos - quicksort.go, 
+ linked lists - Singly / Doubly Linked : ToDo
+ FIFO Queue : ToDo
+ LIFO Stack : ToDo
+ Binary Trees: ToDo
+ Binary Heaps / Priority Queues: ToDo
+ Hash Map/Sets and their types 
+ BFS / DFS 
	+	package readhtml - a package that  provides methods
		to parses a standard HTML doc and used DFS to find 
		link elements in the page
+ String Manipulations: ToDo
+ Dynamic Programming: ToDo

and then probably mixing in some solutions to common LeetCode problems.

Eventually and hopefully, I will also be designing and making some web services written in golang.(Update: Considering the significant size this repo has taken, I will use a separate repo for this purpose, but the foundations for that would be laid here)

Feel free to use this code to learn if you are new to golang, complying with the rules and regulations of your school and class or organization.

Feel free to @ me: linkedin.com/in/suramrit

noteToSelf: stick to all lowercase for go instead of camelCase

FAQs

Package last updated on 27 Oct 2020

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts