Need help.... I'm tired of being a script kiddie!

Discussion in 'Computer Programming, Emulation, and Game Modding' started by Chronomaly, Jan 18, 2017.

  1. Chronomaly
    OP

    Chronomaly Member

    Newcomer
    23
    2
    Jan 18, 2017
    United States
    I'm tired of having to rely on everyone else's programs to do things. When I think of homebrew, I think of entire user bases contributing to projects for the general public.
    Now, I want to stop mooching off of others, so i created an account.
    Fresh out of HS, so ive git nothing but time on my hands for now.... So, how can get started on my own projects and stuff? I also have other questions:

    1)what's the best language for a beginner to learn? I've heard Python is good, but can anyone comfirm?

    2)I also heard that Linux is the best to start from because its virtually limitation-less (compared to windows/Mac)

    3) is it best to learn c or c++ first?

    4) is it best to take a course to learn a programming language, or is it best to just teach myself?

    5) best place to find open sourced projects?

    Now I know, I have a dream of being a real hacker, which would take YEARS of learning, but what's also the best way to reverse engineer? Or will the former teach me how?
    I want to actually have a presence in the hacking community, ya know?
     
    Last edited by Chronomaly, Jan 18, 2017
  2. Zenior_X

    Zenior_X Member

    Newcomer
    30
    6
    May 6, 2015
    I started coding at university, and they taught me C and Assembly at the same time I was learning about CPUs, then I started with Java and Python (OOP). So I would recommend you to start with C as you learn the basics of coding, the concepts (variables, loops, functions). And then switch to Java or Python as you'll learn how OOP works.
     
    Chronomaly likes this.
  3. Chronomaly
    OP

    Chronomaly Member

    Newcomer
    23
    2
    Jan 18, 2017
    United States
    So are you recommending I go to college to learn this better?
     
  4. Zenior_X

    Zenior_X Member

    Newcomer
    30
    6
    May 6, 2015
    Well, you can learn by your own but it's not that difficult. At a college you can learn too. You just have to choose. :)
     
    Chronomaly likes this.
  5. Chronomaly
    OP

    Chronomaly Member

    Newcomer
    23
    2
    Jan 18, 2017
    United States
    Might go to college then. And what about #2? Is Linux best to start with, or does OS simply not matter?

    — Posts automatically merged - Please don't double post! —

    Also, what would be the name of the course that teaches those languages?
     
  6. Zenior_X

    Zenior_X Member

    Newcomer
    30
    6
    May 6, 2015
    2->Use linux, once you get use to it you'll know why
    3->C is better for beginners
    4->If you decide to learn by yourself I would reccomend you to use a book.
    5->If you want to read code from open source projects ou can go to github
    Finally about hacking. You don't learn how to hack something just by coding, you need to understand how the machine you want to reverse ingeneer works, is composed etc.
     
    Chronomaly likes this.
  7. Chronomaly
    OP

    Chronomaly Member

    Newcomer
    23
    2
    Jan 18, 2017
    United States
    Gotcha, thanks for the help. But I'm looking up colleges too RN, and I was wondering, are these languages more web-based, for like websites, or can I also use these for writing computer software?

    HTML5, CSS3, JavaScript, Java, jQuery, Node.js, Responsive Design, Heroku, Git, User Authentication, React.js, MySQL, MongoDB,
     
  8. Zenior_X

    Zenior_X Member

    Newcomer
    30
    6
    May 6, 2015
    Unfortunetly I still have no knowledge about these yet. I know Java and yes, you can write computer software with it.
     
  9. FAST6191

    FAST6191 Techromancer

    pip Reporter
    23,361
    9,153
    Nov 21, 2005
    1) Languages are better and worse at different things. You can however do a lot with python on every level really. You might also want to learn some php and some mysql (and htaccess and general server configuration)
    2) There is a lot Linux can do that Windows can not, especially for some of the slightly more exotic aspects of networking, but for my money there is not a lot in it if you are just learning you way about. Definitely learn Linux at some point but I am not sure if it would gain much to add in learning a new OS at the same time.
    3) Arguments for and against both really. I would lean towards C++ but maybe not sweating too much of the differences between it and C.
    4) Many can teach themselves, many can not.
    5) For hacking or generally? For hacking then look at whatever open source disassembly and analysis tools are going http://www.radare.org/r/ is a good start and before long you will probably want to look at something like https://www.kali.org/ and similar things.

    Also it is not using premade tools that makes you a script kiddie, it is only using tools and not knowing how the underlying stuff works that makes you a script kiddie. Most of coding, and engineering at large, is about not redoing work that others have already done. Similarly you need not be able to code to contribute -- writing documentation, testing, making guides and more are all useful things which nobody wants to do and benefit far more people than getting the basics of programming down and maybe fixing a small bug, optimising a small section or adding some comments.
    Reverse engineering? Usually by doing. Coding won't inherently teach you it but it will not hurt. You might also like things called hackmes. Various ones exist (online, windows based, mobile, electronics even) and are made to allow people to pull things apart and figure out how they work, often in some odd way.
     
  10. Chronomaly
    OP

    Chronomaly Member

    Newcomer
    23
    2
    Jan 18, 2017
    United States
    Describes me on a spiritual level :rofl2:
     
  11. B_E_P_I_S_M_A_N

    B_E_P_I_S_M_A_N oh no

    Member
    681
    2,462
    Jun 7, 2016
    United States
    Sixth Circle of Hell
    I know I'm a bit late here, but I'll offer some suggestions on some languages:

    1. Python: This was actually my second language, after BASIC. The formatting can take some getting used to, but it helps reinforce clean code. It's Object-Oriented, and there are plenty of useful libraries for the language that you can mess around with.

    2. C: It's definitely harder than Python, but is also more lightweight and allows you to perform some low-level functions. Memory can be a pain to deal with, and pointers can be a bit confusing for beginners. Most of the hacking tools in the 3DS scene (or in any hacking scene, really) use C. I'd advise you do a language like Python or Lua before tackling C. Speaking of which,

    3. Lua: It's relatively light, and has an easy learning curve. Lua is particularly useful in scripting in games. Games like GMod and TF2 use Lua for bot scripting and the like.

    4. Ruby: I'm still learning this one. However, from what I've heard from others, as well as from what I've learned so far, it's a powerful tool, allowing rapid prototyping and generally fast development. It's also fairly easy to pick up. Ruby is sometimes used in web development
    (i.e. Ruby on Rails).

    5. Brainfuck: The only true programming language. True programmers use this language. /s
     
    Duckling likes this.
  12. Chronomaly
    OP

    Chronomaly Member

    Newcomer
    23
    2
    Jan 18, 2017
    United States
    Lateness dosent bother me.
    But what is brainfuck?

    — Posts automatically merged - Please don't double post! —

    Never mind, just Googled it.
    But what would be the best for let's say, a multiplayer game? Or something as simple as a save editor?
     
  13. ScarletDreamz

    ScarletDreamz [Debug Mode]

    Member
    2,571
    1,112
    Feb 16, 2015
    United States
    California
    You can always start with C#, i normally use C# as well as Unity since it has all already embed into it, you can get also a good Engine, Unreal, Havok, Or even something like RPGMaker or Game Maker.
     
    Last edited by ScarletDreamz, Feb 10, 2017
    Sukorow likes this.
  14. Chronomaly
    OP

    Chronomaly Member

    Newcomer
    23
    2
    Jan 18, 2017
    United States
    ill look up c#, thanks
     
  15. Sketchy1

    Sketchy1 gbatemp's shadiest warez dealer

    Member
    1,492
    369
    Aug 9, 2016
    United States
    Its probably best to learn Python because its simple yet powerful, then c, then c++.
    Technically c++ was supposed to be the successor to c, but The reason I say c before c++ is because a large portion of c++ is the same as c, so learning it after shouldn't be to hard.

    Don't get me wrong either; c is very very very NOT dead, its still widely used anyway.
     
  16. Lilith Valentine

    Lilith Valentine GBATemp's Wolfdog™ I drool on my knife

    Member
    19,746
    20,488
    Sep 13, 2009
    Antarctica
    Between insane and insecure
    First, get yourself a Linux distro. There are literally hundreds of them, but most of them are the same damn thing. Once you get the feel for that, you are ready for your journey.
    Good place to start looking at Linux Distros would be here
    http://distrowatch.com/
    I've used that site for years for distro hoping.
     
  17. Sukorow

    Sukorow Member

    Newcomer
    39
    2
    Feb 8, 2017
    United States
    HowToCode?.com
    ik I'm late. If any help, I started of with c#. I'm not a expert at it, but ik my ways around. But I use C# for developing software and etc. I tried python, but didn't like it. Not saying it's a bad language, it just didn't fit me I guess. C# isn't that hard to learn. But you got to take your time. But like I said, I aint a expert, I just know my ways around and stuff xd
     
  18. sarkwalvein

    sarkwalvein Professional asshole at GBATemp

    Member
    GBAtemp Patron
    sarkwalvein is a Patron of GBAtemp and is helping us stay independent!

    Our Patreon
    4,872
    4,925
    Jun 29, 2007
    Germany
    Niedersachsen
    Even later, but:

    1)what's the best language for a beginner to learn? I've heard Python is good, but can anyone comfirm?
    I think Python is great for learning, go for it. After that try learning some C and C++.

    2)I also heard that Linux is the best to start from because its virtually limitation-less (compared to windows/Mac)
    I would say go for Linux, but not beacuse of it being limitation-less, but because it usually pushes you to use tools appropriate for programming and gets you away of bad practices.
    OSX is also good. It is really easy to get libraries/components in Linux or OSX, using either the integrated package manager (apt-get / yum / etc in Linux) or the ones readily available in OSX (e.g. brew).
    Having a UNIX environment makes it easy for a lot of projects to compile and work, because the toolset they require is already available in those systems.

    Windows is IMHO not so good for learning programming, but of course it can be used.

    3) is it best to learn c or c++ first?
    If I were you I wouldn't learn C or C++ alone on my own, not as a first.
    It can be done, but you may end with very bad practices, the language doesn't enforce you to make the things right.
    PS: If you were asking if it is best to learn EITHER c or c++ first, go the way you like. There are two different ways of progamming that apply to C and C++, thinking about procedures or thinking about objects, you should learn both in any order you want (I would go procedures/C first, but whatever, I'm old and I learned procedural first). Learn to understand the difference of the two ways of thinking... Don't program C++ as if it was a procedural instead of object oriented language (it will let your, as it is mostly backwards compatible with C, but you're missing the whole idea of the language.).

    4) is it best to take a course to learn a programming language, or is it best to just teach myself?
    It is best to take a course, totally. Specially for C and C++, and try to learn how to code well in a maintainable and readable way.
    Python generally enforces you to have at least a couple of good habits in writing it or it will just complain and fail to work. The documentation and tutorials -usually- make you program it in an appropriate way. It would be OK if you want to learn Python on your own.
    But IMHO, if you are learning a first language, it is always better to take a course or two.

    5) best place to find open sourced projects?
    I don't know... github?... google?
    They are all around. First look for tutorials and project.
    Perhaps look for projects based on specific libraries, like pygame, or complete engines like RenPy.

    Now I know, I have a dream of being a real hacker, which would take YEARS of learning, but what's also the best way to reverse engineer? Or will the former teach me how?
    I am not actually a hacker, but I will tell you what I think about it.
    For hacking it is good to know the underlying of things, go as near to bare as possible.
    It would be great if you learn about protocols, libraries, calling conventions (specially C based calling conventions), how stacks work, etc.
    Learning C/C++ in the low level (regarding pointers, calling convention and the stack, etc.) will probably give you some knowledge in that direction.
    Other than that you should learn about how things compile and work in the processor, e.g. how is the stack and registers used during a function call.
     
    Last edited by sarkwalvein, Feb 10, 2017
    Minnow and grossaffe like this.
  19. grossaffe

    grossaffe GBAtemp Addict

    Member
    2,727
    2,098
    May 5, 2013
    United States
    Listen to sarkwalvein. There is no one correct way to go about learning this stuff, but I think his suggestions here are pretty on point. For your first programming language, you really should learn it properly so you can learn the best practices and build upon that as you move further. If you start with a kernel of bad practices, you're gonna have a bad time as you progress.
     
  20. AuburnSounds

    AuburnSounds Newbie

    Newcomer
    7
    9
    Feb 21, 2017
    France
    Anything can be used for starting, I would advise the one you want to use most.
    Every programmer I know has used something quirky, outdated and personal at one point.

    Same answer, use what you want if it's for starting. Mac has a unix core so it can be used a bit like Linux.

    I encourage you to learn top-down ("I need this now so I learn it now") to avoid "preemptive" learning .
    So I'd say to make a (simple) program for some external goal, and to learn the relevant piece of language as you go.

    That said, the basis of knowledge in C will help you in many other language ("C family"), because:
    - its operator precedence is reused
    - the integer handling/promotion is still one of the best
    - it is a stepping stone to learn languages in this family
    The basics matters a lot and learning C is a good investment.

    That said #2: learning Scheme with SICP book will be an even better investment in the long run. It was the canonical way of learning programming until recently at MIT (they went with python afterwards because "programming workplaces are hellish anyway so better train people for big mess"). I wish I had learn this way.

    I think it's best to make something that requires you to know the language. At one point, you will want the books and documentation, it will come naturally.

    Github? Find threads on the Internet that recommend interesting source code.

    It can help to actually know assembly programming to reverse engineer, but it is essentially its own discipline.