every-programmer-should-know - A collection of (mostly) technical things every software developer should know

  •        3

A collection of (mostly) technical things every software developer should know.

https://github.com/mtdvio/every-programmer-should-know

Tags
Implementation
License
Platform

   




Related Projects

algs4 - Algorithms, 4th edition textbook code and libraries

  •    Java

Our original goal was to cover the 50 algorithms that every programmer should know. We use the word programmer to refer to anyone engaged in trying to accomplish something with the help of a computer, including scientists, engineers, and applications developers, not to mention college students in science, engineering, and computer science. The code is optimized for clarity, portability, and efficiency. While some of our implementations are as fast as (or faster than) their counterparts in java.util, our main goal is to express the core algorithmic ideas in an elegant and simple manner. While we embrace some advanced Java features (such as generics and iterators), we avoid those that interfere with the exposition (such as inheritance and concurrency). This repository is intended for use with either the Maven or Gradle build managers. It can be run from either the command line or integrated into Eclipse, NetBeans, and IntelliJ. You can also access it via Bintray.

Raspberry-Pi - Raspberry Pi A to Z List

  •    

Raspberry Pi A to Z List Basics Raspberry Pi The Raspberry Pi was originally designed for educational purposes to use in schools and universities, and to make class and study more interesting. Unfortunately, the practical use of the Raspberry Pi or a comparable single-board computer in Germany, Austria and Switzerland is still in its infancy. Listening to the topic, you will find only a few examples showing the use of the Raspberry Pi in school, in education or in study. The following tasks and exercises should help a little here. They are suitable for self-study or as a source for teachers and faculty to build their own Raspberry Pi workshop. The tasks also include exemplary ready-made solutions. 1. Getting Started: Tasks and Exercises with Raspberry Pi The following tasks and exercises are suitable for beginners who have not yet come into contact with the Raspberry Pi. The solutions are also interesting for those who already know the Raspberry Pi and have worked with it. The solutions are part of standard tasks that have to be done around the Raspberry Pi every now and then.

All-About-Programming - Everything about programming!!

  •    Javascript

This is a place for me to keep tracked of what I did or what I want to do and some awesome tips from all the online resources have found. All this resources is about web development and some about computer science. My goal is to be a awesome Full-Stack Web Developer. If you have some resources to shared please do. I'm eager to find new stuff and learn.

computer-science-in-javascript - Computer science reimplemented in JavaScript

  •    Javascript

This repository contains code about various series of posts that I made on my blog about computer science (mostly data structures and sorting algorithms) reimplemented in JavaScript. The #data-structures series is a collection of posts about reimplemented data structures in JavaScript.

CSrankings - A web app for ranking computer science departments according to their research output in selective venues

  •    Python

This ranking of top computer science schools is designed to identify institutions and faculty actively engaged in research across a number of areas of computer science. Unlike US News and World Report's approach, which is exclusively based on surveys, this ranking is entirely metrics-based. It measures the number of publications by faculty that have appeared at the most selective conferences in each area of computer science. This approach is intended to be difficult to game, since publishing in such conferences is generally difficult: contrast this with other approaches like citation-based metrics, which have been repeatedly shown to be easy to manipulate. That said, incorporating citations in some form is a long-term goal.


webapp-checklist - Technical details that a programmer of a web application should consider before making the site public

  •    Python

Technical details that a programmer of a web application should consider before making the site public. The idea here is that most of us should already know most of what is on this list. But there just might be one or two items you haven't really looked into before, don't fully understand, or maybe never even heard of.

Programming Without Coding Technology

  •    

Create software without writing a single line of code.

THObserversAndBinders - Easy, lightweight, object-based key-value observing (KVO) and key-value binding (KVB) for iOS and Mac OS X

  •    Objective-C

Now, it seems like every Cocoa programmer out there has their own KVO and KVB solution, and I've tried a few of them. There are too many to enumerate here. Many of them are quite nice, but I couldn't find any that passed my personal 'feels comfortable' test with flying colours (and, though I know it's irrational, KVO just seems like it should be cleaner than a messily prefixed category on NSObject, objc_setAssociatedObject() or method swizzling). I like this API. It's one simple call to set up an block that fires when a property changes. Want to observe a whole bunch of things? Just set up a bunch ofTHObservers, store them in an array, then when it comes time to stop observing, release the array (maybe calling -stopObserving on the observers in the array first if there might be a reference to them lying around elsewhere, like in an autorelease pool).

notes-to-cs-freshmen-from-the-future - Notes to (NUS) Computer Science Freshmen, From The Future (Original by @ejamesc)

  •    

Ported over from the original document. Early into the AY12/13 academic year, Prof Tay Yong Chiang organized a supper for Computer Science freshmen at Tembusu College. The bunch of seniors who were gathered there put together a document for NUS computing freshmen. This is that document.

bitwise - Bitwise is an educational project where we create the software/hardware stack for a computer from scratch

  •    C

Feynman's blackboard quote "What I cannot create, I do not understand" never fails to give me goosebumps. After working as a game developer and systems programmer for over 15 years at places like Epic Games, NVIDIA, RAD Game Tools and most recently Oculus, I decided it was time to take a break from professional programming and spend a few years pursuing a long-time dream of mine, a project I've dubbed Bitwise, where I want to share my passion and try to demonstrate by example how to build systems from scratch, with a low-level computing focus.

gcli - The easy way to build Golang command-line application.

  •    Go

gcli generates a skeleton (codes and its directory structure) you need to start building Command Line Interface (CLI) tool by Golang right out of the box. You can use your favorite CLI framework. Why you need gcli? Because you should focus on writing core function of CLI, not on interface. During developing CLI tool by Golang, you may find you're writing the chunk of boilerplate code for interfaces. Stop writing the same codes every time. gcli generates them and save you a large amount of time by writing such code. This is like Rails scaffold. Not only that, gcli know the best practices of golang CLI framework library which you want to use. Generated codes follows the most ideal way of using that framework, and you don't need to know about that. See the frameworks it supports now.

BCN3D-Moveo - Open Source 3D Printed Robotic Arm for educational purposes

  •    C++

This is the repository that contains the CAD files, the STL files, the user manual (with the assembly manual), the firmware, and the Bill of Materials of the BCN3D Moveo. BCN3D Technologies keeps taking important steps in order to achieve his goal of bringing the digital manufacturing technology to everyone. In this occasion we are presenting the BCN3D Moveo, a robotic arm design from scratch and developed by our engineers in collaboration with the Departament d’Ensenyament from the Generalitat de Catalunya. Its structure is fully printed using additive manufacturing technologies and its electronics are controlled by the software Arduino. Moveo, fully functional nowadays, has been born, as all the BCN3D Technologies products, with an open and educational wish. One of the Departament d’Ensenyament worries is the high price of the materials the grade students must use on their internships. Holding that in mind, an Open Source robotic arm, adaptable by the students and low cost reproducible could take several educational itineraries: mechanical design, automatism, industrial programing, etc. Thus, the BCN3D Moveo should allow the educational centers to enjoy a modifiable and easily accessible for the students, at a price far lower than the usual industrial equipment they used to have to acquire, with enough output for training purposes. As a Fundació CIM area, BCN3D Technologies shares its educational vocation. That is the reason why when the Departament d’Ensenyament contacted us in order to suggest and offer this project a year ago we didn’t hesitate on taking that opportunity. Once we had the robotic arm designed and manufactured we started the last phase of the project, which consisted on an assembling and fine tuning workshop for 15 institutes around Catalonia, which took place in the BCN3D Technologies. These institutes already have the BCN3D Moveo in their classrooms and workshops, and will have to present an internship program that proves their knowledge about the arm during September.

data-science-your-way - Ways of doing Data Science Engineering and Machine Learning in R and Python

  •    Jupyter

These series of tutorials on Data Science engineering will try to compare how different concepts in the discipline can be implemented in the two dominant ecosystems nowadays: R and Python. We will do this from a neutral point of view. Our opinion is that each environment has good and bad things, and any data scientist should know how to use both in order to be as prepared as posible for job market or to start personal project.

programming-principles - Categorized overview of Programming Principles & Patterns

  •    Ruby

Every programmer benefits from understanding programming principles and patterns. This overview is a reference for myself, and I've just put it here. Maybe it is of help to you during design, discussion, or review. Please note that it's far from complete, and that you often need to make trade-offs between conflicting principles. The list was inspired by The Principles of Good Programming. I felt that the list closely, but not completely matches what I would personally put into something similar. Additionally, I wanted a bit more reasoning, details, and links to further resources. Let me know if you have any feedback or suggestions for improvement.

UserUnlock

  •    CSharp

Allows standard users to unlock a locked windows workstation!

computer-science - :mortar_board: Path to a free self-taught education in Computer Science!

  •    

The OSSU curriculum is a complete education in computer science using online materials. It's not merely for career training or professional development. It's for those who want a proper, well-rounded grounding in concepts fundamental to all computing disciplines, and for those who have the discipline, will, and (most importantly!) good habits to obtain this education largely on their own, but with support from a worldwide community of fellow learners. It is designed according to the degree requirements of undergraduate computer science majors, minus general education (non-CS) requirements, as it is assumed most of the people following this curriculum are already educated outside the field of CS. The courses themselves are among the very best in the world, often coming from Harvard, Princeton, MIT, etc., but specifically chosen to meet the following criteria.

computer-science-in-javascript

  •    Javascript

Collection of classic computer science paradigms, algorithms, and approaches written in JavaScript.

ai-resources - Selection of resources to learn Artificial Intelligence / Machine Learning / Statistical Inference / Deep Learning / Reinforcement Learning

  •    

Update April 2017: It’s been almost a year since I posted this list of resources, and over the year there’s been an explosion of articles, videos, books, tutorials etc on the subject — even an explosion of ‘lists of resources’ such as this one. It’s impossible for me to keep this up to date. However, the one resource I would like to add is https://ml4a.github.io/ (https://github.com/ml4a) led by Gene Kogan. It’s specifically aimed at artists and the creative coding community. This is a very incomplete and subjective selection of resources to learn about the algorithms and maths of Artificial Intelligence (AI) / Machine Learning (ML) / Statistical Inference (SI) / Deep Learning (DL) / Reinforcement Learning (RL). It is aimed at beginners (those without Computer Science background and not knowing anything about these subjects) and hopes to take them to quite advanced levels (able to read and understand DL papers). It is not an exhaustive list and only contains some of the learning materials that I have personally completed so that I can include brief personal comments on them. It is also by no means the best path to follow (nowadays most MOOCs have full paths all the way from basic statistics and linear algebra to ML/DL). But this is the path I took and in a sense it's a partial documentation of my personal journey into DL (actually I bounced around all of these back and forth like crazy). As someone who has no formal background in Computer Science (but has been programming for many years), the language, notation and concepts of ML/SI/DL and even CS was completely alien to me, and the learning curve was not only steep, but vertical, treacherous and slippery like ice.