Not even a script kiddie
Hey everyone. I’m very new to the world of programming/coding/hacking. I’m a writer, but technology has always interested me. I’m teaching myself the basic languages via codeacademy, and I plan on slugging my way through the challenges on this site to learn more. I’d appreciate any information or resources that you think I should know about. Hopefully, I’ll be someone giving advice to other people soon. Alas, we all start somewhere. Until then, I’m out to do my nightly writing.
-Zeroxon
Greetings, Zeroxon!
It is very difficult for somebody new to the whole IT non-sense to understand why is coding needed for the so called “penetration testing”, “ethical hacking” and why the heck are such fancy words used together. Well, the answer is: in the real world, you need to disassemble something to know how it’s built. That’s called reverse engineering and, believe it or not, exists as a field of interest in IT as well. However, in the world of computers, things are the other way around: To “hack” into something, you need to know how it’s built. In fact, as you are a writer, you might know that, in the past. “to hack something” was used as “to understand something well”. Therefore, you’ll need to learn how to code / create programs in order to set on your journey through hacking.
So, as tlotr said, codecademy is a good place to start programming. In my opinion, it’s best to start with Python or JavaScript (both courses are available on Codecademy) and then get to something more stable: C or C++, then Java or C#. Those are pretty much the fundamentals of modern programming. Once you know how to code, you’ll know what bugs could help you use the code in your advantage and how to exploit them. After this happens (or while it is happening), you could try solving the challenges in this website. Head over to Google if you need any question answered or if you’d like to read some tutorials. Didn’t found any? You’re welcome to join us over at IRC!
I’d also like to advise you to read the link in my signature. It’s quite informative and gives you the idea about the community of the hackers.
I would love to talk with you anytime, so please hit me up whenever you’ve got any questions or up for random chit-chat. While I can not help you in some of the advanced levels, I’d love to give you a tip on solving the basic ones.
Best of luck,
Elhitch
Study about programming and practice with some challenges and exercicies. E.g. About the javascript, the codding levels of this site are good to test your skills, but you need first know JS.
?
First of all, welcome to HT @Zeroxon :)
Now, I see that a lot of people generally suggest to novices to start their programming experience with Python ( @Elhitch, don’t take me wrong, I’m not referring to you in particular) .
I have a different opinion though (actually the other way around) and I’ll take this thread as an opportunity to share it with you.
In my humble opinion this is wrong, it’s almost like learning to run before learning to walk, because Python is (and pass me the kinda inappropriate term) a “very high level” programming language… let me put it in another way, if you were to let go an object you hold in your hand, how do you know whether it will go up or down if you don’t know anything about gravity?
Or, to make it more programming related, how do you know how a queue work if you don’t know how pointers work?
So (again, this is my opinion) if you prefer to take things for granted and you are not interested on how things are built, like “hey bro it’s just a queue and it works, now lemme go to disneyland!”, then you can start with Python since it provides all the great and useful things you need to be fast and proficient in programming.
But keep in mind that, sooner or later, you will need such things if you want to go beyond the basics, and you will end up studying them anyway.
My suggestion is to pick up a good programming language like c (old school yes) and spend some time on the basics like variables, data types, conditional branching and whatnot, then, when you have a good understanding of the basics, you can start learning other languages, like Python.
Even better if in the mean time you study what is an algorithm and how to represent it with flow charts… and maybe try to solve some basic problems like how to sum two numbers, how to find the higher number from a list, or how to find the greatest common divisor of two numbers……….
This is the way I started and now, looking back, I would do exactly the same.
I hope I’ve been clear enough explaining my thoughts :p
Note: I’m taking Python as an example because it is mentioned in this thread, I’m not against Python, I love it and use it.
While I used to have a similar opinion, I now believe it doesn’t really matter. The important thing is to keep moving.
If you start with a low-level language, you’ll be struggling to the simplest things, but eventually understand better how computers work and why certain things are they way they are. If you start with a high-level language, you can focus more on the fundamental aspects on programming first and dive deeper when you are ready, learning new aspects as you go along.
As I said, the important thing is to keep moving. And to keep moving, you need to be motivated. Most will probably be more motivated with higher-level languages, because they can get more done with less effort.
B.t.w., why start with C and not some assembly language? Or even better, start with logic gates! Or transistors! ;)
Haha yeah, one could even start by building a turing machine lol…
Thing is that I started with C and studied Assembly at the same time, coding a little function or statement, compile and analyze the source… or create an assembly code and reproduce it in C.
I don’t fully agree with the motivational part because I don’t get motivated by how much things I do or by how much time it takes me… or well, I shouldn’t say that I don’t agree, instead it is better to say that it doesn’t work for me.
But you are probably right when you say that most people can get more motivation by doing so.
What you say about keep moving is absolutely true, I also agree with that, however it may be that you think like so now that you already know all that thingies, now that all concepts are clear and every piece is set in the right place and all together makes sense.
But for a beginner it is not like so, there is always a big fog around the basic concepts and they may end up placing the puzzle pieces in the wrong place and wondering why it doesn’t work as expected.
Now that I wrote it I’m starting to think that I might be wrong with that last part, the fact is that I can’t know if it would have been better if I had done like you said (omg hope it is correct english)… Maybe at the end it all comes down to preferences. Next time someone will ask me that same question, I’ll first try to figure out what kind of people is in front of me.
You do agree with the motivational part, but you are just motivated by other things, perhaps. ;) I suspect starting with C (or worse) is too frustrating for many.
With moving I didn’t mean moving around blindly. :p If one encounters something that doesn’t work as expected, then that’s the perfect place to learn something (i.e. move). (Also, if someone ever thinks they know all, then they probably know nothing. :))
Motivation and moving forward, now that’s an idea. What I like to do (but am not really doing it cuz I am a lazy piece of ****) is merging theory and practice. That means, as you learn programming, try to think of daily tasks you need to get done with quickly and reliably. Then, apply your knowledge on the topic and try to code a program that will help you do something. For example: Want to train your brain? Create your own words remembering game (there’s no need of any fancy GUI here, a simple console application will work just fine)!
Therefore, it is much easier and way more fun to learn as you create rather than learning to create.
Thank you all so much for the warm welcomes and all of the advice.
@Elhitch, I stumbled upon the page that your signature links to before. I’ve read that page and I really appreciated the information on there. I feel like most people, when they think about the word hacker, they think only of unethical hacking that people use for personal gain. The thing that interest me about hacking is simply seeing how vulnerable people really are to having their information compromised. It’s a huge eye-opener, and knowing what could go wrong and what people can gain access to helps for you to understand why network security is so important and what you can do to avoid things like that happening.
I think I’m going to learn JavaScript and Python first, perhaps while I learn C at the same time. @dloser, what is logic gates and transistors? I’m going to look online tomorrow, but I think you’d be able to explain why you think I should start with one of those first.
I want to continue to write this post, but I’m tired and I have to do my nightly writing still. I’ll reply again later because I feel like I wanted to say something else, and also, thank you all again.
Hmm, this is what I was talking about @dloser …
Anyway your method can work, provided that you actively dive deep into the topic you are currently working on.
Hy @Zeroxon , if you are new and want to do those levels, you should learn a few programming languages like html/css/php and look on the enternet on how computers work. If you want good sources w3school is good, look on youtube you might learn other stuff there and check out some books about programming. That is about it, the first thing that I learned was how my computer works, try understanding how to use your computer and you might improve on the basic things while using your computer like trying to boot up your computer without using your mouse… So yeah hope you have fun learning stuff ^^
Used to be lexostras…. but i got tierd of my name so now it’s worst…..
My github dont click this
@MrCyph3r ha ha :) no it is not that amazing, every one can do it but if you are new it can be impossible and if you do not know how to use tab.
Used to be lexostras…. but i got tierd of my name so now it’s worst…..
My github dont click this
I don’t use mouse, but I use the touchpad. :)
The tab is a good way, but if the page have 50 fields, you want access the 15th and you press one more time that need, if you don’t know the Shift+Tab you will spent much time.
?
@MrCyph3r if you still have too much to learn I still have too much more to learn…
Another hint: Press Shift+F3 in world and it alternate the letters to upper and lower. I have this result randomly.
:)
?
chuckles best thing I’ve read in a while. Thanks for the tips, guys! Good thing I already know how to program in HTML and CSS.
@bolofecal Word is great! Might also mention it in the other thread as best hacking tool eveeeeer!!
I have found out another thing: If you press Shift + h, then 4, then Shift + c, k, then 3 and r it is said to display the word “hacker” in a weird language…