![]() |
||
|
|
Welcome to the Exploding Garrmondo Weiner Interactive Swiss Army Penis. |
GFF is a community of gaming and music enthusiasts. We have a team of dedicated moderators, constant member-organized activities, and plenty of custom features, including our unique journal system. If this is your first visit, be sure to check out the FAQ or our GFWiki. You will have to register before you can post. Membership is completely free (and gets rid of the pesky advertisement unit underneath this message).
|
![]() |
|
Thread Tools |
Learning to program.
sorry for the rapid succession of thread creation here. i forgot to ask this here earlier. :/
Long story short, my best friend wants to learn how to program. He doesn't know very much about it at all, and would like to avoid college or university entirely, if possible. Also, his final goal may either be to learn web-based back-end programming, or C++ with a future in game development. What advice would you give him? Any links or any places he should start looking? Jam it back in, in the dark. |
There are over 9,000 "Learn to Program!1" websites/books/pornfilms out there, pick any of them. Just start programming as much as possible. It's as much art as it is science, and the only way to get better at either one is to just practice a lot, and figure out how to teach yourself. You'll be having to retrain for the rest of your career -- the best programmers are the ones who can pick up a new technology within hours. It's not an easy or glamourous job, by any stretch of the imagination. 99% of people end up doing something boring like working on accounting software or writing internal tools for some megacorp. If you're good, you might just land a hotshot job at a cool company, or strike out on your own and have a successful startup, but the odds are against you. chocolate rain There's nowhere I can't reach. ![]() |
Ruby on rains is themost horridlanguage. I hate that language with a passion. The language is broken, the documentation (when I last used it anyway) is severly lacking, it is way over-rated for it's 'eye candy features' and just overall a piss-poor language.
Learn C#. And you should be able to do a search for C# tutorials to get you on your way. C# allows you to make applications that can be theoritically used on mutliple OS's, be used for webish things, and is a versitile language with many great features, that is always improving, and is a nice mix between Java and C. This thing is sticky, and I don't like it. I don't appreciate it. |
Pretty much everything ramoth said is truth.
C#, Java, C/C++, et al. are all horrid languages to begin programming with, especially for someone who doesn't want to take courses. I'm not saying they're not useful to know at some point in time, or that they are horrid languages in general (what I think of them is a completely separate topic), but if you are a beginning programmer, which of these makes more sense to you: Code:
C# public class HelloWorld { public static void Main() { System.Console.WriteLine("Hello world"); } } Code:
PHP <?php echo "Hello world"; ?> Code:
Python print "Hello world" I don't know that I'd recommend PHP as a beginner's language, but it is pretty easy and has the benefit of being immediately useful because web pages are awesome. Does you friend already know HTML? Knowing it already would be a big help. I've never used Ruby on Rails (which is not a language; Ruby is the language, and RoR is just a web application framework for it), but I've seen a demo and it looked pretty easy. It does a lot of magic for you so that you can make web apps a lot faster than coding everything from scratch. In my opinion, the best languages to learn with are ones interpreted ones with an interactive mode, like Python (which I'm quite surprised ramoth didn't mention). Having a console and a prompt gives you immediate feedback on what you're doing, both with code correctness and the results of what code does. Python is a great language to play around and experiment with because of this and also because as a language it's easy to read. There are some tutorials supposedly for non-programmers here. Non-Programmer's Tutorial for Python and Instant Hacking look decent, but I just scanned them. I am a dolphin, do you want me on your body? |
That's the thing though with RoR. Unless it has changed dramatically since I have yused it, the things it can automatically do for you are actually fairly limited. It CAN set up a webpage and basic functions for an online database, but again, a basic one.
I was speaking idiomatically. |
Chocorific |
Learning to write (good) code / program is independent from learning a programming language. If you have understood the basic (and advanced) concepts of the few programming styles (functional, imperative, object-orientied, etc.) you can learn to use a new programming language in just a few weeks.
Learning to programm however can take some years. Me for example started with C++. C89 and C99 followed, some x86 assembly. bash scripting, Java, Python, Perl, etc. Good thing when knowing C is that you can read a lot of open-source code on the net, especially the Linux kernel. It's really helpful understand system internals. Most amazing jew boots |
I know that ain't the point of the thread but I believe this entire thread was based on one of those lame, boredom-inspired conversations. "yo dude, I wanna be a hardcore hacker like neo" "lol, that'd be cool" "yeah, but I dun wanna go to school cause that's hard and boring fuck that" "yeah, fuck school. let's go ask some internet forum goers how to learn programming!" ... INTERNET COMES TO THE RESCUE! FELIPE NO |
Visual BASIC showed the world that any two-bit hack could write a program. It ALSO showed us that any two-bit hack can write a program that will have massive problems, holes, and be absolutely unmaintainable, but only someone who knows what they're doing can write a quality project that's fast, stable, and maintainable. As for what language to learn: Python might work well. I learned on QBASIC when I was 6 years old, but I wouldn't recommend BASIC as it teaches some bad habits. C++ is my language of choice (and the language that I was retaught on in college when I became a Comp. Sci major after not programming for the better part of a decade), but I taught myself Python in the course of a few hours and found it a simple and enjoyable language. Otherwise, C++ is a solid choice since it runs everywhere and is used in a lot of places. It's a bit tougher than some languages when you get into advanced stuff, but it's not a bad language to learn on, really. I would NOT reccommend C#. Once you learn one or two languages picking up others is not tough (After I learned C++, I learned PHP in a week, Python in maybe an hour, and I'm currently teaching myself Java and Perl), but C# is an awkward choice because of its lack of compatibility. Mortis may claim otherwise, but .NET is Microsoft-exclusive and they've shown no interest in porting it to any other systems. Mono on Linux isn't bad (I've written C# code to run there), but it's unofficial, incomplete, and sadly lacking. And MacOS? Forget it. Java and C++, by contrast, DO run anywhere. What, you don't want my bikini-clad body? |
Syklis Green |
Scripting languages are typically way easier to pick up than full-on programming languages, so if you're starting off I'd recommend Python. The syntax is clean, the dynamic typing makes it easy, and the garbage collection saves you from the horrors of memory leaks (for the most part). Ruby isn't too bad of a language, either. It's less ugly than Perl or PHP and Why's Poignant Guide is like the most awesome tutorial ever. Never used Ruby on Rails.
Cross-platform, although good, is not everything. Seeing as MOST people run Windows, C# is fairly solid. It improves upon Java, by making things slightly less verbose and adding nifty new features. Java is fairly ick in my opinion, unless you're really worried about supporting other platforms. C++ is a fairly solid choice, but it might be a little too powerful and catastrophic for a first language. There are lots of gotchas. SDL might be a good library to experiment with for a silly little game project. I'd really recommend your friend get a Computer Science degree to increase his chances of getting a job in his field of interest, but also stress a fair importance on constantly experimenting with various code projects along the way to learn how to develop things quickly and effectively. I mean, if you don't do anything outside of school work, how can you really be that good of a coder? He's gonna probably want to make a portfolio of some independent projects, to make himself stand out as well. Jam it back in, in the dark. |
Cross-Platform is not everything, but in the case of .NET I'd certainly say it is. You're locked into one OS, one compiler, and for the large part one IDE (An IDE isn't strictly necessary - I'm a vim/make guy myself, but it can certainly be useful) - not what I would want for my first language.
There's nowhere I can't reach. |
Syklis Green |
Yeah, that's true. But Visual Studio 2005 doesn't have that bad of an IDE (at least, the pro version, which is sort of uhm pirated). I suppose another big thing that I liked about coding with Java was using Eclipse. I don't MIND using makefiles, but I try to avoid them when an interface can automate these things for me and also allow me to automatically jump to the spot of any compile errors. Eclipse is especially nice, because it parses your code as you type. Visual Studio is nothing too fancy, but it gets the job done.
But then for light projects, I just use Textpad, or gedit. This thing is sticky, and I don't like it. I don't appreciate it. |
I'm not about to insult Visual Studio. I've used a large pile of IDEs (Zend, Eclipse, Anjuta, kDevelop, and VS 6, 2003, and 2005 extensively), and I've got to say that I may like the VS2005 interface even more than I like kDevelop (which is insanely good). I may have gripes with Windows, but most of Microsoft's other products - Visual Studio, Office, and Streets & Trips especially - are top notch.
I just don't like being forced into one suite of applications - even if it IS the best suite - I like choice. I am a dolphin, do you want me on your body? |