C, C++, Perl, Python, whatever you're into, I've looked into it. Hell, I probably even did the Hello World program... But then I loose it because I really can't think of anything that I want done that isn't already done, or at least something I could do with any skills I would learn withing the foreseeable future. As a result, I've only ever learned 3 programming languages, and one of them was in a class.
No matter what I want to do, it's either been done, or I have no clue how to do it. Examples of shit that's been done are: every linux program I use. Examples of shit I can't do: Mac OS X compatibility layer, finding weaknesses in games, speeding up Deluge, etc.
Today, I was working with some people on hacking this popular online videogame... and we did it... and when we did it, I suddenly realised... "Fuck this". We weren't really doing anything. I was a Kite to my sensei's sensei's Helba. I was a fucking script kiddie. That's not what I want. So I found some level one, and gave them my mostly illegally obtained items, and I quit. That is not who I am.
But how in the hell do I learn the proper skills to do this stuff when everything that can be/should be done has already been done? Even stuff like Kareha... Why write a text board script when a really nice one already exists? Most people say college... Well, I'm in college, getting an IT degree, and the only languages they offer are perl and ruby. Great. Perl I know, and it's totally useless for what I want to do. I can't imagine writing something in just perl that would have any real purpose.
I know this is disconbobulated, etc, but It's 4 in the morning and I'm getting really depressed because I want to program and learn to program (which are the same to me), but the only thing I can think of is this project this gangster wanted me to do which was basically a drugrunnerz.net clone. Sorry for the poor quality, I promise when/if I reply, I'll do it at better hours.
I kind of had the same thing. I gave up altogether especially after I made an ls in assembly. (It was both horrible and pointless)
All I use now is sed/awk scripts. Because I do like making scripts in Linux and they're quite useful.
You appear to believe that languages are the only thing in programming, well, they are not.
Find an advanced topic you might be interested in and read books on the subject.
The first thing you need to do is acquire vast knowledge. While doing that you'll write some programs, some interesting, some not.
Some of them may give you some ideas, which perhaps you won't be able to implement right away. Keep the ideas, keep learning.
If you keep learning, something good will happend, that's guaranteed.
P.S. if you can't think of a subject to learn, try networking. Learn TCP,UDP,IP,IPv6,SCTP and their POSIX api. Then continue in studying the actual implementation of these protocols.
Give up.
Unless you enjoy playing with abstract puzzles this way only leads to disappointment and frustration. If you did enjoy those things, you'd be able to write code for code's sake. Some people fell out of the womb able to do these things and you didn't. They don't want to make "MACOSX Compatability Layers" or play your video games either.
Stop worrying about the fact you're not them.
Still here?
Fine. Pick something. Anything. Go on #php
or #python
or #visualbasic
(or whatever) and ask for advice on how to build it. As >>3 pointed out, the programming languages are such a small part of doing this that it's completely pointless for you to have a conversation about them. You might as well use a programming language that reaches far and teaches very little in the abstract; a simple beginners language.
Once you're there, you'll be able to better identify what exactly is critical and try reimplementing it either closer to the metal, or in a more a functional manner and be wiser as a result. We might even be able to have a conversation about it.
You might even have an idea as to what a "MACOSX compatability layer" might involve. You may even understand how to read the output of gprof
or what kinds of mistakes otherwise very talented programmers make and would constitute "weaknesses" in games.
Until then, don't bother with languages. Unless it's Lisp or FORTH, they don't really matter.
here's the thing about everything, if you're smart you can just do it. what i mean by that is that you really don't need to know this or that until you need to know this or that. it's like, if someone asked you to do this for this much and you thought that that was well worth it, then you could do it for that much. and that's life.
> here's the thing about everything, if you're smart you can just do it. what i mean by that is that you really don't need to know this or that until you need to know this or that.
Wrong.
> I gave up altogether especially after I made an ls in assembly.
A full POSIX-compliant ls, or just the equivalent of opendir()/readdir()?
If it was the former, you sir are made of win. Most programmers these days just don't have that level of skill and persistence.
(This is coming from someone who has written cat
and chmod
in asm)
The way that you present your post brings up some interesting things about the nature of programming. You basically bring up two problems:
Programming - or any engineering - is where some technical skills you've already acquired meets up with some problem yet to be solved. There is a gulf between these two sides, and you fix things up so that they meet in the middle. Maybe you need to learn a little more to solve the problem, maybe you need to define the problem more elaborately to see how it can be solved with what you know, but you work those things out.
I would not denigrate the experience of solving a problem that's already been solved, because that first part - the pure knowledge - gets developed that way. The larger your base of technical knowledge, the more problems you'll see can be solved technically, or the faster you'll be able to call up the knowledge required to solve them. Basically overcoming the belief that this has little or no value will solve #1 above. And your expanded base of knowledge will help you solve #2. You'll have filled in the knowledge to solve the bigger problems that you do find interesting.
I can see where it might seem more useless to solve a very large problem that's already been solved. Maybe a situation like that does not pay as well in experience when you consider the time spent. Perhaps the solution to that is to work on smaller problems that have already been solved, a more diverse set.
> But how in the hell do I learn the proper skills to do this stuff when everything that can be/should be done has already been done?
Pretty much the same idea those Anonix guys are aiming for, it's the basic concept of wanting improvement. Take a simple program you use often, and try rewriting it to be more efficient/faster/smaller (those are not necessarily the same goals).
>>9
Anonix people are morons.
I like the idea of Anonix in PRINCIPAL. But what I have always wanted to put up was a open Linux system for people to SSH into, but it would likely be used from criminal activity instead of legit use or education.
Actually no, I had never heard of them. But what I had in mind was more of an anonymous system in mind. Plus they appear to be done right now (7/8 3:16pm EST).