How do you become a hacker

Wanting to become a hacker is such an archaic idea. That’s like saying you want to become a guru. If you want a real job, you should strive to become is a software engineer.
Mere programming skill or hacking abilities does not make you a software engineer. Indeed, most programmers, especially self-taught ones, will never even comprehend what
software engineering is. You cannot comprehend it at this stage in you learning, but you should realize that there is a larger field beyond mere programming and hacking,
and that is what you should want to learn about.

C++ is probably the best language to learn. Assembly is also great for understanding how the program internals work ( registers, stack, pointers, function calls, etc ), and you’ll
at least want to study it a little at some point. I would recommend doing c++ with inline assembly for learning purposes. Many c++ compilers also let you look at the generated assembly of the c++ code, so that is easy way to learn about assembly too. As for compilers I would recommend Visual C++ Express. Once you’ve learned c++ and assembly, programming in other languages is easy. This is mainly because you really have to do engineering in C++ to be effective, and if you can engineer in that language, you can engineer in any language (and systems spanning multiple languages, platforms, and hardware interfaces). Software engineering is something you cannot learn overnight though, it takes years.

It sounds like you did mean “hacker” in the sense of “cracker” !

I used to do related things, mainly by disassembling code, setting breakpoints, etc. As one example, I discovered that Lotus Jazz for Mac used divide-by-zero traps deliberately in an effort to foil breakpoint-setters like myself! Best, however, would be to develop skill at understanding code with source before code without it. :cool:

Here’s a real-life problem I encountered, for any unusually bored linear programming experts / Javascript hackers. For my own recreational project I needed to solve game matrixes, but was too lazy to implement simplex myself. I found a game matrix solver on-line, Matrix Game Solver, translated the Javascript to C, and was off and running. But my task required solving millions of such matrices and a tiny fraction of them failed to converge. I plugged one of the problem matrixes


5.027920 4.000000 4.577710 4.578133 4.000000 4.000000
5.025964 4.000000 4.578411 4.000000 4.575342 4.000000
4.974972 4.460813 4.559003 4.461093 4.000000 4.000000
5.110246 4.571657 4.000000 4.543143 4.532972 4.000000
5.110246 4.571657 4.000000 4.543143 4.532972 4.000000
4.996420 4.544572 4.447903 4.000000 4.000000 4.000000

into the above webpage. It hung with that data. (I repeated that experiment just now with Chrome browser and needed to choose End Process from the Windows Task Manager.)

The problem was caused by a bug in the simplex implementation in the Javascript. Oddly it converged (though to an incorrect answer?) in some cases where my C version didn’t – that was caused by a different bug in the Javascript. It was this exercise that first familiarized me a bit with Javascript. (BTW, I wrote e-mail to Prof. Ferguson two years ago, giving the above example failing matrix, and detailing the bugs and their fixes. He acknowledged one of the bugs with “… Eventually, I’ll get around to it.” But it’s now 2013 and the buggy code is still there … )

I’m not qualified to comment on choice of language. If one needs to know 20 languages to be an expert, I’d qualify only by including the 15 machine languages I learned in my youth. :smack: I will say that many experts I’ve talked to would agree with Francis Vaughan’s negative views on C++. And, although I could be wrong, some people espousing C++ are really espousing “C or C++, though I personally learned C++.”

Real hackers don’t need no classes or books. Get a Raspberry Pi and work with it.

Another suggestion for OP:

Study this thread very very carefully. Specifically, the posts that deal with how floating-point computations work, starting at Post #4.

I vaguely recall, there was another, much longer, thread on the same subject. Does anybody remember that one?

Still here. Still reading and researching things. :slight_smile: Might also sign up for a java class at the local CC fall, but for now, I’m going to start learning on my own :slight_smile:

You could start by studying the Befunge programming language.