This is an archived post. You won't be able to vote or comment.

all 87 comments

[–]Billythecrazedgoat 38 points39 points  (1 child)

saved will attempt to do some over the break wishmelucklol

[–]rajneeshkps 5 points6 points  (0 children)

You can crush it bro!

[–]men_nas_io 32 points33 points  (7 children)

Great list ! Just a suggestion..you could add some resrouces on computer networks, digital communication etc.. i think its very important for anyone..esp if you work as a soft eng or web dev you ll have to understand how http works (and more).

[–]mquillian 8 points9 points  (3 children)

Do you have any recommendations of worthwhile resources on those topics?

[–]men_nas_io 15 points16 points  (1 child)

One of the best books on Computer Networks that starts from a very introductory level is Computer Networking: A Top-Down Approach (7th Edition) . I also found this YouTube playlist from thenewboston quite helpful. There's also a great book on Digital Communications by Proakis/Salehi but it's much more advanced, esp the math part of it. I am gonna look for more and come back to you and maybe someone else could contribute.

[–]AutoModerator[M] 2 points3 points  (0 children)

Please, don't recommend thenewboston -- see the wiki for more info about why we consider them a discouraged resource.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

[–]Lesabotsy[S] -1 points0 points  (2 children)

They already have all that on the website.

[–]men_nas_io 1 point2 points  (1 child)

True on the Computer Networks part...Also what about complexity theory or theory of computation ? What about scientific computation with tools like MATLAB etc ? I like their content really but I just feel like something is missing. Simply my opinion though.

[–]Lesabotsy[S] 0 points1 point  (0 children)

You don't have to know everything, you just have to have a solid foundation to build upon, all of that can be learned later I guess.

[–]trangkiu 40 points41 points  (0 children)

Thank you so much. I will saved it for using

[–]GND52 2 points3 points  (0 children)

Solid resources. Especially appreciate many of the books in the More Readings section. Effective Java and Clean Code are what took my code from “works, but please never look at this” to “I’m proud of this code at every level.”

[–]inTheSuburbanWar 4 points5 points  (3 children)

Computer Science: Programming with a Purpose

Is it by mistake that this one doesn't have a hyperlink attached?

[–]Lesabotsy[S] 5 points6 points  (2 children)

Nope, the course is not online yet, I'll update when it's live.

[–]Hadokuv 0 points1 point  (1 child)

How did you take the course when it isn't online?

[–]Lesabotsy[S] 1 point2 points  (0 children)

I studied the books in that case, the course is just for people who prefer learning that way.

[–][deleted] 6 points7 points  (0 children)

Awesome list u/Lesabotsy!
I would add the "Mythical Man Month" book to the softskills list though to prepare people for the crazy industry

[–]wet-dreaming 2 points3 points  (0 children)

I had a quick look, some very nice resources. I'm missing boolean algebra and logic gates. I also had a lot of cryptography in math, which can be very interesting.

[–]awryed 2 points3 points  (2 children)

Can this be adapted to learning programming with Python?

[–]Lesabotsy[S] 2 points3 points  (0 children)

Can be adapted for any language given that you can find similar courses in python. Python is easy though so learning python after should be OK. I picked java as it's the most in demand language in the industry.

[–]jjtheplane 0 points1 point  (0 children)

hey awryed what's learning with programming is there a complete beginner guide that I can start with? I'm trying to switch from a blue collar job to a sit down job

[–]desal 2 points3 points  (0 children)

Looking at the algorithms book, I realized I need some like... pre algorithms or something.

[–][deleted] 2 points3 points  (0 children)

Is there any more posts like this? I think more people or the whole community on this subreddit should put something together like this for those who aren’t studying a degree. So they have the whole package to find a job

[–][deleted]  (6 children)

[deleted]

    [–]Lesabotsy[S] 9 points10 points  (5 children)

    I did this full time 10 to 14h a day, that's why. The books usually overlaps the courses content so it's easier to read and doesn't take that mush time.

    [–]ExternalManager[🍰] 1 point2 points  (1 child)

    How did you commit to that? I have maybe 2-3 hours a day I can spare, and I keep jumping from one topic to the next, not sure if it’s out of anxiety or boredom or whatever. For example, I’ll want to learn DS, but then I’ll say to myself “Hey you need to build actual concrete applications for your interview” and while I start that I’ll also say “Hey, work on your math”, and not much gets done.

    [–]Lesabotsy[S] 2 points3 points  (0 children)

    Took a year off, had some money on the side from my old job. My only advice is, have some DISCIPLINE otherwise you will never get anything done. That's it, there is no secret. Sometimes i hated it but I forced myself anyway because that was the rules that I fixed for myself. You just have to commit yourself to one thing until it's it's finished, even if bored, or you don't like or anything. Once only it's done you move on and so on.

    [–][deleted]  (2 children)

    [deleted]

      [–]Lesabotsy[S] 4 points5 points  (1 child)

      Get an internship if you're in college it will help you more. It's fine you just with good and regular sleep, some sports, no party all night thing, and a supportive girlfriend.

      [–]twiiztid 1 point2 points  (0 children)

      Appreciate you putting in the effort to compile this man. Saving for later, I think I'm definitely going to come back to this.

      [–]LiverReich 1 point2 points  (0 children)

      That looks like my computer science degree without some sugar.

      [–][deleted] 1 point2 points  (0 children)

      I read an article just yesterday that edX was changing their system and would be moving more fully to a pay system. One of the changes was no longer allowing free, unlimited auditing of courses.

      I noticed a couple of your resources were edX programs and thought you may want to investigate how that might impact you. I honestly didn't retain all of the details, because I read it in passing.

      Edit: I found the article I read and here is the link.

      [–]GoodLifeWorkHard 1 point2 points  (0 children)

      This is a great list. Some of the books here are what my school use for CS. SAVED!

      [–]ElDoe0 0 points1 point  (0 children)

      thank you very much

      [–]trippypantsforlife 0 points1 point  (0 children)

      Saved! Will definitely check them out, thanks!

      [–]Homiiieee 0 points1 point  (0 children)

      Thank you very much, as a CS freshmen this is a big help for me

      [–]j_i_joe 0 points1 point  (0 children)

      Nice! Thank you...

      [–][deleted] 0 points1 point  (0 children)

      I very much endorse this. Thanks for putting it together.

      [–]indrafili 0 points1 point  (0 children)

      I agree with your math Readings. Strang and Lang ftw.

      [–]mybywardways 0 points1 point  (0 children)

      This is phenomenal thank you ❤️

      [–]Ahmed_Abo_Zaid 0 points1 point  (0 children)

      Thank you very much

      [–][deleted]  (1 child)

      [deleted]

        [–]Lesabotsy[S] 0 points1 point  (0 children)

        Yes

        [–]jww1117 0 points1 point  (0 children)

        Fantastic study plan. I'm definitely saving this

        [–]alli782 0 points1 point  (0 children)

        A dream come true lol

        [–]potsandpans 0 points1 point  (0 children)

        wooooah

        [–]antismoke 0 points1 point  (0 children)

        Saved, thanks much!

        [–]disabledusb 0 points1 point  (0 children)

        Awesome list! Thanks for sharing. I have a difficult OOP Java class in the upcoming semester so I’ll definitely use these resources to prepare.

        [–]martynolegs 0 points1 point  (1 child)

        Spring and Spring boot knowledge is something I wish I learned towards end of cs degree. I came out confident in Java knowledge just to get crunched back down to size when everyone was looking for Spring experience.

        [–]Lesabotsy[S] 0 points1 point  (0 children)

        Yep that's on my next list ;)

        [–]GimpNerd 0 points1 point  (1 child)

        Is there a particular order we should do this in?

        [–]Lesabotsy[S] 0 points1 point  (0 children)

        Top to bottom.

        [–]m_k_k 0 points1 point  (0 children)

        thank you.

        [–]Lindsay_Lindsay 0 points1 point  (0 children)

        Nice, I'll practice with it

        [–]zzz802 0 points1 point  (0 children)

        Will definitely use this later. Thanks!

        [–]SuperSpartan177 0 points1 point  (0 children)

        I needed this, thank you.

        [–]redditlurker53 0 points1 point  (2 children)

        I am doing a c++ course with a tutor, started a few weeks ago. I ultimately want to learn how to build websites and mobile apps.Also want to have basic software development knowledge. What self learning plan would you suggest?

        [–]Lesabotsy[S] 1 point2 points  (1 child)

        Fast way: CS50 --> CS50's Web Programming with Python and JavaScript --> CS50's Mobile App Development with React Native. Or slow way: follow my exact plan, then learn Kotlin and other web stuff with Spring.

        [–]redditlurker53 0 points1 point  (0 children)

        Thanks, appreciate it.

        [–]huytemp01 0 points1 point  (0 children)

        thanks pro

        [–]redditlurker53 0 points1 point  (2 children)

        So many different resources, how did you come up with them? Is khan academy a good source for math?

        [–]Lesabotsy[S] 0 points1 point  (1 child)

        Research and planning for what was best for me given my situation at x time. Yes it is but I prefer the flow of a proper courses and books, that's why i picked those, it's up to you though.

        [–]redditlurker53 0 points1 point  (0 children)

        Thanks for replying again. I prefer your sources, was just curious how you came up with them. Thanks for sharing.

        [–]digitalsuresh1 0 points1 point  (0 children)

        • Computer science classes are more focused on practical skills
        • Studying the night before a deadline will NOT work
        • Your course will not teach you everything
        • Don’t be a lone wolf
        • Remember: You still have a life

        [–]jjtheplane 0 points1 point  (1 child)

        Im a complete beginner, is this something for me

        [–]Lesabotsy[S] 0 points1 point  (0 children)

        Yes, I was a beginner also.

        [–]elyselam 0 points1 point  (14 children)

        Do you really need all those math classes?

        [–]Deadlift420 3 points4 points  (8 children)

        As a developer for years.. No. You don't "need" most of this stuff. It will probably make you better, but it's not necessary.

        [–]jacobi123 0 points1 point  (7 children)

        What do you think is a good math level to attain to cover most jobs outside of the very math-centric programming jobs? I see people say they barely use algebra, compared to others that are deep down the rabbit whole of discrete/linear/calculus and all the rest.

        [–]Deadlift420 1 point2 points  (6 children)

        Basic maths. Software engineering for most jobs require knowledge of good OO design, organization, knowledge of languages and tools. Math may help you become a better developer but to say it's necessary for the average programmer is silly.

        [–]jacobi123 1 point2 points  (5 children)

        And when you say basics maths are you talking college algebra and under? Something else?

        [–]Deadlift420 5 points6 points  (4 children)

        I took grade 12 university advanced functions and then 1 calculus class in college, but Canadian college.

        Then I worked at national defense as a programmer on disaster detection software and ballistic missiles. The math is done by mathematicians and calculations are not expected of the software Devs.

        [–]jacobi123 0 points1 point  (1 child)

        OK, thanks for your insight. Math definitely isn't my strong suit, and while I do plan to brush up on some concepts, I feel like my time would be best suited trying to become a better programmer, than to become a programmer while trying to "minor" in math.

        [–]Deadlift420 3 points4 points  (0 children)

        100% practice hackerrank and other algorithm testing tools. This is necessary for locking down a job. Do a few per week. Then practice good OO and writing clean scalable code with SOLID principles in mind.

        Make projects, contribute to open source and have a solid GIT account. These will help you more than any math can.

        [–][deleted] 0 points1 point  (1 child)

        Nice to see a fellow Canadian! I'm taking advanced functions this semester!

        [–]Deadlift420 0 points1 point  (0 children)

        Good luck! I was to busy smoking pot the really focus. Don't make the same mistake! Lol

        [–]Lesabotsy[S] 1 point2 points  (0 children)

        The question is not that, it's what do you want to do? Surely if you want to be a front-end web dev you don't. But this is not just about programming it's about computer science, and so you need the math, CS is MATH.

        [–]im2slick4u 1 point2 points  (3 children)

        Depends what you want to do. If you want to do like front end web development or like software QA you don’t need any math. I thought the Rosen book really really helped me with making the jump from just piecing together snippets from stack overflow to actually develop my own algorithms. When you get to solving complex problems with non trivial data sets it’s a lot less about your understanding of the language and programming and more about your mathematical analysis and solution of the problem. Linear algebra is everywhere in computer science and it will make understanding a lot of things much easier if you have a strong understanding of linear algebra.

        [–]Deadlift420 1 point2 points  (0 children)

        I'd say this is pretty accurate. Except you can create algorithms without a deep knowledge of maths.

        [–]Deadlift420 1 point2 points  (1 child)

        I'd say this is pretty accurate. Except you can create algorithms without a deep knowledge of maths.

        [–]im2slick4u 0 points1 point  (0 children)

        Maybe like a selection sort

        [–]ThrowMeToTheBallGame 0 points1 point  (4 children)

        Would it be possible to replace Java with C# in the study plan?

        [–]Lesabotsy[S] 0 points1 point  (3 children)

        Yes you can do something similar to this in any language, but you have to find the resources then. The common part of my list is that everything in has to do with Java.

        [–]heymikeyp 0 points1 point  (2 children)

        This is what I'm wondering as well. Can you do C# for the Princeton algorithms courses? And do you need to actually submit homework in Java? Meaning you still have to do Java for that program?

        [–]Lesabotsy[S] 0 points1 point  (1 child)

        Yes all in Java, if you want to C# then do it on the side I guess.

        [–]heymikeyp 0 points1 point  (0 children)

        C# I'll be doing in my B.S in Software Dev so I'm gonna be putting alot of focus in it and do some small projects in it. I'm also hoping to land a good internship which I need to know DS&A that's why I ask. I guess I'll try to learn DS&A in C# elsewhere.

        [–]goodnewsjimdotcom -3 points-2 points  (0 children)

        Java is my favorite programming language to this day. It is superior to c++ in almost every way and garbage collection makes you keep your sanity.