The Biggest Misconception about Computer Science Degrees

Поділитися
Вставка
  • Опубліковано 1 жов 2020
  • There are often misconceptions of what to expect from a Computer Science degree and what you learn. One in particular - well, I guess two - are really at the forefront that could give prospective Computer Science students false information. I'd love to hear your thoughts on the subject.
    🐱‍🚀 GitHub: github.com/forrestknight
    🐦 Twitter: / forrestpknight
    📸 Instagram: / forrestpknight
    👨‍💻 My Coding Gear: bit.ly/my-coding-gear
    📓 Learning Resources:
    My Favorite Machine Learning Course: imp.i384100.net/YgYEBJ
    Open Source Computer Science Degree: bit.ly/open-source-forrest
    Python Open Source Computer Science Degree: bit.ly/python-open-source
    Udacity to Learn Any Coding Skill: bit.ly/udacity-forrest
    🔧Coding Tools:
    The Best Linux Server Hosting: bit.ly/linode-forrest

КОМЕНТАРІ • 482

  • @fknight
    @fknight  10 місяців тому +1

    🖥 Dev Notes Newsletter 👉www.devnotesdaily.com/
    📓 Studious, Notion Template for Students 👉notionstudent.com (limited time discount added at checkout)

  • @sky01james28
    @sky01james28 3 роки тому +454

    As a CS major in the US, my opinion is that the math courses we’re required to take are to “weed out the weak.” Computer Science is a LOT of problem solving, and even if you’re never going to calculate the surface area of a hyperbolic shape after passing calculus, the process of learning to do something new and challenging will ALWAYS be relevant to you.

    • @Joe-km7xi
      @Joe-km7xi 3 роки тому +17

      I agree but why can’t they give us more realistic problems related to “coding”. Know what I mean?

    • @Mate811
      @Mate811 3 роки тому +17

      @@Joe-km7xi they have no idea what problems need to be solved in the "real" world

    • @skinnyboystudios9722
      @skinnyboystudios9722 3 роки тому +5

      @@Joe-km7xi They want you to figure it out yourself as a student

    • @iinarrab19
      @iinarrab19 3 роки тому +8

      @@Mate811 well, stretching you with extreme problem solving on CS makes you a better problem solver. you are able to think outside of the box. you see those ways how to calculate in linear algebra or derivatives, as well as min-path algorithms.

    • @Mahdi-rw1px
      @Mahdi-rw1px 3 роки тому +8

      Being in my first semester in cs and im actually not good at maths and reading the sentence "weed out the weak" made me desperate thank you

  • @tankmonx4447
    @tankmonx4447 3 роки тому +430

    *Watching this while in my first semester of Computer Science Degree*

    • @Quballtapout12
      @Quballtapout12 3 роки тому +28

      Watching this right after I graduated May 2020 bro

    • @Quballtapout12
      @Quballtapout12 3 роки тому +15

      tankmonx kang Oh and also, I’m proud of you taking your first step or another step upon many 💯 strive for better in whatever way

    • @Helloomadison
      @Helloomadison 3 роки тому +6

      Same!

    • @wilsonbotlero2363
      @wilsonbotlero2363 3 роки тому +5

      Same.

    • @DevsLikeUs
      @DevsLikeUs 3 роки тому +7

      Good luck !

  • @tannerbarcelos6880
    @tannerbarcelos6880 3 роки тому +312

    Finally someone says it. I am graduating next semester and this is beyond true. Like you said, of course we have coding classes and have electives we can use for mobile or web or machine learning stuff, but the core of the degree is math, theory and “science”
    Glad to see you back brother

    • @Zengo38
      @Zengo38 3 роки тому +26

      exactly we are more mathematicians that use programming concepts to implement the theory

    • @richardnardone7548
      @richardnardone7548 3 роки тому +4

      Graduating next semester too. This semester was the first time I learned languages and frameworks applicable to industry work

    • @shrutimishra399
      @shrutimishra399 3 роки тому

      I guess I can do Maths pretty well but do we need to study physics too???? Cause I'm really like really bad at physics..... 😭😭😭 So if you have any idea then please let me know cause I'm also thinking about taking a CS degree..... Thanks 😘

    • @akali2927
      @akali2927 2 роки тому

      GG's I'm dead
      I should have done my research
      Now I'm enrolled
      And is in first week of class
      What have I gotten myself into?
      Help.

    • @seeker_of_knowlage3568
      @seeker_of_knowlage3568 2 роки тому

      @@akali2927 are you still alive haha. so here is my country thing, maybe you also have it. Here in Canada, we have Colleges and Universities. in college you focus more on practical stuff like building and creating, while in uni you learn more about theories. So technically if you don't like math you can still do pretty good in college.

  • @dontdoit6986
    @dontdoit6986 3 роки тому +84

    Software Engineer “hard” skills are primarily grouped into three categories:
    1. Domain expertise of the software
    2. Expertise in the stack/language/environment.
    3. Understanding of computing fundamentals
    2/3 of these can nail you most jobs.

    • @tear728
      @tear728 3 роки тому +1

      👍

    • @Bestgamingclipsoftheyear
      @Bestgamingclipsoftheyear 3 роки тому

      What about algorithms and problem solving

    • @yashvangala
      @yashvangala 2 роки тому

      wdym by "Domain expertise of the software"? do you mean expertise in a niche language? like R
      or do you mean specialization in a field like computer vision or machine learning?

    • @ilikestuff8218
      @ilikestuff8218 3 місяці тому

      isn't Software Engineering different from Computer Science?

  • @burtondennis
    @burtondennis 3 роки тому +144

    This concept of learning through side projects is incredibly true. As someone who got the CS degree in '93, I can say that does not go away. Every technology we work with is transient. Those side projects keep your skills relevant and that is what defines job security, today. In the end, your boss may be responsible for your job, but you are responsible for your career.

    • @DrProfSlugger
      @DrProfSlugger 3 роки тому +7

      It really depends on what industry you are in. Not every SE job is going to require the same commitment. Job experience will always be more relevant than side projects. A lot of SE jobs are merely supporting existing software which doesn't require the same level of commitment as someone who might want to go work for Tesla, Microsoft, etc. Granted you will probably be doing the same at those companies, but the prestige alone provides them some amazing candidates.
      I am in agreement about the technology being transient. Technologies are merely tools that a developer uses, and new tools come out every day. The skills you pick up are actually what is important. Side projects should be done out of their own self-interest, otherwise one might experience burnout. Burnout is incredibly common in software, and it's pretty obvious why. The push for people to contribute to open source, learn new technologies, work on side projects while also working full-time or in school full-time is honestly a pretty disgusting culture.
      I love programming and creating things, but the culture of software engineering is starting to get a bit toxic IMO. Of course, the people that don't want to go above and beyond are going to be able to find work, which makes it a bit more bearable.
      This was a bit of a rant and might have been off-topic from your point, but I just find the culture sometimes pushes people to make their life about development. Asking people to do side projects when they are working 40+ hours a week is ridiculous. It may create better developers, but ultimately people's lives shouldn't be dictated by that.

    • @NiteshKrRam
      @NiteshKrRam 3 роки тому

      @@DrProfSlugger Well if the person wants to do it then he should try. Life is all about the choices we make. Some way or the other everyone has to push their limits.

    • @DrProfSlugger
      @DrProfSlugger 3 роки тому

      @@NiteshKrRam Oh for sure. I'm not saying people should be held back. We wouldn't have all the great tech if we didn't have the great minds pushing the limits

    • @pedroleguizamon2686
      @pedroleguizamon2686 3 роки тому

      No trying to offend you or anything but I hear it gets competitive with younger workers in the cs field is this true?

    • @amazingme894
      @amazingme894 3 роки тому

      Hey dennis can you talk more about your journey in CS, the challenges, things that were the hardest to overcome, and how you build confidence in a career like this

  • @borgirvspitsah7329
    @borgirvspitsah7329 3 роки тому +241

    As one of my professor said, "You're a computer scientist, not a programmer" or something like that. Basically anyone can learn how to code, but CS is much more than that

    • @christophernuzzi2780
      @christophernuzzi2780 3 роки тому +14

      You think anyone can learn to code? Tell that to all the people who fail CS 100. According to one statistic I've seen, about 1/3 of CS 100 students either fail the class or do not complete it. I know plenty of people who couldn't learn to install software, let alone code!

    • @swagboss10000
      @swagboss10000 3 роки тому +28

      Christopher Nuzzi failing doesn’t mean you can’t learn how to code some ppl it will take more time to learn.

    • @johnwig285
      @johnwig285 3 роки тому +15

      @@christophernuzzi2780 What he meant is that it is harder to learn CS than learning how to only code.

    • @jordixboy
      @jordixboy 3 роки тому +11

      Still, anyone can be a computer scientist (if you want) without a degree, what I mean, you can learn everything taught in a degree, yourself, just like coding, or any knowledge or skill.

    • @skinnyboystudios9722
      @skinnyboystudios9722 3 роки тому +4

      @@jordixboy not anyone. just like not everyone can be a doctor

  • @Helloomadison
    @Helloomadison 3 роки тому +124

    I’m a Junior in my undergrad (and in my first quarter of actual computer science courses, as I just got accepted in to the program.) I was a bit afraid to watch this because I thought I’d hear something that made me think “oh fuck I wish I’d known that sooner” but actually I feel like I had a good grasp already on what you were saying. You make solid videos and you are one of few who puts out real need-to-know knowledge from what I’ve been able to find.
    1. Side projects are so imperative, I wouldn’t be prepared for the work world AT ALL in a 2 years if it weren’t for those. And this is me judging based upon my future course load, they are all just the tip of the iceberg, I don’t think professors have enough time to really give you the in depth knowledge necessary, I’d say the classes are more for you to get a skim level knowledge as a jumping off point. As well as to help you decide what direction you want to go in your career, because computer science can be so broad at times.
    2. If I could change anything about the curriculum it would be the bureaucratic education system, they are requiring me to take another art course, I’ve happily taken an art history already, I don’t mind having a course or two of simple general knowledge, but to say that art history isn’t enough is just ridiculous and will impede on precious time and money. This is just one example.
    2. The language is secondary, you are so on point and the first person I’ve heard explain this well, for example my first course this quarter requires C++ when technically myself and my peers have not yet learned c++ based on the courses we had to take prior. Our advisor basically warned us all, learn it over the summer on your own, or take the extra class that’s referred to as a “skills lab” to just learn c++ on the side. The theories and math are the goal, and c++ is just the side gig basically.
    3. THE MATH. The math is actually why I chose computer science, I thought that if I had to spend 4 years in college, which courses can I tolerate the most and which degree coincides with that (that will also lead to a career I enjoy?) And that’s why I chose computer science, I took all of the math courses you stated, and lucky for me I find them to be enjoyable, so I was okay, but I did find a lot of my peers had a pretty bad attitude about it. I think they felt duped, I don’t think they realized math plays such a role (as well as physics in a way) and they were bitter, their bad attitude led to them having a miserable time and not doing as well, and sadly I don’t see many of them now. The math classes are typically a prereq to be able to gain access to a good computer science program (at least in my state) and if you can’t get a solid grade in these you will not be accepted. You have to be a trooper with math. And for those who think it’s stupid/unnecessary, I get it, it sucks, but try to look at it in a more positive way, it will give you the strength to solve highly complex problems, and those skills are transferable to anything in life, it’s actually very useful, and has helped me in a lot of ways.
    Anyway that’s my way to long rant. All the while still being a completely clueless newb. But just wanted to share with your audience what it’s like being in the thick of it education-wise.
    Thanks for the video!

    • @spicyshizz2850
      @spicyshizz2850 3 роки тому +3

      Thanks this actually helped me a lot, btw what university do u go to?? Do u think going to a bad school in computer science will affect me heavily?

    • @annedeborah5926
      @annedeborah5926 3 роки тому +1

      Thank you so much Madison!!!

    • @ikrammaududi6205
      @ikrammaududi6205 3 роки тому +1

      i agree with the math. My pals used to wonder when we will use all those multiple integrals and differentials in real life.
      It's just i come frome aerospace engineering background. Now that covid hits aerospace badly, i'm learning to code and thanks to math and physics, i can understand coding language pretty easily - pretty easy here compared to c++, learning javascript, python, php are way easier than c++

    • @47los19
      @47los19 2 роки тому +2

      Love this, very thorough. Hope you’re doing good brother!

    • @haitiancreolewithluciano
      @haitiancreolewithluciano 2 роки тому

      *Haha! Don’t tell me about CS if you can’t even count to 5- lol 🤣🤣🤣🤣- but thanks for your thoughtful AND much needed answer*

  • @DonPasquale_
    @DonPasquale_ 3 роки тому +31

    Honestly, this is exactly how I thought my computer science degree would be, which was why I was apprehensive about taking it in the first place. But about 80% of my courses actually ended up being focused on the practical applications and coding. I'm really happy with my degree and it was certainly time well spent for me personally.

    • @gustavomiranda9473
      @gustavomiranda9473 Рік тому +3

      What college did you go to?

    • @HashimAziz1
      @HashimAziz1 Рік тому

      Nowadays it varies so much because that debate exists in the computer science/education world, so whether your degree is more theoretical or practical really depends on the actual curriculum being taught at your university, which is why you have to look up the modules for each individual course.

  • @CaiqueCostarideon
    @CaiqueCostarideon 3 роки тому +54

    I think keeping the fundamentals is extremely important. Especially early on in your career. And as you said, the tech changes and develops over time, but the theory and fundamentals shouldn’t change all that much. It sets students (who are serious about the field) up to have a deeper knowledge of the field of study, which eventually benefits the industry itself. Universities should have electives that focus more on the domain of the industry and be very specific. The only problem with this solution is that a semester isn’t long enough to completely understand a specified domain, so I would actually suggest there be specific industry domain paths that a student can choose from. For instance, if a student wants to learn mobile development for iOS or Android, they would pick a 4 semester linked path (2 years). Each semester is a prerequisite for the next. So the first semester might be intro to swift, second could be intro to iOS Dev, third could be iOS dev level 2, and fourth could be iOS dev level 3 which could require a final project by the end of the semester that a team of students have to present. All on top of learning the core fundamentals of software testing, architecture and design, and algorithms. That way, we keep the fundamentals of the field of study while also building our knowledge of the industry. What do you think about this approach?

    • @fknight
      @fknight  3 роки тому +10

      That would be perfect. Some colleges allow you choose an emphasis within computer science, but it's typically just a course or two that are directly linked, then another course or two that differ from the previous. Your suggestion in having exact paths that are 4 semesters back-to-back, that'll basically teach you 90% of what you need to know for a real job in that specific field (web dev, mobile dev, etc.) would be perfect.

  • @Patient_Zero01
    @Patient_Zero01 3 роки тому +28

    From my experience, people who believe they aren't "good" at math simply give up to soon. That quality will make programming in general very difficult for them. Some basic Calc and Linear Algebra is all you need

    • @matthewsnyder1079
      @matthewsnyder1079 3 роки тому +7

      Yeah but when your course map for the next 4 years is, Calc I, calc II, logic in CS, applied linear algebra, statistics, and discrete mathematics it is understandable why some people would run away from the CS degree.

    • @harikrishnan204
      @harikrishnan204 3 роки тому +2

      i would say linear algebra and discrete maths are the most important....calculus isnt very necessary unless youre into machine learning

    • @bigshrekhorner
      @bigshrekhorner 2 роки тому +1

      @@harikrishnan204 Calculus is pretty much necessary, especially if you are interested for stuff such as simulations or even making a physics engine. Statistics even has a portion of calculus in it.

    • @MidnightIsolde
      @MidnightIsolde Рік тому +1

      It can also be due to uneven and mediocre teaching which leads to a lack of confidence and knowledge gaps.

  • @Sensimuse
    @Sensimuse 3 роки тому +21

    I'm glad you made this video. I hear the exact same sentiments echoed constantly and I think the root of the problem is not understanding what math is. While the formulas and theorems themselves are almost certainly not going to be useful in most development roles, too many people assume that those things comprise the entire field of math. They had a bad experience with calculus in school and throw their hands up "Well I guess I'm no good at math..."
    We need to separate the formulae from the concept of "mathematical thinking" which is itself comprised of strictly logic; it's the only tool we have to build all of the formulae in the first place. The logical reasoning component of math is what's absolutely critical in all areas of software development and if you're not good at that, I highly doubt you can become an effective engineer.

  • @mikeyj011fx5
    @mikeyj011fx5 3 роки тому +176

    In a weird way programming made me better at math

    • @avanisood6283
      @avanisood6283 3 роки тому +7

      Same lol! I don't have that much experience with it, but it did help

    • @myhops
      @myhops 3 роки тому +22

      i think the hardest part of math before programming was application. with programming, you get to see what the math does in real time and can mess around with really complex stuff easier than on paper.

    • @mikeyj011fx5
      @mikeyj011fx5 3 роки тому +6

      @@myhops that actually makes so much sense now

    • @kevinstefanov2841
      @kevinstefanov2841 3 роки тому +7

      To be a software engineer requires you to have the same MINDSET as a mathematician. You don't necessarily need to KNOW a ton of math, but you do need to be smart and have the same mindset as a mathematician.

    • @joseulissescastro4883
      @joseulissescastro4883 3 роки тому +1

      Same here! The logical thinking behind solving a problem helped me a lot in other areas where i need to do problem solving.

  • @TheCookieMuncher96
    @TheCookieMuncher96 3 роки тому +17

    I'm a second year undergrad in the UK doing comp sci.
    In terms of math, I went into first year not having done anything math related since leaving secondary school 6 years prior (i was about average in school for math). In year 1 we had a math module which ran for half of the academic year which involved concepts that i had no idea about, but the lecturer was really good and i spent a lot of time going over the material so i ended up doing just fine in the tests and exam. So you don't have to be a genius going into first year.
    In terms of programming, at the end of first year we were expected to create a piece of software from scratch, using fundamentals of OOP, testing, design using UML etc. This was after having 2 modules of java programming leading up to this point, teaching us the basics and some more advanced techniques with data structures, collections etc. But that's just two modules out of the 8 that we did in first year, the rest was significantly theory based, such as on operating systems, hardware, databases and the software development cycle.
    TLDR:
    Be willing to put time into math and you'll be fine. Put in extra time and effort for programming to stay ahead of the competition.

    • @henrylai7289
      @henrylai7289 3 роки тому +1

      Where do you go if you don’t mind me asking

  • @imjaewilliams
    @imjaewilliams 3 роки тому +39

    I graduated with my CS degree 📜 last year in Dec. I would say keep learn you’re core principles. The problem solving you skills you get from that is what allows you to learn various languages/forms of development. Also you don’t need to be good at math however you can’t be bad either, just average will do unless you wanna be data scientist but most of us want to be software engineers/developers. My personal specialty is game development.

  • @grantthomas1085
    @grantthomas1085 3 роки тому +1

    Yo Forrest thanks man. Sometimes I get down and think about switching majors but your videos always seem to snap me back. Plus you're from VA too! I lived in Newport News/Hampton for quite some time.

  • @FuriouSquirrelz18
    @FuriouSquirrelz18 3 роки тому +20

    Honestly really glad I am going to a community college getting an associate's in Applied PC/Web Development I have friends that are going the traditional route and they wish they went the cheaper and more applied route. Good video!

    • @fknight
      @fknight  3 роки тому +8

      That sounds like a pretty cool program.

    • @OzzyTheGiant
      @OzzyTheGiant 10 місяців тому

      That's a good choice. Most community colleges only require College Algebra anyways.

  • @antonhagelberg7430
    @antonhagelberg7430 3 роки тому +2

    This was a great listen! That's the reason I went the engineering route into a masters in applied mathematics with a specialization in data science. I have a much deeper understanding of the underlying math behind computer science than a comp sci major and is as proficient in applying it because of this.

  • @eliyabadr4277
    @eliyabadr4277 3 роки тому +34

    Never clicked so fast!
    I am a junior in HS and looking into a computer science and enigneering degree... Good content , keep it up man💯

    • @nolimitz1274
      @nolimitz1274 3 роки тому +2

      Same I’m a senior in hs programming everyday 🤘🏿

    • @eliyabadr4277
      @eliyabadr4277 3 роки тому +1

      @@nolimitz1274 gotta hustle!

    • @gregoryakorli8516
      @gregoryakorli8516 3 роки тому +1

      Am already in college guys. Chose web development and app development then you will start with coding

    • @gregoryakorli8516
      @gregoryakorli8516 3 роки тому

      @@nolimitz1274 I start a instagram page and I will bring showing and explain the first language you will start to learn HTML and CSS

    • @eliyabadr4277
      @eliyabadr4277 3 роки тому

      @@gregoryakorli8516 great what is it called?

  • @MrJosephkb
    @MrJosephkb 3 роки тому

    Hey man I just found your channel and I love it. You have a great way of presenting your thoughts and ideas. I look forward to watching much more. Thank you!

  • @TumblinWeeds
    @TumblinWeeds 3 роки тому +33

    I actually don’t think cs should be more applied. If cs were actually an applied degree, frameworks you learn in first year will be obsolete by the time you graduate. So far, working on side projects, I’ve found that frameworks and applications of cs including cs languages are usually the easiest part of cs that _can_ be learned by yourself. But people learning coding by themselves typically never work through discrete math because there seems to be no immediate applications, and this will limit their career in a few years when they do need to use it to progress to the next level. Another example is math like linear algebra. Many self taught programmers will learn machine learning-the modules and code-such that they can somewhat use it, but they don’t learn the math, and thus they can never fully understand or improve machine learning algorithms.
    That is the other thing. If you want to do “cutting edge” software like research in AI, you will need the fundamentals. Not only would you need a bachelors, but possibly even a masters or even PhD. If your goal is making apps and websites you might never use the theory in cs, but research and innovation is where the theory actually comes in.
    Frameworks are probably best learned at boot camps if you must pay to have instruction, since they are so short the skills will still be relevant at completion.

    • @sebabatsomashego7988
      @sebabatsomashego7988 3 роки тому

      If it's not much of a bother, could you please tell me what basic knowledge do you think that a good programmer must have

    • @Zengo38
      @Zengo38 3 роки тому

      I agree completely. If you want to dev apps and stuff you don't need any degree. However if you want to build the tools for those who use that and more complex concepts like A.I., optimization, etc. you will need to understand at the depth the concepts of CS, especially the math.

    • @angeloselarja
      @angeloselarja 3 роки тому

      F

    • @anthonyesquire9830
      @anthonyesquire9830 3 роки тому +7

      @@sebabatsomashego7988 Hello. A useful book is "How To Think Like A Programmer" by V. Anton Spraul. This is a good book teaching the principles of problem-solving, especially in programming situations.
      The rest amounts to Mathematics. The problem is that Mathematics as a subject is misunderstood. It is more about reasoning with abstract spaces than plugging equations. The Discrete Mathematics is necessary for the Deisgn and Analysis of Algorithms sections of Computer Science. The reason we need to prove the correctness of an algorithm is due to the limit number of cases for testing. This is the same for a Mathematical theorem. We need to proof the chain rule is true in Calculus if are to apply it to any differentiable function composition. There are infinitely many functions that are differentiable. Hence, we need to find a proof that this rule is always true. The same goes for the algorithm. We need to trust that it will always produce the correct output. The specifics of how may differ with each algorithm. Imagine the air traffic controllers did not verify the software in their planes and runways systems? It would be insane if we didn't have confidence that there is reasonable guarentee the software was stable.
      Mathematics is perhaps difficult because of two things:
      1. It deals with abstract spaces that are not easily associated with reality e.g. vector spaces. One needs to be careful of elementary intuition, lacking in rigor. This is the semantic of Mathematics - its meaning. What is a set? What an algebra? Etc..
      2. Not only are specific objects not properly understood or visualized intuitively, the language itself, is syntactically exhaustive. It uses concepts from logic such as logical forms to make arguments about abstract spaces while using sophisticated notation to do so. Hence, the Mathematics looks disgusting to the untrained eye.
      The best way to ease into real Mathematics is to begin learning critical thinking. Once logical forms make sense intuitive, with concepts you're familiar with, you may recognize the forms in Mathematics. Hence, learning logic first is a good idea. Then, understanding abstract spaces is the challenge. If you succeed with these two, you will realize that Mathematicians are making arguments (proofs) about relationships within this abstract space. These can then be used to reason about the material plane upon translation into abstract representation - mathematical modeling.
      The easier view of algorithms is with summation. An algorithms is series of steps to accoplish a computational task. Hence, to analyze the efficiency, we need to count those steps. We use summations. Based on the summations, we can derive closed form solutions which will give us the complexity of the algorithm - the number of operations involved to complete the task. This way, we can use such complexities to compare and classify algorithms when selecting them for a problem. The evaluation process comes after validation and verification, again, using proofs.
      I am studying both Mathematics and Computing. The issue is in understanding how to think about mathematics, not just problems within it. It is also about finding a consistent and logical intuition. Furthermore, Mathematics is used to reason precisely about CS topics.

    • @sebabatsomashego7988
      @sebabatsomashego7988 3 роки тому

      @@anthonyesquire9830 Wow thanks a lot for the info, it's truly appreciated 🙏

  • @mostechroom9780
    @mostechroom9780 3 роки тому

    You could not have said it any better, great stuff. I am currently doing research in Generative Adversarial Networks for Computer Science. But at my college, our math is pretty heavy. Since we are doing AI from first principles, this is a very informative video. Liked and subscribed

  • @yorgostsitsikas4350
    @yorgostsitsikas4350 3 роки тому

    That's a hundred percent correct! The magic is in the abstract problem solving. Programming is just a means to realizing your ideas. I am currently pursuing a PhD in computer science and everytime I teach I actively try to instill this very important idea to my students. You seem to have gotten a deeper understanding of how things work. Keep it up!

  • @justsharesumn
    @justsharesumn 3 роки тому +1

    So true I relate with this so much. 3 courses that I took which were optional... web dev part 1 n 2 and UI design were the ones that really provided some practical application..database was good too.. everything else is mostly theory. More practical aspects should be introduced so that in the end, graduates can feel somewhat confident when applying for jobs. Esp when each job postings have a long list of requirements that can seem so foreign...

  • @alieninvaders1188
    @alieninvaders1188 Рік тому +2

    4 days ago, I would have disageed with you. But what happened 3 days ago revealed an eye opening discovery. There was a software engineer with over 30+ years of experience that coudln't hire anyone. He tried to solve his own problem by becoming a professor in computer science. I am one of his students and he did tell the class: "There's a reason why computer scientists are paid a lot. The REAL ones that get paid the most are the ones that are good at the math heavy operations" . Over 75% of the students droped the class saying "lol boomer" and theres only less than 20 of us left willing to power through. I'm glad that you're willing to tell everyone the painful truth.

  • @carolinekim7163
    @carolinekim7163 3 роки тому

    Totally agreed with ya! I finished my school with an associate degree but went back to learn and pursue for bachelor CS degree. Learning lots of math which I didn't learn much. One of my courses teaches all the math theory and now we are converting that math into words and logic to the algorithm. It is kinda cool.

  • @LawrenceDanDizon
    @LawrenceDanDizon 3 роки тому

    Yes! I agree with everything. I went to school for Computer Science Engineering in the US and I think that the current curriculum of teaching the core concepts of Computer Science fundamentals (things that never change as you said) is the way to go. When I first started, I had no idea of any software development or programming. While in school, I did not do any side projects (which I recommend you do) and to explore more practical aspects as Forrest mentions. It's not until I graduated that I decided to focus on mobile development specifically iOS and that is something I had to learn on my own. The thing about spending those four years in college is that you will spend more time, but your foundation is so strong that you will have an advanced view of computer science compared to someone who just takes a 6 month or 12 month long bootcamp. Those bootcamps will rush, get you what you need, but your fundamentals will fall short when you experience more difficult problems ahead. Computer Science is definitely math intensive, and if you are serious about going deeper, having strong Math skills will pay you in the long run. And taking those General Education classes really helped me in other ways: writing, math, physics, problem solving, public speaking, etc.
    (Another final major benefit is being a part of a community or a social club. THATS WHAT COLLEGE IS FOR! Get yourself out there ;) )
    If you don't have access to a computer science degree I still believe that a bootcamp or any online resource/book is valuable. You just have to find the right resources and be willing to do the hard work, push yourself, be your own motivation, and make yourself accountable. Looking back, after finishing my degree, I do believe that you can really achieve and learn anything on your own (thanks Engineering school), you just have to FOCUS. To first explore, but as you go forward, find out which specific field you want to get into.

  • @digitalglutton
    @digitalglutton 3 роки тому +41

    Learning through applied knowledge is better in my opinion. Obviously you need to learn theory initially, but like you kind of said, CS curriculum is theory heavy. What you don’t use, you lose. You def need to learn core concepts before you begin programming, but I think it’s better to learn as you go, rather than learning all theory and then trying to apply it to real world problems later. You need to see how the pieces fit together. I think theory makes more sense when you “build” and learn through trial and error. Like in your boat analogy, you’ll learn how to use the jigsaw by working on the boat. You’ll learn how to make the boat by learning whatever theory goes into that, then merging the two things together and undergoing a trial and error process learning more as you go.

    • @fknight
      @fknight  3 роки тому +6

      Exactly this. I agree.

    • @bigshrekhorner
      @bigshrekhorner 2 роки тому

      That's not true for all fields. Pure Mathematics for example are mostly theoretical with little application. Learning such things is more dependent on the learner being able to think outside the box.

    • @sergiocuadrado1088
      @sergiocuadrado1088 Рік тому +1

      @@bigshrekhorner Thing is biologically it doesn't make sense for your brain to learn really hard things if you don't need it

    • @bigshrekhorner
      @bigshrekhorner Рік тому

      @@sergiocuadrado1088 Define "hard".
      Difficulty is by a huge degree subjective and relative to the person in question, so there's no point about talking "difficult knowledge" biologically.
      For example, back to mathematicians, some mathematicians find physics weird/hard (which would appear strange considering that many people regard those two to have sometimes similar difficulty) or many more find history or literature hard (which also appears strange, because one would imagine that learning about real events or discussing a text would be certainly easier than learning about wacky imaginary concepts). And to more applied knowledge, many mathematicians would definitely find engineering hard (I am doing myself a major in physics, and I find much of mechanical engineering, for example, difficult to learn or retain knowledge of, even though physics and mech. engineering are a bit more related compared to pure math and engineering).
      It doesn't have to do with objective difficulty, because that's not something that is definable, it has to do with what you are used to and where your talents lie.
      The brain isn't made to "accept knowledge that it will need" in the way ~in which I assume~ you imply (as in, knowledge for something it will face irl, like making a boat to cross a river, like the OG example), it is made to be "susceptible" to training, to repetition, and be modifiable by it (side note, this is the reason why propaganda and advertisement works, after all). Not to mention that if you use pure mathematics a lot, that means you need them, so there's no point for your brain to disregard them.
      Usage and application aren't the same thing necessarily. The brain desires usage to retain something, AKA that it will see something and play around with it, even if it's restricted to its imaginary space. Application means that you also put it in action to solve a problem in the "real world", but a brain doesn't require this to learn something. Application implies usage, but imho, usage doesn't imply application

  • @Takosaga
    @Takosaga 3 роки тому

    As someone that a degree in math and a cert in teaching, I'm thankful for all the courses online to learn computer science. Slowly transitioning to being a full time CS teaching in high school. After learning the fundamentals of programming, making projects is the best way of learning for what ever you are trying to achieve. Learning about APIs, app dev, web dev, game dev and whatever through projects so I know a little about everything to let students be free in what they approach

  • @averydrago
    @averydrago 3 роки тому +3

    I love to learn by discovery. CS is incredible and even though I am not a CS major (I am Stats), I still love CS and I can say from my experience that I really enjoy spending hours upon hours and coding and learning how to do things and thinking about how it all works and trying to figure it out. It is hard for me to learn a lot of material from a lecture or a lab, it is why I read a lot from my math textbooks and I come out much stronger than before by diving in and reading and spending time learning the material on my own. So self learning and discovery are for me, which is why I love CS because it's all there, you just gotta know how to fit the pieces together in different ways. I would say the hardest part for me about programming is coming up with an idea for a project.

  • @Teddy678910
    @Teddy678910 2 роки тому +2

    my take on this as someone with a BSCS who did NOT do any side projects - just getting the degree puts you behind people that go the self-taught route in terms of landing a job. By that, I mean that those self-taught people are learning by building things small and large while in school, I only built what was assigned and a lot of the time was wondering when I was going to have a chance to make a real app or website. I didn't even fully complete my senior project and still made out of that course with a B somehow lol. All that being said, learning a lot of core principles and theory made me better understand how everything works under the hood which I think will help me out in the long run. If you're in school right now, please find some side projects that pique your interest and apply what you're learning in school - you will be much better off for it!

  • @bhriguraj843
    @bhriguraj843 3 роки тому +9

    Watching this from India... Respect for the content. 💛
    Taking the math part into consideration i took cs in a top level college in India and i knew that math would be hard🤔 but it turned out to be manageable. Also i loved math from the beginning.

  • @ijabmrahman3511
    @ijabmrahman3511 3 роки тому

    Got this video in my recommendation ❤️. I currently got admission in Computer Science and I feel pretty lucky to see this. Great Content bro. I never heard someone saying this in youtube.

  • @BookOfMorman
    @BookOfMorman 3 роки тому

    Forrest, your videos are fantastic and ridiculously helpful!! Thank you!

  • @trestenpool9045
    @trestenpool9045 3 роки тому

    Im graduating next semester and this is probably the best explanation of how it went. I like the traditional format because I feel like it weeds out the people doing it just for the money or the degree.

  • @matthewsnyder1079
    @matthewsnyder1079 3 роки тому

    This is so true. I am only a freshman but I realized pretty quickly that if I want to learn something I got to work on personal projects. Also that math part very true lol, I read a lot about not needing to know math to do CS before I got into college but looking at the course map for my CS degree, its like Calc I, Calc II, logic in CS, stats, linear algebra, discrete algebra.

  • @inquation4491
    @inquation4491 3 роки тому +29

    OMG finally! What drives me crazy is when people say "Ohhhh so you're a programmer...." it's so diminishing (Don't get me wrong I do program a lot) but imo saying "I'm a programmer" is as relevant as saying you're "brush user" when you're actually a painter. Programming is just a tool among many!!!!

  • @xenophone2006
    @xenophone2006 3 роки тому

    Great video! I think you make some good points about CS being mostly theory. I think it should be, since it's Computer *SCIENCE*. To me, that means you're dealing not just with the language flavor of the month, but the underlying concepts. However, I do think you can have a degree that is concentrated on the applied aspects of CS.
    The school I went to had that. They had a hardcore CS degree where you did the theory, but they had a major called Information Technology, where you learned how to program (three classes in Java when I was there) plus whatever specialization you decided on (database, networking, web design, etc). I think this is a good way to get those of us (myself included) who might like tech, but really don't want to go into the theory. Also, the math was way easier...only one or two classes in calculus.

  • @kvncnls
    @kvncnls 3 роки тому +14

    Thank you for finally clearing that up. I see so many self-taught dev UA-camRS gloating about "Don't waste money on a CS degree! It's useless! I can totally do what they do!". You can easily find these UA-camrs because they're getting popular for saying stuff like this. It actually annoys me, so this comment is turning into a rant.
    CS majors use math that they learned in class to build algorithms for things like biometrics (facial recognition, fingerprint, etc.), machine learning, AI, physics, etc.
    CS majors INVENT new tools and technologies while Software engineers USE tools and technologies to connect businesses with their consumers and provide a service.
    If anything, the SWE degree is what these people are confusing it with. P.S: I'm a self-taught dev.

  • @sibusisodlamini2366
    @sibusisodlamini2366 3 роки тому

    I am currently learning a computer science degree and as someone who is receiving a somewhat traditional education I still would refer to myself as self taught because there is so much that we don't cover. Our course is very practical but it kind of reminds of doing questions on codewars or hackerrank.
    The questions in themselves are valuable learning oppertunities but you learn much more when you actually get to learn what we use in a project. That is something we haven't do too much of and i don't see that changing anytime soon

  • @BSingh-on4qr
    @BSingh-on4qr 3 роки тому +2

    Idc about the theory, only the application, but realising the importance of the theory and maths like you confirmed, is very encouraging to stick to the degree

  • @DevsLikeUs
    @DevsLikeUs 3 роки тому +6

    So true, do side projects and internships if you go the computer science degree route !

  • @arturfil
    @arturfil 3 роки тому +3

    So I'm graduating this semester and you NEED math. Probability and stats, linear algebra and discrete maths for data science (machine learning), game dev and data sctructures and alg, respectively. In addition to that, you need to know calc I & II and algebra.
    That said I wouldn't say that the C.S. classes are math intensive but you will struggle if you don't have a good grasp of math, but I wouldn't say you need to get A's or even B's if you have a really good grasp of them.
    Now, if you start doing graphics intensive programs or data analysis like machine learning models then you probably will have to revise your math classes but that's about it and if you like what you do, the math part becomes easy in a way.
    I don't dislike math but I am not excited to do math, I just try to understand it for the sake of my classes (and I'm not that great at it either). So it really depends what you do afterwards how math intensive a C.S. career can get but yeah you can be a great C.S. major and just understand enough about your math classes.

  • @untoxic_boyfriends
    @untoxic_boyfriends 3 роки тому

    Wow!!! I'm a first year CS student and I didn't really take my math that serious as I thought that math wasn't that crucial . Only studied to pass . Thank you so much for sharing your perspective about the issue. You literally gave me a different and a more positive mindset. Big ups to you @ForrestKnight

    • @patr1ck767
      @patr1ck767 2 роки тому

      Hey, How you been doing?

  • @aiman1562
    @aiman1562 3 роки тому

    I'm a senior CS student now, and I'm at the same boat as you without all the side projects. All I have under my name is theoretical stuff that I don't know how to apply and I'm forgetting it each day cause I don't use them. When I started applying for internships I didn't know what to put as a practical knowledge! Which was frustrating not knowing how to IMPLEMENT.
    SO YES! MORE PRACTICAL KNOW-HOW IS A MUST. let the theory be more heavy on the grad studies.

  • @benjensen9041
    @benjensen9041 2 роки тому +1

    Awesome information and down to earth reality. Thank you. What kind of boat are you building by the way?

  • @josh1234567892
    @josh1234567892 3 роки тому +4

    My computer science has gotten me much more proficient at math, and I'm proud of it!
    It is a struggle though man, this semester I flunked probability and statistics. I thought it would be easier than calc 1 and 2 lol but apparently, it wasn't for me lmao.

  • @camerongreen9328
    @camerongreen9328 3 роки тому +6

    100% change it, I was pissed off when I got my first internship and I was a noob with zero practical knowledge and my mentor was just amazed. Now working in industry for 4 years I am blow away by how unprepared graduates are

    • @jw_023
      @jw_023 3 роки тому

      Cameron Green idk if you work with developers but if you do, do you find any difference between self-taught vs graduates in terms of preparedness and stuff like that?

    • @camerongreen9328
      @camerongreen9328 3 роки тому +4

      @@jw_023 100% self taught are much more practical and can figure out things work wise easier however their code isn't the best and they have a hard time meeting style requirements. Graduates understand the theory and reason behind certain design patterns or reasons why things were built in X way. I believe either side needs to dive into the other to be well rounded but schools don't inform students and they kind just get shocked into it when they get an internship or their first job and same goes for self taught.

  • @maxlearningtech3423
    @maxlearningtech3423 3 роки тому

    My first semester as a CS student.
    I learn alot of from your videos.
    Bless up fam.
    Namibia🇳🇦,loves you.

  • @-XArchLinuxEnjoyerX-
    @-XArchLinuxEnjoyerX- 3 роки тому

    I would think that excluding any professional scenario (working in a team, having to follow set requirements etc...) being able to build stuff (website, mobile app, operating system, communication protocol) is mostly about being able to problem solve in a certain way that I believe learning the fundamental core principles will allow you to do. While the tools may (read as: will almost definitely) change in the next 2,3,4, or 5 years, the skills of being taught how to look at a problem, look at what you know (taught so far in that course), and how you can use what you already know plus do a little learning on your own, to solve said problem will always be applicable. I would be really interested to hear any opposing arguments, or contrasting opinions :)
    Little disclaimer: Just a Bsc Computer Science first year student here, and this is of course just my opinion

  • @annedeborah5926
    @annedeborah5926 3 роки тому

    I am a big visual learner and sometimes auditory. I love Math. Why? Because it challenges me and make me think.I would not necessarily say that I Am excellent at it, but I still do my best and there has ever been any reason to drop it or loose interest of Maths(I know topics can get tough and tough, but I came into the subject expecting it.... Good or Bad, I am ready!!) .... !!I am currently in my first semester of 1st year and taking all the math courses mentioned in the video. I don't like Stats as it is more theoretical than practical!!!.... With everything else I am fine.
    Thank you so much for the video. Blessings to you✨✨
    P. S:Majoring in CS and I will be specialising in Software Engineering

  • @rogueronin1339
    @rogueronin1339 3 роки тому +6

    I'm currently studying cs in nigeria , im in my second year and honestly i didnt expect to see all this math & theory work so yeah id really love applicable knowledge for a change. But I'm also scared that i cant keep up with the school work & coding seeing that im not so good in either of those

  • @wavybone2k
    @wavybone2k 3 роки тому

    I'm in my second year at a Computer Science degree at a college instead of at a university and it's actually a lot more applied than theory. I've already learned multiple languages such as Python, C#, HTML/CSS/JS, SQL, Swift, Kotlin and many more but out of the 4 years, there are only 3 math courses, two of which (Discrete Math and Linear Algebra) were in the first year. I prefer the hands-on approach a lot more than the theory for sure and have learned a lot more programming compared to friends doing Computer Science at universities.

  • @Nick-ww7yu
    @Nick-ww7yu 3 роки тому

    My thoughts exactly as I graduated last April. Definitely need more applied knowledge

  • @imho2278
    @imho2278 3 роки тому

    I've just finished the first semester of electronic engineering and it was all about how to design finite state machines. So we started with binary and worked our way up to Boolean Algebra, figuring out the most efficient way to apply logic gates as inputs.
    Apart from 2 sessions where we soldered components to make a dedicated Zumo shield, it was all maths and writing.
    The students tended to not know where it was all leading. They didn't know why you need resistors in a circuit. They didn't know how logic gates worked.
    I blessed my earlier studies in basic electrical, and watched youtube vids like these, and Ben Eater, and Big Clive. I tore down circuits, built circuits, used my Arduino to learn the Zumo code, and finally figured out how to use an oscilloscope.
    I had come in with a patchwork of theory and practice going back decades,and I needed every scrap of it.
    I was luckier than the 19 year olds, fresh out of high school, who often had no idea.
    Curriculum design tries to narrow things down to the most basic level. But what is supplied by the institution, and how much are they relying on what the students already know, or can find out? There's the question.

  • @bigshrekhorner
    @bigshrekhorner 2 роки тому

    I am from Greece and I am not a Computer Science student, I am a Physics student, but we do have a class that is focused around Computer Science; specifically, viewing Physics problems through the eyes of a Computer Scientist. We learn algorithms that are useful for various physics problems, like Monte Carlo or the Gauss Method, we learn how to approach and solve problems and equations, how to view calculus from what we call an "analytical perspective" and some basic computer concepts, like the essence of the computer and how it works, the binary system, how are numbers represented by the computer etc. Coding is only a tool we use and even though we do learn a specific language (we are separated into two, some learn Python, others use C++) the point of the class isn't to learn coding (just like in CS, as you said) but to learn the basics of problem solving. They even don't require you to use a specific language for the final exams; you can even describe with words the algorithm for all they care, since coding is just a tool and not the focus of the class.

  • @arrowai
    @arrowai Рік тому +1

    watching this in my last sem of undergrad, i completely agree with u on all points. i was pretty confused these past few days, thinking if i shud pursue a masters.
    Most of the youtubers talk about 2 problems:
    1. cost of getting masters and
    2. the industry experience u lose while pursuing ur degree
    These are relevant problems but i like going deep with the theory, alongside implementing the practical industry stuff.
    so here's my plan:
    1. I'm gonna pursue masters in CS from BHU (Benaras Hindu University), it costs alot less widout compromising on academics, so im saved from student debts
    2. In order to stay relevant and keep gaining industry experience, i'll have to look for internships and jobs
    I hope these work out for me, goodluck my future self

  • @PWingert1966
    @PWingert1966 3 роки тому +1

    Cobol, PL/I, IBM/370 Assembler, and Pascal. Those were the base of my computer science degree in 1985. We didn't have the web. AI language was Scheme and it was so new we had to teach ourselves from vendors' notes. I have yet to use any of them. I had to teach myself c. I spend most of my time using SQL and database reporting tools with some minor customizations using the Tools API. I make good money but I am a designer, not a programmer. I use a hammer when I need it and I buy and learn how to use a hammer drill when I have a concrete wall in my design.

  • @jamieboudreau5535
    @jamieboudreau5535 3 роки тому

    Applied knowledge is generally covered at a technical college, here in Canada that would be something like going to College to become a welder, plumber, electrician (trades).
    Computer science to me seems more comparable to engineering degrees, there is some applicable knowledge within these types of programs but largely the learning objectives are focused on core concepts. (Creating safe/efficient structures and systems)
    Within the “tech” industry there seems to be more of a focus on being able to do both, the technical procedure and understand the proverbial “why” that drives it. As a welder you can follow the plans laid out by architects and engineers with little to no worry about how the plans come together in the end or will affect further processes down the line. Within tech this doesn’t work and I think for good reason.
    By putting an emphasis on understanding computation thinking / problem solving you are expecting all teams members to be on the same page (mostly). You may have an expert in a particular framework but by having and understanding of the core principles you will likely have a much easier time following and working with said by expert.
    I currently work in tech support at a larger software company and I’m teaching myself CS core concepts while I prepare to apply to the company’s internal learning program. The designers of the program have specifically stated that they look for candidates that show an aptitude for understanding the core concepts of CS.
    Given ten months of testing you can learn to push code but if you don’t have a desire or interest in the core computer science principles what’s the point ?

  • @jabthejewboy
    @jabthejewboy 3 роки тому

    I think the most valuable thing I'm learning as a current CS student isn't applied knowledge from the professor but how to find the information I need to know. There's no way a professor could teach you how to use every single java library out there and how to implement every single function in those libraries but what they can reach you is the core principles and how to understand the various tools you might need to use.

  • @KenJee_ds
    @KenJee_ds 3 роки тому

    🔥 take. I still have no clue what I learned in the systems courses that I took... I would decidedly make all courses project based. Perhaps even math?

  • @aminchavez
    @aminchavez 3 роки тому

    I did a bootcamp before beginning my cs degree. I think cs programs aught to require a 9-10 week web dev bootcamp in the summer before starting the program. It gives some real context to the theory and provides a practical use for the programming.

  • @harjeetkajal
    @harjeetkajal 3 роки тому

    We need a right mix of theoretical and practical computer science in a cs degree. Whatever learnt has to be put into some practice which improves your coding skills and can also help you gain a deeper insight into the core concepts. Afterall, if you plan to join industry after your cs degree, practical skills will matter a lot.

  • @zachadolphe3633
    @zachadolphe3633 3 роки тому +1

    watching this in my 3rd year of comp sci and I completely agree. A good analogy I think is Computer science is like astronomy, it's not about the study of telescopes but using telescopes to study astro physical phenomena. Comp sci is about studying computational phenomena like algorithms and computability, which requires using computers and programming to study that phenomena.

  • @shashir
    @shashir 3 роки тому

    Nice video! I work at Google (my undergraduate major was math). In my experience, the best computer scientists are those who try to solve hard problems in a logical and methodical way. It has little to do with your intimate knowledge of "languages", "frameworks", and "platforms" -- those change every year. However, the problem solving skills that you learn in mathematics will stay with you for your entire career. Besides, if you are writing programs, then you are already *doing* math (look up Curry-Howard isomorphism -- computer programs are mathematical proofs).
    General life advice: learn to enjoy doing the hard things in life. Do not get caught up with whether you are good at those things or not. Persistence will make you better if you are not.

  • @jakeschlottag932
    @jakeschlottag932 3 роки тому +2

    I think that there is a place for application & theory. However, I almost think they could be separate pathways. I think there should be specific pathways, one pathway might be someone who intends to get their masters & do research (learn more theories). Another pathway to learning industry standards and tools to be more prepared to jump head first into your first job out of college.

    • @DrProfSlugger
      @DrProfSlugger 3 роки тому +1

      My major is actually exactly that. It's an Information Technology major with a concentration in Software Development. University of Cincinnati if you are curious about the curriculum.
      Our classes are dedicated to learning various tools to develop software.

  • @CodeWithCal
    @CodeWithCal 3 роки тому +1

    For me personally, I feel like my Computer Science degree really helped me learn the basics and really even just discover what the basics even are haha. So in that sense it was fantastic.
    But my side projects have probably taught me more collectively. When I learn something to use today in my current project, the little part of my brain says "we should remember this". It has some value because I know I'm using this skill now.

  • @fknight
    @fknight  2 роки тому

    This is an automated comment to display likes & dislikes for the video you're currently watching, since UA-cam decided to disable the dislike count on videos.
    Views: 57844
    Likes: 2939
    Dislikes: 21
    Ratio: 99.3%
    Last Updated: Dec-29-2021
    UA-cam, please don't ban or shadowban me. I learned how to do this from your own docs.
    Lol thanks.

  • @fubarace1027
    @fubarace1027 3 роки тому

    Oh, and to the math part of your video. I was talking to a friend who's been programming as a job for about 6-8 years now, I asked him that very question. His opinion was that in what he does, which for context is .Net, math beyond what you'd consider common sense is rarely needed. He said that math is much more necessary in game dev when you often have to programming using a physics engine. However, he later told me he had been thinking about the question some, and based on the proficiency of his coworkers, perhaps a little more math should be necessary / expected.
    Unfortunately he didn't give me the context of that statement.

  • @TheAwesomeness490
    @TheAwesomeness490 3 роки тому +2

    If you want an applied version of computer science, consider an engineering discipline. That is literally what they were made for, even if they come with their own fair share of problems. It is a terribly reckless idea to change computer science as a discipline by way of changing its core requirements, just to make it a more applied science.
    The field of computer science, with its issues, exists as it does for a reason, and while there is always room for improvement, one of the reasons that there exists a standardized curriculum with OOP, software engineering principles, languages, data structures, algorithms, discrete math, etc. is because these are foundational topics within computer science deemed to be the bare minimum for higher level study and research.
    If you just go in with knowledge of what computer science actually is, rather than trying to assert your expectations onto the degree program and growing frustrated because expectations don't align with reality, then you will probably have a far better time and gain a lot more from the program because you won't be busy being upset by the way it is structured. You will also realize that industry skills will forever require maintenance, and so developing the ability to build them independently through side projects while in university is an essential skill if you do want to work as a software engineer. If your team at X tech company switches tech stacks and suddenly you have to learn new technologies but you never developed an efficient way of doing so (because you thought doing side projects was stupid), then you're going to be in for a rough time. Change is a constant, especially in industry, and so discretizing schoolwork and relevant experience is actually really important for long term success as a professional.

  • @crystal14w
    @crystal14w 3 роки тому

    If the whole CS degree can be revamped, I would say projects together and individually and industry projects are important. There is a difference in learning best practices to optimize your code and actually doing the optimization for actual production code. The point is not to have a degree that everyone else has with the same classes and projects, but the opportunity to stand out from your peers. The ability to work on projects that can set you apart from other applicants will show potential jobs that you are motivated to put effort beyond classroom curriculum. Overall it’s definitely a tough decision to choose a major.

  • @crisscrossam
    @crisscrossam 3 роки тому

    i am freshly graduated in CS. to be honest the reason i went into this major is not explicitly to learn programming, more so to get familiar with all the concepts of CS and what makes computers work the way they do. but in my university unfortunately, we only had like 2 math courses and even in the programming and algorithms courses we didn't get any practice projects, even though i expected there to be. and i wish they did give us implementation projects because i didn't do any side projects on my own and because of that i feel very incompetent.
    i was also considering a master's degree in data science but as you said it requires a lot of math, and i don't consider myself to be very good at math so i don't know how that's going to go.
    i don't know who's more at fault here, me for not being as invested as i should have been in university and not doing any side projects, or the university for not giving us any projects to practice on.

  • @marm.8469
    @marm.8469 3 роки тому

    I asked my teacher about how much math was in learning cs....he told me it was mostly patterns and language learning.....wish I had content like this back when I still had the chance to broaden my math skillset in hs :c it's my senior year and I pivoted from art to stem and now I'm a little nervous going into community college, but I believe in my ability to learn and apply new skills

  • @ryansell622
    @ryansell622 2 роки тому

    First semester in CS in 4 days. I can learn math pretty quickly but luckily I don't have Calc this semester. Thanks for the honesty.

  • @aeb1305
    @aeb1305 3 роки тому +4

    My opinion: get rid of the pre reqs and just have math courses and 1 programming class. This degree is math heavy. I’m still a freshman in college for cs so the only math I have so far is college algebra, but I know what I’m taking in 2-3 years: cal 1-2(maybe 3) stats and discrete math. And the one thing Professors should teach us is how to familiarize yourself with an IDE and cmd prompt. Students in my java 1 class have a hard time using eclipse bc of the lack of instruction from the ide itself and from the instructor. Another thing that they should teach are RELEVANT programming languages. I know that java c/c++ are still in the market but going forward, they should teach go, swift, objective C, etc. Also, focus more on data structures and algorithms bc you need that for a job obviously.

  • @alexcondurachi8423
    @alexcondurachi8423 3 роки тому

    I am a cs for economics student and Im realy happy Ive chosen this profile. I do a lot of economy(and related Fields),sale,math and programing too . Basicaly you become an economist and a programer and thats the best mix, you dont learn just to Code ahaha.

  • @seeker_of_knowlage3568
    @seeker_of_knowlage3568 2 роки тому

    Here in Canada, we have Colleges and Universities. in college you focus more on practical stuff like building and creating, while in uni you learn more about theories. So technically if you don't like math you can still do pretty good in college.

  • @marcolerena456
    @marcolerena456 3 роки тому +1

    I love what computer science taught me. If you can get through computer science, you can definitely Google React, read the docs and make a site.

  • @ginoskotheon3
    @ginoskotheon3 3 роки тому +1

    I don't have a CS degree. I'm a self-taught developer who got started a little late in the game (I landed my first job at 38 years of age and I'm presently 42 with an even better job). I often wish I could just get a degree (which I still might if the opportunity presents itself) because I find myself having to go back and learn the stuff anyways (besides the calculus). The fundamentals are emphasized for a reason and even though I have a good job and I enjoy my work, I know that I'm limited because of my lack of education in certain areas. To be a good developer the fundamentals need to be learned (yes, even the algorithms). Thankfully, there are tons of resources all over the internet.

  • @freilyestevez3543
    @freilyestevez3543 3 роки тому +2

    Love ur videos they are really helpful

  • @fubarace1027
    @fubarace1027 3 роки тому

    I'm getting MY CS degree right now. A couple things. I'm doing a lot of theory in class, I don't mind the theory part, but I wish there was more of a focus on how the theory is applied. For instance..... We are writing a program that does X, the problem with writing a program that does X, is problem y. The way we are going to solve problem y is... and we get some theory with a little bit of code to show implementation of theory.
    If most of the college theory classes were presented in that format, basically some real reasoning as to why you are learning a concept, things would go much better. As a for instance, right now in the more rigorous of the two Computer Science classes I'm taking, we've spent the last couple months on search algorithms, big O notation, and some graph and tree theory. I learned it all, all my grades have been 100% + (he offers the occasional extra credit). I have no REAL idea what I just learned and how its useful. I've seen videos discussing code complexity in terms of big O notation, but I have no idea how to evaluate that, other than if you used this search algorithm, best/average/worst case Big O ratings are this: which I can rattle off because I memorized a chart for a test.
    I think/hope a future class goes more into detail, but you get my point. And to answer the possible question you might ask, in TX, the class is labeled COSC 1437 Programming Fundamentals II. It's the equivalent to your CS 250 I think it was. (I saw a video of yours where you discussed your college). For us, it's considered a freshman class.
    But yeah, I'd love more focus on why and where the theory is useful with more code examples of application. Even if it's just reviewing other people's code to see what the deal is.

  • @discontinuity
    @discontinuity 3 роки тому

    What we need is two programs that many colleges don't offer.
    We need one program for CS, where its more of a traditional way of doing CS. And another program more focused on the business side of things, something like "Programming Degree" or "Software Dev", etc... Where its more focused on building apps, scripts, etc.
    On the "Math" side of things, it really depends on what your field will be. If you're a front-end developer, and you're building consumer apps, and fiddling with CSS and stuff, you may not need anything past Trig. However, if you start getting into games development, more backend stuff, and discrete math for fast algorithms and stuff, big data, data science, you will need math. However often its enough to just understand what "Math" (algorithm/function/procedure) you need to Import & Use. I had friends who took statistics courses in college and were doing summations by hand, whereas in my courses we were using software and focused less on the arithmetic and more on "How do I setup this calculation correctly and interpret the data properly". That's what I think people mean by "You don't need math"; they really mean "You dont need to crunch numbers by hand, but you need to understand the concepts and when to use them", in certain fields of computation.

  • @ketnaa
    @ketnaa 3 роки тому

    A great question... Food for thought: wouldn't it be horrible if all that was left were super-users and front-end developers? I'm learning about computers and programming myself and I am getting currently under the impression everyone is obsessed with the user side of things, how to make everything easier, more intuitive (which is important), but less and less people really, trully delve into the way computers work. How stuff really works... How does that letter your press on the keyboard appear on the screen? What if we used thyristors instead of transistors for basic operations? Can you imagine a full adder with thyristors? Things like that... So I think it CS should definitely encompass some basics about how computers work, but it should all be revolving around how we solve problems - starting with why we developed and how we developed first computers. My 5 cents. Thanks for the post.

  • @augustong8371
    @augustong8371 3 роки тому +1

    Yes theory is important, but applied learning is more practical in order to understand how the theories are being implemented! As a current college student myself, i had to spent my own time to catch up with what's going on within the tech industry to stay relevant so that i'm prepared for coding interviews to come in order to secure internship with the necessary skillsets required!

  • @katieglamer
    @katieglamer 2 роки тому

    I guess it just depends on the type of learner you are. People learn differently, maybe theory and foundational stuff is amazing for some people and not for others. I find (generally - in all subjects) that learning from doing a project I feel passionate about is the best way to learn a new skill.

  • @anthonyesquire9830
    @anthonyesquire9830 3 роки тому +3

    The problem is that Mathematics as a subject is misunderstood. It is more about reasoning with abstract spaces than plugging equations. The Discrete Mathematics is necessary for the Deisgn and Analysis of Algorithms sections of Computer Science. The reason we need to prove the correctness of an algorithm is due to the limit number of cases for testing. This is the same for a Mathematical theorem. We need to proof the chain rule is true in Calculus if are to apply it to any differentiable function composition. There are infinitely many functions that are differentiable. Hence, we need to find a proof that this rule is always true. The same goes for the algorithm. We need to trust that it will always produce the correct output. The specifics of how may differ with each algorithm. Imagine the air traffic controllers did not verify the software in their planes and runways systems? It would be insane if we didn't have confidence that there is reasonable guarentee the software was stable.
    Mathematics is perhaps difficult because of two things:
    1. It deals with abstract spaces that are not easily associated with reality e.g. vector spaces. One needs to be careful of elementary intuition, lacking in rigor. This is the semantic of Mathematics - its meaning. What is a set? What an algebra? Etc..
    2. Not only are specific objects not properly understood or visualized intuitively, the language itself, is syntactically exhaustive. It uses concepts from logic such as logical forms to make arguments about abstract spaces while using sophisticated notation to do so. Hence, the Mathematics looks disgusting to the untrained eye.
    The best way to ease into real Mathematics is to begin learning critical thinking. Once logical forms make sense intuitive, with concepts you're familiar with, you may recognize the forms in Mathematics. Hence, learning logic first is a good idea. Then, understanding abstract spaces is the challenge. If you succeed with these two, you will realize that Mathematicians are making arguments (proofs) about relationships within this abstract space. These can then be used to reason about the material plane upon translation into abstract representation - mathematical modeling.
    The easier view of algorithms is with summation. An algorithms is series of steps to accoplish a computational task. Hence, to analyze the efficiency, we need to count those steps. We use summations. Based on the summations, we can derive closed form solutions which will give us the complexity of the algorithm - the number of operations involved to complete the task. This way, we can use such complexities to compare and classify algorithms when selecting them for a problem. The evaluation process comes after validation and verification, again, using proofs.
    I am studying both Mathematics and Computing. The issue is in understanding how to think about mathematics, not just problems within it. It is also about finding a consistent and logical intuition. Furthermore, Mathematics is used to reason precisely about CS topics.

  • @JustinPBarnett
    @JustinPBarnett 3 роки тому +6

    HA!! I had TWO classes that actually taught me things I use in my day-to-day software job. I HIGHLY recommend learning on UA-cam, courses or even a code-camp and then do freelancing to earn 💰💰💰 and as always, practicing and side projects are for sure the way you learn the best. Experience is the best teacher 👨‍🏫

    • @jw_023
      @jw_023 3 роки тому +1

      Justin P Barnett do you notice any difference in terms of preparedness for the job among new “self-taught” developers vs graduates?

    • @JustinPBarnett
      @JustinPBarnett 3 роки тому +2

      Jordan Walters honestly there’s not much difference! You really just have to see what’s in their profile

    • @greentracing8079
      @greentracing8079 3 роки тому +3

      Jordan Walters honestly IMO/experience, the only difference between college/professional led classes and self taught pathways has been the financial cost for handing me a set of resources that I will still have to self learn and hope for a really good study group to self learn together lol. Some of the TA's have gone out of their way to help when they could but most professors have such a restricted window of availability they only offer like a hour or two once a week for group help and there's always so many questions from students that your lucky to even get to your particular issue ned alone solving it.

    • @JustinPBarnett
      @JustinPBarnett 3 роки тому +5

      GreenT Racing really agree with that. Programming is really a self-taught skill regardless of what education platform you choose. Comes down to how self disciplined you are and what you’re financially able to do. College will keep you accountable but is also the most expensive.

  • @miladmoravej4195
    @miladmoravej4195 3 роки тому +4

    Yeap, I'm in my first term in college for a computer science degree. And O already started Calculus 1.

  • @michaelwong9934
    @michaelwong9934 3 роки тому +1

    Amen brother! Everyone should watch this video before even attempting a Computer Science degree!

  • @edwardgonzalez6331
    @edwardgonzalez6331 3 роки тому +9

    "Do your math damn it, do your math!" Awesome!!!!

  • @felicaoretga1359
    @felicaoretga1359 3 роки тому +1

    I switched my CS degree to IT because of the that is what my advisor said was a good idea but because I have a programming track math is still required. Mainly calculus 1

  • @Joe-km7xi
    @Joe-km7xi 3 роки тому

    I have no problem with linear algebra or calculus but I cannot stand my intro to computation class (discrete math, theory, etc..). Especially now that we are fully remote, the class is absolute hell. It’s known to be the hardest class at my school and moves at a rate which is unrealistic. A requirement for all CS majors at my school and none of it makes any sense or seems to have any purpose other than making my head hurt.
    So far my entire time at school as a CS major has felt pointless. I’ve learned a small bit of java and data structures. Currently they are teaching us javascript (but only some of it).
    I wish the 4 years were more “applied” as you mentioned in the video, cause at this rate, it feels like a waste of my money and time.

  • @tawhidaliza
    @tawhidaliza 3 роки тому +1

    Watched your videos before admitted into the college(for CS). Watching your video while I am doing loads of math homework 😷

  • @PeterTroutman
    @PeterTroutman 2 роки тому

    Honestly, I think the answer for all education is a mixture. Like object oriented learning for example. It could be said, "Teach core principle through example"
    First you may need to focus on the basics of principle, but ultimately a dynamic learning system should be able to teach both principle and example at the same time.
    The real problem is creating and adapting dynamic learning resources parallel to the rapidly changing market of applicable demand. But as long as principle is covered, specific examples of application not explicitly covered should be picked up way easier.
    Just IMO.

  • @richardvergara
    @richardvergara 3 роки тому

    What kind of SSD did you get for your 2012 MacBook Air? I have a 2013 MacBook Air, starting my major in CS at TCC this summer and wanted to be prepared so the hardware doesn’t get in the way. Thank you!!!

  • @bitzplz
    @bitzplz Рік тому

    Been working almost 2 years as a self-taught developer now. Never needed any math. Never needed any of those DS & Algos calculations. Never needed any advanced knowledge of DS or Algos in general. All the languages have this stuff built into them without you needing to understand how they are implemented. Yes, I conceptionally understand the difference between different sorting algos etc., but I have never needed it in my work. Also, all my colleagues with CS degrees told me that a lot of what they learned does not benefit them in their day to day work - they actively discouraged me from pursuing a degree, in fact.

  • @spacecats3649
    @spacecats3649 3 роки тому +1

    And companies wonder why CS student don't really know how to program? I agree. I never felt that great programming but learned how to problem solving. Only way I learned about coding was doing side projects.

  • @beast-ke2wr
    @beast-ke2wr 3 роки тому +10

    you need to be good at math but that's to understand the logic. I mean you need math to understand complicated data structures

  • @aiman1562
    @aiman1562 3 роки тому

    Question for you Forest!
    If you had to start doing UA-cam from scared, how would you do it ? Main focus is CS and tech etc.
    What things would you avoid? What things would you invest in?
    How would you build your audience?
    That's questions now haha

  • @souparnikaswarna1577
    @souparnikaswarna1577 3 роки тому +4

    Thanku sir for ur information 🙏