Hi, this is beekeeper's guide to install all necessary school stuff. Each chapter is broken down to program folders, where you will find README on the topic. Most of these will not come in use, if you are working at the school. Most of the required programs are already installed on the school computers, and those are included in the subjects as well.
For those who haven't already noticed, 42 curriculum which Hive is using, is a Unix based. All the school projects are somewhat associated with Linux or OSX. School computers are Macintoshes. All the commands you will see in the courses are run in these environments. So, if you insist on working on your own laptop and using Windows, you will need to keep this in mind, why this or that command is not available in Windows. Also, exams are done on school computers. It will be much easier for you, if you just install a virtual computer on your laptop, or perhaps do a dual booting system, if you feel that Linux might be your choice. Linux in all it's distributions may seem intimidating at first, but once you get a hang of it, it's far more faster to get on track with all the projects. You don't see 27" iMacs handed to student use everywhere, so take advantage of it. All in all, school is all about peer learning, and the best way to learn from your peers is to see them day by day at school.
To install Homebrew package manager for OSX, you'll need to run
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
More info at Homebrew
Github has a great documentation about creating ssh key, but I'm going to repeat those!
First create a ssh key:
ssh-keygen -f ~/.ssh/my-key -t ed25519 -C "your_email@example.com"
More about ssh keys can be found at ssh.com
Option | What it does |
---|---|
-f |
tells you the output location and name of the file. |
-t |
option here states the type of the algorithm used in the creation of the key and |
-C |
is the comment for the file, usually the host of the key. |
Start ssh-agent at background, if it is not already running.
eval "$(ssh-agent -s)"
To add your new lovely key to your keychain, you'll need to write following command:
ssh-add ~/.ssh/my-key
This tells your ssh-agent
program to hang in the keychain, so that is available to use.
From here onwards, it's silly to repeat what octocat has said. So, check these out!
Command | What it does |
---|---|
cmd/ctrl + k + c | comment selected lines |
cmd/ctrl + k + u | uncomment selected lines |
cmd/ctrl + d | every time you press it, when are in you find&select mode, it will go to next occurance (really useful for changing variable names) |
option/alt + shift + up/down-arrow | copy the line you are on before or after it depending the arrow key you pressed |
option/alt + up/down-arrow | move line up and down |
cmd/ctrl + p | opens a search bar that you can find files (so no need to use mouse for opening files :p) |
cmd/ctrl + shift + p | opens a search bar for multiple commands |
option/alt + shift + f | automatic formatting (if you have installed the norm extension it follows it) |
cmd/ctrl + shift + v | opens markdown file to preview mode, so you can view how it looks like in browser. |
Originally posted by: leila
-
Install this plug-in to generate school header with https://marketplace.visualstudio.com/items?itemName=kube.42header
-
Match editor settings with school environment (tabs, whitespace etc.) and to render right log-in details in header:
-
Find VS Code settings file at ~/Library/Application Support/Code/User/settings.json
-
Paste following inside the curly bracers:
"42header.username": "smarvin" "42header.email": "smarvin@student.hive.fi", "editor.insertSpaces": false, "editor.renderWhitespace": "all", "files.trimTrailingWhitespace": true, "files.insertFinalNewline": true,
Originally posted by: jkoskela
Config | What it does |
---|---|
(add-hook 'before-save-hook 'whitespace-cleanup) | This should take care of whitespace at the beginning of the file, end of lines and multiple empy lines at the end of the file. |
(setq backward-delete-char-untabify-method 'hungry) | You can change the emacs backspace key behaviour when deleting tab characters by adding this. |
You can create .vimrc
file to your user home directory to make your vimming easier:
Config | What it does |
---|---|
syntax on | adds colours to easier grasp what is a function etc. |
set tabstop=4 | sets tabulation to exactly 4 spaces long |
set number | sets row numbering on |
Commands | What it does |
---|---|
: | enter to menu |
:wq | write to the file and quit |
:q | quit |
:q! | quit and don't save |
i | input on |
v | visual on |
esc | exit from input or visual mode |
v + arrow keys | while visual mode is on, you can select rows of text. |
v + y | while visual mode is on you can copy or "yank" text. |
v + d | while visual mode is on, you can delete selected text by pressing d. |
p | put down the text you've copied. |
u | undo the stuff you've done. |
Floating point visually explained Find and fix floating-point problems
3Blue1Brown: Vectors | Chapter 1, Essence of linear algebra Originally tipped by: ngontjar
Link | What |
---|---|
Crash Course | Tons of awesome animated courses initially founded by well known vlogbrothers. I've watched courses on history and media literacy. |
Educative | Courses for many programming languages. Free 6 months from Github Student pack. |
Lazy Foo SDL tutorial | Great tutorial on SDL2. SDL2 can be used to create games and graphical interfaces for C projects |
Automate the Boring Stuff with Python | Free ebook that teaches the very basics of python, great starting point for learning the language |
Elements of AI | Does not contain any programming, but still a very useful course for learning what AI is and how it can be used in our lives |
freeCodeCamp | Very beginner friendly bootcamp for learning HTML, CSS, Javascript, data visualization and APIs. However it's a bit slow in my opinion, it's really made for people with no prior knowledge in coding |
Tour of Go | Offical Go tour |
Go by Example | Short and useful Go examples |
Build Web Application with Golang | Great e-book about writing web app in Go |
Effective Go | Good to know about Go |
LiveOverflow | Hacking, pentesting & reverse engineering explained in fun videos |
OneLoneCoder | Oldschool c++ guy doing game programming videos |
Grasshopper | learn javascript |
Udacity | Courses on multiple tech subjects, including AI, Cloud Computing, Data Science, Blockchain Technology and many more. |
One Month | Multiple courses including Python, HMTL&CSS, Wordpress etc. Something to relax to when not that serious about stuff and just want to have general idea of language. Level: Really easy (free for a month as GitHub Student pack). |
leetcode | There are 1397 interview problems and so on. |
Getting started with react hooks | A great intro to react hooks. |
Helsinki University Open Fullstack course | Learn React, Redux, Node.js, MongoDB, and GraphQL in one go! This course will introduce you to modern JavaScript-based web development. The main focus is on building single page applications with ReactJS that use REST APIs built with Node.js. |
Google PWA training | What is a PWA and why should you care? This is a course by google that introduces you to PWA's, client side caching and more. |
The world's largest web developer site | Good basic things with examples, how to get SQL database connection with PHP, javascript, HTML and CSS tutorials etc. |
Helsinki University DevOps with Docker | DevOps course by University of Helsinki |
BSP algorithm |