My written notes are all over the place, and so is my writing. So I'm going to try and centralize it here for myself.
Concentration on languages: C++, Javascript, and Go. I'm just going to be using these languages for the next couple years of my life - it's better to perfect myself with a couple languages rather than having learnt all the languages not too well.
Reference the Wiki page for my quick notes.
Things to learn
To give me a good general background in Computer Science, and allow me to branch out in the future - I want to study the following things at University. I want to build on them and to understand how these things operate, and be able to apply most of these concepts.
Crossing out doesn't mean I have reached my goal in these languages, but just means that I have developed a decent understanding of them
I want to try and understand these ideas. Not just from a developer's prespective, but also from a mathematicians side. So that means that try and understand how they are implemented, and not just how to use them.
Also these are concepts I want to learn on a more fundamental level. These concepts are fairly hard to start approach on a more advanced level.
- Algorithm Design
- Artificial Intelligence (NLP, Vision, Speech, Movement)
- Robotics (Mechanics, Electrical, Computer, MQTT Protocol (Message Queue Telemetry Transport))
- Parallel Programming (OpenCL, OpenMP, CUDA)
- Languages (
Node.js, Javascript, Python,Haskell,Java, C++) - Computer Vision (
OpenCV), and Computer Graphics - Machine Learning (Theory, Frameworks (scikit-learn, etc), and Kaggle Implementations)
- Deep Learning (Neural nets)
- Mathematics (
Linear Algebra, Inequality, Dimensionality, Calculus) - Physics (Kinemetics)
- Simulation (
N-body, Diseases, Traffic, Movement,Social) - Networking (Packets, TCP/IP, Packet Sniffing)
- Competitive Programming (
UVA, Algorithmic efficiency) - Data Compression techniques (Lossy, Lossless Compression, and theory (Entropy, etc. ))
Technical things to learn
- Web application analysis tools (Fiddler, Wireshark, and Chrome Dev Tools)
- Test automation frameworks (Selenium, QTP)
- Ticketing software (TFS,
JIRA, and Trac) - Service discovery (Consul)
Interests in understanding these concepts
- Brain (Visual cortex -> V1, V2, ..., Neurons, etc)
- The Maze Idea (in Startup Engineering Course)
- Facial Detection, and Recognition in Computer Vision extensively
More simpler things to understand, and just play around with
Version controlRegular Expressions- Linux Commands
- Sed
- Awk
Grep
VimNoSQL/SQL- AWS (getting there),
Rackspace,Linode - Unit testing
- Browser testing
- Test environments
- Graph Theory
- Distributed Systems
Map/reduce(basic)LaTeX- Design Patterns
- Memory Management
- Micro-controllers
- Machine Learning & Data Analysis
NoSQL Databases
- Relational (PostgreSQL)
- Key-Value (Riak, Redis)
- Columnar (HBase)
- Document (MongoDB, CouchDB)
- Graph (Neo4J, Polyglot)
Mobile
React Native(very basic understanding!)
Build Systems
- Makefile
- Ant
- Gradle
- Maven
- Google's build system - http://google-engtools.blogspot.com/2011/08/build-in-cloud-how-build-system-works.html
- Pants (Twitter, Foursquare) - aka Python Ant
Messaging Systems
- Apache Kafka - http://kafka.apache.org/
Away from academia
- Social Media (How people response/react to)
- Marketing
- Entreprunership
Non-native Mobile Devleopment
- http://ionicframework.com/
- Reading: http://engineering.heroku.com/blogs/2014-10-02-heroku-mobile-app-template
####To read
- https://en.wikipedia.org/wiki/Principia_Mathematica
- http://matt.might.net/articles/books-papers-materials-for-graduate-students/
- http://matt.might.net/articles/what-cs-majors-should-know/
- http://cstheory.stackexchange.com/questions/1168/what-papers-should-everyone-read
- http://blog.fogus.me/2011/09/08/10-technical-papers-every-programmer-should-read-at-least-twice/
- http://www.nytimes.com/library/books/042999best-nonfiction-list.html
####Internet Assigned Numbers Authority
####Scientific Papers
#####The Internet Society
#####Machine Learning
- Random feedback weights support learning in deep neural networks
- Artificial Neural Networks for Beginners
- The Current State of Machine Intelligence
#####Deep Learning
- A Brief Overview of Deep Learning
- Neural Networks and Deep Learning
- Deep Learning Tutorials
- Using convolutional neural nets to detect facial keypoints tutorial- Deep Learning Tutorial on Kaggle
#####Lip Reading
- Comparison of human and machine-based lip-reading
- Lip Reading Mechanism Using Artificial Intelligence and Machine Learning
- Learning Sequential Patterns for Lipreading
#####Facial Recognition
- The Database of Faces
- Facial Recognition: A Literature Survey
- Deep Learning Face Representation by Joint Identification-Verification
- Image Retrieval and Recognition
- Line Edge Map vs Eigenface
#####Web Search Engine
#####Information Theory
#####Sorting
- AlphaSort: A Cache-Sensitive Parallel External Sort
- Patience is a Virtue: Revisiting Merge and Sort on Modern Processors
#####Distributed Systems
#####Virtual Machines
#####Databases
- The Five-Minute Rule Ten Years Later, and Other Computer Storage Rules of Thumb
- Anatomy of a Database System
- Architecture of a Database System
#####Lambda Calculus
#####Robotics
#####Mathematics
#####Interesting
- The Theory of Interstellar Trade
- Talk on:: An Axiomatic Basis for Computer Programming by C.A.R. Hoare T
- Compilers - What Every Programmer Should Know About Compiler Optimizations
- A Software Engineer’s Adventures In Learning Mathematics
- Consider static typing
####Artificial Intelligence
- List of artificial intelligence projects
- Awesome Artificial Intelligence (AI)
- Constraint satisfaction
####Books
####Book Reviews
- Ethical Guidelines for A Superintelligence
- Something for Everyone in an Expert’s Tour of the TSP
- 9 Algorithms that Changed the Future: The Ingenious Ideas that Drive Today's Computers
- Relating Infinite Set Theory to Other Branches of Mathematics
- Retrospective Review of Godel, Escher, Bach: An Eternal Golden Braid
####Ph.D
####Articles
####Bash
####Python
####Node.JS
####Data Science
####Scaling