Best Online Resources For Technical Development

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.

Online resources: Udacity – intro to CS course, Coursera – Computer Science 101

  • Code in at least one object oriented programming language: C++, Java, or Python.
  • Learn other Programming Languages. Notes: Add to your repertoire – JavaScript, CSS & HTML; Ruby; PHP; C; Perl; shell script; Lisp and Scheme.
  • Test Your Code. Notes: Learn how to catch bugs, create tests, and break your software

Online Resources: Udacity – Software Testing Methods, Udacity – Software Debugging

  • 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.

Online Resources: MIT Introduction to Algorithms, Coursera Introduction to Algorithms Part 1 & Part 2, List of Algorithms, List of Data Structures, Book: The Algorithm Design Manual

  • Develop a strong knowledge of operating systems
  • Learn UX Design
  • 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
  • Learn Parallel Programming
  • Work on project outside of the classroom. Notes: Create and maintain a website, build your own server, or build a robot.

Online Resources: Apache List of Projects, Google Summer of Code, Google Developer Group

  • 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 people’s code or contribute to a project.

Online Resources: GitHub, Kiln

  • 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 ACM’s International Collegiate Programming Contest.

Online Resources: CodeJam, ACM ICPC

Also Read: 

Sharing is caring!

Leave a Reply

Your email address will not be published. Required fields are marked *

Related Posts

Begin typing your search above and press enter to search. Press ESC to cancel.

Back To Top

So glad to see you sticking around!

Want to be the first one to receive the new stuff?

Enter your email address below and we'll send you the goodies straight to your inbox.

Thank You For Subscribing

This means the world to us!

Spamming is not included! Pinky promise.