-
Notifications
You must be signed in to change notification settings - Fork 22.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Finished OSSU, ask me anything #727
Comments
Thank you for this summary! You mention that you didn't take any math
course... If you had to cove / review math for CS, what courses / books
would you recommend?
Moreover, regarding CS50 vs MIT 6.0001, what's your take?
Another question that I wanted to ask you is whether you took CS50's Web
Programming with Python and JavaScript ?
Thanks again for your help!
Best,
Martin.
…On Tue, Jun 9, 2020 at 9:45 AM spamegg ***@***.***> wrote:
(I'll update this as I go along)
Tuesday, June 9, 2020
Course-by-course review (coming soon!)
Took 2 years (late May 2018 - early June 2020)
My significant advantages:
- used to teach college math. So I skipped math classes
(there used to be A LOT MORE math in the curriculum, some of you might
remember!)
- worked on OSSU full time
Disadvantages:
- easily demotivated, difficulty feeling rewarded
I am Strongly biased towards math and functional programming, biased
against object oriented programming.
What happened in 2 years?
- two deaths in the family
- got demotivated and "quit" twice: once for 3 weeks, once for around
2-3 months
- lots of stress from economic/political/war stuff that happened where
I live. Had a few panic attacks! Financially OK (quit stock market early
enough to avoid losses)
- hardware problems:
GPU broke right when I was taking CUDA programming. The irony!
Burnt motherboard's CPU socket from too long parallel execution. CPU
is fine though!
- COVID-19 (right at the end, during my Spec. Quarantine took a
psychological toll on me. Also good luck finding hardware in a pandemic!)
- Lost much weight, built a little muscle
Courses I took, roughly in this order:
- CS50
- How to Code 1,2
- PLABC
- Learn Prolog Now!
- Haskell from First Principles
- Nand2Tetris 1,2
- Intro to Networking
- Hack the Kernel <#690>
- Intro to CS and Programming using Python
- Core Theory
- Databases (Stanford)
- Computer Graphics (skipped last assignment)
- Compilers (from Udacity)
- Software Debugging
- Software Testing
- Software Architecture & Design
- LAFF - On programming for correctness
- Intro to Parallel Programming (very hard!)
- Functional Programming in Scala (5 courses)
Courses I took that are NO LONGER on the curriculum:
- Software Construction 1,2
- Cryptography 1 (very hard MATH course)
Courses I took that are NOT on the curriculum:
- CS50's second half and its final project
- Software Processes (from Coursera)
- Software Architecture (from Coursera)
- Functional Programming in Haskell (from FutureLearn)
Courses I did NOT take that ARE on the curriculum:
- Software Engineering Intro/Capstone
- The Security courses that were added recently
Things I wish I knew / I wish somebody told me before:
- difference between Computer Science and Programming. Apparently it's
huge! I was more interested in Programming since I have theory from my math
background.
- How to create a "learning lifestyle" and stay motivated, feel
rewarded.
Those "Mindshift" classes buried at the bottom of EXTRAS should be the
first thing we are required to take!
The "shining core" of OSSU
- CS50, PLABC, N2T, Core Theory and Machine Learning.
- I felt like the other classes did not add much, or were mid/low
quality, or too unenjoyable, even though I enjoyed some of them A LOT, such
as How to Code.
Best Courses:
- Core Theory (Kruskal's Minimun Spanning Tree algorithm with Union by
Rank and Path Compression and its running time analysis with the Inverse
Ackermann function are so beautiful, I had tears in my eyes!)
- Nand 2 Tetris (makes you feel like you can do ANYTHING)
Most useful courses: Core Theory and PLABC (by far)
Takeaways:
- Be very clear about your goals and expectations from the beginning.
OSSU might not give you what you expect!
- Specializations are no big deal. Like "normal" courses. By far the
most useful to prepare me for the Spec were PLABC and the Haskell book. The
rest were not relevant. I could have EASILY taken the Spec after those (I
had not even taken Core Theory at that point).
- Don't pay! Not even for Specializations. They offer very little
support and some stuff is outdated. Not worth the money.
- I would not recommend doing OSSU as it's listed. Pick and choose
your own courses. If a course feels boring, irrelevant, or not very useful,
skip it. Don't get hung up for months like I did!
- Physical exercise is extremely important to stay consistent and
motivated.
- I pushed my "challenge yourself" thing a bit too far I think. At the
same time I started OSSU I also started lifting weights and intermittent
fasting. You should adjust things so that what you're doing feels A LITTLE
challenging but does not overwhelm you.
What now?
- I feel very burnt out. Don't want to see a single line of code for a
while! Not even clever functional one-liners that magically process
gigabytes of data.
- I want to do some fun stuff later. I'll take CS50's intro to Game
Development, then maybe audit the Game Specialization.
- My goal was not to get a job (although a low-key part-time remote
job would be nice), but to challenge myself. MISSION ACCOMPLISHED! By a lot.
- My original goal was to take all of Advanced Programming. I'll do
that at some point. Advanced Systems and Theory are left. Should take
another 3 months or so.
- Eventually I should bite the bullet and stop avoiding the topics I
disliked: web programming and Javascript.
- Looked at Scala jobs, Functional jobs, Triplebyte, and some local
jobs. All want "senior" devs with 5+ years experience and lots of other
tech I don't know yet. I can only work remotely. So I gotta keep at it!
The Most Important Thing:
- Everything is at least 20x easier than Hack the Kernel.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#727>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAPFBPSJ36MJHBRNBMJPZ4DRVYVH5ANCNFSM4NZL2YAA>
.
|
@martinrg 1. I actually kinda went through the Math for CS class. I spent 2-3 days on it. It was a decent, OK course. I did not like its textbook. It was super wordy and thick and confusing. I'll have to think of alternative books.
|
I'm in the midst of MIT 6.00.1x right now, so that's a relief.
Thank you both for having this discussion!
…On Tue, Jun 9, 2020 at 9:51 AM spamegg ***@***.***> wrote:
@martinrg <https://github.com/martinrg> 1. I actually kinda went through
the Math for CS class. I spent 2-3 days on it. It was a decent, OK course.
I did not like its textbook. It was super wordy and thick and confusing.
I'll have to think of alternative books.
1.
I took both CS50 and MIT 6.00.1x. Personally I prefer MIT. But
actually I took CS50 as my "first beginner" class (that's how the
curriculum used to be). I think they are difficult to compare because CS50
uses C and goes into low-level matters (memory, pointers etc.) To a
beginner I would definitely recommend MIT 6.00.1x.
2.
OK my story here is a little weird. I did take CS50's second half, and
completed the Javascript Homeworks too. But I didn't really
understand/learn it. For my web project
<https://number-python.herokuapp.com/> I bent over backwards to avoid
Javascript, so I found something called Brython <https://brython.info/>
that lets me use Python directly inside HTML. It's horrendously slow, but
it works. My site looks very crappy but it has a working interactive Python
console and an Ace code editor!
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#727 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ABDLAES3H7Y7JBEGOT2QEADRVY453ANCNFSM4NZL2YAA>
.
|
@WildRyc It's a great course, I really like the instructor Eric Grimson too. It packs a lot into one short course (running time analysis and big-O notation, object oriented programming, data visualization etc.) and has just the right level of challenge in programming assignments (they are not so easy!) Killer beard by the way! |
I'm curious if you eventually developed the proper lifestyle you needed to keep at it. I, myself, want to really get into computer science to level up in my career, but the hardest part is to have the consistency and discipline to do it everyday or almost everyday WHILE not neglecting my other responsibilities in life. As it is, it already kinda feels like there's so many "adulting" things I need to do and learn (taxes, financial literacy, everyday chores, keep the wife happy, etc.), and it's like I'm being pulled from all different directions. So if you can share any advice regarding that, I'd really appreciate it. 😊 |
@epikkoder Yeah I eventually did, but I must say that I have a very simple, minimalist lifestyle. My life was pretty much eat-sleep-exercise-code-run some errands. I feel you, sometimes aside from the adulting, even taking a shower or brushing teeth feels like a chore. It might be difficult with family, spouse, kids and other obligations which I don't have (except my mother). Not these last 2 years, but long ago I was also swamped. I had to make some sacrifices and cut out some things. I eliminated most things that are pulling me in directions. Greatly simplified my finances, got out of stock market/investments into no-hassle, safer options, automated all the payments, taxes etc. I don't have a car so I don't have to worry about insurance, gas, check-ups etc. Got rid of my cell phone years ago. I gave up on some hobbies and interests, gave away pets and plants, got rid of furniture etc. to reduce cleaning, and significantly simplified/shortened my exercise (which actually improved my health). I also have to run errands but I squeeze them into my "break from coding" times. Many of these are physical in my case so I treat them as exercise. It helps that I need frequent breaks anyway because that's how my head works. I suppose in your case you have to separate some "me-time" everyday, turn everything and everyone off for a while, and stick to it, also make this clear to your family members. Gotta be selfish a little bit, and say no to others every now and then. That's the only way to do it. This is actually similar to the "writing problem" that many academics are/were having back when I was teaching. Among all the other obligations, teaching, office hours, friends/acquaintances etc. we had no time to write our dissertations/research. We were trying to do all the other things perfectly, and feeling guilty if we didn't "do it properly". TL;DR: You must simplify as much as possible, eliminate some things and make some sacrifices, respectfully tell others to leave you alone for a while, and learn to be a little selfish and stop feeling guilty or inadequate. |
Can you talk a little bit more about the How to Code classes? I'm just starting the first one and thinking about how to approach it. Did you use the online book, "How to Design Programs" in conjunction with the courses? What do you feel is the best way to approach these two courses? |
@wboard82 I did not use the book at all. I actually did not know it existed until much later. DO NOT feel like you are missing out or incomplete if you don't use the book. The courses/videos are complete on their own. The best way to approach is to have Dr. Racket open, and follow through the videos and type along with Prof Kiczales. (As an aside, I'd like to say to everyone that doubts/feelings of incompleteness/unreadiness will keep haunting you forever if you don't tackle them; you gotta start combating them early. The trick is to move on to the next course without exhausting all the relevant resources. When I started my Specialization I had never seen a single line of Scala code, but I came out dominant, confident and on top. I didn't read any books first.) Consciously stick to the discipline they teach you in that class: creating stubs for functions, writing the signature (input-output type), writing the tests first, writing a template for the function body from the data type you are using, and writing the "solution" ONLY at the very end (resisting the urge to guess/write the solution immediately). Just this one thing will carry you through both courses. These courses are functional so they are all about "functional decomposition" and rigidly sticking to this discipline will force you to break down problems correctly. The data types will get more complicated but always remember, they are just made up of smaller parts! You'll see what I mean at the final project of the second course. It's super hard! But it works out as long as you keep breaking it down to smaller problems. Also, think recursively! |
Keep going, dude! Thanks for this beautiful review. |
Wow, congratulations! That I can only imagine was a massive undertaking. I am thinking on learning how to deploy it and create for it a register/login page so myself and other people, maybe in OSSU community can use it without needing to have access to CS50 ide just to have a look at it functioning. Best wishes, Remus |
@SarCoptU That's awesome! This is what I requested a few months ago, when someone in Gitter chat said they could lend their time and expertise to help out OSSU. You can deploy it using a free service such as Heroku following the instructions from CS50, which is what I used |
@spamegg1 Great stuff! I'll do that. Thank you very much. |
@spamegg1 congrats, and thanks for all the helpful information, I admire your commitment, I wish you all successes and I hope that I can do it too. |
@AbdesamedBendjeddou Very appreciated! |
@Andreilg Hard to say. I think it's not "directly" applicable, that's probably true. It teaches you tons of important stuff in simplified format, on a "toy" computer. You wrap your head around how a computer works from the bottom up. It's true that spending too much time on it would be a waste. But if you ever have to write a compiler, parser, or assembly/VM code, the ideas you learn will definitely help. When you get to OSTEP you'll definitely see it. For example it helped in Hack the Kernel where I have to implement first-fit or best-fit memory allocation. It also helped writing the system calls (necessary to understand how registers work). Maybe take a look at the Computation Structures courses in Advanced Systems? I'll do that in the future and report whether N2T was applicable or not. It's my favorite course among all, but mostly because of the fun and how it made me feel. When I was a kid I wanted to be an electrical engineer and make hardware, but that didn't happen, so these courses were like a childhood dream for me. Also it made me feel connected to computing history, and made me feel overpowered like I could do anything. Interesting, I didn't like their machine language either (very cumbersome) but really liked the assembly code (with the D, M, A). The least intuitive was the VM code. But I never learned x86 so I don't know. I'm not surprised that x86 would be more straightforward, because it's a much richer instruction set, with probably much more convenient commands. In this case "simpler" actually means "harder". If you think about it from the perspective of the creators of the course, they must have had to decide on a trade-off between simplicity/accesibility and features/difficulty. To me it feels like they made a good trade-off. |
@Andreilg Yeah it definitely makes you think what your code does on the lower levels, what the compiler does with it, etc. I think programming in C and using tools like valgrind is probably the best to develop that skill. I think it would be silly to expect their assembly language to work like ARM or x86. The Hack computer's CPU instruction set is so simple, they made an "ad-hoc" assembly language. When you go with a bigger system you can't do ad-hoc, you gotta think more systematically. But I can understand your distaste for it if you were already familiar with x86. I was an "assembly-virgin" so I really liked it. |
Hey, congrats for completing this challenge, and thanks for sharing your experience. |
@mabouguerra I agree! Good advice. Tons of irrelevant stuff in OSSU (and college curricula in general). I won't remember much of it (looking at you, Intro to Networking). Not to mention boring and low quality. I still want to take some GOOD, FUN irrelevant stuff though. In the future I want to create shorter, more focused curricula for specialized purposes. For example, aiming at a functional job one can take How to Code 1,2, PLABC, the Haskell book and the Scala specialization. It should take less than 1 year. |
@spamegg1 to get a job, especially without a formal degree, you must focus on building a strong portfolio of projects, an active GitHub etc to prove that you can get shit done. And let the need to build those tangible skills and projects guide your learning. Key is to be as efficient and possible, and one year is plenty of time if sent wisely. |
Wonderful review, thank you! I recommend the same than @mabouguerra suggested to you. You did a wonderful job, don't stop there, OSSU background is more complete than the majority of the bootcamps out there. |
@calexandrepcjr @mabouguerra Thanks for all the encouragements! |
I'm waiting to see a blog/artical recommendation about how to make this lifestyle motivational mindset, I actually quit alot especially when course aren't interested topic for me -even if I know it's so important later on- like Programming language part C, I don't like OOP at this time, and I really didn't enjoy ruby
maybe we should pay them to motivate them making more, such as MITOCW donations, not because their certification or something like that |
@xxzozaxx I had the same problem; whenever I'm not getting some positive feedback/satisfaction from a course I tend to procrastinate and quit. I believe I may have figured out a few things. Maybe I will write some tips and tricks later. Hmm... it's certainly a good idea to support independent creators who make really good content, but I think the academics already get paid to create those courses, don't they? I'm not sure more money is something that would allow them to do more teaching. Academics like free time more than money; there is a concept called "sabbatical" that allows them to give up their teaching responsibilities once every 7 years, and they use it to focus completely on research. These sabbaticals are highly coveted, highly competed for positions. My guess is that the content already exists in one form or another, but they have to "transfer" it to an online version which takes time. (This is probably why we see many low quality courses that are simply "online dumps" of college courses, with no consideration for online learning format/pedagogy. MIT's Scholar versions are a rare exception as they were the pioneers of MOOCs.) My comment was more about Coursera (and possibly other for-pay sites like UDemy). I don't think the certificate is worth paying for, but regardless of that, there are unresponded comments asking for help going back months, and even when a "teaching staff" replies to you, they are very unhelpful; it's clear they don't know anything about the course I'm taking, they are offering one-line blind guesses. Generally giving someone money online is a bad idea, whether it's Craigslist, Kickstarter, or Coursera. They don't have to do what they promise, and it's near impossible to force them, or get a refund. |
After a bit of studying the science of learning, I have some idea as to why Nand2Tetris courses felt so amazing. It's true that the projects in these courses will not be directly applicable or useful in real life. However, the ways of thinking acquired in this course are highly transferable chunks of understanding that will allow you to understand many other similar things in CS. It touches upon almost everything in CS. (Now I understand why Multivariable Calculus was my all-time favorite math class to teach.) Moreover it covers so many different topics interleaved with one another. According to learning research this interleaving of similar yet different topics is extremely beneficial for long-term learning. It causes dopamine release and feeling of not only reward, but future rewards. No wonder I found myself describing the situation as euphoric. It's literally hormonal! The same applies to Programming Languages A, B, C (all three cover programming languages, but different: functional, OOP etc.), Machine Learning (similar concepts, many different awesome applications) and Algorithms (they all cover algorithms but very different strategies: divide-and-conquer, greedy, dynamic, randomized etc.) All these three courses provide repetitive-enough, but also varied-enough practice. (All three also had great instructors.) They form a "library of interconnected chunks" in your brain, and give you the feeling of finally leaving the world of repetitive practice and stepping into creative, independent thinking. It feels like you are at the precipice of some amazing discovery and you can do anything. However just covering lots of different topics is not enough, if the course is a boring, unmotivated giant info dump without practice, pedagogy, or good instruction (like Intro to Networking) or with too much repetitive practice (like Databases). Both of these covered a ton of topics but did not feel good. The topics were not very well interleaved either. |
@xxzozaxx I recommend you check out Julia Evans's talks on YouTube. I think she really embodies this kind of learning lifestyle, and it's encouraging to hear someone speak about taking on challenging ideas and the mindset that comes along with it. |
@aaronhooper Excellent link and I completely agree with her points on growth mindset, for example: "I don't know Linux" -> "I can master Linux!" It's all about attitude and in fact I gave myself the added challenge of switching to Linux in the middle of the hard Algorithms class (and I was a bit forced to; on Windows I was running out of memory and max recursion depth). Once you knock down a few challenging courses you'll get confident and start growing an appetite to consume and learn more challenging topics! From "nothing", in just a few months, I even started out helping other beginners on Linux forums with their issues! I have 250+ posts. |
When googling OSSU some results point to a site that seem to have content a bit different from https://github.com/ossu/computer-science, to clarify the course outlined in the repo is what you finished right? |
@creamynebula I updated the text with a link. @waciumawanjohi Why doesn't someone delete that outdated version? Is that not possible? I remember falling for that too 1 year ago, especially when this curriculum started to change a lot. |
I have long advocated that if the site is not going to be updated, that it should be taken down. Other students have made the same point. As far as I know, @SergeyKhval maintains complete control over the website and prefers to have it up, even though it confuses students. |
@martinrg I found this free Discrete Math book: https://link.springer.com/book/10.1007/b97469 It's shorter, more accessible and readable than the Math for CS textbook. Might be a good idea to add it to Extras or Readings too. @mabouguerra Thanks I'm taking Full Stack Open now! |
Thanks everyone, I'll close the issue now as it's been a month and no new comments recently, but feel free to continue commenting here, and I'll check up on this from time to time! Also you can find me on Discord. |
Where are you from? |
@rudbar I was in the US, I'm somewhere else now. You can come over to Discord https://discord.gg/5pUhfpX |
Hi @spamegg1 !! You have inspired me a lot to pursue this course!! Now[Sept 2021] there is "Python for Everybody" in the intro C.S. How do you recommend it? Also, I know programming already and considering to skip intro C.S. and directly start with CORE CS, though YOU took the "Introduction to Computer Science and Programming" using Python AFTER so much advanced stuff... what do you recommend? Is it worth re-learning the basics? Actually the problem is that in "Introduction to Computer Science and Programming using Python" you need to upgrade to give the mid-term and final exam. [EDIT1] Looked up py4e, its a great course and on discord i saw many things, I hadn't seen before, so I will take it. |
Hello, Congratulations and I have to say that your path is an inspiration. At the moment I'm thinking on following OSSU as well, my question is if in the end of the course you feel that you have the qualifications to become an artificial intelligence engineer? Or if the Data Science OSSU degree is more suitable for that. |
@synked16 This is a very common question. You can skip Py4E, but DO NOT skip "Introduction to Computer Science and Programming". That one has some quite hard stuff in it, and people who skip it suffer later. @birimbau No probably not, the curriculum is very general and not geared specifically to AI engineering. I don't think Data Science is more geared for AI either. AI requires very strong theory and fundamentals. At the very least, you have to take all of Core CS. After that you'd have to go in your own AI direction. There is Modern Robotics in Advanced Applications. |
@spamegg1 thanks for the write-up; I also read your course reviews. How sure were you at the beginning that you wanted to do the 2 years (or whatever time it took) of the whole curriculum and how did you stick to it? I already tried once but I sort of burned out after CS50x (all assignments) and How to Code - Simple Data (I must have completed like 80%-90% of the course). I was having fun, I like CS, and I love to learn. I keep coming back to CS since 2010 so I don't think it's a problem with a genuine interest for the topic. I would like to try again but I'm not entirely sure how to set myself up for success on this one because of its length. I'm quite organized and disciplined--specially for the first 3-6 months--but I seem to run out of gas after the 6 months mark. Although I have to say that this happens outside of the CS topic as well. Any thoughts would be appreciated. |
@eduardoltorres Hi, welcome. When I started I didn't envision 2 years at all. I didn't have goals. I thought it would probably take 3-4 years, but my non-goal was to "become a life long software person" instead. Mentally I saw it as "I have nothing to lose." Also keep in mind I have the giant advantage of strong math, and skipping the math courses. Those are probably tougher than the CS classes for most people. I actually could not stick to it for a while, as you've read above. Self-learning so many tough subjects is like climbing Mount Everest, so you gotta go easy on yourself and sometimes decide to move on. It's better to get through, say, 80-90% of the curriculum, than to get stuck on one part and refuse to continue. I'm not suggesting it's OK to leave gaps in your knowledge, but you gotta do what you gotta do. Also we need to admit the limitations of online self-learning, as much as we'd like to believe it's amazing and perfect. Online self-learning is an extremely new thing in human history, we don't fully understand its effectiveness. When kids switched to online school due to the pandemic, we have seen the shortcomings of non-physical learning more clearly. Sometimes you need a teacher, a classroom, fellow learners, an environment to keep you accountable and get you through such a difficult curriculum. We're not meant to do everything by ourselves. No shame in admitting that. I'd have probably gotten through HtK with some other people (but face to face). There were parts of the curriculum that is like candy to me: math heavy parts like algorithms, functional programming etc. Algorithms was about halfway through, and Scala was at the end, so I had big motivators spread out. So to get through the rough parts I've used some real hardcore delayed gratification and negative reinforcement! I have done some tough long term things in the past, without "seeing the light at the end of the tunnel" and in general I like challenging/pushing myself (cold showers only since 2009!), so that seems to be well-suited for computer science. For example recently I started learning piano, and I don't have specific goals either; just a life-long direction. My personality is such that I'm not a goal oriented person at all, and I didn't start this with the intention of "I'm gonna finish it in X amount of time!" I don't care too much about doing "real world applications" immediately, and I'm interested in academic things for their own sake, so that helps. Also when I'm learning something, I always look at it with a teacher's mind, not learning for myself, but "how would I explain this to someone else?" to help our others. So I ended up becoming a tutor for OSSU Discord, and a contributor/member. I have a vision for what I'd like to be when I'm old, a powerhouse of "useless knowledge" 😄 This kind of thinking solves the "long term problem" for me. Same way of thinking allows me to stick to exercise habits, eating habits, brushing teeth. avoid hunching over, etc. I'd like to say "this is what I did, so do that!" but I recognize I'm just a minority weirdo. (It's possible that math/CS people in general are weirdos 😄) So you'll have to figure it out what keeps you going. Maybe doing some projects in between courses, or contributing to open source, or just going into your own cave and do a private personal project to satisfy yourself. (Just don't take Hack the Kernel.) If you have trouble sticking with long term things in general, and not just computer science, then that's another issue. Motivation in general is an unsolved problem and a lot of research says there is no one-size-fits-all answer. Many people, including myself, cannot find the motivation to even finish a video game! The Learning How to Learn and Mindshift courses have some suggestions there. To go beyond that you'll have to understand your personality really well, what motivates you, how you can "trick" yourself into doing things, the right combination of positive/negative reinforcement that works, or even how to do a bit of "self-brainwash" 😄 |
Over the two years you worked through the curriculum, do you have a total hour count of the time you spent, or an estimated hours/week? The OSSU GitHub estimates 2 years at about a 20 hour/week pace and I'm curious to see if that pace is actually true in practice. |
@dylancdavis I don't have a total hour count, but I'd say it's not accurate, it's longer than that. I was definitely doing more than 20 hours/week. I skipped all of the math, and my math skills significantly shortened Core Programming and Core Theory. For someone else it should be closer to 3 years. |
@spamegg1 I am starting core theory and it says to use any programming language. so what do you use?..I see from the order you completed the course that you knew prolog and haskell at the time of core theory..so what language should I choose? |
@Vishal-Ichor Up to you! I used Python. For performance reasons it's probably a better idea to use a compiled language, not an interpreted one. Java is probably a good candidate. For a super hard core challenge you can use a low-level language like C where you have to implement everything manually from the ground up; or use Haskell because it does not allow any mutation! Note that this will take you much longer 😆 |
Hi Sir,, can you tell me please what is PLABC mean? I google it but cannot find answer. it is a course? Thanks for your answer. |
Programming Languages: A, B, C. A review by spamegg1 can be found here: https://github.com/spamegg1/reviews/#plabc
(I've edited this response for readability / waciuma)
|
I am beginning an intensive 6-month program that will imitate what is
usually completed in two years. It's not all OSSU curriculum, but there
will be elements.
If that's of interest, I'll track my time and put it in a sharable
spreadsheet.
…On Thu, Sep 1, 2022 at 2:46 PM Cole D ***@***.***> wrote:
Over the two years you worked through the curriculum, do you have a total
hour count of the time you spent, or an estimated hours/week? The OSSU
GitHub estimates 2 years at about a 20 hour/week pace and I'm curious to
see if that pace is actually true in practice.
—
Reply to this email directly, view it on GitHub
<#727 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ACINWGAWMU4P76H6OY5HTSDV4EBYXANCNFSM4NZL2YAA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
PLEASE don't do that. This curriculum should normally take about 3 years, I skipped the math since I used to teach it. Not to sound arrogant, but if it took me 2 years, it will probably take you longer. The human brain takes quite some time to properly absorb so much information and convert it to knowledge. I've seen a few learners who tried to go quickly like this, and they did not retain much knowledge. Finishing the curriculum in a short amount of time is NOT something to be proud of. Finishing the curriculum in a properly long enough amount of time, is. I am now beginning to regret doing this AMA, as it gave the wrong impression I think. I never had a time goal. My intention was to say "look it's a long journey, and a lot of things will happen during it, many of them unexpected and outside your control; you need mental and emotional resilience to overcome hurdles." But people seem to be ABSOLUTELY OBSESSED WITH THE AMOUNT OF TIME instead. I've never understood this, but it seems like people are time-optimizing freaks. I wish I'd never mentioned the amount of time. Ironically it's too late now. The mentality to get through the curriculum, in my opinion, is quite the opposite: not worrying about time, but accepting it as a long journey instead, going at your own pace instead of planning a time table. |
I agree. It’s not about the time period. It’s about whether you understand the subject and topics at hand. Skill as a good or mediocre programmer or any expertise in CS comes from experience and learning gradually and steadily. You need to let things absorb. I’m doing CS50x right now and the learning curve is steep but I am also maths before I start OSSU and no way will I be done in 6 months. Please do remember to take things steadily and not overcome to pressure.
But if you believe this is the course you want to take then I wish you the best of luck.
Written from my iPhone
… On 11 Oct 2022, at 09:06, spamegg ***@***.***> wrote:
I am beginning an intensive 6-month program that will imitate what is usually completed in two years.
PLEASE don't do that. This curriculum should normally take about 3 years, I skipped the math since I used to teach it. Not to sound arrogant, but if it took me 2 years, it will probably take you longer.
I am now beginning to regret doing this AMA, as it gave the wrong impression I think. I never had a time goal.
My intention was to say "look it's a long journey, and a lot of things will happen during it, you need mental and emotional resilience to overcome hurdles."
But people seem to be ABSOLUTELY OBSESSED WITH THE AMOUNT OF TIME instead. I've never understood this, but it seems like people are time-optimizing freaks.
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.
|
|
Thank you, would love to know what cs related you're doing now |
|
Creating my own CS / Math curriculum. |
|
@spamegg1 what are u doing now as if what's your professional as of now after all this |
I'm a website designer
…On Mon, Jan 8, 2024, 7:18 PM vr-varad ***@***.***> wrote:
@spamegg1 <https://github.com/spamegg1> what are u doing now as if what's
your professional as of now after all this
—
Reply to this email directly, view it on GitHub
<#727 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/BBYBNR5YRBBCRELVHLQCWWLYNQZ7FAVCNFSM4NZL2YAKU5DIOJSWCZC7NNSXTN2JONZXKZKDN5WW2ZLOOQ5TCOBYGE2TQMRRGMYA>
.
You are receiving this because you are subscribed to this thread.Message
ID: ***@***.***>
|
Is it possible to put this course on your resume? Has this helped anyone get a job? |
My impression is that most learners list the advanced courses that they have completed (which generally demonstrate that the learner has completed prerequisite material).
Yes, there are a number of OSSUnians that have used their study of the curriculum to proceed into grad school for CS or into a job in software engineering. This is easiest for those who have a Bachelor's degree in some unrelated field and are looking to make a transition. |
(I'll update this as I go along)
Proof of completion (you have to scroll sideways a bit)
Originally written: Tuesday, June 9, 2020
Course-by-course review (FINISHED!)
Took 2 years (late May 2018 - early June 2020)
My significant advantages:
(there used to be A LOT MORE math in the curriculum, some of you might remember!)
Disadvantages:
I am Strongly biased towards math and functional programming, biased against object oriented programming. I learn by doing, I dislike long lectures/concepts/info dumps.
What happened in 2 years?
GPU broke right when I was taking CUDA programming. The irony!
Burnt motherboard's CPU socket from too long parallel execution. CPU is fine though!
Courses I took, roughly in this order:
Courses I took that are NO LONGER on the curriculum:
Courses I took that are NOT on the curriculum:
Courses I did NOT take that ARE on the curriculum:
Things I wish I knew / I wish somebody told me before:
Those "Mindshift" classes buried at the bottom of EXTRAS should be the first thing we are required to take!
The "shining core" of OSSU
Best Courses:
Most useful courses: Core Theory and PLABC (by far)
Takeaways:
What now?
The Most Difficult Thing:
The Most Important Thing:
The text was updated successfully, but these errors were encountered: