afterCSintro

所属分类:交通/航空行业
开发工具:Others
文件大小:0KB
下载次数:0
上传日期:2020-05-28 05:35:50
上 传 者sh-1993
说明:  完成了您的第一门编程课程,但不确定如何继续斯坦福代码就地团队与哪些课程共享路线图...,
(Finished with your first programming course and not sure how to go on? The Stanford Code in Place team shares a roadmap with what courses to follow and where to find information about them)

# Finished with your first programming course and not sure how to go on? The Stanford Code in Place team shares a roadmap with what courses to follow and where to find information about them **Read this first:** I was a Section Leader for Stanford's Code in Place course (a free online offering of (part of) their intro to CS course as a way to support the community during COVID-19). The course finished, and one of the professors behind it: Ali Malik, shared this roadmap for how to proceed. It is the result of a shared effort of the people behind the course. Keep in mind that I have not made any changes to the original! So there's plenty of references to the Code in Place course. Just imagine it says "your first programming course" instead and read on :) And also, this was reposted with Ali's consent! # Life after Code in Place Having completed Code In Place, there are many paths you might choose to take: this handout is intended to provide a possible roadmap for some of them. Like all guidelines, this is an approximate and non-exhaustive list on how to learn about a subject. There are a plethora different ways to achieve mastery that might not be represented here. We have split up this resource into umbrella topics that students have been asking about. In reality, there are a lot more ways to apply Computer Science, such as music, healthcare, social good and education. Each area has a list of **core topics** you need to understand to engage with meaningfully with that discipline. After you develop a solid understanding of these core topics, you can pick and choose whatever subareas you find interesting and focus there. If there is any topic not covered here that you are interested in, ask about it in the comments! We will try to answer those as well. **How to use this resource**: Since we can’t cover the vast range of possible material in the world, most of the resources linked below are websites of university courses that cover the relevant concept. ***This doesn’t mean you have to take the academic course to learn that material***. Instead, the course syllabus can serve as a reference point for which topics are important to cover. You can then go about actually learning these topics however you want. Some potential ways to learn could be to search for the topic on google or youtube, read textbooks, or browse reddit. # Foundations of CS These are major concepts that are important to solidify, irrespective of what area of CS you are interested in. It consists of all the foundational concepts: programs, variables, loops, conditions, data structures, and core algorithms. **CS106A:** You have done most of this! Congrats :) **CS106B:** Stanford’s sequel class to CS 106A. In CS 106B, you further develop your toolkit by deepening your understanding of how a computer represents data and learning about additional problem-solving techniques and structures. The class is taught in C++, one of the most popular programming languages in history. *Course website*: [http://web.stanford.edu/class/cs106b/](http://web.stanford.edu/class/cs106b/) *Old recorded lectures*: [https://see.stanford.edu/Course](https://see.stanford.edu/Course) # Area Specific Paths # Data Science, AI, and ML **Core**: * Probability and Statistics ([CS109](http://web.stanford.edu/class/archive/cs/cs109/cs109.1196/)) * Data science with numpy and matplotlib ([CS102](http://web.stanford.edu/class/cs102/), [Harvard Data Science](http://cs109.github.io/2015/index.html)) * Linear algebra and Multivariable Calculus ([Mathematics for Machine Learning](https://www.coursera.org/specializations/mathematics-machine-learning), [3b1b Linear Algebra](https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab), [3b1b Calculus](https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr), [MIT18.06](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/), [Coding the Matrix](https://www.youtube.com/channel/UCGVa4wp8SWGFtMe6hcdpHlg/playlists)) **AI/ML**: * Machine learning ([CS231N](http://cs231n.stanford.edu/), [CS229](https://www.coursera.org/learn/machine-learning)) * Natural language processing ([CS124](http://web.stanford.edu/class/cs124/), [CS224N](http://web.stanford.edu/class/cs224n/)) * Computer vision ([CS231N](http://cs231n.stanford.edu/)) * Reinforcement learning ([CS234](http://web.stanford.edu/class/cs234/index.html)) ## Systems **Core**: * Computer Architecture and Systems (CS107 [website](http://web.stanford.edu/class/cs107/) and [videos](https://see.stanford.edu/Course)) * Principles of Systems ([CS110](http://web.stanford.edu/class/cs110/)) # Graphics/Game Design/VR **Core**: * Linear algebra and Multivariable Calculus ([Mathematics for Machine Learning](https://www.coursera.org/specializations/mathematics-machine-learning),[3b1b Linear Algebra](https://www.youtube.com/watch?v=fNk_zzaMoSs&list=PLZHQObOWTQDPD3MizzM2xVFitgF8hE_ab), [3b1b Calculus](https://www.youtube.com/watch?v=WUvTyaaNkzM&list=PLZHQObOWTQDMsr9K-rj53DwVRMYO3t5Yr), [MIT18.06](https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/), [Coding the Matrix](https://www.youtube.com/channel/UCGVa4wp8SWGFtMe6hcdpHlg/playlists)) * Core physics (mechanics, differential equations) **Areas:** * 2D/3D Graphics, rendering, animation, geometry ([CS248](http://cs248.stanford.edu/winter20/)) * Virtual Reality ([EE267](https://stanford.edu/class/ee267/)) * Animation and Simulation ([CS348C](http://graphics.stanford.edu/courses/cs348c/)) * Introduction to Game Design and Development ([CS146](https://stanfordgamedev.weebly.com/)) ## Web dev (frontend/backend) Web development is how we make websites and online applications to do useful things. It consists of two major areas. **Frontend**: This deals with everything related to what a website user can see and interact with such as the design, style, menus, text, images, etc. **Backend**: This deals with everything that has to do with all the logic and internal working of a website that is not typically visible to a user. This is stuff like storing data in databases, making a server, authentication, creating users, generating dynamic pages, etc. These resources will generally cover both frontend (HTML, CSS, javascript) andbackend programming: * [Mozilla: Learn Web Development](https://developer.mozilla.org/en-US/docs/Learn) * [The Odin Project](https://www.theodinproject.com/home) * [The Flask Mega Tutorial](https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world) ## Mobile dev * iPhone: any Swift resources provided by [Apple](https://developer.apple.com/swift/) * Android: any Kotlin resources provided by [Google](https://developer.android.com/courses) # General Resources ## Programming Tools * One of the most wonderful things about the field of Computer Science is how collaborative and open a field it is. This is enabled by websites like [Github](https://github.com/), [GitLab](https://about.gitlab.com/) and [BitBucket](https://bitbucket.org/product), in which programmers can share and work together on their code. Underlying each of these websites is a system called Git, which allows you to manage the different versions of your program with minimal fuss. Learn the basics of Git using [Github’s tutorial](https://try.github.io/), or [BitBucket’s help center](https://www.atlassian.com/git). Some SLs wrote up really great intros to Github. See this [ed post](https://us.edstem.org/courses/490/discussion/71024) and this other [video](https://www.youtube.com/watch?v=umvKOaRWz-A)! * In addition to PyCharm and Ed, there are countless other editors and IDEs, each with their own strengths and which can be customized for your purposes. Two of the most popular editors are [Visual Studio Code](https://code.visualstudio.com/) and [Sublime Text](https://www.sublimetext.com/). * As you work on projects of your own, you are bound to run into bugs. [Stack Overflow](https://stackoverflow.com/) is a question & answer forum that is probably the single best resource on the internet to get advice on resolving bugs. ## Other Programming Languages Python is a wonderful language, but there are many other wonderful languages you might be interested in learning: * HTML, CSS and Javascript are the best tools for developing internet-based application. Mozilla’s [resources](https://developer.mozilla.org/en-US/docs/Learn) are a fantastic introduction. * C and C++ are two of the most commonly used programming languages, and are great for programmers who want more direct control over what their computers are doing. You can learn C++ from a combination of [CS 106B](http://cs106b.stanford.edu/) and [CS 106L](http://web.stanford.edu/class/archive/cs/cs106l/cs106l.1192/), and you could learn C [here](https://www.learn-c.org/). * Rust is a more recent language that also affords programmers very low-level control of their computers. * [Java](https://www.codecademy.com/learn/learn-java) and [Go](https://tour.golang.org/welcome/1) are great choices to build systems that must handle large amounts of data. * [Haskell](http://learnyouahaskell.com/introduction), [Scala](https://docs.scala-lang.org/learn.html), and [OCaml](https://ocaml.org/learn/tutorials/) are programming languages that promote a style of programming known as functional programming, which often is enormously helpful in processing data and is a fascinating intellectual endeavour. ## Tech Interviews Interviews for tech internships and jobs are kind of their own skill that really gets better with practice. These are some good resources to practice for tech job interviews. Remember, you don't want to be memorising these answers. Instead you want to develop your computational thinking so that you can figure out these answers on the spot! * [Cracking the Coding Interview](https://www.amazon.com/Cracking-Coding-Interview-Programming-Questions/dp/098478280X) * [Hackerrank](https://www.hackerrank.com/domains/algorithms) # Collection of Resources by SLs These are a collection of various resources contributed by the section leaders of Code in Place. They aren’t structured in any particular way but they might serve as a useful reference for you! * Great answer by a section leader: [https://us.edstem.org/courses/490/discussion/71967](https://us.edstem.org/courses/490/discussion/71967) * Take a MOOC, such as [CS106B and CS107](https://see.stanford.edu/Course), or [the Coursera version of CS 229](https://www.coursera.org/learn/machine-learning?utm_source=gg&utm_medium=sem&utm_content=07-StanfordML-US&campaignid=685340575&adgroupid=32639001781&device=c&keyword=machine%20learning%20tutorial&matchtype=e&network=g&devicemodel=&adpostion=&creativeid=243289762754&hide_mobile_promo&gclid=CjwKCAjwnIr1BRAWEiwA6GpwNUqKjmT-1xa3cNeaocKYhj3_ZxszfBzVimQMwjwIw8miHi1zJH2NuRoCMHQQAvD_BwE) or Coursera’s [Deep Learning](https://www.coursera.org/specializations/deep-learning?utm_source=gg&utm_medium=sem&utm_content=07-StanfordML-US&campaignid=685340575&adgroupid=32639001781&device=c&keyword=machine%20learning%20tutorial&matchtype=e&network=g&devicemodel=&adpostion=&creativeid=243289762754&hide_mobile_promo=&gclid=CjwKCAjwnIr1BRAWEiwA6GpwNUqKjmT-1xa3cNeaocKYhj3_ZxszfBzVimQMwjwIw8miHi1zJH2NuRoCMHQQAvD_BwE#courses) * More MOOCS: [list from Class Central](https://www.freecodecamp.org/news/free-courses-top-cs-universities/) * Try [codewars.com](http://www.codewars.com/) to learn more Python and other languages * Find a learning partner (in your section, or someone else in the class) so that you can help each other continue learning to code -- having peer/community support can help a lot! (It could help if a “partner-seeking” or “team-seeking” thread were posted on Ed for this purpose.) * Work through [interview prep problems](https://www.hackerrank.com/domains/algorithms) * Hackerrank in general is great - it gently introduces Python concepts through simple problems, and also has non-Python Algorithm tests that are pretty difficult and interesting * Build something cool! * Glue existing libraries into useful software * Completing [Python bootcamp course](https://www.udemy.com/course/complete-python-bootcamp/) from Udemy * Subscribe to [PyCoder’s weekly](https://pycoders.com/) for a weekly dose of Python news and others surrounding Python * Learning the tools in computer science through MIT’s [The Missing Semester of Your CS Education](https://missing.csail.mit.edu/) * Check out some conference tutorials or talks. * [This year’s pycon](https://us.pycon.org/2020/online/) * [Pycon youtube search](https://www.youtube.com/results?search_query=pycon) * [Raymond Hettinger’s talks](https://www.youtube.com/results?search_query=raymond+hettinger+) \- IMO one of the best speakers on python - here are some of my favorites that are great for beginners, so you can watch all of these immediately. * [The Mental Game of Python](https://www.youtube.com/watch?v=UANN2Eu6ZnM) * [Transforming Code into Beautiful, Idiomatic Python](https://www.youtube.com/watch?v=OSGv2VnC0go&t=2371s) \- great to learn language specific features of python if you already know some of c, java, etc this will show you how to write better python, and if you don’t then you still learn how to write great python code. * [Being a Core Developer in Python](https://www.youtube.com/watch?v=voXVTjwnn-U) * [Awesome Roadmaps](https://github.com/orsanawwad/awesome-roadmaps) \- A curated list of awesome software development roadmaps * [Coding Interview University Roadmap](https://github.com/jwasham/coding-interview-university) \- This is a list of free resources to learn the content that a CS undergrad would learn in college * [Web developer roadmap 2019](https://github.com/kamranahmedse/developer-roadmap) \- good starting places shows you lots of useful technologies * [Go developer roadmap 2019](https://github.com/Alikhll/golang-developer-roadmap) * [UI/UX designer roadmap 2017](https://github.com/togiberlin/ui-ux-designer-roadmap) * [Game developer roadmap 2018](https://github.com/utilForever/game-developer-roadmap) * [Deep Learning Papers Reading Roadmap](https://github.com/floodsung/Deep-Learning-Papers-Reading-Roadmap) * [iOS developer in 2018](https://github.com/BohdanOrlov/iOS-Developer-Roadmap) * [Mobile developer in 2017](https://github.com/godrm/mobile-developer-roadmap) * [React developer in 2019](https://github.com/adam-golab/react-developer-roadmap) * [Vue developer in 2019](https://github.com/marekbrainhub/vue-developer-roadmap) * [Vue.js developer in 2018](https://github.com/flaviocopes/vue-developer-roadmap) * [Node.js Developer Roadmap](https://github.com/aliyr/Nodejs-Developer-Roadmap) * [.net back-end Roadmap](https://github.com/saifaustcse/.net-developer-roadmap) * [ASP.NET Core Developer roadmap in 2019](https://github.com/MoienTajik/AspNetCore-Developer-Roadmap) * [Data science roadmap](https://github.com/MrMimic/data-scientist-roadmap) * [Hacker roadmap](https://github.com/Sundowndev/hacker-roadmap) * [Software architect roadmap](https://github.com/AlaaAttya/software-architect-roadmap) * [Angular Developer Roadmap](https://github.com/sulco/angular-developer-roadmap) * [Front-end HTML5/CSS3/Javascript related technologies to learn in 2017](https://github.com/ManzDev/roadmap-web-developer-2017) * [Software Quality Assurance Roadmap](https://github.com/anas-qa/Quality-Assurance-Road-Map) * [Android Developer Roadmap in 2019](https://github.com/anacoimbrag/android-developer-roadmap) * Software-adjacent areas * Design/UX ([CS147](https://hci.stanford.edu/courses/cs147/2019/au/)) * Product Manager * Project Manager * Sales for software * Help a GitHub project * Learn about how a computer executes their code * [NAND2Tetris](https://www.nand2tetris.org/) * [Build an 8 bit computer from scratch](https://eater.net/8bit) * Learn how to build intelligence into real things outside computers * [Arduino tutorials](https://www.arduino.cc/en/Tutorial/HomePage?from=Main.Tutorials)

近期下载者

相关文件


收藏者