What is a better way to attempt to self-learn computer science? Is it better to start at the concepts by grasping discrete mathematics, algorithms, etc; or is it better to start learning computer science applications like a language?
I try to learn both at the same time, but it's just not cutting it for me. So I'm attempting to learn the concepts first by reading a book on discrete mathematics, but I don't know if I am tackling this in the most efficient manner.
Can anyone on /adv/ weigh in on this topic? I'd really appreciate the advice.
Computer Science is not the same discipline as Software Engineering, though to master one you will need skills in the other.
You need to pick which one you actually want to master and focus on that to begin, if you're self-teaching. What is your real goal?
My goal is to understand the fundamentals and concepts which are shared by computer languages so I can understand new languages and other cs applications quicker.
My main goal is to create B2B applications to simplify a supply chain. But the basic goal that I am trying to work towards is having a good enough grasp of a language and the concepts for me to start freelancing. So I can have something to put on my resume when trying to get a programming job.
Just get a book on programming and start, dude. You'll learn the mathy shit naturally as you go. It's all useful, and it's good that they teach it in university programs, but I worked as a programmer for several years (web application development) and it never got much mathier than the shit I learned in high school.
Check out coursera.org. I haven't taken any programming courses on there, but I've taken others relevant to my field and found them really excellent. Also, edx.org had great courses. They're free but you can also pay for a certificate - not sure how useful paying is as I've never done it.
> been coding since I was 13
> now 19 in college
> never needed linear transformations
> feeling i will never need them
I would recommend you study data structures though, that will make you a better programmer.