PDA

View Full Version : Where to go after python? (Wannabe hacker)



thetunex
July 22nd, 2012, 02:57 PM
Hey, so I have wanted to be a programmer/hacker since I was 5-6 or maybe even a little younger(I am 14 now).
My main language is not english and I did not know it really well before so I couldn`t learn anywhere since there are no tutorials in my language(Estonian) but now as I know english I wanted to start learning.
I am very insipired and willing to learn since I have always wanted to be a programmer/hacker-security professional and I don`t think that dream will ever change.
Right now I am learning Javascript at codecademy and I intend to complete all the tracks there eventually (The main ones, not user written) so after I am done with that I should know:

JavaScript,
JQuery(I am not sure what this is so sorry if I say something incorrectly about it),
CSS,
HTML and a little bit of Python.

I have looked through many threads and forums and I decided that after I have finished with codecademy I will start with python. But where to go after that?


I want to work as a hacker/security professional and not as a programmer but from some tutorials I have read that you should know programming to be a hacker, and I always wanted to learn that too so that was awesome.

In the end I want to know JS, CSS, HTML, Python, Java, C++, perl, lisp and C. (or others if neccesary. I know that this will take extremely long to learn but I am willing to do that), I would also like to have some photo/movie editing skills and maybe modeling but that can wait.

As I want to work as a security professional/hacker I need and want to know how everything a true hacker should know for knowledge`s sake, even the bad things.

So, where should I go after python? Learn other programming languages (If yes then what would be good after python?, or it doesn`t matter as it is already easier to learn?) or first learn about hacking.

I currently have some e-books like "hacker techniques, tools and incident handling" and "hacking - Firewalls and Networks"

I`m also very good at math for my age so that is a plus too.

:popcorn: I am terribly sorry for this HUGE wall of text but I am not a big fan of smilies and I didn`t know what else to put here. Also please don`t hate because of this huge wall of text but I am not very experienced forums user, so I do not know how threads should be correctly written.:popcorn:

So, where to go after Python?

TheFu
July 22nd, 2012, 04:03 PM
So, where to go after Python?

Being a security professional means understanding things at a much deeper level. Python is a fantastic place to start and can take many years to master, though you will be productive in a few weeks.

https://krebsonsecurity.com/ has a few articles about becoming a security researcher.
Here's 1: https://krebsonsecurity.com/2012/07/how-to-break-into-security-bejtlich-edition/

There are many security resources on the internet. Security isn't just computers, physical security is critical, so many IT security folks learn how to pick locks too. Social engineering is often easier than breaking into a computer too, so many IT security folks practice that art as well. You'd be amazed as what others will do for you when you ask "in the right way."

These should get you started:
* https://www.schneier.com/
* MIT Python course http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-00-introduction-to-computer-science-and-programming-fall-2008/video-lectures/
* http://www.irongeek.com/

You might want to find your local DefCon group too. Look here: https://www.defcon.org/html/defcon-groups/dc-groups-index.html and get involved. My local defcon has a few teens that attend our meetings from time to time. They aren't old enough to drive, so getting a ride the 30 miles from their suburban homes to the meeting is their real challenge.

As to which computer languages should you learn after python, C would be my recommendation, followed by perl and bash. C will teach you how computers really work, which you don't get from any other language. You'll definitely learn a little bash along the way and that will teach sed, awk, and other system commands. A little ruby doesn't hurt either.

Learn python well and you will never be hungry. This career will ensure that you are never bored too.

juancarlospaco
July 22nd, 2012, 11:00 PM
A Good Coder doesnt mean you understand 3240739284789324823749817 languages.

Write good code, elegant, easy to read, documented, commented, efficient, you understand how things work, and why, team work, solo work, be agile,
...plus that will help you understand any language more quickly at first.

woostopalypse
July 22nd, 2012, 11:58 PM
A hacker should have a good understanding of how an operating system works. This includes memory management, file system, and input and out. Given that most operating systems are written in C, I would recommend learning C. Most of the higher level programming languages (Java, Ruby, Python) are also written in C.

Scripting languages like python and javascript tend to hide the more complex operations that are going behind the scenes. This is good if you just want to write software. But if you want to find security vulnerabilities, you will most likely need to know what's going on behind the scenes.

CptPicard
July 23rd, 2012, 07:32 AM
I will have to take issue with the way the word "hacker" is being used here. Being very old-school about this, for me, a "hacker" is essentially someone who likes tinkering with computers in general, and this does not necessarily have anything to do with finding and/or exploiting security vulnerabilities.

Just aim to become an advanced hobbyist to begin with, and continuing to learn programming is a good route to this. If you're more interested in the lower-level view of the machine, learning C is probably a good next step.

juancarlospaco
July 23rd, 2012, 07:44 AM
"Software Hacker", definition:

Software: a word generated on old wool looms.
Hacker: a word generated on steam railroad mechanics.

Makes perfect sense :P

thetunex
July 23rd, 2012, 08:47 AM
Thanks guys, these were alot more positive answers than I hoped for. Most people start hating but I guess this forum doesn`t have members like that :)

I will still complete my codecademy tracks and then move on to python, C.

A very bad thing is that there are no DefCon groups in Estonia...

CptPicard

I will have to take issue with the way the word "hacker" is being used here. Being very old-school about this, for me, a "hacker" is essentially someone who likes tinkering with computers in general, and this does not necessarily have anything to do with finding and/or exploiting security vulnerabilities.

I know who a real hacker is/what he does(According to "the old time") But as the word hacker is misused these days ALOT and meant as a bad guy, I sometimes disagree too but I still use it according to "today`s" meaning since it would be confusing for me and probably some members.





Thanks TheFu, that was basically the answe I was dreaming about. As I said before, there are no DefCon groups sadly so I will complete my codecademy tracks and then move onto Python and other links you gave me.

Thank you so much guys for these answers.

Scott Harrison
July 23rd, 2012, 09:30 AM
For a 14 year old with English as a second (or third/fourth) language, you seem quite intelligent and determined to succeed. You have plenty of time to become a security professional, only the specially gifted become a InfoSec pro in their early career. Try to find an IT company where you can find some part-time work, especially if they service business computers - you will learn all about technology in a business environment which is obviously essential to an InfoSec pro.

Also, keep reading and tinkering!

Read all the computer books you can and keep up to date with technology and how things are changing - there are lots of news websites and "online journals" written for InfoSec professionals. In order to become the professional, you should be reading what they are reading.

If you can get some spare computers, set up a lab environment and practice different scenarios - design a "secure" network, then try to break in to it. If you have any friends to help you with this, you can make it more realistic. Your friend may design the network, pretending to be the SysAdmin, whilst you try to exploit/break it, ie the Hacker. If you can't get physical machines, have a go with virtual machines.

Most of all, enjoy it. You have plenty of time to make a career out of this, use your teenage years to enjoy computers and you will learn as you go.

Sarys
July 23rd, 2012, 10:01 AM
What about crackers?

mickeelm
July 23rd, 2012, 10:57 AM
As have been stated, you have great english and also you seem to have the right "drive" to go forward.

As also have been stated/discussed - what is actually a hacker? It seems that you can best answer that question yourself by answering where you want to go next in your technical development (from a personal view). If you ask 100 people for the def. of hacker, you'll get 100 different answers.


In the end I want to know JS, CSS, HTML, Python, Java, C++, perl, lisp and C. (or others if neccesary. I know that this will take extremely long to learn but I am willing to do that), I would also like to have some photo/movie editing skills and maybe modeling but that can wait.

As a profiessional java developer, I'd suggest java :) But then again, do what you feel like. You don't have to know many languages (as has been said) to be a good developer, I'd say it is not related. Java is widely used and might give you more of a backend-depth in the long run, but it depends on how you want to use it of course. I don't know how far you've come with Python but in your case I would rather go deeper with Python than learning java, and maybe look into java at a later stage.

What I would also suggest is for you to join an open source project (no need to switch language for that, but you can if you wish of course) and contribute with code.

From this you will learn FAR more important stuff, the art of co-operating when writing code and the extreme power of writing good, easy-to-read, maintainable and extendable code.

BUT, you are 14 years old so just do what you feel like :D

Scott Harrison
July 23rd, 2012, 12:02 PM
What about crackers?
What about crackers?:confused:

I guess a cracker learns the same way a pentester does, except they don't use their "skills" to make money... Well, some do but they can do serious prison time as a result.

thetunex
July 23rd, 2012, 01:12 PM
Hey guys, thanks for all the great answers, I will definately look into everything that you told me and I will start with python after codecademy tracks.

But I just got my hands on Certified Ethical Hacker v7 complete package and I am wondering if it would be a good idea to look through it now or is it more of a intermediate/professional material and won`t have any use for a beginner?

thetunex
July 23rd, 2012, 01:20 PM
What about crackers?:confused:

I guess a cracker learns the same way a pentester does, except they don't use their "skills" to make money... Well, some do but they can do serious prison time as a result.

In my opinion the crackers are the bad guys, the media just started using a long time ago the term "hacker" to describe the bad guys(the ones that hacked into other peoples computers, black hats), but the actual bad guys are called crackers. Am I right? Because I think I read that somewhere but I am not completely sure.

TheFu
July 23rd, 2012, 01:22 PM
Thanks guys, these were alot more positive answers than I hoped for.
Thanks TheFu, that was basically the answe I was dreaming about.

No problem. I'm a hacker and have been about 20 yrs. I've never been a cracker, though my black friends would disagree (that was a joke), especially when we're all out bowling. Hacking is about understanding how things work and being able to tweak them to do other things.

I hack UNIX scripts all the time. If they get too complex - usually over 2 screens, then I'll step back and redesign them like a professional developer would - often switching from bash to perl. Perl is my hammer and it is the hammer for many sys admins and hackers. Regardless of what all the other languages claim, the internet runs on perl even today. Modern Perl http://www.modernperlbooks.com/mt/index.html (free PDF book) is still fast, and doesn't use memory or get too slow like other OO languages, and has hundreds of thousands of prebuild, pre-tested modules to build any sort of app (desktop, webapp, or CLI tool) quickly. Perl has been doing test driven development for decades. This method has proven to be popular and a great way to create high quality software. Better than "Agile" for certain.

With Modern Perl, you can make a simple CRUD webapp in about 10 lines of Perl these days (actually it is 2 lines, but I formatted them to be pretty). I'm completely serious.
use Dancer;
use Dancer:Plugin::SimpleCRUD; are the base requirements.

I wrote an blog article about learning to program http://blog.jdpfu.com/2011/10/19/how-to-learn-to-program with recommendations. A few of the commenters added some fantastic insights too.

That article has a link for How to become a Hacker that you might find interesting too. The link seems to be broken, but if you are a real hacker, you'll still find that article/document easily.

DarkAmbient
July 23rd, 2012, 02:19 PM
Needless to say the most well known hacker is the creator of Linux, Linus Torvalds. According to some documentary about Linus/Linux, he started out with messing around on his C-VIC 20 as a child. People often thinks of hackers as evil-doers, but that's not always the case. FBI has this list on well known hackers, I disagree on the order they come in though.

http://www.focus.com/fyi/top-10-most-famous-hackers-all-time/

Edit:

Heh, sorry for slighly off-topic. The story around white-hackers #5 was turned into a movie. Found the movie as well.
http://www.imdb.com/title/tt0159784/

TheFu
July 23rd, 2012, 02:50 PM
Heh, sorry for slighly off-topic. The story around white-hackers #5 was turned into a movie. Found the movie as well.
http://www.imdb.com/title/tt0159784/

Kevin Mitnick https://en.wikipedia.org/wiki/Kevin_Mitnick broke laws and stole services from companies. That makes him a cracker to me, not a hacker, at least when he was doing those things. Now he has a security company and gets paid for those skills. There are easier ways to get into that business now. Nobody needs to be put in jail anymore.

Being an ethical hacker is important. Just because something is possible, doesn't mean you should do it or help someone else do it. Be smart.

There are millions of people that **could** write computer viruses. We don't.
There are millions of people that **could**hack into other people's networks without permission. We don't.

That is part of being an ethical hacker. OTOH, if your job is to
* break into offices or
* break into networks or
* break into applications or websites
AND
* you are being paid by the company that you are breaking into
AND
* you have approval **in writing** from someone authorized to give the approval, go for it. Getting written approval from anyone is easy, getting the approval from someone authorized to give it, is much harder.

I don't think anyone has said this, but BackTrack is a great suite of tools to learn. I think many people would be amazed at the youtube videos showing how to use many of the tools in BT5 exist.

thetunex
July 23rd, 2012, 04:44 PM
Okey, so I stopped with the codecademy(maybe I will return to it someday to study js.CSS and html ) because I want to learn python a lot more.. I will start learning python as much as I can from codecademy and then come to your links but before that I will watch thenewbostons videos of python. After I have watched all his videos on python I will try start watching videos from the CEH v7 complete package while studying python and start reading some books.

juancarlospaco
July 23rd, 2012, 06:35 PM
What about crackers?

http://www.globaliments.com/appl/botiga/client/img/1050850g.jpg

pretty yummy

lykeion
July 23rd, 2012, 08:22 PM
I wrote an blog article about learning to program http://blog.jdpfu.com/2011/10/19/how-to-learn-to-program with recommendations. A few of the commenters added some fantastic insights too.

Just read above article, and it's a very good answer. In the future when people ask me this question I think I'll just direct them to your article, it'll save me some time, thanks TheFu.

d.atanasov
July 23rd, 2012, 09:05 PM
Hi,
Maybe you will forgot what I will ask you after some years but PLEASE DON`T CRACK my computer when you get an experience hacker :)
On the subject you wrote:
I will agree with everything what is written here but you should remember from where everything has started. You may learn a lot of languages but this may be for your good. In your life you will find a lot of different tasks which you should overtake. For this reason you should know which language is more appropriate for this task. Again the basis should start with C / C++ or if you want to learn how computers are speaking you can go even deeper with Assembly language http://en.wikipedia.org/wiki/Assembly_language . I`m using C++ and Python, Bash for my work and they are great languages. You have to remember that you have time to learn a lot of new things. But you should practice a lot meanwhile you learn :)

cheers

P.S Maybe you know this documentary:
http://www.youtube.com/watch?v=oxZlQtvOmK4

11jmb
July 23rd, 2012, 10:54 PM
I will have to take issue with the way the word "hacker" is being used here. Being very old-school about this, for me, a "hacker" is essentially someone who likes tinkering with computers in general, and this does not necessarily have anything to do with finding and/or exploiting security vulnerabilities.

+1. To me, being a hacker boils down to delight in solving hard problems. Any interest in security is purely coincidental.



Just aim to become an advanced hobbyist to begin with

+2 :)

Even being a hobbyist can take you into many different directions, especially on a topic as broad as security. I know that there are a few people on the security subforum of this website who really know their stuff, so perhaps you could pick their brains on the practical aspects of computer security.

From a programming standpoint, just remember that programming languages are tools first and foremost. IMHO, Python is the best general-purpose programming language out there. Not only is it extremely versatile for desktop apps, but it is also becoming more popular as a web scripting language. If you are a linux user, you should also eventually start brushing up on bash/sed/awk, which will save you an unbelievable amount of time in the long run. These will be especially helpful when parsing log files, which you will no doubt do at one time or another.

slavik
July 24th, 2012, 04:47 AM
C

Scott Harrison
July 24th, 2012, 07:09 AM
the actual bad guys are called crackers. Am I right? Because I think I read that somewhere but I am not completely sure.
Yeah, you're right. The bad guys (or Black Hats) are crackers, the good guys (White Hats) are hackers and the Grey Hats are in between.


Needless to say the most well known hacker is the creator of Linux, Linus Torvalds.
What about Steve Wozniak? He is pretty well known. Another is Richard Stallman.

DarkAmbient
July 24th, 2012, 11:57 AM
What about Steve Wozniak? He is pretty well known. Another is Richard Stallman.


I believe that overall Linux-users are more aware who the maker of Linux is. Apple-users seems to think of Steve Jobs as the one and only creator. Richard Stallman is well known, but he said it himself that Linus/Linux got the most of the attention when GNU/Linux started to get attention. Not that any of this matter... in the end they are all people who did/does great things for technology and mankind!


Kevin Mitnick https://en.wikipedia.org/wiki/Kevin_Mitnick broke laws and stole services from companies. That makes him a cracker to me, not a hacker, at least when he was doing those things. Now he has a security company and gets paid for those skills. There are easier ways to get into that business now. Nobody needs to be put in jail anymore.

Well, I meanth the guy who Mitnick attacked, who aided the feds to help catch him.

Drakx
August 10th, 2012, 06:38 PM
I believe that overall Linux-users are more aware who the maker of Linux is. Apple-users seems to think of Steve Jobs as the one and only creator. Richard Stallman is well known, but he said it himself that Linus/Linux got the most of the attention when GNU/Linux started to get attention. Not that any of this matter... in the end they are all people who did/does great things for technology and mankind!



Well, I meanth the guy who Mitnick attacked, who aided the feds to help catch him.

Not true! not every apple user thinks that!. Some of us know who did what and when. Oh BTW I use apple products for work, when I'm home I just use Arch.

Bachstelze
August 10th, 2012, 07:32 PM
+1. To me, being a hacker boils down to delight in solving hard problems.

http://oxforddictionaries.com/definition/english/hack


Origin:

Old English haccian 'cut in pieces', of West Germanic origin; related to Dutch hakken and German hacken

pierceTN
August 10th, 2012, 07:51 PM
kevin mitnick https://en.wikipedia.org/wiki/kevin_mitnick broke laws and stole services from companies. That makes him a cracker to me, not a hacker, at least when he was doing those things. Now he has a security company and gets paid for those skills. There are easier ways to get into that business now. Nobody needs to be put in jail anymore.

being an ethical hacker is important. Just because something is possible, doesn't mean you should do it or help someone else do it. be smart.

there are millions of people that **could** write computer viruses. We don't.
There are millions of people that **could**hack into other people's networks without permission. We don't.

That is part of being an ethical hacker. Otoh, if your job is to
* break into offices or
* break into networks or
* break into applications or websites
and
* you are being paid by the company that you are breaking into
and
* you have approval **in writing** from someone authorized to give the approval, go for it. Getting written approval from anyone is easy, getting the approval from someone authorized to give it, is much harder.


i don't think anyone has said this, but backtrack is a great suite of tools to learn. I think many people would be amazed at the youtube videos showing how to use many of the tools in bt5 exist.

+1

tommycake50
August 10th, 2012, 09:28 PM
What ever you do don't go for any .net language stick with codecadamy if you really want to learn web languages(useless just go with php) Delphi(my favorite language <3) is a good place to go next then c++(c is useless if you want GUI's) and if you really have to go with .net learn c# and scrap your Ubuntu OS practically no other languages work with Linux.




also hacking should only be seen as a controversial way to using software and systems.
and its better to learn programming young I'm 12 and i know 5 languages :D(plus hacking).

trent.josephsen
August 10th, 2012, 11:21 PM
<much nonsense snipped>

You must be trolling. Right? Please tell me you're trolling.