Math is not important for being a good programmer

OK, who the fuck started the meme on the title?.

Other urls found in this thread:

wolframalpha.com/input/?i=sum of prime numbers between 1 and 5000000
twitter.com/AnonBabble

It's only as important as the software you're developing.

I can't imagine a web dev using trig, calculus or linear algebra.

>was one of those fags
>would think i can become a good programmer just becuase i can write syntax
>get to uni
>teacher asked everyone to write a function that takes a number and gives back wheter the given number is prime or not
>the fastest implementation gets an auto-pass on the subject.
>then we where asked to write an algorithm that sums the prime numbers from 1 to 5 000 000.
>my implementation ran in 5 minutes.
>the fastest kids who was a math god ran in 0.2 SECONDS

that was the moment i understood you need math for programming.

Aside from basic algebra and a rudimentary grasp of trig, you don't need anything else.
Linear Alg is pretty much required if you intend to do 3D graphics, but this can be learned.
All required maths can be learned as needed.

People who kick and scream about CS people not knowing enough math are just angry because they wasted 5 years doing proofs instead of learning relevant industry skills.

The only thing math and making software have to do with each other is the solving of problems; so if you're good at one you're likely to be good at the other, that's all.

>computers are literal calculators
>”you don’t need math to program”

yeah,you can get by with high-school math but only if you want to be a webdog.literally anything else requires a very good understanding of math(operating systems,compilers,decompilers,drivers,video games,3d software,face recognition software,AI,deep learning,microcontrollers,encryption...)

Look, here's a butthurt math major now.

Why don't you write me a proof that can edit text.
That's right, you can't. Because proofs don't do SHIT. Programs are not proofs.
Why didn't you just become a professor if you wanted to become a math zealot?

That's a stupid and pointless example, user.
You "understood" you need math for CS shool, that's about it.

You don't need math to be a programmer. You'll need it eventually, but it isn't a prerequisite for becoming one. You also are very unlikely to get paid for writing shitty programs that calculate primes (admittedly, you're likely to get paid for writing one-of-a-kind best ever prime calculating program but that goes far beyond just "knowing math").

Thinking you have to stubbornly study math just to start programming is not only a misconception but also a huge mistake. The vast majority of people tends to forget the knowledge they have no use for. If you are going to study math just for the sake of studying it - you'll be wasting your time (unless you fucking love math and pure theory is enough for you).
Meanwhile, coming back to math when you realize you need it for a pretty specific task - meaning immediate practical use - will not only allow you to learn the subject in question easier, it'll allow you to comprehend it much better.

ok, doesn't prove anything.
programming is a big field.

you dont have to invent new algorithms or redefine languages to be a programmer. thats a specific concentration.

>tfw bad at maths, CS and physics
Literally got an E in all those. Fuck my life.

I can understand math or physics, but CS? That's your job man, you should be acing it. Actually, I thought you had to score a B or above in all CS classes in order for it to actually count.

I live in the UK so I don't know your system or whatever, but i'm literally the biggest brainlet ever.

God knows how i'll pass these subjects. Probably by storing notes in a graphic calculator...

>you need math when programming in an academia circlejerking environment
who could have thought huh?

wow,wow,wow... calm down there sysadmin.

Do you actually enjoy programming or are you doing it for the money?

I'm terrible at math, as in, actually terrible.(Failed a math class in HS, so I only ended up graduating with Algebra II as my highest class. Most people had taken trig or calculus)

However that was all before I ever touched programming. Now that I have a good reason to utilize the math I'm learning, I'm finding it much easier to learn and digest. Much better than trying to examine some arbitrary example that'll never be applicable to me.

The only programming language that I actually know well is Python, and my entire class is being forced to learn Visual Basic because the exams are centred around that language.

Here, our final grades are entirely exam based.
You take an exam at the end of the year, and you'll get your qualification.

I enjoy programming, but I enjoy the money too :^)

We share an open table arrangement at work, some of my desk mates graduated with degrees in math and CS, I was self-taught, clearly their degree didn't do them any good, because our core product is a webapp with a nodejs backend.

I've effectively stopped talking to them because they're immature and arrogant as fuck, they keep holding their degrees over your head, gloating about how "selftaughts don't learn this stuff".
I spend most of my time rewriting their shit code, and sometimes I'll just reject their work and make them do it again, I'm the only one with write access to master branch.
I'll start lecturing on some simple ways to avoid beginner shit like if else branching that's hundreds of lines in length, and then they go "yeah yeah ok mr no degree, i think i know what i'm doing here".

Misread this as meth

how did you get a cs job with no degree?

i can't do math. this meant i couldn't do programming efficiently enough, so now i'm stuck being one of the github sjws that automatically (and covertly) removes wrong gender pronouns from peoples PRs for 10 sorosbucks/hr.

Seriously guys, study math.

CS is the same as math CS is a type of math in the same way statistics is a type of math. It's a math major, CS have fairly little to do with computers apart from the name. You can technically be the best and most knowledgeable CS guy in the world without ever touching a computer.

Statistics on the other hand relies on computers way more than CS does.

>i can't do math. this meant i couldn't do programming efficiently enough

why?
>efficiently enough
doesnt matter. if you can make it work, youre good. worry about optimization and efficiency later, since its a never ending battle.

Do you have inferior complex? Because It seems so.

i can barely do pre-algebra and i'm a god of enterprise-grade web development

>CS have fairly little to do with computers

>B.S. in Computer Science
>CSC 4110 Introduction to Embedded Systems
>CSC 4310 Parallel and Distributed Computing
>CSC 4320 Operating Systems
>CSC 4340 Introduction to Compilers
>CSC 4360 Network-Oriented Software Development
>CSC 4370 Web Programming
>CSC 4380 Windowing Systems Programming
>CSC 4260 Digital Image Processing
>CSC 4710 Database Systems
>CSC 4740 Data Mining
>CSC 4810 Artificial Intelligence

>CS have fairly little to do with computers

he said he's doing web development. so the question shouldn't be how he got a job in web dev without a CS degree but why his friends with CS degrees are doing web development in the first place.

None of those have anything to do with math.
CS is pure math.
Your program is labeled incorrectly.
We really need to just ditch the word CS and change it to Information Science, everyone thinks it's about COMPUTERS and PROGRAMMING simply because it says COMPUTER in it.

you need program to math

Those are CS classes.

>CS is pure math.
If your concentration is Theoretical Computer Science, which is only 1 concentration out of the 6 that you can focus in.

>Your program is labeled incorrectly.
If it weren't labeled correctly then it wouldn't be an accredited university.

You don't strictly need a computer for any of those things. Computer Scientists in the 60s often graduated in universities without any or with only one computer. And the computer was only used to run the code that was written. But that is not strictly necessary to learn or be good at it.

Stuff like Parallel and distributed computeing and so on are just mathematical scenarios and ways of solving mathematical problems with certain constraints. It does not depend on computers except in the programming classes, but CS is not programming. Anyone who wants to learn programming can study software engineering or take a bootcamp.

Artificial intelligence is just statistics and learning about statistical rules for regression, classification and clustering

>You don't strictly need a computer for any of those things.
yes and you dont strictly need a lab to learn chemistry and test formulas, but its dumb to even make that point because youre going to be using a lab if your majoring in chem, same as youre going to use a computer if youre majoring in computer science.

>Computer Scientists in the 60s
2017

>But that is not strictly necessary to learn or be good at it.
sure, they can always be a professor and teach it at a university.

nothing wrong with wanting money. but im a business major with a programming background and i have a lot of friends who see my work and say "dude we should totally make a business working with AI". their problem isn't that they want to make money with software but that they have such a rudimentary understanding of software development that they think it's just as easy as typing away for a few weeks and then having some sort of amazing program that will change the world. i wish i had the balls to tell them that they probably aren't cut out for software dev and i have no interest in starting a business with them since they think excel is hard. but i guess that's just life.

bottom line: if you have the work ethic and a realistic approach to programming and you're not some brainlet who thinks programming is about just typing away on your computer and creating amazing apps without even thinking about it, then you probably have your work cut out for you. if you're like a typical business major who only sees dollar signs at everything he looks at, then you probably won't succeed as a programmer and you'll probably be destined to sucking corporate dick for your career.

i've never stepped foot in the CS campus at my university but i imagine even the bottom 10% are smarter than 90% of business majors. business students are incredibly dense and their only life ambitions is to become a billionaire so they can sit around and give ted talks about how amazing they are. these kinds of people who dream and talk of success and then spend 90% of their freetime getting drunk or high and watching Youtube videos all day are the plague of this earth. do not be like them and you'll probably succeed as a programmer.

>we should totally make a business working with AI

Yes this is the illusion problem I am talking about, these day some coders thinks can just sit and use "logical thinking" and solve new interesting problems without math background.

OP is you want to use math and get loaded, become certified in actuarial sciences, become and actuary and snort cocaine and fuck bitches you are going to make a shitload of money.

Niga I don't like cocaine.

>You don't have to be good at math to tell literal math machines what math to do.

As a cs student who worked in the business school building, you couldn't be more correct if you tried.

I suck at math. Worked as a phone game dev for 3 years. Didn't touch OpenGL matrices but apart from that I learned is I needed (ex: inverse of a scaling function to limit an image from scaling outside another image bounds).

>0.2 SECONDS
How would one possibly go through all possible prime numbers between 0 and 5000000 in such a time?
I had a shot at writing something that'd get the job done but it's nowhere near that speed.

#include
#define MAXVAL 5000000

int main(){
unsigned long num, sum = 2;
int i, isPrime;

for(num = 3; num < MAXVAL; num += 2){
isPrime = 1;

if(num%2 == 0)
isPrime = 0;

for(i = 3; isPrime && i * i < num; i += 2){
if(num%i == 0)
isPrime = 0;
}

if(isPrime)
sum += num;
}
printf("Sum of primes between 1 and 5000000: %lu\n", sum);
}

Calculate the result once using your program.
Copy it from your output into a new source file.
Assign a long to the calculated value.
Return that long.

better yet, memorize the number as it is a common interview question :^)

>web dev
>good programmer
You're helping prove OPs point.

Took me too long to realise what you were inferring.
You sly bastard.

op here.mine runs in 0.7 sec now but i told you that guy is a math god.

>that guy is a math god.

if you were a female, would you suck his dick?
I see a nice hentai manga, where this god math guy its helping a 10/10 busty girl.
>Mathsuda Sempai please help me to otimize my code...
>He watches at her breast and starts sweating.
OK, the climax starts when she is under his desk sucking his dick while he is mastercoding and you can hear the keyboard at fap fap fap rate.

It would be awesome, let me think in the name of the manga.

> Programm output:
>Sum = 838596693108
>Finished in: 0.0437043s

I wish my classes were that easy to pass...

In my university, the business and cs buildings are right next to each other and holy shit, you're right

How do you get the execution time?
I'm comping using gcc and running the output.

Idiot!
(n^2+n)/2

it's a pre-populated dynamic programming solution

here, have my code:
compile with "g++ -O3 -std=c++17 main.cpp"

I'll comment out my time stamp library, but if you add your own there you can measure the time.

#include
#include
//#include "tstamp.h"

long int sum_array(int* a, int size){
long int Sum = 0;
for(int i=size-1; i>=0;)
Sum += a[i--];

return Sum;
}

int main()
{
int N=5000000;
// std::cout > N;
// tstamp::start();
int* Numbers = new int[N];

for(int i=0; i

*implying
And even then, he didn't imply anything, it was explicitly stated.
From your comment, I can infer that you're retarded.

>know basic algebra
>know really nothing about trig beyond Pythagorean theorem
>gainfully employed in CS for 10 years now with no difficulties
ok
it help might to understand the formal discrete math for databases or something, but an intuitive understanding goes just as far if you're not retarded

>CS is pure math
ok you fucking brainlet then what is the difference be Math and CS, which you claim is pure math?

Dynamic in what way? After the data is written to the file, it looks pretty static to me.

>asked to program a solution to a math problem
>knowing math helps
really makes you think

Sieve of Eratosthenes runs in O(n), niqqa.

can you format that in a nonretarded way?
like
this
for example i in you'rearetard

and this is a perfect example of why math is important

>compiled using gcc
Sum of primes between 1 and 5000000: 839080805294
>t~3.5s

>compiled with g++
Sum = 838596693108
>t=instant(0.2

How? Also sorry for the cancer allignment, thought it would at least just take the tabs if I copy paste.

Non-programmer here, so bear with me for a sec.
does that "isPrime" thing mean there's already a function that knows if a number is prime or not?
if so, where is the requirement for maths?
I'd understand if the difficulty was in "explaining" to the program how to detect a prime number in N, and defining N itself, but the code you wrote looks easy. Am I missing something?

do
(code) yourcodehere (/code) except with [] instead of ()

>does that "isPrime" thing mean there's already a function that knows if a number is prime or not?
No it is a integer variable he defined. It is used to store the value of an interger number before it is summed.

IsPrime is an integer being used to store a boolean value (which is calculated), it's not a function here.

*value of an prime number

thanks :)
Better now? Changed all ints to long ints so it should also work with bigger numbers.

Sorry man...

#include
#include
//#include "tstamp.h"

long int sum_array(long int* a,long int size){
long int Sum = 0;
for(long int i=size-1; i>=0;)
Sum += a[i--];

return Sum;
}

int main()
{
long int N=5000000;
// std::cout > N;
// tstamp::start();
long int* Numbers = new long int[N];

for(int i=0; i

I would bet my life there is a library that contains all the prime numbers in sequence you could use.

CTFE

pretty surprised a simple sieve+sum is that fast

Or you just generate them yourself like I did

Not in storage complexity lmao

Nah, your code is fine. This niggers code produces the wrong answer, and isn't as optimised as yours is >63280141

dude are you sure your algorithm sums the ->prime numbers

I dropped out before I even learned algebra and I'm currently learning to be a web dev

I'll tell you in a year if it works out or not

Nice, wolfram|alpha says you're right
wolframalpha.com/input/?i=sum of prime numbers between 1 and 5000000

me too desu, but if it works I wont complainWhat I did was just implement the sieve of eratosthenes (). I make a list of all numbers from 1 to 5000000, then I take out all the non prime numbers from that list by setting those values 0 (thats the double nested while loop (*)) and then I add up the array.
When the numbers get too big I just write 1e7 or something like that. But you're right, I should probably start using digit seperators for when I work in teams.
(*) A number is not prime if its a multiple of a prime number, my prime number is i, j is the multiplicator.

he uses the sieve of eratosthenes to null all nonprime numbers so all the primes are the only nonzero elements in the array
then he simply sums it up

ah,thanks for explaining dude.just asking how many years have you been in the industry?

not that dude but this isn't exactly some super advanced stuff, this is high school math with a very straightforward implementation

I'm 21 and been learning programming since I started my physics degree 3 years ago. So technically 0.

(please dont doxx me if you find me)

> Wanted to do analog circuit design as a freshmen so I majored in EE. I wanted nothing to do with programming or computers
> Forced to take an intro to java programming class, find out I actually like programming
> Decide to double major in EE and CS
> EE requires I take all sorts of math, diff EQ, linear algebra, stats, all sort of "hidden" math classes. CS math reqs are easily satisfied by EE reqs.
> Graduate and get a job doing embedded OS programming
> Literally the hardest math I do is integer arithmetic in hex. I've never written a single line of calculus on the job after nothing but living calculus for 5 years.

You really only need basic algebra to program. The real reason is that many certain programming problems also require math. Plus if you want to do stuff with hardware and have some intuition you end up needing to learn math to understand the base electrical concepts.

> I've never written a single line of calculus on the job
Only time you need calculus is if you're doing game development or some kind of real time physics simulation.

Kinda weird, I think game dev requires the most math outside of theoretical computer science research.

Honestly speaking, if you think a CS degree means shit in terms of actual skill and knowledge and makes you superior to someone who already works in the industry (let's say the infamous Web dev) - you're likely to get stuck rewriting your shitty FizzBuzz app over and over again instead of growing as a dev.

>CS degree means shit in terms of actual skill and knowledge
nobody has ever said this

still, you need a cs degree for practically any cs job, especially if you plan on actually moving up the ladder.

even if you're good and have a solid git profile, it'll be difficult to get your foot in the door without internships, and 99% internships require you to be an active student working towards a degree.

I use a little calculus as a .netfag working in the financial sector. Obviously the steps of the calcs I need are easily referenced.

1. This sentence makes no sense.
2. You really can't call yourself a game programmer if you don't understand matrices. It is the most vital aspect to 3d game development.

>nobody has ever said this
Real world experience shows that many CS students have this idea. Look at Sup Forums for example.

Now I won't argue with the fact CS schools can be incredibly helpful for finding a decent employment but it's mainly because of the activities one will participate in and the connections one will make rather than the actual knowledge they'll gain.

>mainly because of the activities one will participate in and the connections one will make
well yeah that's the entire point of college.
pretty much every uni class operates by you basically studying on your own and taking 3 or so exams to pass.

It also forces you to atleast try to learn things you may have never touched if you were self-taught, which could prove invaluable at a later time.

I'm so sick of the "You can't be a good programmer without a CS degree" tripe. I agree that math is vital to truly understand computers and to becoming a software engineer. That being said, a CS/Math degree is completely unnecessary. All you need to learn CS and math is a brain with at least average intelligence, determination and lots of practice. Nothing else. I'm sorry for those who spent gobs of money to gain this knowledge. But your piece of paper doesn't bar those of us who put in the time and effort to learn for virtually free on our own from being programmers. It's talent and knowledge that counts, not degrees.

Was he using Apt on Gentoo?

mhmm try getting that job without that degree

It's been half a year since graduation and I still cannot get a job with my degree. Considering suicide desu

The thing is, I do.

>all
Link?

I personally know one of former Disciples 3 devs who doesn't have a degree. Now, the game is shit but it's still a bigger project than 99% of Sup Forums (or even CS grads) will ever work on.

No one will even ask for your degree if they'll see you actually know your shit. Not if you think you know - if you actually know.

Or optimization or using probably distributions...

Even a web developer will use SQL, which is literally an implementation of relational algebra.
Besides that, a programmer should know basic set theory, logic, and discrete mathematics.

SQL is a domain specific declarative programming language for calling data from one or more spreadsheets, and in most cases, getting only rows that match primary keys from multiple tables.

Where the fuck do you get set theory or discrete math from this?