Skip to content

Latest commit

 

History

History
48 lines (25 loc) · 5.55 KB

faq.md

File metadata and controls

48 lines (25 loc) · 5.55 KB

About this guide - FAQ

Who is this guide for?

This guide is for anyone who wants to learn a fair amount of computer science while also gaining practical hands on experience building projects. Whether you're just starting out, or already have some experience, you can tailor the guide to suit your needs by starting either earlier or later in the tiers.

Why did you write this guide?

My primary goal is to save aspiring programmers the time of vetting the litany of resources available so they can spend more time learning and less time deciding what to learn. The internet is vast and chock full of tutorials and 'one off' courses and a significant amount of them only teach material at the surface level. I wanted there to be a resource that would go deeper, teach foundations, then build on those foundations for folks who want dive deep and aspire to go beyond 'good enough'.

Why did you deprecate all the other guides and condense everything down into just one guide?

This guide is a restructuring of previous iterations of multiple guides in order to solve two issues:

  1. Which guide should I choose? This question comes up all the time. With this restructure the answer becomes consistent - 'this guide'. This guide contains the core content within tiers, then asks you to pick a 'specialization' as your capstone for the tier. Within the specialization, you'll have an opportunity to dive more deeply in the areas of most interest to you and complete a number of specialization specific projects.
  2. X course is paywalled or no longer available, what do I do? This has been a recurring issue as Coursera and edX try to settle on a sustainable business model. There are still awesome courses there, and I'll leave my prior guides available in the 'deprecated' section should you want to look into them, but for now, I'm going to focus on much less volatile resources.

Why? Coursera and edX have continually ramped up 'paywall' efforts over the past couple years, thus rendering many of the 'open' (as in free) course options available on their platforms increasingly unavailable for those without the funds to do more than audit.

What if I just want to specialize and don't want all that extra 'fluff' that's not pertinent to my specialization in a tier?

I believe that 'fluff' is important. However, you know your goals, they are yours. YOLO. You do you. I would suggest that, when you're considering skipping something, you pause and consider that there's nothing I added to the guide without the intention of providing a resource that will help you grow your skills and career as a programmer.

What about CS50? It is awesome!

CS50 remains in the guide, however, the sequence beyond has been re-evaluated to use courses unlikely to hit the paywall issues. There are now a couple of courses listed which may require the purchase or borrowing of a book, but the majority of the courses are self-contained and books (like Cormen's Algorithms) should be freely available from your public library.

What about the 'How to Code' series of courses? They are awesome!

They are unfortunately behind a paywall now. You will find, however, that the book on which the courses are based is now included in Tier 4.

Why so many courses in a row without any projects?

You'll note that each tier has Courses, Reading, and Practice sections It appears that Readings come after Courses, and Practice comes after Reading - but you need not take that literally. Take the Courses in order, stopping to Read or Practice as you like, aiming to finish everything in the tier before moving to the next tier. Most tiers end with a Capstone 'specialization' which will contain much more hands-on coding via projects.

What are the Tier Programming Projects?

Both tiers and specializations will require 'Tier Programming Projects', you are free to select any programming project you want. To help combat the 'but I don't know what I want' roadblock, Tier Programming Project Ideas lists a variety of ideas. Note: In specializations, the Tier Programming Projects might have extra criteria (such as 'if you're doing a mobile app development specialization your projects must be mobile apps')

An important note about Programming Projects - you may elect to clone templates, apps, or games for your programming projects. When doing so, always use your own assets (images, audio, etc.) or assets you know are legal to use, and mark your project as 'inspired by' the original, giving full credit to the original author. Don't try to put their ideas off as your own, or (worse yet) try to put your project up on app stores as an original app. These are practice projects - don't go out and clone Tetris, toss it up on the app store, and get sued for copyright infringement and blame me - I warned you.

Why switch from simple checkboxes to a tabular format?

While the checkboxes made for easily checking items off as you complete them, I've found that using a table where it's easier to mark both what you're working on and what you've completed, plus add links to any projects you completed or other 'evidence' type materials, gives a much more meaningful progress indication. Plus, it builds in the process of linking to anything you create along the way which will put everything right at your fingertips should you later wish to create a portfolio or highlight prior work.

Do I really have to create a separate 'highlights' site for each tier?

No, you don't. You may either create a separate site for each tier or maintain one site which you create in the first tier and update as you progress through subsequent tiers.