How hard would learning C or C++ be for someone whose math level is knowing how to perform addition, substraction...

How hard would learning C or C++ be for someone whose math level is knowing how to perform addition, substraction, multiplication and division?

Programming piques my interest but I'm a humanities (non-sjw) guy, so my knowledge about mathematics is lacking. I'm not really interested in learning high end mathematics, whenever I see hard math on display, my brain turns off and waits for me to scroll down the page. I'm good at logic, so there's that.

Other urls found in this thread:

khanacademy.org/math/math-1-2-3
stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list?rq=1
edx.org/course/introduction-computer-science-harvardx-cs50x
youtube.com/playlist?list=PLhQjrBD2T382VRUw5ZpSxQSFrxMOdFObl
twitter.com/NSFWRedditImage

Python may be more relevant to your interests.

I'm not really interested in python because I'd rather spend my time learning C or C++ since they are more low level than python and have more performance.

>I'm not really interested in learning high end mathematics
What is your definition of "high end mathematics" ?

Things above
>addition, substraction, multiplication and division
It might sound like a joke, but maths are really not my thing.

So your definition of "high end mathematics" is everything above second grade?

In reality, you could learn C/C++ within your parameters. Unfortunately, you will lack the knowledge to do anything meaningful with it.

C/C++ are low-level languages, so these days they are very widely used in embedded devices. Embedded devices have very limited resources, so efficient algorithms are a must. Algorithmic analysis, time and memory complexity analysis, etc., all require what you define as "high end mathematics."

C or C++ don't had high prerequisites mathematics.

Just learn variable,functions and set.
Basic math khanacademy.org/math/math-1-2-3

About programming C book
C Programming Language, 2nd Brian and Dennis as first programming book make exercise.

Computer Systems: A Programmer's Perspective (3rd Edition) As arch computer book and basic C ideas.

C in a Nutshell, 2nd Edition As modern book on C.

algorithms in a nutshell As baby algorithms book

List C++ ,C++ begin very hard as first language, done rigth need know algorithms and compute architecture to really could use full potential.

stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list?rq=1

Usually if you want high performance compute need know computer arch and algorithms.

You will quite literally never do anything that requires the performance difference between C++ and Python. By the time you've learned a couple languages, you will realize language does not matter anyway.

Please stop trying to focus on some detail such as choice of language as an excuse for never actually beginning to program.

Pajeet get back to work

this.
/thread

If you just want to code, math is almost irrelevant. You need to be comfortable with abstract thinking. Some people, for some reason, seem to lose there minds when it comes to pointers (memory addresses), but it’s just abstract thought.

After this you wrote that you want C or C++ because of performance.

Unless you’re going to be making some sort of physics or video rendering engine, a device driver, an OS kernel, a security product, or a high-frequency trading engine, worrying first about performance is that fucking worst thing you could possibly do. Anybody telling you to learn C or C++ because they’re faster is probably a terrible coder. First make something work, then make it fast. Also, nearly any major language has a “foreign function interface” that’ll allow you to write external parts in C or C++.

The first thing you’ll need to do is decide which one. Yes, C++ was built on top of C and yes, they have mostly the same syntax, but they are very different languages. Given the situation you describe, I’d recommend just learning C, but compiling your with a C++ compiler. That way you’ll write cleaner code, C++ is more restrictive, but you won’t end getting swallow by C++’s bizarre Object Oriented approach, have to fuck around with the template insanity, or any of the other 15 gazillion complicated things that are in C++ for some bizarre reason.

fuck that gay theoretical algo shit. optimizing for cache hits is more important 90% of the time. Over 60 years of computing, and the humble array is still the undefeated champion of data structures.

you won't really need too much math knowledge for learning the basics. The projects you do, using C, probably. Math is just a tool to achieve what you want. You will have some trouble at understanding efficient algorithms and dealing with complexity analysis if you are a brainlet though.
Just learn maths, you have bothing to lose and it's not that nightmare if you have and +100 IQ

I thought all the mandatory maths included algebra?

Well if that's all the math you know then you need to back to elementary school and continue learning until you are at adult level math.
If you know high school level algerbra you'll probably fine doing web dev or being a enterprise code monkey.

What a complete load of shit. How many programmers EVER have to do algorithm analysis? In twenty years I’ve do it precisely never. Nor have I ever had to direct an exployee to do it. In fact, I’ve only have first hand knowledge of one guy I worked with ever doing it and that was for some data management and he was hired for that purpose.

You don’t have to be able to read and understand Knuth in order to use an algorthim cookbook. Besides, unless you’re doing something exotic, pick quicksort. That last sentence is 75% of the algorithmic knowledge most programmers need.

>language does not matter
>what is a kernel

Declarative languages are fundamentally different from Imperative languages which are fundamentally different from Functional languages which are fundamentally different from Object-Oriented languages.

something that isn't the fart apps OP probably wants to write

Math skill is literally irrelevant, if you can read and understand math function but you can't solve it, then you have enough knowledge to program.

So C is actually better than C++? And why compile C code with a C++ compiler?

And why does the industry use C++ over C then?

I've never been good at maths, I just can't see any use for it so I forget it very fast. My brain works like that I guess. My IQ is probably on the triple digits. I just have no drive to learn math to the point it's mentally painful to even try.

I'll try to make an analogy. Imagine I asked about learning Greek, and you suggest Latin because it is easier or whatever.

Why would I learn Latin if my endgoal is learning Greek? Why would I spend time learning an easier language and then learn the other one instead of just putting time on the real deal?

I don't see Python as a "real" language, to me is just something a normie can write some scripts with and feel good. I might be wrong though.

>So C is actually better than C++? And why compile C code with a C++ compiler?

For your purposes, C is a better choice as it’s a rather simple language. C++ if gigantic. C++ is stricter in what it will allow, so by compiling C with a C++ compiler you’ll be less likely to make certain kinds of mistakes.

>And why does the industry use C++ over C then?

Unless you’re looking for a job, never look to “the industry” for a good idea. Despite the stereotype, most programmers are very conservative and don’t like having to learn something knew. Also most large companies want interchangeable commodity programmers, this is what drives language/platform adoption.

C++ has features that are useful if you’re writing a large code base, a library of things (the STL) that almost make C++ tolerable, and support for different styles of programming. Unfortunately, it does most of these things badly compared to other languages. Personally, I write in the highest level language I can and then drop to C to connect different languages or for optimization. I have no need for most of C++’s features in that scenario.

>I don't see Python as a "real" language, to me is just something a normie can write some scripts with and feel good. I might be wrong though.

Are you trolling or have you just been talking to idiots? Bashing out native binaries isn’t more “real”. Lastly, if your goal is to feel smart, go learn about call/cc in Scheme, or any Haskell at all. Those languages routinely use concepts that would give most C coders a brain hemorrhage.

why would you even want to code anyway?

Try learning C, learn the basics of pointers and data structures and you will get some background to learn other languages. Most operations you are going to use are basic operations. Programming itself is pretty easy and most of the time you won't need to reinvent the wheel. Most languages come with some ready to use libraries that will do complex stuff out of the box.
Altough some basic math knowledge would be useful to fully understand what you are doing and essential when you really need efficience.

edx.org/course/introduction-computer-science-harvardx-cs50x

youtube.com/playlist?list=PLhQjrBD2T382VRUw5ZpSxQSFrxMOdFObl

Do CS50, its harvards intro to computer science. Its free online. You can either watch just the lectures on youtube, but you should really sign up for the free "edx" class which will provide you access to their IDE and libraries, their homework (which you can turn in and get graded if you want), to their many extra videos that go into detail, transcribed notes and lectures etc etc. Its fucking next level for being free.
No obligations if you sign up for the class, the 2017 class is in session now so only 6 of the 11 weeks are done, but 2016 all 11 weeks are there.

This will walk you through the basics and start you into the intermediate of programming itself as a whole.

It teaches you the low level concepts with C, then abstracts away into Python and Javascript.
At the end you will have a good foundation and can jump to whatever language you want to.

You dont need high level math, this is teaching you logic and building the right way to think.

The lectures are easy, but the homework is hard as fuck. But itll make you better in the end for it. Holding your hand through things like CodeAcademy doesnt actually teach you anything

>free

Holy fuck, what's the catch?

EdX wants to sell you a $99 certificate to say "I completed a harvard course!". Just decline it, a bullshit certificate isnt going to help you.

Harvard has an identical AP course on the site for high schoolers, its to try and recruit people into the school.

No real catch. MIT and other big name schools do the same thing on sites like that. Its just CS50 is by far the best one out there.

You can even go to the cs50 >leddit forum and get help too.

I'm not american though, does that matter?

I doubt it, just sign up and see.
When you sign in its literally just a site with private youtube videos on it.
And then you can sign into their cloud based IDE on Cloud9.

From the broken english ive seen in the forums and stuff, im sure a lot of people in other countries are signed up for it

>My iq is in the triple digits
At 68.7

Just let him be. He will see how high his IQ or how good his "logic" actually is when it comes to actually applying it to something tangible like programming.

Sounds like the type of fag who wont ever cut it as a real programmer.

Do MIPS assembly
As easy as it gets

At bare minimum, you should understand basic algebra.

Most programming is more logic than actual maths. Having said that, what are your goals? What do you want to make? It's more usual to start off with something like Python rather than jumping straight to C.

>It's more usual to start off with something like Python rather than jumping straight to C.

Only because it gets you quicker results in our ADHD world. Not because its better, you are skipping a whole world of understanding

>My IQ is probably on the triple digits

>cant learn algebra

you might be able to do something procedurally, but nothing functionally

this

and to all the "performance doesn't matter" guys, that's because you are codemonkey plebs who don't work on anything serious

If you were to teach someone electronics, wouldn't you start off with making use of ICs on a breadboard before delving deep into they work? Wouldn't you demonstrate the use of a multimeter before an oscilloscope?

Most subjects are taught with this "first how, then why" approach. It makes sense to ensure the student can write fizzbuzz in python before introducing the concepts of memory allocation, pointers, etc.

>I don't see Python as a "real" language

You fell for the Sup Forums meme.
Most of the people shit talking python on this board are autistic CS undergrads who has never worked on anything significant in their life.

Whilst python most certainly has its flaws, it's an excellent general purpose language when you want to get something done. If performance ever becomes an issue, it can function as a C wrapper. As an example, NumPy, a very popular maths package for python is almost entirely written in C.

It's also heavily used in Physics and Astronomy. Interpret that as you wish.

> wouldn't you start off with making use of ICs on a breadboard before delving deep into they work? Wouldn't you demonstrate the use of a multimeter before an oscilloscope?

This is literally only to keep people interested, not because its a better form of teaching.
Learning the building blocks, conceptually is going to be better in the long run.

You dont need to learn assembly but come on.
Pointers and memory allocation arent even a hard concept at all, its only hard to people who have to retroactively rewire their brain after learning something high level.

>you were taught this for a while, you feel you have made some progress
>now here is some arcane stuff under the hood you didnt know existed, and now the code and logic youve been taught and been using doesnt work anymore right without significant retooling
>and not only that here is strict new syntax you have to learn at the same time

Makes no sense

To just learn c++ /c and write programs requires no understanding of math really. Now with that being said you will be worse off than a mathematically inclined person, since you won't have a good grasp of the mathematical run time of your program.

Math in programming is usually in algorithm construction and analysis, dealing with time complexity of a certain algorithm.

That all being said a lot of people I go to school with struggle with math as well. So your in good company.

you have no clue what you're talking about, you're just spouting the Sup Forums meme of the month

Nobody says performance doesn't matter, they're saying certain performance gains are orders of magnitude more important.

But you probably don't even know what a fucking cache miss means since your codemonkey claim was a projection and you don't know shit about computers.

Pretty much the only area where you need the speed of native languages is for extremely heavy maths operations. I/O is a hell of a lot slower than the difference between C++ and Java for example.

You said yourself you have extremely basic maths knowledge. What you need to learn is the concepts of programming that are common to all languages such as breaking a task down into small parts and solving each part separately. Iteration, branching, etc. If it will be months if not that's before you are at a position to worry about nano second performance optimisations of native code.

Spend your time learning something that allows you to actually get shit done quickly. You're not learning as part of a programming or CS degree so you need to make progress yourself. When someone says start with something easier then listen to it. You could spend two weeks learning the basics in Python and actually make a helpful program or you could spend two weeks working out some cryptic C++ linker error for a simple program that just does something basic with a third party library.

This.

Sup Forums is a really really bad place to make up your opinion about programming languages, if you have no experience at all.

>implying anyone is actually excited about using shit like django everyday for work

Work sucks

You don't strictly need math for programming, but if you are having such problems with math - then programming is probably not for you. It's a lot about thinking abstract things, just like math. So either you get good with math or forget about it.


You don't have to actually "do it", in term of sitting down and calculation the big O notation of what you just coded.

You do need the knowledge though, because you need to have at least some ideas about how bad "bad algorithms" can be. You need to have enough knowledge to look at code and if you see something really stupid iteration some alarm bells should ring in your head..

You probably learned as a kid that you shouldn't eat big read mushrooms with white dots. Now how many of those have you seen lately? Nevertheless it's good to know these kind of things if you'll ever need it.

I use bubble sort for everything

>humanities

sorry for your loss

>tfw four digit IQ

>make game in python
>slow as fuck
>bugs
>memory leaks

All the problems of C without the benefits.

Games are one of the areas where you actually need maths and performance in programming though so of course making it in Python is fucking dumb. If OP can only do basic maths then how the fuck is he going to make any kind of game except maybe tic tac toe