Results 1 to 10 of 15
Hello, everyone. I'm new here. Nice to meet you and I use Ubuntu Gusty-.
I have a question about Hacking skills. I read this article How To Become A Hacker ...
- 02-26-2008 #1Just Joined!
- Join Date
- Feb 2008
- Posts
- 0
Math and Hacking skills
Hello, everyone. I'm new here. Nice to meet you and I use Ubuntu Gusty-.
I have a question about Hacking skills. I read this article How To Become A Hacker.
And I was really amazed how hacking is awesome.
That's why I started using Linux for some years.
Now, the question is, "Do I have to be good at solving math problems?".
On that article, said, I really don't need to know a lot about math-formula; such as Integral, Progression etc... But, when I had to choose which college I wanna go, then I picked up one for computer science. But my teacher said that in order to get admitted in that college, I have to be good at solving math problems.
The thing is I am not a good math problem's solver. I like to study hacking, though.
In this forum, I thought there might be some good hackers.
Are good hackers good at solving math problems? Or they are more like, good at language things(writing some good sentences).
I really would like to get some advices from you, guys.
Thank you for reading.
koichi
- 02-26-2008 #2
Hi - I thought I would try to answer you. I say 'try' because I'm pretty useless at maths, however I seem to be okay at thinking logically. I wouldn't consider myself to be a 'hacker', however I understand what you (and Mr Raymond!) mean by that, and have a lot of respect for the hacker way of life. I share some of the attributes of a hacker, but I don't write programs.
Hacking can be applied broadly to a range of activities outside of computing, and I think it can mean 'achieving a higher than normal level of proficiency in a given field or discipline'. At least... that's one way to look at it!
I have a friend who can write computer programs with very little effort, and in fact he used to be an IT manager. His maths skills are very poor, so it appears that although 'math' (to me a North American way of saying it) is very useful, it's not essential.
I just thought I would contribute to your thread.
I am always doing that which I can not do, in order that I may learn how to do it. - Pablo Picasso
- 02-26-2008 #3
NO, you most certainly do not need to be able to juggle Algebraic formulas or solve quadratic or linear equations in your head in order to program well. If a professor tries to tell you otherwise, they're lying to you.
Keep in mind however that I'm talking about real-world programming, not classroom stuff. Universities are keen on making Computer Science students study a great deal of high-level theoretical math even though a great majority of program writing requires none of it. It's simply something they like to throw on their degree plan.
What you need to be a good programmer is logic skills. You have to be able to take a big problem and divide it up into smaller tasks, and understand what logic you need to get from one to the next.
As fingal mentioned above, the term "hacking" can be applied to a broad range of topics. If you limit it to "programmer" or "writer of software" then the answer to your question is an unequivocal no. Not all programmers are particularly good at math, and not all programming involves a great deal of math.Are good hackers good at solving math problems? Or they are more like, good at language things(writing some good sentences).
Some fields, such as 3D graphics or physics simulations, do use a great deal of theoretical math, and require you to understand the underlying concepts. Most other application programming (such as regular 2D client apps) do not require this.Registered Linux user #270181
TechieMoe's Tech Rants
- 02-26-2008 #4
I want to echo what techieMoe and fingal are saying, in that hacking certainly does not require a great deal of math. Nor does most programming.
However, if you are going to a university for Computer Science, you will be taking a number of courses in algorithms and abstract computer science, which tend to do a great amount of discrete math and proofs.
The association between CS and math, I believe, is that many computer scientists came from math, and there is some connection at the rather abstract levels. Also, in many cases, a person who is wired the right way to be a good Computer Scientist tends to be wired the right way for math, though this is definitely not universally true.
As an interesting real-life example of math and CS, a professor at my school, with one of his PhD students, proved that you can solve a Rubik's Cube in 26 moves or less. They did this by combining mathematical group theory with high-performance computing.
So yeah. In general no, but if you want to move into the more academic or theoretical side of CS, you will be expected to be able to do math.DISTRO=Arch
Registered Linux User #388732
- 02-26-2008 #5
Exactly. Not only that but you better have a darn good background in Math to have any success in academia. If you just want to be a good programmer and maybe earn a decent living as a software engineer, you don't need to be a brilliant mathematician. It certainly helps, though. If you have a solid foundation in Math you can think of more elegant solutions to problems and write better code in general. You don't really need any Calculus or Linear Algebra or anything like that but you should have good discrete math skills as Cabhan mentioned. If you can think of the number of combinations or permutations for a given problem in your head, you're that much further ahead of the game. You should also be able to translate numbers into different bases fairly easily. There are calculators out there for this nowadays but you should be able to do basic binary<->hex<->decimal in your head.
- 02-26-2008 #6
I don't mean to attack you here, but could we have a real-world example for this?
Why? When is this useful? Again, just playing Devil's Advocate since I don't find this particular skill to be useful in modern programming at all. Enlighten me.You should also be able to translate numbers into different bases fairly easily. There are calculators out there for this nowadays but you should be able to do basic binary<->hex<->decimal in your head.Registered Linux user #270181
TechieMoe's Tech Rants
- 02-26-2008 #7
Genetic algorithms, optimization algorithms, modeling...they all depend on precise discrete math. For example, at my work we model very large populations and use genetic algorithms to pick and choose scenarios that are considered to be the most likely based on certain parameters. Granted, a lot of the math is built into the programming language but if you don't understand the theory behind the selection algorithm, you won't know if your results are sane or not.
I could tell you more but then I'd have to kill you.
You're right. This wouldn't be all that useful for most of the high level programming languages but if you're a programmer interested in operating system design or systems architecture or even compiler design, I would consider it crucial.Why? When is this useful? Again, just playing Devil's Advocate since I don't find this particular skill to be useful in modern programming at all. Enlighten me.
Maybe I just think of it more as something that every CS graduate should know. There's a reason every collegiate CS curriculum focuses on these things.
As an example, how would you swap the values of two variables without creating a third variable? 99% of programmers out there would have to use a third variable. Not to say they're wrong for doing that but that third variable is an unnecessary usage of memory. You can XOR the two values together to switch them but if you don't understand how an XOR works you don't know to do that and if you don't know about base-2 numbering systems then you don't understand what an XOR is.
Is this ever practical? Maybe not but one thing I've noticed in a lot of the sloppy code I've reviewed is that the programmer overlooked the use of simple mathematical routines to perform a given task and used something completely superfluous for the job.
- 02-26-2008 #8Linux Engineer
- Join Date
- Apr 2006
- Location
- Saint Paul, MN, USA / CentOS, Debian, Solaris, SuSE
- Posts
- 1,116
Hi.
Raymond himself answered this question in the FAQ at the end of his article: How To Become A Hacker
If you are interested in a discussion of curriculum choices, Software Engineering, IT, Computer Science, etc., there is an article and a number of comments at What would you put in a Computer Science Curriculum? including a pointer to a Slashdot discussion.
The ACM and IEEE also make recommendations for courses of study. I think that Computer Science faculties have tried to balance the goals of making students employable, teaching them how to think (a general goal of higher education), steering the career more into a science and engineering aspect (e.g. other engineering disciplines emphasize data, but the computer science courses often had omitted data collection and analysis -- remember the physics courses in which you ran and reran experiments and analyzed data? -- which is ironic, considering that computers are used to analyze data in almost every field).
Interesting discussion ... cheers, drlWelcome - get the most out of the forum by reading forum basics and guidelines: click here.
90% of questions can be answered by using man pages, Quick Search, Advanced Search, Google search, Wikipedia.
We look forward to helping you with the challenge of the other 10%.
( Mn, 2.6.n, AMD-64 3000+, ASUS A8V Deluxe, 1 GB, SATA + IDE, Matrox G400 AGP )
- 02-27-2008 #9
Okay...
So Monday, I had an interview (my university does a 5-year curriculum, and we have 3 6-month co-ops built in). I went there, and met with people. It went well. I was then asked to swap two variables without using extra storage. I had absolutely no idea how to do it (in the interest of being complete, he was more looking to see how I thought through it, and told me that no one ever gets the right answer. And yes, I was given an offer.).
And then, one day later, it comes up completely randomly on LinuxForums.
O.o
Moving back on topic a bit, while I agree that understanding discrete math may not be necessary for most programming, I do think that it's interesting as an "understand what went in to this sort of thing" field. And I do believe that some of the more abstract concepts _do_ have applications.
For instance, I'm in a Compilers class right now, and suddenly it all makes sense! Compiler frontends are basically complicated DFAs (lexers) and CFGs (not as PDAs, but as LR Parsers), and this is basically what lex and yacc do for you. Which is cool, since understanding this, you can see what goes in to compiler design.
I had no experience with discrete math when I got into college (and it's very different from Algebra and Calculus). Maybe you'll really like it!DISTRO=Arch
Registered Linux User #388732
- 02-27-2008 #10
Being neither a programmer nor a genius at math myself, I'm not really sure how much weight my input here will be. It just seems to me thought that what little programming knowledge I *do* have requires heavy logic skills, mainly for troubleshooting purposes. And while math was never really one of my strongest points, I found that it was always a subject that I liked... mainly, I suppose, because you had to reason out what the correct answer was.
You can use the same logic skills, or the problem solving tactics, in some programming applications to find the various bugs and glitches in your various coding. This may be why so many universities and institutions have such a heavy prerequisite for math in your background.Jay
New users, read this first.
New Member FAQ
Registered Linux User #463940
I do not respond to Private Messages asking for Linux help. Please, keep it on the public boards.


Reply With Quote

