Im gonna have to apologise in advanced as im sure this sort of question has been asked loads but i flipped back a few pages and didnt see 1 so im gonna go ahead and post. I originally went to college mainly to learn about programming and the various languages, however i got roped into a very generic computer course and as i was young then, i quickly lost interest and learnt bugger all. So now that i have spare time and a job that requires me to expand my knowledge a tad, im after learning a programming language and most likely more advanced ones in the future. After searching google and a whole morning looking at various languages i felt more confused then i did yesterday. Has anyone got a recommendation on a language to get me started, that isnt to complicated but still useful? Im mainly after writing applications for websites and standalone ones both for windows at the present. Not sure quite how to describe what im after Anyway if anyone has any suggestions that would be great, o and if anyone knows a good book to read?
I'm currently learning & using C# for projects both on windows & the web and it has to be said that visual studio does help quite a bit with the learning process, plus the express editions are free and I have found several books that are very well laid out and useful; Wrox beginning Microsoft Visual C Sharp 2008, Apress Beginning C Sharp 2008 Objects from concept to code, Sams Teach yourself Visual C Sharp 2008 in 24 hours. Also Microsoft have loads of resources online for free in the beginners developer centre.
If you're looking to create both web and standalone applications, either Java or Python is what you're looking for. Java is more similar to other programming languages, but Python is easier (though they're both quite easy). It's generally easier to use Web tutorials than books. A good Java tutorial can be found here, and a good Python one here. - Diosjenin -
Quick question while i look at the suggested programs. Would it be worth my time learning a easier language then moving up to a different 1? or is Java/Python easy to get on with, with the effort put in?
Slightly on a tangent - but a web based language would seem to be the sensible choice with more and more applications being mored over to web portals these days... And stay away from VB.Net, I found it easy to learn, but not many people seem to use it in the real world (I am almost certinaly wrong here - but that's what I've found) RwD
No, that's exactly right. The majority of standalone developers use C, C++, Java, and many are moving to C#. Some embedded or web devs will also/alternately look for Javascript and basic XML experience. VB.net is defunct. Pass it over. Python is about the easiest language you can pick up, period. Java is probably next in line, though, so either should suit you just fine. - Diosjenin -
I used to use Java quite a bit but always had issues with it, python was far better but I find it a bit limited which is why I recommend C# now as it has taken all of the good things from the robust & powerful languages and put it all in one nice box and when tied in with ASP.net is superb for web development as well.
Nothing in particular to pick 1 over the other then? Sounds like im going with Java as i believe is more widely used. *edit, i hear C# is harder to learn compared to Java/Python?
I think that is a misnomer because of all of the tech associated with it like LINQ, ASP.net, etc. The core C# is easier than java to get your head around and coupled with Visual Studio can have you making worthwhile programs in hours instead of days.
Well, maybe I should rephrase that. Java is the language you should go to to learn the fundamentals of computer programming in the context of a language that might actually be used in the context of a Fortune 500 setting. Classes are easier to wrap your head around through Java than they are in most other languages, IMHO. The biggest advantage is fully automatic and fully transparent memory management (learn some C++ - or C, if you really want to torture yourself - and you'll see just how much of a pain memory management can be). There are areas where it gets harder as you get more advanced - but if you're only learning it to learn what programming is generally like before moving on to a more advanced language, just download Eclipse and the Java SDK plugin and you're good to go. Python is easy to the point of some programmers accusing it of not really being a programming language (though those programmers are full of it, lol). It has its quirks (whitespace), but generally it's just a language that's very fun and rather powerful for its being so fun. See these xkcd comics [1] [2] for a good surface-level analysis of Python. C# is a good midpoint between the more automated languages like Java and the more fine-tunable languages like C++. It retains most of the same features and syntax specifics of C++, but memory management is automated unless you want to do it manually. - Diosjenin -
thanks alot for the explanation and thanks for all the replies. Im gonna get my head round Java and at least learn the basics and maybe after look at C# or C++
Maybe I'm going completely mad, but I find Java very confusing to try and backwards-engineer now I've got used to C++.
You're definitely not the only one. I think java reads neatly, but I prefer C syntax - It doesn't seem as kludgy. I can't speak for anyone else, but I personally have never found a program written in Java that doesn't feel sluggish or look ugly. The idea of a portable language with the JRE etc is nice and all, but in my (admittedly limited) experience it just seems to run like a dog and sacrifice efficiency for the sake of being portable. Maybe someone with better knowledge of Java could tell me I'm completely wrong on that count, but once I got used to C, Java just felt like a horrible, slow mish-mash of compromises and workarounds in comparison. My recommendation is to just go with C/C++, since once you 'get' C everything else will be laughably easy to learn afterwards, if not slightly frustrating/confusing as Krikkit said. I can't speak for C# as I haven't done much with it yet, it does seem pretty nice though.
Well i been playing around abit with Java and havent gotten far and i remember doing abit of C++ in college so i guess i have a bash at that aswell.
Go to http://www.microsoft.com/exPress/ and download Visual C# It's all free and you get a really nice IDE which will help you learn C# in no time at all. You can also get SQL Server 2008 Express for free and Visual Web Developer so you can write web apps in asp.net
I'd go for C++, especially if you've done a bit before. Have a look at the www.cplusplus.com/tutorial pages.
i learned on java, and i always recommend other people do too. C++ and python are nice, but they let you cheat. it is harder to cheat with java, and the way the syntax works teaches important OOP concepts. grab a book by cay horstmann to learn with.
At this point in time there is no reason to look at C++ any more, C# does everything C++ did but without the clumsiness.
I'd also suggest C#, but i will caution that the choice is largely defined by what you want to achieve. If you want to learn a windows coding language, C# is good. It's easier to understand than upright C++, and faster to write (watch someone inevitably argue that). Web-wise, there's Ruby, if you're willing to dredge through some tuts that were nothing shy of godawful last i checked. Or PHP. That's just server side, though... client side on the web you'll almost certainly need some Javascript, and deffinately a good understanding of HTML and CSS. i would NOTT recommend going any of the .NET langauges (ASP.NET in VB or C# derivatives) for the web. i find them often bloated due to the good IDE that you're pretty much bound to use. as for IDE's that make it easy: For .NET languages: Visual Studio, even the express editions. for Ruby: I don't know. for PHP: Dreamweaver CS2 and up, Notepad++, and (apparently - haven't tried it) Netbeans. Netbeans also comes recommended for Java, IMHO.