Hello, I want to learn how to program my own applications that could maybe lead to a posssible career in the future. Is BASIC a good first language to learn? If not what do you suggest. What online tutorials or books do you reccomend?
I'm doing software engineering at university and for Java this is great - http://java.sun.com/docs/books/tutorial/ There are so many languages i don't know what to suggest. They force us to do C at university as they feel it shows the basic concepts well. Visual basic is nice and easy as its done in visual studio, a lot is done via drag and drop. But building applications that print to command line (MS-DOS) are a good starting poitn before trying GUI's.
I started a Thread about this earlier yesterday or so... check it out people contributed a lot of tutorials that helped me a lot. http://forums.bit-tech.net/showthread.php?t=144022 Good Luck
C++ is a good first language, although some say C is a better thing to learn first. Things like Java and C# would be good second languages, and maybe play around in Python a bit too.
I agree with the above, while most people would recommend Java, C# or other language which hides essential concepts, I'd say learning c or c++ is a good bet. Once you've learned to program properly then language doesn't really matter.
The most important bit of programming is understanding the logic. Once you've got it picking up languages is quite simple. I would start with java as although not brilliant on performance as even small apps take lots of memory its simple and safe. I learned Java, then C, then VB. Then learned the objected orientated side of programming in java. Really structured, object oriented, event driven programming all seem the same. One is following in a sequence, the 2nd is using objects which is like splitting everything up, and running through it almost sequentially anyway. And finally event driven is doing stuff when something happens from user interaction, which is basically any GUI anyway. If your more into web then PHP and HTML are a must. What you should learn first is sequential programming, which is going in order. write this to the screen, do this calculation, write the answer to screen etc. Using selection (do this or that), iteration(do this so many times) and sequence (do this in order). Then move onto learning about objects and classes. Then learn about making Gui's.
Easy route is: Java -> C++ -> C Employers love C/C++ for desktop applications and Java for mobile apps (increasing job prospects here!).
imho C++ ---> JAVA maybe C as a hobby and background study. for quick dirty apps, i really like the pickup-and-go nature of VB. I love being able to get a nice app or prototype running in 30min.
IMHO C -> C++ -> JAVA But I went C++ -> B/Mozart-Oz/FL(O)/UML/SQL/68l -> PHP/HTML/Javascript/CSS -> TCL/TK, OpenGL and now Java Intermixed with all that was a lot of information on programming concepts and theories
If you take a look into the actual world of development, the sharp rise in "OMGJAVA" is now gone, and it is (finally) losing what respect it has (As it is honestly shite), c# is on the way up (hooza!) as if F# and Erlang. Ruby would also be advisable to learn over such thiings as perl or python for a non static language. hence, C#, Ruby, and C just to get your hands dirty in memloc()
Out of interest, what is it exactly which makes Java shite other than being easy to develop in and doing exactly what it claims to do?
Some people feel that it's too bloated, and among other things, the garbage collection is a pile of arse biscuits.
It's slow as hell for starters... And the VM crap makes me want to puke every time there's an upgrade (on Linux)...
Java and C# are both interpreted languages, Microsoft are pushing C# because it's effectively their implementation. Hence why MGSE (Microsoft Game Studio Express) and their XNA framework both use it, but for real world games it will never EVER be used because it's interpreted. If you really want to do hardcore dev, compile a small program from C++, view it in Assembly and see the optimization. A good demonstration is while/for loops and comparing different C++ compiler version outputs in assembly. BIG difference
the fact that if you compare java to its only other real competitor (C#) it falls down in nearly EVERY area. Take XML parsing as just one example, about 5 lines in C# , quite a few more in Java The documentation is not really worth mentioning if you compare it to MSDN The library setup is so convoluted with random things needed to get simple stuff to work (compared to C# where it is easy) The IDE for it, be it NetBeans, Eclipse, or BlueJ all pale into insignificance when you get into VS.NET(2005/2007) just to mention a few, yet important points. oh and with Mono, c# is cross platform, hooza! PS check here :: http://www.tiobe.com/tpci.htm <--
When was the last time you tried to use VS.net on an older system? It's not pretty - it's simply gigantic, and bloated to all get-out. Doing anything in C or C++ in vs.net and then getting the source into any other environment is simply impossible - it's easiest to copy-paste the code into Notepad, save as .cpp, and let the other guy sort through it all. VS.n takes several minutes to load and most of your memory, is stuffed so full of useless features and languages (J# ? WTF?) that you can't find anything without spending several minutes digging through the enormous and stupidly complicated help files, is stupidly easy to delete or irreparably damage your project with, and is generally brain-dead. Eclipse is, by far, a superior dev environment. Simple, lightweight, it does everything you want it to without tons of extra bloat. Oh, and you don't need to spend tons of money to get Eclipse, either. But I digress. For languages, C++ = C + classes. I still don't understand why people insist that the two are different languages, as the syntax, keywords, and general structure are exactly the same. If you know C++, you know C.