While the CSB program does NOT require previous programming experience, if you wish to get ahead, here is a list of resources for your own advancement.
This list was compiled by the CSB student body and each resource was graded on it's usefulness by the CSB Student Association (CSBA). The ratings are not indicative of how well they will prepare you for the CSB curriculum, but rather how well the site teaches it's own material. If you would like to strictly prepare for your first few semesters at Lehigh in the CSB program, your best bet is to study Java, HTML, CSS, and C.
*Disclaimer* Keep in mind that CSB students do NOT learn everything that is covered on all of these websites. Because of that, if you visit any of these sites and have trouble completing the exercises, do not be worried, once you are here at Lehigh, you will learn the CS principles needed to easily learn anything from these sites. These resources are also for CSB students to do independent learning outside of the classroom, especially if they want to get ahead for their future classes or technical interviews.
If you would like to contribute to this list, you can email the current CSBA Secretary here with the link and a short description of what that resource provides. Thank you and enjoy!
Quick Reference:
- hackr.io - Lists a majority of programming languages and allows you to search for online courses for a specific programming language. Definitely check this site out for learning a specific language before choosing any of the ones listed below.
- JetBrains Academy - a website where you can choose your own track and build real projects with guidance. Generally paid, but you can get 7 days of free version, extend it to one month after completing the first part of the project, and extend for one more month after completing the whole project. In total you can get 2.25 months of free learning hands-on experience.
General:
- enki.com - Amazing mobile app that gives you a 5 minute daily workout where you learn super useful info about Java, Git, HTML, CSS, Python, JS, and more. Also gives you review workouts where you review what you learned in the past week (also 5 minutes long) and allows you to bookmark any small snippets they give you that you find useful.
- udemy.com, coursera.org, udacity.com, simplilearn.com - Websites with free or paid courses for learning various things.
- DeVry Tutorials - Tutorials on Front-End, Backendm and more. Includes HTML, CSS, JS, Python, Bootstrap, Handlebars, Heroku, Node.js, MongoDB, CoffeeScript, Git, and more.
- CS50: Introduction to Computer Science from Harvard - most people started programming from this legendary course
Professional Development:
- Google Software Engineer Interview Prep Guide
- Google Technical Development Guide
- Student Created Internship/Resource Guide
- Master's in Data Science Tech Interview Guide
- University of Pittsburgh's Computer Science Wiki - many useful resources related to everything in CS degree and getting a job
Mobile Development:
- bitfountain.io/courses - (B+) Scroll to bottom and see that there are introductory iOS and Android app development courses.
- Flutter Tutorials on LinkedIn Learning - Flutter is a library that allows you to write cross-platform applications written in Dart programming langauge
- React Native Tutorial for Beginners - React Native is another library for developing cross-platform applications
Web Development:
- freecodecamp.com - (A+) JavaScript, HTML, CSS, jQuery, and more. Gives you ability to get free certificate(s) from completing the tutorials. Also, once you get your certificate, you can contribute to Open Source projects (BIG + on resume).
- codeschool.com - (B) Various code courses in essentially anything. Usually have the first few lessons for free then you have to pay.
- dash.generalassemb.ly - (B) free section on General Assembly. Learn basic web development.
AI/Machine Learning/Data Science:
- datacamp.com - (B) Learn R, a popular data analysis programming language and python (scripting language also used for data analytics and becoming VERY popular).
- Introduction to Machine Learning from Stanford | Coursera - a good theoretical introduction to Machine Learning. Pretty old course
- Applied Data Science with Python Specialization from UMich | Coursera - a specialization that focuses on using Python for Data Science
- Introduction to Deep Learning from MIT - a great introduction to Neural Networks and Deep Learning concepts
- Deep Learning Specialization with Andrew Ng - great practical series of courses on Deep Learning
- Practical Deep Learning for Coders | fast.ai - a great course for starting quickly by having hands-on experience with Deep Learning
Algorithms/Coding Challenges/Practice Coding Interviews: (Very good practice for CSE340).
- interviewbit.com - (A+) One of the most underrused but in my opinion, best, site for practicing for technical interviews. Provides mock interview practice, allows you to time yourself, and take a practice set of questions that may be given in an interview. Also has a point system to keep you motivated and allows you to set a daily goal.
- pramp.com - (A+) Another one of the best sites for preparing. Allows you to practice as an interviewer and be interviewed by other people all across the world. You start off with ~3 free interviews, then if you get 2-3 other friends to sign up (they don't even have to use it) you get an unlimited amount of interviews.
- hackerrank.com - (A+) Practice coding challenges in basically any language. Also practice general challenges based on data structures etc. This website is being used by many websites to screen you before interviews. Basically, the company gives you a link and picks out 2 problems from hackerrank for you to do and submit to the company. In other words, if you already have experience with hackerrank, you should have no problem with the screening.
- leetcode.com - (A+) Essentially like hackerrank but maybe you like the interface more. Also has companies listed on the right side so you can pick problems that were asked at that company interview.
- codewars.com - (A+) Website similar to hackerrank except once you find the solution you can look at ALL past solutions so you can learn from other people. Also, they have this cool Japanese kyu -> master ranking system :).
- hackerearth.com - (A-) Online coding competitions and practice coding. Coding practice is divided into sections so you can choose what you want to work on.. (sorting, greedy algorithms, graphs, dynamic programming, string algorithms, etc.). For each section it also gives an overview of what the topic is. Ex. Talks about what greedy algorithms are. All these concepts you will learn in CSE 340.
- geeksforgeeks.org - (A-) Wide range of resources on learning Object Oriented Principles, Java, Technical Interview questions, and data structures.
- codingbat.com - (B) Basic java and python problems.
- projecteuler.net - (B+) Given a problem, then you go try to solve it on your own IDE and input an answer until your answer is correct. Problems typically involve math.
- codefights.com - (B) Race against time competing against friends and students at other universities to debug code.
- coderbyte.com - (B) Practice coding challenges and view tutorials on how to solve algorithm challenges. Access to 10 free challenges and solutions before having to pay $24/month or $100/yr
- Coding Interview University - a complete study plan to becoming a software engineer
- AlgoExpert - paid, but good website that teaches you solving coding interview problems
Cybersecurity, Social Engineering, Networking:
- cybrary.it - (A) Plenty of videos and resources for learning cybersecurity and networking. Stuff like TCP/IP, penetration testing, all that jazz. Also gain certifications (this is how they make their money though).
- hackthissite.org/pages/index/index.php - (B+) Practice safely hacking through the challenges on the site.
- Cisco Networking Academy - a great variety of different courses from Cisco.
Honorable Mentions:
- codecademy.com - I figure most of you know this one but just in case you didn't. Also, this website is really only for picking up the very basics. Don't call yourself a unix programmer just because you completed the command line course.
- teamtreehouse.com - Comes with a 30 day free trial (perfect for winter break). Really good website to practice if you like structure. You literally just pick a topic you want to learn and they run you through everything step by step. Very good if you want to pick up something new because they start you at the very beginning.
- Google For Education - Basic Python Exercises - Learn to code in Python by taking a free course from Google.
- summercamphub.com/best-online-coding-classes-for-kids/ - article with a list of good online coding classes for beginners