views:

205

answers:

8

I am a student of std.7 and learning GW-BASIC in school. BASIC doesn't suit my needs and other languages will start from std.9

I can't wait that long (I'm sick of BASIC). I am trying to choose some other good programming languages. (I know this question is silly)

Desktop Application Programming and Web app design are my main goals. I don't want to learn many languages one by one and then choose one. I just want to stick to one or two. I don't want to go learning languages one by one. Which of these fit my goal? [It can also have a GUI option] :

  • C
  • C++
  • Python
  • Visual Basic
  • Any other?? [PHP,JS,Java,etc...]

Please help me since I am totally confused! Which languages are good for database programming and which languages can be interpreted with both an active and inactive internet connection? Also list good books,ebooks and tutorials for those languages

A: 

I'd advice something that gives you quick results. Try something like shell scripting for a start.

It'll give you immediate results and is actually quite useful.

You could then move on to Python, Perl6, or something else.

For a Beginner, I recommend Python.

polemon
Uh... Perl 6...?
George Edison
nah..not perl...by the way?what it's good for?
Jayant
@Jayant, Perl is good (primarily) for text processing, but the best thing about perl is it's enormous CPAN library. But no, for you Python would be a better place to start. Also consider something like Common Lisp, Scheme or Haskell later on to give yourself a broader perspective on coding languages.
slomojo
Yeah, Python id definitely the way to go. Not only it's multi paradigm, but it has a huge library of bindings, so interfacing with all kinds of services shouldn't be a problem.
polemon
what all types of apps can we make by python??
Jayant
Application programming wise, yes. If you want to dig deeper into Kernel programming or Mikrocontrollers, you need C and the more hardware based you get, the more assembly language you need. But that's totally side-tracking you right now. Go for Python and become somewhat proficient in it, then you can move on.
polemon
Is python just for web apps??Or we can make both?
Jayant
Why don't you just take a look what it is: http://www.python.org/Yes you can make both, me and other people told you that in earlier posts...
polemon
A: 

Well for desktop development, C++ with Qt is a good choice. Python is a good second choice.

If you are designing a web application that works with databases, like MySQL, go with something like PHP.

George Edison
Thanks.Should I use a compiler or IDE for those?? What's then the diff. between SQL and MySQl?
Jayant
@Jayant: SQL is the language; MySQL is a database product that uses it.
Yi Jiang
@Jayant: You're in luck - Qt comes with an IDE: Qt Creator. And SQL is just the language used by MySQL.
George Edison
for c++,are code::blocks etc... good?? or qt only?
Jayant
does it also have an option of C programming?
Jayant
@Jayant: Code::Blocks is a good IDE - I've used it myself a number of times. And no, Qt is not C.
George Edison
+6  A: 

Python is usually a recommended programming language for beginners.

It's syntax is easy to get a grip on, and it has built-in libraries for everything you can imagine, including GUI libraries, which should be handy when you want to focus on desktop development.

Just as an example, the following lines of code will pop up a simple window:

from Tkinter import *
root = Tk()
w = Label(root, text="Hello, world!")
w.pack()
root.mainloop()

For web development, you have multiple web frameworks to get you started with web apps, such as Django and CherryPy.

Again, just as an example to show how easy it can be to run a simple web app, the following code in CherryPy will start a simple "hello world" web server:

import cherrypy

class HelloWorld(object):
    def index(self):
        return "Hello World!"
    index.exposed = True

cherrypy.quickstart(HelloWorld())

On the programming side, it supports multiple programming paradigms: you can learn not only object-oriented programming, but also the basics of functional programming (even though Python is NOT a functional language).

If you're into Python, check out:

(If the IDE thread gives you a headache, you might just want to use PyScripter)

Good luck!

Yuval A
Python has a lot of advantages, and this post mentions two of them.
Ian
Which IDE should I use??and which version?
Jayant
Added a link for how to choose an IDE. For Python version - use 2.7
Yuval A
@Jayant: Try starting with the interactive interpreter - it's a great way to get used to everything.
George Edison
@George - good recommendation :)
Yuval A
thanks for ll your help..at least,i got much of the help here than any of the other sites..
Jayant
A: 

Python is definitely the choice for a first language when you want to do desktop or console programming. It's well-structured and it has lots of things built in, including a pretty decent set of GUI features.

Web Applications result in a lot more controversy, and it depends to some extent what you want to do. PHP is in more places on the web than probably any other language anymore, due in large part to the popularity gained in the late '90s and early 2000s. So if you want a job in web development, it's good to know your way around PHP.

In a couple years, the answers may change. So in answer to your question, it's less about picking a particular language and more about learning first what a computer programming language can do for you, and second what are the commonalities and differences among them, and third how to select a language given a task.

The very worst thing for a programmer is to know only one language. But the second worst thing is early exposure to BASIC -- at least in it's classic form with line numbers, goto statements, and a distinct lack of structuring capacity like user-definable functions.

Still, Python is a good start. Learn it, and it will make your BASIC better.

Ian
`it's less about picking a particular language and more about learning first what a computer programming language can do for you` - its true. it doesn't matter what you learn, when you get a job or when times change you'll have to be able to learn new languages and adapt your skills appropriately. I think its the knowledge that you gain, the insight that you need rather than the specific language. If you know HOW to program all you (really) need to change is the syntax.
Thomas Clayson
I know...But i've a problem in memorizing new syntax'es every time ...that's my main problem
Jayant
@Jayant, for memorizing a syntax you'll need time and a good manual to have with you, you do not need a single language to be always in your mind, syntax can be re-learned in a few days, a whole paradigm in months
rano
which books should I buy for learning?[I will work on Python 3.xx.xx onwards.
Jayant
+1  A: 

Do not focus on languages, but on Programming Paradigms. After you've learned a language that conforms to a paradigm, a little effort is required to learn another language that conforms to the same paradigm (and it will consists in learning the syntax properly, some library etc at the depth level you'd like).

Programming is about solving problems, and you can do this with different approaches, and each approach supports different paradigms and each language can conform to multiple paradigms.

I'd suggest to start with C or Python as Imperative Programming languages and then you can move to the Object Oriented Paradigm using Python as well. The imperative paradigm is one of the simplest to learn (since it conforms to the Operational approach, the one most used by humans to solve problems everyday and reflects how the machines work at lower levels), the object oriented one will be easier to understand. You say that BASIC does not suit your needs, I recognize that it is not so good and maybe learning it at school bothers you but you shall define your goals more programmatically : P

And learning more than one language in sequence based on needs is far better than stick to those learned at once forever, you might end like the teacher who is trying to make BASIC enter your life

rano
Shouid I learn python+C or C++ + python???this is the main ques. for me
Jayant
@Jayant Python ... then C ... then C++. Not to pick one, but to have a solid (money earning) skill set.
slomojo
@slomojoe, I agree that python should come before C or C++, but I don't see why C has to come before C++. What we are really doing is teaching ourselves to think about problems in a certain way. After learning Python and C++ I really have no problem digging through source written in C, Perl, or Java. A lot of it is just semantics and different library names.
xnine
Personally I think learning the basics of C is something that can be done quite fast, especially if one has knowledge of general programming languages. I would then suggest moving onto C++ as quickly as possible. Of course, Jayant may be able to go straight to C++, but if not, getting a foundation in C syntax and the standard library will be much easier, without having to understand some of the more complex aspects of C++.YMMV of course.
slomojo
@Jayant @slomojoe @Jeff Rader: for me first come _imperative programming_ and next _object oriented_ since it will be easier. As a first language you can think of C or Python but as an imperative language, not as an object oriented one.Ah, **Do not build your skillset around a single language** but around a paradigm
rano
A: 

I would recommend to look at how hard it would be to find a job at the place you're live in or goin' to live in. F.e. you can start working on your C++ skills, but it may turn out that that is nearly impossible to find any related work place. In the case you have a secret desire to make a contribution to Linux, that would be the best choice :)

Anyhow some knowledge of most used techologies like SQL, XSLT, HTML, CSS, JavaScript will always help. I would choose Java or .NET, but if Ruby-on-Rails can pay your bills - go for it.

Dmitry Dzygin
No..not .net...i want something cross-platform and till i know,.net is not one of those
Jayant
-1 for focusing on the job before the language and before the programming skills
rano
A: 

Definitely Python is a good choice. Even if it is interpreted, it is fast and it gives you cross-platform capabilities. On the other hand C/C++ are powerful but if you have to make something useful it would take you ages (and you'd have to stick to libraries that are cross-platform and you'd have to compile your program for different platforms, ex. Linux or Windows etc). Visual Basic is not anymore the old traditional powerless basic, but the problem is the limited portability (although there are .NET implementations for Linux like Mono). PHP and the like are traditionally used for Web applications. I too recommend Python if you want to begin with programming.

Saos
Wow! Most recommend Python.First I thought that it's just a non-so-faamous language but now I guess it's as famous as C++
Jayant
A: 

OK.So I have decided :-

  • Python
  • C or C++[As I'll decide by those learning curve]
  • PHP Do we have to learn html too[extensively] for getting good work in PHP??Recommend some book in comments..Are these things right?
Jayant