Tuesday, May 9, 2017
Best Online Resources For Technical Development
Best Online Resources For Technical Development

Having a solid foundation in Computer Science is important to become a successful Pentester or Software Engineer. This guide is a suggested path for university students to develop their technical skills academically and non-academically through self paced hands-on learning. You may use this guide to determine courses to take, but please make sure you are taking courses required for your major in order to graduate. The online resources provided in this guide are not meant to replace courses available at your university. However, they may help supplement your learnings or provide an introduction to a topic.
Recommendations for Academic Learnings
- Introduction to CS Course. Take Introduction to Computer Science courses that provide basic instructions on coding.
 
- Code in at least one object oriented programming language: C++, Java, or Python.
 
Beginner Online Resources: Coursera  Learn to Program: The Fundamentals, MIT Intro to Programming in Java, Googles Python Class, Coursera  Introduction to Python, Python Open Source E-Book
Intermediate Online Resources: Udacitys Design of Computer Programs, Coursera  Learn to Program: Crafting Quality Code, Coursera  Programming Languages, Brown University  Introduction to Programming Languages
Intermediate Online Resources: Udacitys Design of Computer Programs, Coursera  Learn to Program: Crafting Quality Code, Coursera  Programming Languages, Brown University  Introduction to Programming Languages
- Learn other Programming Languages. Notes: Add to your repertoire  JavaScript, CSS & HTML; Ruby; PHP; C; Perl; shell script; Lisp and Scheme.
 
Online Resources: w3school.com  HTML Tutorial, CodeAcademy.com, Udacity  Mobile Web Development, Udacity  HTML5 Game Development
- Test Your Code. Notes: Learn how to catch bugs, create tests, and break your software
 
- Develop logical reasoning and knowledge of discrete math
 
Online Resources: MIT Mathematics for Computer Science, Coursera  Introduction to Logic, Coursera  Linear and Discrete Optimization, Coursera  Probabilistic Graphical Models, Coursera  Game Theory
- Develop strong understanding of Algorithms and Data Structures. Notes: Learn about fundamental data types (stack, queues, and bags), sorting algorithms (quicksort, mergesort, heapsort), data structures (binary search trees, red-black trees, hash tables), and Big O.
 
- Develop a strong knowledge of operating systems
 
Online Resources: UC Berkeley Computer Science 162
- Learn UX Design
 
Online Resources: Udacity  UX Design for Mobile Developers
- Learn Artificial Intelligence
 
Online Resources: Stanford University  Introduction to Robotics, Natural Language Processing, Machine Learning
- Learn how to build compilers
 
Online Resources: Coursera  Compilers
- Learn cryptography
 
Online Resources: Coursera  Cryptography, Udacity  Applied Cryptography
- Learn Parallel Programming
 
Online Resources: Coursera  Heterogeneous Parallel Programming
- Work on project outside of the classroom. Notes: Create and maintain a website, build your own server, or build a robot.
 
- Work on a small piece of a large system (codebase), read and understand existing code, track down documentation, and debug things. Notes: GitHub is a great way to read other peoples code or contribute to a project.
 
- Work on project with other programmers. Notes: This will help you improve your ability to work well in a team and enable you to learn from others.
 
- Practice your algorithmic knowledge and coding skills. Notes: Practice your algorithmic knowledge through coding competitions like CodeJam or ACMs International Collegiate Programming Contest.
 
Also Read:
- Python For Hackers And Learn It From Top 5 Web Resources
 - Top 10 Websites To Test Your Coding Skills And Improve Yourself Online
 - What You Should Do To Become A Hacker!
 
Available link for download