No.544907
This is the successor to a popular thread about self-directed computer science and programming education. As well as functioning as a kind of study group, people of all skill-levels are welcome to discuss courses, their own leaning, or programming projects in this thread. Please join us if you've ever wanted to learn to program or build for yourself a more formal education in CS.
The courses on Coursera and EDx often do runs with set start dates, end dates, and task deadlines, wherein you can pay a fee in order to receive accreditation for your accomplishment. However, if you're not interesting in virtual certificates almost all are free to take self-paced at any time.
Recommended Beginner Courses:
https://www.edx.org/course/introduction-computer-science-mitx-6-00-1x-6 (Python2.7)
https://www.edx.org/course/introduction-computer-science-harvardx-cs50x (C and some other languages) [warning: memes]
https://www.coursera.org/learn/build-a-computer/ (Build a computer from basic logic gates; highly recommended)
Curriculum outlines:
(For the very dedicated)
https://gitgud.io/Midskiller/computer-science
https://spin.atomicobject.com/2015/05/15/obtaining-thorough-cs-background-online/
Where to find other courses:
https://ocw.mit.edu/courses/electrical-engineering-and-computer-science/
https://www.edx.org/
https://www.coursera.org/
I would recommend some textbooks, however I don't know any well, other than SICP, which needs no introduction. Please point out any other resources you've found helpful, including textbooks, courses or something else entirely.
Please note: while this is all free as in free beer, most of these sites and much of the software they recommend is not free as in freedom. There is a lot of JS to enable. Consider it an investment so that in the future your views will hold more clout as a famous hacker.
No.544950
Technology is considered harmful and deprecated
No.545279
>>544907
What's the context/justification/speech of the man on the .gif?, spoonfeed me on this pls
No.545287
>>545279
6.001 video lectures, they teach computing science using scheme
No.545294
>>545279
I deleted my previous comment, I found video that it is taken from.
https://www.youtube.com/watch?v=2Op3QLzMgSY
No.545302
>wasting time watching videos
It's much more efficient to read
No.545305
>>545287
>>545294
I saw, thank you both.
I'm still grinding through "Learn Python the Hard Way", since I think I need that level of repetition for the ideas and concepts to stick with me, once I'm done with that I was thinking on taking this course:
http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-01sc-introduction-to-electrical-engineering-and-computer-science-i-spring-2011/Syllabus/
since is the one MIT says it's designed to be 100% for self study.
The build a computer one definitively catch my eye, which reminds me I should definitively finish reading "Code - the Hidden Language of Computer Hardware and Software", which someone else recommended on a thread about books I can't find right now, Oh well.
No.545533
>>545305
Did you try the introductory course from MIT using Python?
I've heard mixed things about LPTHW, but I'm liking the intro class. I started when the last thread was posted but slacked off. Even though it's been a while I started up again today. I forgot how much I love solving problems from this class.
No.545561
>>545533
No, that being because Python wasn't exactly what I wanted to learn when the last thread showed up, I wanted to learn C, but I'm still too stupid for K & R, got to the exercises in section 1.2 or something and could not do them so I left it alone, then I figured I had to start somewhere so I returned to LPTHW and started again from the beginning thinking that with dedication I could breeze through it first started it like one year and a half ago, and said to myself to just do it. I was still using Windows back then
Good luck continuing the program, maybe I'll look into it too, but first I gotta finish what I started.
No.545579
>>545561
K&R C isn't indented to be an introduction to programming at all, it's to teach you the ins and outs of C.
Does anyone know what the relationship is between MIT 6.001 that's on edx and 6.01 on OCW? Is 6.00x an updated version of the course, or an online variant?
No.545586
Updated OSSU fork to 2.0
See CHANGELOG.md for fixes made and courses that were removed.
https://gitgud.io/Midskiller/computer-science/blob/master/CHANGELOG.md
No.545594
>>545586
Thanks for keeping it line with upstream.
I wonder what the rationale for taking so many courses out of the main stream was, even if a few are obvious bloat.
No.545604
>>545594
Think of the curriculum as the minimum
while the courses that were moved to extras folder are the specializations that are optional which you can take after finishing the curriculum.
No.545692
>>545586
>ponyfag avatar
>uses a name
>uses a trip
>maintains a git repo that isn't program source code
cancer cancer cancer cancer
No.545700
>>544907
I'll check this out. As of now, I'm reading the C# Yellow Book from that GitHub archive. Don't know if it's shit or not, but I figured that since it was a beginner's guide and a good stepping stone for C++.
No.545883
>>545692
>complaining about non-issues
cancer
No.546097
>>545561
That makes sense. I agree we gotta start somewhere. Time management is my biggest hurdle but I figure if I have time to bs on the internet I have time to do this.
Good luck to you too.
No.546100
>>545579
I'm not quite sure, but I think the one on Edx is from a later year than the one on their ocw
No.546258
>>545579
>K&R C isn't indented to be an introduction to programming at all, it's to teach you the ins and outs of C.
Yeah, figured that much, I did check another book after that, "The C Programming Language", which I found to be easier, but still considered that for my own good I should start with baby mode.
>>546097
Yeah, I'm big on procrastination myself.
No.546267
Recent graduate with B.S. in CS here.
My university was shitty in some ways, I only learned Java in 4 years.
Tried the python course last week, but it was just too boring retreading the basics.
Is LPTHW better for me?
No.546271
>>546267
I'm not a fan of Learn <X> The Hard Way, if you're already familiar with programming n general, Python shouldn't take you long to learn. Just look for a site that outlines the language instead of going into basic tutorials.
No.546274
File: 1458365277598.jpg (130.99 KB, 786x657, 262:219, you_have_done_that_to_your….jpg)

>>546267
You've been programming for four years, and you haven't taken it upon yourself to teach yourself another language in all that time? I hope you've at least been churning out Java programs like crazy in that time, and not pissing your life away playing vidya on bangblows.
If you are actually competent in your first language, it shouldn't take you more than a hour or so the grasp the basics of any new language by going through their official introduction/tutorial. It should only take a couple of days after that to be able to write non-trivial programs.
You blame your University for being shitty, but you don't realize that the reason they are shitty is because they lower their standards to accommodate retards like you.
If you're actually serious about wanting to become a good programmer, stop wasting your fucking time and actually take it seriously.
No.546279
>>546274
I've done 2 Python projects, 2 C projects, a dozen C++ projects, messed with a handful of functional languages..
It doesn't stick. I have to look up how to do a lot of things every time I switch back to a language (excluding Java, and most of C++). I want to learn right.
No.546288
>>546279
Language syntax is not what programming is. There are IDE hints and automatic checks for that. Different concepts is what you should get.
You probably should've tried writing programs doing real tasks instead of demonstrations from introductory courses.
It is also perfectly sane to ditch introductory courses targeting non-programmers.
No.546294
>>546279
Insignificant minor differences and implementation details of each language are mostly unimportant. As long as you have a solid understanding of Computer Science concepts, software design principles, the technology that comprises the language, and programming practices, the rest will come naturally.
Worrying about memorizing stupid little details (i.e. the symbols Ruby has arbitrarily chosen to denote variable scope, or in which order a library function accepts parameters) is the classic sign of a beginner.
No.546321
>>545692
And I will continue as long as I can piss off the likes of you.
If you can't handle that then I doubt you can finish a MOOC.
No.546345
>>545302
Depends strongly on a person. Most millennials have a problem with maintaining focus for a longer periods of time, necessary for understanding longer chains of implications, but are great at grasping many unrelated short implications. So series of short videos might be more efficient for them. Most MOOCs are designed with that in mind. Basically, internet formatted their brains.
But in my opinion, they should just learn how to sit on their asses for 2 hours straight doing what needs to be done. That's also one of the not so obvious benefits of college education.
>>546294
I never understood language wars. In real world, when you have a task to do, you just pick an appropriate language (or most commonly are forced to use one) which you learn just barely enough to do it.
No.546346
I have a question to anyone interested in self education ITT - how old are you people?
No.546349
>>546346
24, pissed away my college education learning/doing practically nothing due to school being shit, but saw the light, now that I'm faced with the real world anyway, and started to get head into my field (EE) plus yeah, It might be like >>546274 implies, we as students grew too complacent, also I was wallowing on depression and self loathing but that's besides the point
No.546377
>>546346
24, flunked out of college three years in a row because I didn't put any work into my studies, was experimenting with drugs (bad idea) and struggling with various mental issues.
I'm not much better today than I was back then, procrastination is still a huge problem, but at least I've been clean for almost a year and have plenty of time for self education.
No.546433
>>546346
In my 20s. Dropped out of Uni, I enjoy mathematics and programming.
No.546459
there was a chart that people often posted on /tech/ with lots algorithms to make, anyone have it?
No.546470
>>546459
Bumping for this. Sounds interesting.
No.546743
>>546288
>Language syntax is not what programming is.
I hate it when people say that.
Yes it is.
I've been trying to learn C for such a long fucking time but nobody really teaches the syntax, or enough of it to allow me to really do anything.
People just want to talk about theories and ideas all the time, which is more of computer science, not programming.
Programming is actually writing programs into a text editor.
Fuck me.
No.546745
another one for electronics
No.546782
No.546822
>>546279
> I have to look up how to do a lot of things every time I switch back to a language
What do you mean by this? You have to look up function names? Or look up syntax? Or are you saying you need to look up how to design data structures and algorithms?
No.546823
>>546743
How many books have you tried so far? How many programs have you wrote? How long were they?
Learning the syntax is the easy part. Most people start having real problems when they realize they can't program anything without a proper CS knowledge.
I started to get a hang of C when I had to write assignments for my data structures class. Things like linked list, skip list, min-max heap, bst, avl tree etc. Some of them took me a few days and several hundred lines of code to complete, but thanks to that something finally clicked inside of me.
No.546837
>>546741
>07 Project Euler
>mfw
>>546743
Stephen Prata, "C Primer Plus" basically covers C syntax from A to Z.
Then there is also this: http://en.cppreference.com/w/c
Seriously though, syntax is "the easy part", especially with language as simple as C.
No.546865
>>546743
If you already know how to program just read K&R C, it's designed to have you learn C's syntax and all its intricacies as quickly as possible. Otherwise I've heard good things about C: a Modern Approach.
C isn't an exceptionally hard language to learn, the basic syntax is simple and the feature-set is relatively small. It was my first language because I woke up one day and decided I wanted to make a video game. The result after many weeks, since I knew literally nothing about programming, was 2000 lines of spaghetti code that let you walk around a grid with some multicoloured rats.
No.546897
>>546743
C is a relatively simple language, the syntax is designed to be easily parsed by compilers. Thus, it follows that even if the syntax may look complex or unsightly, it is always possible to reason through C syntax once you know the rules, such as "declaration follows use", or the spiral rule.
http://c-faq.com/decl/spiral.anderson.html
int *ptr; // pointer to an integer
5 * (*ptr); // multiples 5 by the value at the address space pointed to by ptr
int *function(void); // function that takes no arguments and returns a pointer to an integer
int (*func_ptr)(int, int); // pointer to a function which takes 2 integers as arguments and returns an integer
No.546936
>>546837
Isn't it like 90% of people just solve the first few problems in Euler then quit. I remember when I did it I was in the top 25 for my, small, country and I did less than 100 problems.
No.546983
whats the deal about c? isnt c++ the same language with more stuff?
No.546994
No.547049
Ebin memes.
Also pick your MIT waifu, Thinkpad asian is mine.
No.547059
>>547049
Poorfag girl with hand-me down hoodie with non-problem prescription glasses and shitty Toshiba is mine. She doesn't care about appearances or she would be using a macbook like everyone else.
No.547060
>>547059
>doesn't care about appearances
If she didn't, she would look like the other girl sitting in her row.
No.547075
>>547049
>>547059
Girl without computer (between Thinkpad girl and apple using asian) is my MIT waifu. She understands that CS is not about computers.
No.547076
>>547059
But she kinda looks like anne frank
No.547217
>>544950
The less harmful solution is suicide.
No.547318
>>547060
Don't be talking shit about mai waifu nigger, like she'll care or even hear what you have to say, bitch so focused it ain't funny, plus her lips and braid pair nicely if you know what I'm talking about.
No.547416
>>546743
>>Language syntax is not what programming is.
>I hate it when people say that.
>Yes it is.
Language syntax is a small part of programming. If you don't get it, you won't be able to program. But if you don't get much more than it, you still won't be able to program.
No.547436
>>547416
>Language syntax is a small part of programming
btw - it's silly how compact C syntax is in the bnf notation. You could write it down on a single sheet of paper.
No.547677
>>544907
Is SICP just /tech/ meme or is it useful book?
No.547682
No.547688
>>547677
Useful, but get it only for a good intro to CS, not if you just want to write programs asap
No.547701
>>545305
I liked what I read of LPtHW but it only goes through python2. Is there a python3 version/alternative?
No.547719
>>547677
Everything it talks about is still relevant today, it teaches CS concepts rather than any language and never assumes little of its audience.
No.547759
>>547701
just fucking code everyday you fucking lazy incompetent babbby. do you need everything spoonfed to you?
No.547767
>>547049
I claim Cylon number 8 (apple using asian), she will be my robot waifu now.
No.547769
>>547075
she's not taking notes though
No.547796
6.00.2x is where things start to get confusing for me. Everything mentioned so far: plotting, randomness, hashing, probability, standard deviation and coefficients of variation feel really hard to understand intuitively. I still complete the finger exercises and problem sets with relative ease, but feel like most of the stuff from the lectures goes right over my head.
>>547049
>waifu
disgusting
No.548162
>>547796
I got a 98% in 6.00.1x but in 6.00.2x I can understand but not keep up with the class and my job. I took my wife to see the DeadPool movie (10/10 btw), so its not always easy to take the time to study. I will keep at 6.00.2x just for fun, even if I am not going for the certificate like in the previous class. Certificate or no certificate, its about the joy of computer science.
No.548335
>>548162
I'm a NEET and actually postponing job hunting in favor of doing the course. I wonder how many of us are left still going through 6.00.2x
Writing functions for a simple vacuuming robot in Problem Set 2 is pretty cool.
No.548351
>>548335
Haha, I'm glad I'm not the only one stalling the job hunt with pretend education.
I've been finding 6002 very fun, especially the robot assignment, however I've certainly had to concentrate on it a lot more. I'd like to say that I'm good at the logical side of programming, but my maths isn't as strong as it should be, so I spent some time getting my head around the probabilistic calculations. Maths will probably be the next part of my studies.
No.548376
Can anyone produce a list of CS books equivalent to the education of a CS student at a top/near-top university with a lot of the best/classic comp sci books?
Yes, I know about the wiki. No, I don't think it's particularly good.
No.548382
>>548376
Can you do that and post results here?